AliRoot Core  3dc7879 (3dc7879)
AliAODTrack.h
Go to the documentation of this file.
1 #ifndef AliAODTrack_H
2 #define AliAODTrack_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 
12 
13 #include <TRef.h>
14 #include <TBits.h>
15 
16 #include "AliVTrack.h"
17 #include "AliAODVertex.h"
18 #include "AliAODRedCov.h"
19 #include "AliAODPid.h"
20 #include "AliExternalTrackParam.h"
21 
22 
23 class AliVVertex;
24 class AliDetectorPID;
25 class AliTPCdEdxInfo;
26 class AliAODEvent;
27 class AliTOFHeader;
28 
29 class AliAODTrack : public AliVTrack {
30 
31  public:
32 
33  enum AODTrk_t {kUndef = -1,
36  kOrphan}; // Please note that this flag does not guarantee that the particle is a Physical Primary, it simply identifies the algorithm which was used to filter the track. In general, the following associations are used (check the filter macro to be sure, as this comment may be outdated):
37  //kPrimary: TPC only tracks, global constrained tracks, primary tracks, kink mothers;
38  //kFromDecayVtx: bachelor tracks from cascades, tracks from V0, kink daughters;
39  //kUndef:TRD matched tracks
40 
41  enum AODTrkBits_t {
42  kIsDCA=BIT(14), // set if fPosition is the DCA and not the position of the first point
43  kUsedForVtxFit=BIT(15), // set if this track was used to fit the vertex it is attached to
44  kUsedForPrimVtxFit=BIT(16), // set if this track was used to fit the primary vertex
45  kIsTPCConstrained=BIT(17), // set if this track is a SA TPC track constrained to the SPD vertex, needs to be skipped in any track loop to avoid double counting
46  kIsHybridTPCCG=BIT(18), // set if this track can be used as a hybrid track i.e. Gbobal tracks with certain slecetion plus the TPC constrained tracks that did not pass the selection
47  kIsGlobalConstrained=BIT(19), // set if this track is a global track constrained to the vertex, needs to be skipped in any track loop to avoid double counting
48  kIsHybridGCG=BIT(20)// set if this track can be used as a hybrid track i.e. tracks with certain selection plus the global constraint tracks that did not pass the selection
49  };
50 
51 
53  kTrkTPCOnly = BIT(0), // Standard TPC only tracks
54  kTrkITSsa = BIT(1), // ITS standalone
55  kTrkITSConstrained = BIT(2), // Pixel OR necessary for the electrons
56  kTrkElectronsPID = BIT(3), // PID for the electrons
57  kTrkGlobalNoDCA = BIT(4), // standard cuts with very loose DCA
58  kTrkGlobal = BIT(5), // standard cuts with tight DCA cut
59  kTrkGlobalSDD = BIT(6), // standard cuts with tight DCA but with requiring the first SDD cluster instead of an SPD cluster tracks selected by this cut are exclusive to those selected by the previous cut
60  kTrkTPCOnlyConstrained = BIT(7) // TPC only tracks: TPConly information constrained to SPD vertex in the filter below
61  };
62 
63 
64  enum AODTrkPID_t {
65  kElectron = 0,
66  kMuon = 1,
67  kPion = 2,
68  kKaon = 3,
69  kProton = 4,
70  kDeuteron = 5,
71  kTriton = 6,
72  kHelium3 = 7,
73  kAlpha = 8,
74  kUnknown = 9,
76  };
77 
78  AliAODTrack();
79  AliAODTrack(Short_t id,
80  Int_t label,
81  Double_t p[3],
82  Bool_t cartesian,
83  Double_t x[3],
84  Bool_t dca,
85  Double_t covMatrix[21],
86  Short_t q,
87  UChar_t itsClusMap,
88  AliAODVertex *prodVertex,
89  Bool_t usedForVtxFit,
90  Bool_t usedForPrimVtxFit,
91  AODTrk_t ttype=kUndef,
92  UInt_t selectInfo=0,
93  Float_t chi2perNDF = -999.);
94 
95 
96  AliAODTrack(Short_t id,
97  Int_t label,
98  Float_t p[3],
99  Bool_t cartesian,
100  Float_t x[3],
101  Bool_t dca,
102  Float_t covMatrix[21],
103  Short_t q,
104  UChar_t itsClusMap,
105  AliAODVertex *prodVertex,
106  Bool_t usedForVtxFit,
107  Bool_t usedForPrimVtxFit,
108  AODTrk_t ttype=kUndef,
109  UInt_t selectInfo=0,
110  Float_t chi2perNDF = -999.);
111 
112  virtual ~AliAODTrack();
113  AliAODTrack(const AliAODTrack& trk);
114  AliAODTrack& operator=(const AliAODTrack& trk);
115 
116  // kinematics
117  virtual Double_t OneOverPt() const { return (fMomentum[0] != 0.) ? 1./fMomentum[0] : -999.; }
118  virtual Double_t Phi() const { return fMomentum[1]; }
119  virtual Double_t Theta() const { return fMomentum[2]; }
120 
121  virtual Double_t Px() const { return fMomentum[0] * TMath::Cos(fMomentum[1]); }
122  virtual Double_t Py() const { return fMomentum[0] * TMath::Sin(fMomentum[1]); }
123  virtual Double_t Pz() const { return fMomentum[0] / TMath::Tan(fMomentum[2]); }
124  virtual Double_t Pt() const { return fMomentum[0]; }
125  virtual Double_t P() const { return TMath::Sqrt(Pt()*Pt()+Pz()*Pz()); }
126  virtual Bool_t PxPyPz(Double_t p[3]) const { p[0] = Px(); p[1] = Py(); p[2] = Pz(); return kTRUE; }
127 
128  virtual Double_t Xv() const { return GetProdVertex() ? GetProdVertex()->GetX() : -999.; }
129  virtual Double_t Yv() const { return GetProdVertex() ? GetProdVertex()->GetY() : -999.; }
130  virtual Double_t Zv() const { return GetProdVertex() ? GetProdVertex()->GetZ() : -999.; }
131  virtual Bool_t XvYvZv(Double_t x[3]) const { x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return kTRUE; }
132 
133  Double_t Chi2perNDF() const { return fChi2perNDF; }
134 
135  UShort_t GetTPCnclsS(Int_t i0=0,Int_t i1=159) const {
136  UShort_t cl = fTPCSharedMap.CountBits(i0)-fTPCSharedMap.CountBits(i1);
137  return cl;
138  }
139 
140  UShort_t GetTPCncls(Int_t i0=0,Int_t i1=159) const {
141  UShort_t cl = fTPCFitMap.CountBits(i0)-fTPCFitMap.CountBits(i1);
142  if(cl==0)cl = fTPCClusterMap.CountBits(i0)-fTPCClusterMap.CountBits(i1);// backward compatibility
143  return cl;
144  }
145 
146  UShort_t GetTPCNcls() const { return GetTPCncls(); }
147  Double_t GetTPCchi2() const {
148  Int_t nTPCclus=GetNcls(1);
149  if(fChi2perNDF>0. && nTPCclus > 5) return fChi2perNDF*(nTPCclus-5);
150  else return 999.;
151  }
152 
153  Int_t GetNcls(Int_t idet) const;
154 
155  virtual Double_t M() const { return M(GetMostProbablePID()); }
156  Double_t M(AODTrkPID_t pid) const;
157  virtual Double_t E() const { return E(GetMostProbablePID()); }
158  Double_t E(AODTrkPID_t pid) const;
159  Double_t E(Double_t m) const { return TMath::Sqrt(P()*P() + m*m); }
160  virtual Double_t Y() const { return Y(GetMostProbablePID()); }
161  Double_t Y(AODTrkPID_t pid) const;
162  Double_t Y(Double_t m) const;
163 
164  virtual Double_t Eta() const { return -TMath::Log(TMath::Tan(0.5 * fMomentum[2])); }
165 
166  virtual Short_t Charge() const {return fCharge; }
167 
168  virtual Bool_t PropagateToDCA(const AliVVertex *vtx,
169  Double_t b, Double_t maxd, Double_t dz[2], Double_t covar[3]);
170 
171  // PID
172  virtual const Double_t *PID() const { return fPID; }
174  void ConvertAliPIDtoAODPID();
175  void SetDetPID(AliAODPid *aodpid) {fDetPid = aodpid;}
176 
177  void SetPIDForTracking(Int_t pid) {fPIDForTracking = pid;}
178  Int_t GetPIDForTracking() const {return fPIDForTracking;}
179  Double_t GetMassForTracking() const;
180 
181  template <typename T> void GetPID(T *pid) const {
182  for(Int_t i=0; i<10; ++i) pid[i] = fPID ? fPID[i]:0;}
183 
184  template <typename T> void SetPID(const T *pid) {
185  if (pid) {
186  if (!fPID) fPID = new Double32_t[10];
187  for(Int_t i=0; i<10; ++i) fPID[i]=pid[i];
188  }
189  else {delete[] fPID; fPID = 0;}
190  }
191 
192  Bool_t IsOn(ULong64_t mask) const {return (fFlags&mask)>0;}
193  ULong64_t GetStatus() const { return GetFlags(); }
194  ULong64_t GetFlags() const { return fFlags; }
195 
196  Int_t GetID() const { return (Int_t)fID; }
197  Int_t GetLabel() const { return fLabel; }
198  void GetTOFLabel(Int_t *p) const;
199 
200 
201  Char_t GetType() const { return fType;}
202  Bool_t IsPrimaryCandidate() const;
203  Bool_t GetUsedForVtxFit() const { return TestBit(kUsedForVtxFit); }
204  Bool_t GetUsedForPrimVtxFit() const { return TestBit(kUsedForPrimVtxFit); }
205 
206  Bool_t IsHybridGlobalConstrainedGlobal() const { return TestBit(kIsHybridGCG); }
207  Bool_t IsHybridTPCConstrainedGlobal() const { return TestBit(kIsHybridTPCCG); }
208  Bool_t IsTPCOnly() const { return IsTPCConstrained(); } // obsolete bad naming
209  Bool_t IsTPCConstrained() const { return TestBit(kIsTPCConstrained); }
210  Bool_t IsGlobalConstrained() const { return TestBit(kIsGlobalConstrained); }
211  //
212  Int_t GetTOFBunchCrossing(Double_t b=0, Bool_t tpcPIDonly=kFALSE) const;
213  //
214  using AliVTrack::GetP;
215  template <typename T> void GetP(T *p) const {
216  p[0]=fMomentum[0]; p[1]=fMomentum[1]; p[2]=fMomentum[2];}
217 
218 // template <typename T> void GetPxPyPz(T *p) const {
219 // p[0] = Px(); p[1] = Py(); p[2] = Pz();}
220  Bool_t GetPxPyPz(Double_t *p) const;
221 
222  template <typename T> Bool_t GetPosition(T *x) const {
223  x[0]=fPosition[0]; x[1]=fPosition[1]; x[2]=fPosition[2];
224  return TestBit(kIsDCA);}
225 
226  template <typename T> void SetCovMatrix(const T *covMatrix) {
228  fCovMatrix->SetCovMatrix(covMatrix);}
229 
230  template <typename T> Bool_t GetCovMatrix(T *covMatrix) const {
231  if(!fCovMatrix) return kFALSE;
232  fCovMatrix->GetCovMatrix(covMatrix); return kTRUE;}
233 
234  Bool_t GetXYZ(Double_t *p) const {
235  return GetPosition(p); }
236 
237  Bool_t GetXYZAt(Double_t x, Double_t b, Double_t *r) const;
238  Bool_t GetXYZatR(Double_t xr,Double_t bz, Double_t *xyz=0, Double_t* alpSect=0) const;
239 
240  Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const {
241  return GetCovMatrix(cv);}
242 
243  void RemoveCovMatrix() {delete fCovMatrix; fCovMatrix=NULL;}
244 
245  Double_t XAtDCA() const { return fPositionAtDCA[0]; } //makes sense only for constrained tracks, returns dummy values for all other tracks
246  Double_t YAtDCA() const { return fPositionAtDCA[1]; } //makes sense only for constrained tracks, returns dummy values for all other tracks
247  Double_t ZAtDCA() const {
248  if (IsMuonTrack()) return fPosition[2];
249  else if (TestBit(kIsDCA)) return fPosition[1];
250  else return -999.; } //makes sense only for constrained tracks, returns dummy values for all other tracks
251  Bool_t XYZAtDCA(Double_t x[3]) const { x[0] = XAtDCA(); x[1] = YAtDCA(); x[2] = ZAtDCA(); return kTRUE; }
252 
253  Double_t DCA() const {
254  if (IsMuonTrack()) return TMath::Sqrt(XAtDCA()*XAtDCA() + YAtDCA()*YAtDCA());
255  else if (TestBit(kIsDCA)) return fPosition[0];
256  else return -999.; }
257 
258  Double_t PxAtDCA() const { return fMomentumAtDCA[0]; } //makes sense only for constrained tracks, returns dummy values for all other tracks
259  Double_t PyAtDCA() const { return fMomentumAtDCA[1]; } //makes sense only for constrained tracks, returns dummy values for all other tracks
260  Double_t PzAtDCA() const { return fMomentumAtDCA[2]; } //makes sense only for constrained tracks, returns dummy values for all other tracks
261  Double_t PAtDCA() const { return TMath::Sqrt(PxAtDCA()*PxAtDCA() + PyAtDCA()*PyAtDCA() + PzAtDCA()*PzAtDCA()); }
262  Bool_t PxPyPzAtDCA(Double_t p[3]) const { p[0] = PxAtDCA(); p[1] = PyAtDCA(); p[2] = PzAtDCA(); return kTRUE; }
263 
264  virtual void GetImpactParameters(Float_t &xy,Float_t &z) const;
265  void GetImpactParameters(Float_t p[2], Float_t cov[3]) const;
266 
267  Double_t GetRAtAbsorberEnd() const { return fRAtAbsorberEnd; }
268 
269  Double_t GetITSchi2() const {return fITSchi2;}
270  UChar_t GetITSClusterMap() const { return (UChar_t)(fITSMuonClusterMap&0xff); }
271  UChar_t GetITSSharedClusterMap() const { return (UChar_t)((fITSMuonClusterMap&0xff00)>>8); }
272  Int_t GetITSNcls() const;
273  Bool_t HasPointOnITSLayer(Int_t i) const { return TESTBIT(GetITSClusterMap(),i); }
274  Bool_t HasSharedPointOnITSLayer(Int_t i) const { return TESTBIT(GetITSSharedClusterMap(),i); }
275  UInt_t GetMUONClusterMap() const { return (fITSMuonClusterMap&0x3ff0000)>>16; }
276  UInt_t GetITSMUONClusterMap() const { return fITSMuonClusterMap; }
277 
278  Bool_t TestFilterBit(UInt_t filterBit) const {return (Bool_t) ((filterBit & fFilterMap) != 0);}
279  Bool_t TestFilterMask(UInt_t filterMask) const {return (Bool_t) ((filterMask & fFilterMap) == filterMask);}
280  void SetFilterMap(UInt_t i){fFilterMap = i;}
281  UInt_t GetFilterMap() const {return fFilterMap;}
282 
283  const TBits& GetTPCClusterMap() const {return fTPCClusterMap;}
284  const TBits* GetTPCClusterMapPtr() const {return &fTPCClusterMap;}
285  const TBits& GetTPCFitMap() const {return fTPCFitMap;}
286  const TBits* GetTPCFitMapPtr() const {return &fTPCFitMap;}
287  Float_t GetTPCClusterInfo(Int_t nNeighbours=3, Int_t type=0, Int_t row0=0, Int_t row1=159, Int_t /*type*/=0) const;
288 
289  const TBits& GetTPCSharedMap() const {return fTPCSharedMap;}
290  const TBits* GetTPCSharedMapPtr() const {return &fTPCSharedMap;}
291  void SetTPCClusterMap(const TBits amap) {fTPCClusterMap = amap;}
292  void SetTPCSharedMap(const TBits amap) {fTPCSharedMap = amap;}
293  void SetTPCFitMap(const TBits amap) {fTPCFitMap = amap;}
294  void SetTPCPointsF(UShort_t findable){fTPCnclsF = findable;}
295  void SetTPCNCrossedRows(UInt_t n) {fTPCNCrossedRows = n;}
296 
297  virtual const AliExternalTrackParam * GetInnerParam() const { return NULL; }
298  virtual const AliExternalTrackParam * GetOuterParam() const { return NULL; }
299 
300  UShort_t GetTPCNclsF() const { return fTPCnclsF;}
301  UShort_t GetTPCNCrossedRows() const { return fTPCNCrossedRows;}
302  Float_t GetTPCCrossedRows() const {return (Float_t) GetTPCNCrossedRows();}
303  Float_t GetTPCFoundFraction() const { return fTPCNCrossedRows>0 ? float(GetTPCNcls())/fTPCNCrossedRows : 0;}
304 
308 
309  // Calorimeter Cluster
310  Int_t GetEMCALcluster() const {return fCaloIndex;}
311  void SetEMCALcluster(Int_t index) {fCaloIndex=index;}
312  Bool_t IsEMCAL() const {return fFlags&kEMCALmatch;}
313 
314  Double_t GetTrackPhiOnEMCal() const {return fTrackPhiOnEMCal;}
315  Double_t GetTrackEtaOnEMCal() const {return fTrackEtaOnEMCal;}
316  Double_t GetTrackPtOnEMCal() const {return fTrackPtOnEMCal;}
317  Double_t GetTrackPOnEMCal() const {return TMath::Abs(fTrackEtaOnEMCal) < 1 ? fTrackPtOnEMCal*TMath::CosH(fTrackEtaOnEMCal) : -999;}
318  void SetTrackPhiEtaPtOnEMCal(Double_t phi,Double_t eta,Double_t pt) {fTrackPhiOnEMCal=phi;fTrackEtaOnEMCal=eta;fTrackPtOnEMCal=pt;}
319 
320  Int_t GetPHOScluster() const {return fCaloIndex;}
321  void SetPHOScluster(Int_t index) {fCaloIndex=index;}
322  Bool_t IsPHOS() const {return fFlags&kPHOSmatch;}
323 
324  //pid signal interface
325  Double_t GetITSsignal() const { return fDetPid?fDetPid->GetITSsignal():0.; }
326  void GetITSdEdxSamples(Double_t s[4]) const;
327  Double_t GetITSsignalTunedOnData() const {return fITSsignalTuned ;}
328  void SetITSsignalTunedOnData(Double_t signal) {fITSsignalTuned = signal;}
329  Double_t GetTPCsignal() const { return fDetPid?fDetPid->GetTPCsignal():0.; }
330  Double_t GetTPCsignalTunedOnData() const { return fTPCsignalTuned;}
331  void SetTPCsignalTunedOnData(Double_t signal) {fTPCsignalTuned = signal;}
332  UShort_t GetTPCsignalN() const { return fDetPid?fDetPid->GetTPCsignalN():0; }
333  virtual Bool_t GetTPCdEdxInfo( AliTPCdEdxInfo &v) const {return fDetPid?fDetPid->GetTPCdEdxInfo(v):0;}
334  Double_t GetTPCmomentum() const { return fDetPid?fDetPid->GetTPCmomentum() : P(); }
335  Double_t GetTPCTgl() const { return fDetPid?fDetPid->GetTPCTgl() : GetTgl(); }
336  Double_t GetTOFsignal() const { return fDetPid?fDetPid->GetTOFsignal():0.; }
337  Double_t GetIntegratedLength() const { return fTrackLength;}
338  void SetIntegratedLength(Double_t l) {fTrackLength = l;}
339  Double_t GetTOFsignalTunedOnData() const { return fTOFsignalTuned;}
340  void SetTOFsignalTunedOnData(Double_t signal) {fTOFsignalTuned = signal;}
341  Double_t GetHMPIDsignal() const;
342  Double_t GetHMPIDoccupancy() const;
343 
344  Int_t GetHMPIDcluIdx() const;
345 
346  void GetHMPIDtrk(Float_t &x, Float_t &y, Float_t &th, Float_t &ph) const;
347  void GetHMPIDmip(Float_t &x,Float_t &y,Int_t &q,Int_t &nph) const;
348 
349  Bool_t GetOuterHmpPxPyPz(Double_t *p) const;
350 
351  void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIES) const {if (fDetPid) fDetPid->GetIntegratedTimes(times, nspec);}
352  Double_t GetTRDslice(Int_t plane, Int_t slice) const;
353  Double_t GetTRDsignal() const {return fDetPid ? fDetPid->GetTRDsignal() : 0;}
354  Double_t GetTRDmomentum(Int_t plane, Double_t */*sp*/=0x0) const;
355  Double_t GetTRDchi2() const {return fDetPid ? fDetPid->GetTRDChi2() : -1;}
356  UChar_t GetTRDncls(Int_t layer) const;
357  UChar_t GetTRDncls() const {return GetTRDncls(-1);}
358  UChar_t GetTRDntrackletsPID() const;
359  Int_t GetNumberOfTRDslices() const { return fDetPid?fDetPid->GetTRDnSlices():0; }
360  void GetHMPIDpid(Double_t */*p*/) const { return; } // TODO: To be implemented properly with the new HMPID object
361 
362  void SetMFTClusterPattern(ULong_t mftClusterPattern) { fMFTClusterPattern = mftClusterPattern; } // AU
363  ULong_t GetMFTClusterPattern() { return fMFTClusterPattern; } // AU
364 
365  const AliAODEvent* GetAODEvent() const {return fAODEvent;}
366  virtual const AliVEvent* GetEvent() const {return (AliVEvent*)fAODEvent;}
367  void SetAODEvent(const AliAODEvent* ptr){fAODEvent = ptr;}
368  const AliTOFHeader* GetTOFHeader() const;
369 
370  AliAODPid *GetDetPid() const { return fDetPid; }
371  AliAODVertex *GetProdVertex() const { return (AliAODVertex*)fProdVertex.GetObject(); }
372 
373  // print
374  void Print(const Option_t *opt = "") const;
375 
376  // setters
377  void SetFlags(ULong64_t flags) { fFlags = flags; }
378  void SetStatus(ULong64_t flags) { fFlags|=flags; }
379  void ResetStatus(ULong64_t flags) { fFlags&=~flags; }
380 
381  void SetID(Short_t id) { fID = id; }
382  void SetLabel(Int_t label) { fLabel = label; }
383  void SetTOFLabel(const Int_t* p);
384  template <typename T> void SetPosition(const T *x, Bool_t isDCA = kFALSE);
385  template <typename T> void SetP(const T *p, const Bool_t cartesian);
386  void SetDCA(Double_t d, Double_t z);
387  void SetUsedForVtxFit(Bool_t used = kTRUE) { used ? SetBit(kUsedForVtxFit) : ResetBit(kUsedForVtxFit); }
388  void SetUsedForPrimVtxFit(Bool_t used = kTRUE) { used ? SetBit(kUsedForPrimVtxFit) : ResetBit(kUsedForPrimVtxFit); }
389 
390  void SetIsTPCOnly(Bool_t b = kTRUE) { SetIsTPCConstrained(b); }// obsolete bad naming
391 
392  void SetIsTPCConstrained(Bool_t b = kTRUE) { b ? SetBit(kIsTPCConstrained) : ResetBit(kIsTPCConstrained); }
393  void SetIsHybridTPCConstrainedGlobal(Bool_t hybrid = kTRUE) { hybrid ? SetBit(kIsHybridTPCCG) : ResetBit(kIsHybridTPCCG); }
394 
395  void SetIsGlobalConstrained(Bool_t b = kTRUE) { b ? SetBit(kIsGlobalConstrained) : ResetBit(kIsGlobalConstrained); }
396  void SetIsHybridGlobalConstrainedGlobal(Bool_t hybrid = kTRUE) { hybrid ? SetBit(kIsHybridGCG) : ResetBit(kIsHybridGCG); }
397 
398 
399 
400  void SetOneOverPt(Double_t oneOverPt) { fMomentum[0] = 1. / oneOverPt; }
401  void SetPt(Double_t pt) { fMomentum[0] = pt; };
402  void SetPhi(Double_t phi) { fMomentum[1] = phi; }
403  void SetTheta(Double_t theta) { fMomentum[2] = theta; }
404  void SetP() {fMomentum[0]=fMomentum[1]=fMomentum[2]=-999.;}
405 
406  void SetXYAtDCA(Double_t x, Double_t y) {fPositionAtDCA[0] = x; fPositionAtDCA[1] = y;}
407  void SetPxPyPzAtDCA(Double_t pX, Double_t pY, Double_t pZ) {fMomentumAtDCA[0] = pX; fMomentumAtDCA[1] = pY; fMomentumAtDCA[2] = pZ;}
408 
409  void SetRAtAbsorberEnd(Double_t r) { fRAtAbsorberEnd = r; }
410 
411  void SetCharge(Short_t q) { fCharge = q; }
412  void SetChi2perNDF(Double_t chi2perNDF) { fChi2perNDF = chi2perNDF; }
413 
414  void SetITSchi2(Double_t ITSchi2) {fITSchi2 = ITSchi2;}
415  void SetITSClusterMap(UChar_t itsClusMap) { fITSMuonClusterMap = (fITSMuonClusterMap&0xffffff00)|(((UInt_t)itsClusMap)&0xff); }
416  void SetITSSharedMap(UChar_t map) { fITSMuonClusterMap = (fITSMuonClusterMap&0xffff00ff)|((((UInt_t)map)&0xff)<<8); }
417  void SetMuonClusterMap(UInt_t muonClusMap) { fITSMuonClusterMap = (fITSMuonClusterMap&0xfc00ffff)|((muonClusMap&0x3ff)<<16); }
418  void SetITSMuonClusterMap(UInt_t itsMuonClusMap) { fITSMuonClusterMap = itsMuonClusMap; }
419  void SetMUONtrigHitsMapTrg(UInt_t muonTrigHitsMap) { fMUONtrigHitsMapTrg = muonTrigHitsMap; }
420  UInt_t GetMUONTrigHitsMapTrg() const { return fMUONtrigHitsMapTrg; }
421  void SetMUONtrigHitsMapTrk(UInt_t muonTrigHitsMap) { fMUONtrigHitsMapTrk = muonTrigHitsMap; }
422  UInt_t GetMUONTrigHitsMapTrk() const { return fMUONtrigHitsMapTrk; }
423  Int_t GetMuonTrigDevSign() const;
424 
425  Int_t GetMatchTrigger() const {return fITSMuonClusterMap>>30;}
426  // 0 Muon track does not match trigger
427  // 1 Muon track match but does not pass pt cut
428  // 2 Muon track match Low pt cut
429  // 3 Muon track match High pt cut
430  void SetMatchTrigger(Int_t MatchTrigger);
431  Bool_t MatchTrigger() const { return (GetMatchTrigger()>0); } // Muon track matches trigger track
432  Bool_t MatchTriggerLowPt() const { return (GetMatchTrigger()>1); } // Muon track matches trigger track and passes Low pt cut
433  Bool_t MatchTriggerHighPt() const { return (GetMatchTrigger()>2); } // Muon track matches trigger track and passes High pt cut
434  Bool_t MatchTriggerDigits() const; // Muon track matches trigger digits
435  Double_t GetChi2MatchTrigger() const { return fChi2MatchTrigger;}
436  void SetChi2MatchTrigger(Double_t Chi2MatchTrigger) {fChi2MatchTrigger = Chi2MatchTrigger; }
437  Bool_t HitsMuonChamber(Int_t MuonChamber, Int_t cathode = -1) const; // Check if track hits Muon chambers
438  Bool_t IsMuonTrack() const { return ( (GetMUONClusterMap()>0) && !fIsMuonGlobalTrack ) ? kTRUE : kFALSE; }
439 
440  Bool_t IsMuonGlobalTrack() const { return fIsMuonGlobalTrack; } // AU
441  void SetIsMuonGlobalTrack(Bool_t isMuonGlobalTrack) { fIsMuonGlobalTrack = isMuonGlobalTrack; } // AU
442 
443  void Connected(Bool_t flag) {flag ? SETBIT(fITSMuonClusterMap,26) : CLRBIT(fITSMuonClusterMap,26);}
444  Bool_t IsConnected() const {return TESTBIT(fITSMuonClusterMap,26);}
445 
446  void SetProdVertex(TObject *vertex) { fProdVertex = vertex; }
447  void SetType(AODTrk_t ttype) { fType=ttype; }
448 
449  // Trasient PID object, is owned by the track
450  virtual void SetDetectorPID(const AliDetectorPID *pid);
451  virtual const AliDetectorPID* GetDetectorPID() const { return fDetectorPID; }
452 
453  // Dummy
454  Int_t PdgCode() const {return 0;}
455 
456  private :
457 
458  // Silence -Woverloaded-virtual while disallowing use of AliVTrack::GetTPCdEdxInfo in derived classes
460 
461  // Momentum & position
462  Double32_t fMomentum[3];
463  Double32_t fPosition[3];
464 
465  Double32_t fMomentumAtDCA[3];
466  Double32_t fPositionAtDCA[2];
467 
468  Double32_t fRAtAbsorberEnd;
469 
470  Double32_t fChi2perNDF;
471  Double32_t fChi2MatchTrigger;
472  Double32_t* fPID;
474 
476  Double32_t fITSchi2;
477 
478  ULong64_t fFlags;
479  Int_t fLabel;
480  Int_t fTOFLabel[3];
481  Double32_t fTrackLength;
483 
487  UInt_t fFilterMap;
488 
489  TBits fTPCFitMap;
492 
493  UShort_t fTPCnclsF;
494  UShort_t fTPCNCrossedRows;
495 
496  Short_t fID;
497 
498  Char_t fCharge;
499  Char_t fType;
500 
502 
503  Int_t fCaloIndex;
504 
505 
508  mutable const AliDetectorPID* fDetectorPID;
509  TRef fProdVertex;
510 
511  Double32_t fTrackPhiOnEMCal;
512  Double32_t fTrackEtaOnEMCal;
513  Double32_t fTrackPtOnEMCal;
514 
516 
517  Double32_t fITSsignalTuned;
518  Double32_t fTPCsignalTuned;
519  Double32_t fTOFsignalTuned;
520 
522 
524 
525  //---------------------------------------------------------------------------
526  //--the calibration interface--
527  //--to be used in online calibration/QA
528  //--should also be implemented in ESD so it works offline as well
529  //-----------
530  virtual Int_t GetTrackParam ( AliExternalTrackParam &p ) const;
531  virtual Int_t GetTrackParamRefitted ( AliExternalTrackParam &p ) const;
532  virtual Int_t GetTrackParamIp ( AliExternalTrackParam &p ) const;
533  virtual Int_t GetTrackParamTPCInner ( AliExternalTrackParam &p ) const;
534  virtual Int_t GetTrackParamOp ( AliExternalTrackParam &p ) const;
535  virtual Int_t GetTrackParamCp ( AliExternalTrackParam &p ) const;
536  virtual Int_t GetTrackParamITSOut ( AliExternalTrackParam &p ) const;
537  Int_t GetNumberOfITSClusters() const { return GetITSNcls();}
538  Int_t GetNumberOfTPCClusters() const { return GetTPCncls();}
539  Int_t GetNumberOfTRDClusters() const { return GetTRDncls();}
540 
541  ClassDef(AliAODTrack, 27);
542 };
543 
544 inline Bool_t AliAODTrack::IsPrimaryCandidate() const
545 {
547 
548  if (fFilterMap) {
549  return kTRUE;
550  } else {
551  return kFALSE;
552  }
553 }
554 
555 inline Int_t AliAODTrack::GetITSNcls() const
556 {
558 
559  Int_t n=0;
560  for(Int_t i=0;i<6;i++) if(HasPointOnITSLayer(i)) n++;
561  return n;
562 }
563 
564 //______________________________________________________________________________
565 template <typename T>
566 void AliAODTrack::SetPosition(const T *x, const Bool_t dca)
567 {
568  // set the position
569 
570  if (x) {
571  if (!dca) {
572  ResetBit(kIsDCA);
573 
574  fPosition[0] = x[0];
575  fPosition[1] = x[1];
576  fPosition[2] = x[2];
577  } else {
578  SetBit(kIsDCA);
579  // don't know any better yet
580  fPosition[0] = -999.;
581  fPosition[1] = -999.;
582  fPosition[2] = -999.;
583  }
584  } else {
585  ResetBit(kIsDCA);
586 
587  fPosition[0] = -999.;
588  fPosition[1] = -999.;
589  fPosition[2] = -999.;
590  }
591 }
592 
593 
594 //______________________________________________________________________________
595 template <typename T> void AliAODTrack::SetP(const T *p, const Bool_t cartesian)
596 {
597  // Set the momentum
598 
599  if (p) {
600  if (cartesian) {
601  Double_t pt2 = p[0]*p[0] + p[1]*p[1];
602  Double_t pp = TMath::Sqrt(pt2 + p[2]*p[2]);
603 
604  fMomentum[0] = TMath::Sqrt(pt2); // pt
605  fMomentum[1] = (pt2 != 0.) ? TMath::Pi()+TMath::ATan2(-p[1], -p[0]) : -999; // phi
606  fMomentum[2] = (pp != 0.) ? TMath::ACos(p[2] / pp) : -999.; // theta
607  } else {
608  fMomentum[0] = p[0]; // pt
609  fMomentum[1] = p[1]; // phi
610  fMomentum[2] = p[2]; // theta
611  }
612  } else {
613  fMomentum[0] = -999.;
614  fMomentum[1] = -999.;
615  fMomentum[2] = -999.;
616  }
617 }
618 
619 
620 //template<> void AliAODTrack::SetPosition(const double *, Bool_t);
621 
622 #endif
Double32_t fChi2perNDF
chi2/NDF of momentum fit
Definition: AliAODTrack.h:470
TBrowser b
Definition: RunAnaESD.C:12
Bool_t HasPointOnITSLayer(Int_t i) const
Definition: AliAODTrack.h:273
void SetID(Short_t id)
Definition: AliAODTrack.h:381
Double_t GetTrackPOnEMCal() const
Definition: AliAODTrack.h:317
UInt_t fITSMuonClusterMap
map of ITS and muon clusters, one bit per layer
Definition: AliAODTrack.h:482
Bool_t IsMuonTrack() const
Definition: AliAODTrack.h:438
AliTPCcalibPID * pid
Definition: CalibPID.C:69
void SetIsMuonGlobalTrack(Bool_t isMuonGlobalTrack)
Definition: AliAODTrack.h:441
Double_t GetHMPIDsignal() const
Bool_t PxPyPzAtDCA(Double_t p[3]) const
Definition: AliAODTrack.h:262
Bool_t GetCovMatrix(T *covMatrix) const
Definition: AliAODTrack.h:230
Float_t GetTPCCrossedRows() const
Definition: AliAODTrack.h:302
void SetType(AODTrk_t ttype)
Definition: AliAODTrack.h:447
virtual Double_t Pz() const
Definition: AliAODTrack.h:123
virtual Double_t M() const
Definition: AliAODTrack.h:155
virtual Double_t P() const
Definition: AliAODTrack.h:125
Bool_t GetXYZAt(Double_t x, Double_t b, Double_t *r) const
Bool_t fIsMuonGlobalTrack
True if the track is built from the combination of MUON and MFT clusters // AU.
Definition: AliAODTrack.h:515
virtual Double_t Py() const
Definition: AliAODTrack.h:122
UShort_t GetTPCsignalN() const
Definition: AliAODPid.h:52
void SetPosition(const T *x, Bool_t isDCA=kFALSE)
Definition: AliAODTrack.h:566
const TBits * GetTPCFitMapPtr() const
Definition: AliAODTrack.h:286
Double_t PxAtDCA() const
Definition: AliAODTrack.h:258
Double_t E(Double_t m) const
Definition: AliAODTrack.h:159
AliAODRedCov< 6 > * fCovMatrix
covariance matrix (x, y, z, px, py, pz)
Definition: AliAODTrack.h:506
Char_t fCharge
particle charge
Definition: AliAODTrack.h:498
Bool_t IsTPCConstrained() const
Definition: AliAODTrack.h:209
Double_t GetHMPIDoccupancy() const
Double_t PzAtDCA() const
Definition: AliAODTrack.h:260
Double_t Chi2perNDF() const
Definition: AliAODTrack.h:133
virtual Double_t Px() const
Definition: AliAODTrack.h:121
void SetMuonClusterMap(UInt_t muonClusMap)
Definition: AliAODTrack.h:417
const TBits * GetTPCClusterMapPtr() const
Definition: AliAODTrack.h:284
Bool_t GetTPCdEdxInfo(AliTPCdEdxInfo &v) const
Definition: AliAODPid.h:53
virtual Bool_t PxPyPz(Double_t p[3]) const
Definition: AliAODTrack.h:126
UShort_t GetTPCncls(Int_t i0=0, Int_t i1=159) const
Definition: AliAODTrack.h:140
Bool_t IsTPCOnly() const
Definition: AliAODTrack.h:208
virtual Double_t Xv() const
Definition: AliAODTrack.h:128
Bool_t GetXYZatR(Double_t xr, Double_t bz, Double_t *xyz=0, Double_t *alpSect=0) const
UShort_t fTPCnclsF
findable clusters
Definition: AliAODTrack.h:493
virtual const Double_t * PID() const
Definition: AliAODTrack.h:172
const AliTOFHeader * GetTOFHeader() const
virtual Double_t Y() const
Definition: AliAODTrack.h:160
void SetIsTPCConstrained(Bool_t b=kTRUE)
Definition: AliAODTrack.h:392
ULong64_t fFlags
reconstruction status flags
Definition: AliAODTrack.h:478
Double_t GetZ() const
Definition: AliAODVertex.h:72
Bool_t IsGlobalConstrained() const
Definition: AliAODTrack.h:210
Double32_t fTrackEtaOnEMCal
eta of track after being propagated to the EMCal surface (default r = 440 cm)
Definition: AliAODTrack.h:512
Char_t fType
Track Type, explanation close to the enum AODTrk_t.
Definition: AliAODTrack.h:499
virtual Double_t GetTgl() const
Definition: AliVTrack.h:172
Double_t GetITSsignalTunedOnData() const
Definition: AliAODTrack.h:327
Double_t GetTrackEtaOnEMCal() const
Definition: AliAODTrack.h:315
Double_t GetITSchi2() const
Definition: AliAODTrack.h:269
Bool_t IsHybridTPCConstrainedGlobal() const
Definition: AliAODTrack.h:207
Double32_t fChi2TPCConstrainedVsGlobal
chi2 of constrained TPC vs global track (Golden chi2)
Definition: AliAODTrack.h:475
virtual const AliDetectorPID * GetDetectorPID() const
Definition: AliAODTrack.h:451
virtual Double_t Zv() const
Definition: AliAODTrack.h:130
Float_t p[]
Definition: kNNTest.C:133
void SetCharge(Short_t q)
Definition: AliAODTrack.h:411
Bool_t HitsMuonChamber(Int_t MuonChamber, Int_t cathode=-1) const
void SetChi2perNDF(Double_t chi2perNDF)
Definition: AliAODTrack.h:412
Bool_t GetXYZ(Double_t *p) const
Definition: AliAODTrack.h:234
Double_t GetMassForTracking() const
void SetMUONtrigHitsMapTrk(UInt_t muonTrigHitsMap)
Definition: AliAODTrack.h:421
void GetHMPIDtrk(Float_t &x, Float_t &y, Float_t &th, Float_t &ph) const
Double_t GetTPCTgl() const
Definition: AliAODPid.h:59
Double_t ZAtDCA() const
Definition: AliAODTrack.h:247
UShort_t GetTPCNCrossedRows() const
Definition: AliAODTrack.h:301
const AliDetectorPID * fDetectorPID
! transient object to cache calibrated PID information
Definition: AliAODTrack.h:508
void Connected(Bool_t flag)
Definition: AliAODTrack.h:443
UShort_t GetTPCNcls() const
Definition: AliAODTrack.h:146
Double_t GetITSsignal() const
Definition: AliAODPid.h:45
Char_t fPIDForTracking
pid using for tracking of ESD track
Definition: AliAODTrack.h:501
AliAODTrack & operator=(const AliAODTrack &trk)
TBits fTPCClusterMap
Map of clusters, one bit per padrow; 1 if has a cluster on given padrow.
Definition: AliAODTrack.h:490
Double_t DCA() const
Definition: AliAODTrack.h:253
virtual Double_t OneOverPt() const
Definition: AliAODTrack.h:117
UInt_t GetMUONTrigHitsMapTrk() const
Definition: AliAODTrack.h:422
void Print(const Option_t *opt="") const
Bool_t IsPHOS() const
Definition: AliAODTrack.h:322
void SetTPCClusterMap(const TBits amap)
Definition: AliAODTrack.h:291
Bool_t HasSharedPointOnITSLayer(Int_t i) const
Definition: AliAODTrack.h:274
void SetDCA(Double_t d, Double_t z)
Double_t GetTOFsignal() const
Definition: AliAODPid.h:68
ULong_t fMFTClusterPattern
Tells us which MFT clusters are contained in the track, and which one is a good one (if MC) // AU...
Definition: AliAODTrack.h:521
Int_t GetTOFBunchCrossing(Double_t b=0, Bool_t tpcPIDonly=kFALSE) const
Double_t GetRAtAbsorberEnd() const
Definition: AliAODTrack.h:267
Double_t GetTRDslice(Int_t plane, Int_t slice) const
void SetTPCFitMap(const TBits amap)
Definition: AliAODTrack.h:293
Double_t GetTRDChi2() const
Definition: AliAODPid.h:63
Double_t YAtDCA() const
Definition: AliAODTrack.h:246
void SetTOFsignalTunedOnData(Double_t signal)
Definition: AliAODTrack.h:340
Double_t GetTrackPhiOnEMCal() const
Definition: AliAODTrack.h:314
virtual void GetImpactParameters(Float_t &xy, Float_t &z) const
void SetP()
Definition: AliAODTrack.h:404
AODTrkPID_t GetMostProbablePID() const
Double_t GetTOFsignalTunedOnData() const
Definition: AliAODTrack.h:339
const TBits & GetTPCFitMap() const
Definition: AliAODTrack.h:285
Double32_t fMomentumAtDCA[3]
momentum (px,py,pz) at DCA
Definition: AliAODTrack.h:465
void GetP(T *p) const
Definition: AliAODTrack.h:215
UInt_t fFilterMap
filter information, one bit per set of cuts
Definition: AliAODTrack.h:487
virtual Double_t Phi() const
Definition: AliAODTrack.h:118
Int_t fCaloIndex
index of associated EMCAL/PHOS cluster (AliAODCaloCluster)
Definition: AliAODTrack.h:503
void SetTPCNCrossedRows(UInt_t n)
Definition: AliAODTrack.h:295
Bool_t IsConnected() const
Definition: AliAODTrack.h:444
Bool_t IsMuonGlobalTrack() const
Definition: AliAODTrack.h:440
const TBits * GetTPCSharedMapPtr() const
Definition: AliAODTrack.h:290
Double32_t fTrackPhiOnEMCal
phi of track after being propagated to the EMCal surface (default r = 440 cm)
Definition: AliAODTrack.h:511
Int_t GetLabel() const
Definition: AliAODTrack.h:197
void SetIsHybridGlobalConstrainedGlobal(Bool_t hybrid=kTRUE)
Definition: AliAODTrack.h:396
virtual Double_t E() const
Definition: AliAODTrack.h:157
void SetTPCsignalTunedOnData(Double_t signal)
Definition: AliAODTrack.h:331
void SetFlags(ULong64_t flags)
Definition: AliAODTrack.h:377
UInt_t fMUONtrigHitsMapTrg
(ITS: bit 1-8, muon trigger or ITS shared: bit 9-16, muon tracker: bit 17-26, muon match trigger: bit...
Definition: AliAODTrack.h:485
AOD Pid object for additional pid information.
Definition: AliAODPid.h:17
Bool_t XYZAtDCA(Double_t x[3]) const
Definition: AliAODTrack.h:251
void SetIsTPCOnly(Bool_t b=kTRUE)
Definition: AliAODTrack.h:390
void ConvertAliPIDtoAODPID()
Int_t GetITSNcls() const
Definition: AliAODTrack.h:555
UShort_t GetTPCnclsS(Int_t i0=0, Int_t i1=159) const
Definition: AliAODTrack.h:135
const TBits & GetTPCSharedMap() const
Definition: AliAODTrack.h:289
void SetStatus(ULong64_t flags)
Definition: AliAODTrack.h:378
virtual Double_t Eta() const
Definition: AliAODTrack.h:164
virtual Int_t GetTrackParamTPCInner(AliExternalTrackParam &p) const
void SetProdVertex(TObject *vertex)
Definition: AliAODTrack.h:446
UInt_t GetMUONClusterMap() const
Definition: AliAODTrack.h:275
Double_t GetY() const
Definition: AliAODVertex.h:71
Double32_t fRAtAbsorberEnd
transverse position r at the end of the muon absorber
Definition: AliAODTrack.h:468
Bool_t IsHybridGlobalConstrainedGlobal() const
Definition: AliAODTrack.h:206
Double32_t * fPID
pointer to PID object
Definition: AliAODTrack.h:473
Int_t fTOFLabel[3]
TOF label.
Definition: AliAODTrack.h:480
Double_t chi2
Definition: AnalyzeLaser.C:7
Bool_t MatchTriggerHighPt() const
Definition: AliAODTrack.h:433
Bool_t GetPosition(T *x) const
Definition: AliAODTrack.h:222
void SetCovMatrix(T *cmat)
Definition: AliAODRedCov.h:87
void SetFilterMap(UInt_t i)
Definition: AliAODTrack.h:280
void SetTOFLabel(const Int_t *p)
TBits fTPCFitMap
Map of clusters, one bit per padrow; if has a cluster on given padrow which is used in the fit...
Definition: AliAODTrack.h:489
Double32_t fTOFsignalTuned
! TOF signal tuned on data when using MC
Definition: AliAODTrack.h:519
Double_t GetITSsignal() const
Definition: AliAODTrack.h:325
void SetTrackPhiEtaPtOnEMCal(Double_t phi, Double_t eta, Double_t pt)
Definition: AliAODTrack.h:318
void GetITSdEdxSamples(Double_t s[4]) const
Int_t GetPHOScluster() const
Definition: AliAODTrack.h:320
Bool_t IsEMCAL() const
Definition: AliAODTrack.h:312
UShort_t fTPCNCrossedRows
n crossed rows
Definition: AliAODTrack.h:494
void SetEMCALcluster(Int_t index)
Definition: AliAODTrack.h:311
virtual Bool_t PropagateToDCA(const AliVVertex *vtx, Double_t b, Double_t maxd, Double_t dz[2], Double_t covar[3])
virtual Int_t GetTrackParamIp(AliExternalTrackParam &p) const
void SetPt(Double_t pt)
Definition: AliAODTrack.h:401
Double_t GetTPCmomentum() const
Definition: AliAODTrack.h:334
void SetPID(const T *pid)
Definition: AliAODTrack.h:184
Float_t GetTPCClusterInfo(Int_t nNeighbours=3, Int_t type=0, Int_t row0=0, Int_t row1=159, Int_t=0) const
Double32_t fITSsignalTuned
! ITS signal tuned on data when using MC
Definition: AliAODTrack.h:517
void SetLabel(Int_t label)
Definition: AliAODTrack.h:382
UInt_t fMUONtrigHitsMapTrk
Muon trigger hits map from tracker track extrapolation.
Definition: AliAODTrack.h:486
void GetHMPIDmip(Float_t &x, Float_t &y, Int_t &q, Int_t &nph) const
void SetPxPyPzAtDCA(Double_t pX, Double_t pY, Double_t pZ)
Definition: AliAODTrack.h:407
Double_t GetTRDsignal() const
Definition: AliAODTrack.h:353
Double_t PAtDCA() const
Definition: AliAODTrack.h:261
Float_t GetTPCFoundFraction() const
Definition: AliAODTrack.h:303
Double_t GetTPCTgl() const
Definition: AliAODTrack.h:335
Int_t GetPIDForTracking() const
Definition: AliAODTrack.h:178
virtual void SetDetectorPID(const AliDetectorPID *pid)
void SetCovMatrix(const T *covMatrix)
Definition: AliAODTrack.h:226
AliAODPid * fDetPid
more detailed or detector specific raw pid information
Definition: AliAODTrack.h:507
void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIES) const
Definition: AliAODTrack.h:351
void SetDetPID(AliAODPid *aodpid)
Definition: AliAODTrack.h:175
TRef fProdVertex
vertex of origin
Definition: AliAODTrack.h:509
Double_t GetX() const
Definition: AliAODVertex.h:70
Double_t GetTOFsignal() const
Definition: AliAODTrack.h:336
virtual Int_t GetTrackParamITSOut(AliExternalTrackParam &p) const
void ResetStatus(ULong64_t flags)
Definition: AliAODTrack.h:379
Bool_t GetOuterHmpPxPyPz(Double_t *p) const
virtual Double_t Yv() const
Definition: AliAODTrack.h:129
Double_t GetTrackPtOnEMCal() const
Definition: AliAODTrack.h:316
void GetCovMatrix(T *cmat) const
Definition: AliAODRedCov.h:60
Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const
Definition: AliAODTrack.h:240
virtual Double_t Pt() const
Definition: AliAODTrack.h:124
void RemoveCovMatrix()
Definition: AliAODTrack.h:243
Double_t PyAtDCA() const
Definition: AliAODTrack.h:259
Int_t GetTRDnSlices() const
Definition: AliAODPid.h:60
Double_t XAtDCA() const
Definition: AliAODTrack.h:245
Double32_t fMomentum[3]
momemtum stored in pt, phi, theta
Definition: AliAODTrack.h:462
void SetIsGlobalConstrained(Bool_t b=kTRUE)
Definition: AliAODTrack.h:395
Bool_t MatchTriggerLowPt() const
Definition: AliAODTrack.h:432
Int_t GetNumberOfTPCClusters() const
Definition: AliAODTrack.h:538
Int_t GetNcls(Int_t idet) const
void SetIntegratedLength(Double_t l)
Definition: AliAODTrack.h:338
Double32_t fITSchi2
ITS chi2.
Definition: AliAODTrack.h:476
void SetChi2MatchTrigger(Double_t Chi2MatchTrigger)
Definition: AliAODTrack.h:436
virtual Bool_t XvYvZv(Double_t x[3]) const
Definition: AliAODTrack.h:131
UChar_t GetTRDncls() const
Definition: AliAODTrack.h:357
virtual Bool_t GetTPCdEdxInfo(AliTPCdEdxInfo &) const
Definition: AliVTrack.h:95
void SetITSClusterMap(UChar_t itsClusMap)
Definition: AliAODTrack.h:415
UChar_t GetITSClusterMap() const
Definition: AliAODTrack.h:270
Int_t GetID() const
Definition: AliAODTrack.h:196
void SetUsedForPrimVtxFit(Bool_t used=kTRUE)
Definition: AliAODTrack.h:388
const TBits & GetTPCClusterMap() const
Definition: AliAODTrack.h:283
Int_t PdgCode() const
Definition: AliAODTrack.h:454
AOD base class.
Definition: AliAODEvent.h:48
void GetTOFLabel(Int_t *p) const
void GetPID(T *pid) const
Definition: AliAODTrack.h:181
virtual Int_t GetTrackParamRefitted(AliExternalTrackParam &p) const
void SetITSSharedMap(UChar_t map)
Definition: AliAODTrack.h:416
Int_t GetNumberOfTRDslices() const
Definition: AliAODTrack.h:359
Double32_t fPosition[3]
position of first point on track or dca
Definition: AliAODTrack.h:463
UShort_t GetTPCNclsF() const
Definition: AliAODTrack.h:300
Double_t GetChi2TPCConstrainedVsGlobal() const
Golden chi2.
Definition: AliAODTrack.h:306
const AliAODEvent * GetAODEvent() const
Definition: AliAODTrack.h:365
void SetTPCPointsF(UShort_t findable)
Definition: AliAODTrack.h:294
void SetITSsignalTunedOnData(Double_t signal)
Definition: AliAODTrack.h:328
Double32_t fPositionAtDCA[2]
trasverse position (x,y) at DCA
Definition: AliAODTrack.h:466
ULong64_t GetStatus() const
Definition: AliAODTrack.h:193
Double_t GetTRDchi2() const
Definition: AliAODTrack.h:355
ULong_t GetMFTClusterPattern()
Definition: AliAODTrack.h:363
Double32_t fTrackLength
Track length.
Definition: AliAODTrack.h:481
virtual Short_t Charge() const
Definition: AliAODTrack.h:166
void SetMatchTrigger(Int_t MatchTrigger)
UInt_t GetITSMUONClusterMap() const
Definition: AliAODTrack.h:276
void GetHMPIDpid(Double_t *) const
Definition: AliAODTrack.h:360
AliAODPid * GetDetPid() const
Definition: AliAODTrack.h:370
Int_t GetHMPIDcluIdx() const
void SetTPCSharedMap(const TBits amap)
Definition: AliAODTrack.h:292
void SetXYAtDCA(Double_t x, Double_t y)
Definition: AliAODTrack.h:406
AliAODVertex * GetProdVertex() const
Definition: AliAODTrack.h:371
Double_t GetTPCsignal() const
Definition: AliAODPid.h:51
Double32_t fTrackPtOnEMCal
pt of track after being propagated to the EMCal surface (default r = 440 cm)
Definition: AliAODTrack.h:513
Short_t fID
unique track ID, points back to the ESD track
Definition: AliAODTrack.h:496
void SetAODEvent(const AliAODEvent *ptr)
Definition: AliAODTrack.h:367
UChar_t GetTRDntrackletsPID() const
void SetTheta(Double_t theta)
Definition: AliAODTrack.h:403
Bool_t IsOn(ULong64_t mask) const
Definition: AliAODTrack.h:192
void SetRAtAbsorberEnd(Double_t r)
Definition: AliAODTrack.h:409
Double_t GetTPCsignal() const
Definition: AliAODTrack.h:329
void SetUsedForVtxFit(Bool_t used=kTRUE)
Definition: AliAODTrack.h:387
virtual Double_t Theta() const
Definition: AliAODTrack.h:119
Int_t GetMuonTrigDevSign() const
void SetMFTClusterPattern(ULong_t mftClusterPattern)
Definition: AliAODTrack.h:362
Int_t GetNumberOfITSClusters() const
Definition: AliAODTrack.h:537
Bool_t IsPrimaryCandidate() const
Definition: AliAODTrack.h:544
ULong64_t GetFlags() const
Definition: AliAODTrack.h:194
Int_t GetEMCALcluster() const
Definition: AliAODTrack.h:310
Double32_t fChi2MatchTrigger
Definition: AliAODTrack.h:471
TBits fTPCSharedMap
Map of clusters, one bit per padrow; 1 if has a shared cluster on given padrow.
Definition: AliAODTrack.h:491
virtual Int_t GetTrackParamCp(AliExternalTrackParam &p) const
void SetChi2TPCConstrainedVsGlobal(Double_t chi2)
Definition: AliAODTrack.h:307
void SetOneOverPt(Double_t oneOverPt)
Definition: AliAODTrack.h:400
UShort_t GetTPCsignalN() const
Definition: AliAODTrack.h:332
virtual Int_t GetTrackParamOp(AliExternalTrackParam &p) const
Bool_t GetUsedForVtxFit() const
Definition: AliAODTrack.h:203
virtual ~AliAODTrack()
virtual const AliVEvent * GetEvent() const
Definition: AliAODTrack.h:366
void SetITSMuonClusterMap(UInt_t itsMuonClusMap)
Definition: AliAODTrack.h:418
Double_t GetTPCchi2() const
Definition: AliAODTrack.h:147
void SetPIDForTracking(Int_t pid)
Definition: AliAODTrack.h:177
AOD vertex base class.
Definition: AliAODVertex.h:23
Double_t GetIntegratedLength() const
Definition: AliAODTrack.h:337
Double_t GetTRDmomentum(Int_t plane, Double_t *=0x0) const
virtual Int_t GetTrackParam(AliExternalTrackParam &p) const
virtual Bool_t GetTPCdEdxInfo(AliTPCdEdxInfo &v) const
Definition: AliAODTrack.h:333
void SetMUONtrigHitsMapTrg(UInt_t muonTrigHitsMap)
Definition: AliAODTrack.h:419
Int_t GetNumberOfTRDClusters() const
Definition: AliAODTrack.h:539
virtual const AliExternalTrackParam * GetOuterParam() const
Definition: AliAODTrack.h:298
AOD track implementation of AliVTrack.
Definition: AliAODTrack.h:29
Double_t GetChi2MatchTrigger() const
Definition: AliAODTrack.h:435
const AliAODEvent * fAODEvent
! pointer back to the event the track belongs to
Definition: AliAODTrack.h:523
Char_t GetType() const
Definition: AliAODTrack.h:201
virtual Double_t GetP() const
Definition: AliVTrack.h:247
Bool_t GetUsedForPrimVtxFit() const
Definition: AliAODTrack.h:204
UChar_t GetITSSharedClusterMap() const
Definition: AliAODTrack.h:271
void SetPhi(Double_t phi)
Definition: AliAODTrack.h:402
Int_t GetMatchTrigger() const
Definition: AliAODTrack.h:425
void SetIsHybridTPCConstrainedGlobal(Bool_t hybrid=kTRUE)
Definition: AliAODTrack.h:393
void SetPHOScluster(Int_t index)
Definition: AliAODTrack.h:321
Int_t fLabel
track label, points back to MC track
Definition: AliAODTrack.h:479
UInt_t GetFilterMap() const
Definition: AliAODTrack.h:281
UInt_t GetMUONTrigHitsMapTrg() const
Definition: AliAODTrack.h:420
Bool_t TestFilterMask(UInt_t filterMask) const
Definition: AliAODTrack.h:279
Bool_t TestFilterBit(UInt_t filterBit) const
Definition: AliAODTrack.h:278
void GetIntegratedTimes(Double_t *timeint, Int_t nspec=AliPID::kSPECIES) const
Definition: AliAODPid.cxx:140
virtual const AliExternalTrackParam * GetInnerParam() const
Definition: AliAODTrack.h:297
Double_t GetTPCmomentum() const
Definition: AliAODPid.h:58
Double_t GetTPCsignalTunedOnData() const
Definition: AliAODTrack.h:330
void SetITSchi2(Double_t ITSchi2)
Definition: AliAODTrack.h:414
Bool_t MatchTriggerDigits() const
Double_t GetTRDsignal() const
Definition: AliAODPid.h:61
Double32_t fTPCsignalTuned
! TPC signal tuned on data when using MC
Definition: AliAODTrack.h:518
Bool_t MatchTrigger() const
Definition: AliAODTrack.h:431
Bool_t GetPxPyPz(Double_t *p) const