3 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 //-------------------------------------------------------------------------
8 // base class for ESD and AOD tracks
10 //-------------------------------------------------------------------------
14 #include "AliVParticle.h"
20 class AliExternalTrackParam;
26 class AliVTrack: public AliVParticle {
48 ,kEMCALmatch = 0x40000
50 ,kTOFmismatch = 0x100000
51 ,kPHOSmatch = 0x200000
52 ,kITSupg = 0x400000 // flag that in the ITSupgrade reco
54 ,kGlobalMerge = 0x1000000
55 ,kMultInV0 = 0x2000000 //BIT(25): assumed to be belong to V0 in multiplicity estimates
56 ,kMultSec = 0x4000000 //BIT(26): assumed to be secondary (due to the DCA) in multiplicity estimates
57 ,kEmbedded = 0x8000000 // BIT(27), 1<<27: Is a track that has been embedded into the event
59 ,kITSpureSA = 0x10000000
60 ,kTRDStop = 0x20000000
66 kEMCALNoMatch = -4096,
71 virtual ~AliVTrack() { }
72 AliVTrack(const AliVTrack& vTrack);
73 AliVTrack& operator=(const AliVTrack& vTrack);
74 // constructor for reinitialisation of vtable
75 AliVTrack( AliVConstructorReinitialisationFlag f) :AliVParticle(f){}
77 virtual const AliVEvent* GetEvent() const {return 0;}
78 virtual Int_t GetID() const = 0;
79 virtual UChar_t GetITSClusterMap() const = 0;
80 virtual void GetITSdEdxSamples(Double_t s[4]) const {for (int i=4;i--;) s[i]=0;};
81 virtual const TBits* GetTPCClusterMapPtr() const {return NULL;}
82 virtual const TBits* GetTPCFitMapPtr() const {return NULL;}
83 virtual const TBits* GetTPCSharedMapPtr() const {return NULL;}
84 virtual Float_t GetTPCClusterInfo(Int_t /*nNeighbours*/, Int_t /*type*/, Int_t /*row0*/=0, Int_t /*row1*/=159, Int_t /*type*/= 0) const {return 0.;}
85 virtual AliTPCdEdxInfo * GetTPCdEdxInfo() const {return 0x0;}
86 virtual UShort_t GetTPCNcls() const { return 0;}
87 virtual UShort_t GetTPCNclsF() const { return 0;}
88 virtual Double_t GetTRDslice(Int_t /*plane*/, Int_t /*slice*/) const { return -1.; }
89 virtual Int_t GetNumberOfTRDslices() const { return 0; }
90 virtual UChar_t GetTRDncls() const {return 0;}
91 virtual UChar_t GetTRDntrackletsPID() const { return 0;}
92 virtual void SetDetectorPID(const AliDetectorPID */*pid*/) {;}
93 virtual const AliDetectorPID* GetDetectorPID() const { return 0x0; }
94 virtual Double_t GetTRDchi2() const { return -1;}
95 virtual Int_t GetNumberOfClusters() const {return 0;}
97 virtual Int_t GetEMCALcluster() const {return kEMCALNoMatch;}
98 virtual void SetEMCALcluster(Int_t) {;}
99 virtual Bool_t IsEMCAL() const {return kFALSE;}
101 virtual Double_t GetTrackPhiOnEMCal() const {return -999;}
102 virtual Double_t GetTrackEtaOnEMCal() const {return -999;}
103 virtual Double_t GetTrackPtOnEMCal() const {return -999;}
104 virtual Double_t GetTrackPOnEMCal() const {return -999;}
105 virtual Bool_t IsExtrapolatedToEMCAL() const {return GetTrackPtOnEMCal()!=-999;}
106 virtual void SetTrackPhiEtaPtOnEMCal(Double_t,Double_t,Double_t=-999) {;}
108 virtual Int_t GetPHOScluster() const {return -1;}
109 virtual void SetPHOScluster(Int_t) {;}
110 virtual Bool_t IsPHOS() const {return kFALSE;}
111 virtual void SetPIDForTracking(Int_t ) {}
112 virtual Int_t GetPIDForTracking() const {return -999;}
115 virtual void SetStatus(ULong_t /*flags*/) {;}
116 virtual void ResetStatus(ULong_t /*flags*/) {;}
118 virtual Double_t GetITSsignal() const {return 0.;}
119 virtual Double_t GetTPCsignal() const {return 0.;}
120 virtual Double_t GetTPCsignalTunedOnData() const {return 0.;}
121 virtual UShort_t GetTPCsignalN() const {return 0 ;}
122 virtual Double_t GetTPCmomentum() const {return 0.;}
123 virtual Double_t GetTPCTgl() const {return 0.;}
124 virtual Double_t GetTOFsignal() const {return 0.;}
125 virtual Double_t GetTOFsignalTunedOnData() const {return 0.;}
126 virtual Double_t GetHMPIDsignal() const {return 0.;}
127 virtual Double_t GetTRDsignal() const {return 0.;}
128 virtual UChar_t GetTRDNchamberdEdx() const {return 0;}
129 virtual UChar_t GetTRDNclusterdEdx() const {return 0;}
131 virtual Double_t GetHMPIDoccupancy() const {return 0.;}
133 virtual Int_t GetHMPIDcluIdx() const {return 0;}
135 virtual void GetHMPIDtrk(Float_t &/*&x*/, Float_t &/*y*/, Float_t &/*th*/, Float_t &/*ph*/) const {;}
136 virtual void GetHMPIDmip(Float_t &/*x*/, Float_t &/*y*/, Int_t &/*q*/,Int_t &/*nph*/) const {;}
138 virtual Bool_t GetOuterHmpPxPyPz(Double_t */*p*/) const {return kFALSE;}
140 virtual const AliExternalTrackParam * GetInnerParam() const { return NULL;}
141 virtual const AliExternalTrackParam * GetOuterParam() const { return NULL;}
142 virtual const AliExternalTrackParam * GetTPCInnerParam() const { return NULL;}
144 virtual void GetIntegratedTimes(Double_t */*times*/, Int_t nspec=AliPID::kSPECIESC) const;
145 virtual Double_t GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;}
146 virtual void GetHMPIDpid(Double_t */*p*/) const {;}
147 virtual Double_t GetIntegratedLength() const { return 0.;}
149 virtual ULong_t GetStatus() const = 0;
150 virtual Bool_t GetXYZ(Double_t* /*p*/) const ;
151 virtual Bool_t GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const ;
152 virtual Double_t GetBz() const;
153 virtual void GetBxByBz(Double_t b[3]) const;
154 virtual Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0;
155 virtual Bool_t PropagateToDCA(const AliVVertex *vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]) = 0;
156 virtual Int_t GetNcls(Int_t /*idet*/) const { return 0; }
157 virtual Bool_t GetPxPyPz(Double_t */*p*/) const { return kFALSE; }
158 virtual void SetID(Short_t /*id*/) {;}
159 virtual Int_t GetTOFBunchCrossing(Double_t = 0, Bool_t = kFALSE) const { return kTOFBCNA;}
160 virtual const AliTOFHeader *GetTOFHeader() const {return NULL;};
162 //---------------------------------------------------------------------------
163 //--the calibration interface--
164 //--to be used in online calibration/QA
165 //--should also be implemented in ESD so it works offline as well
167 virtual Int_t GetTrackParam ( AliExternalTrackParam& ) const {return 0;}
168 virtual Int_t GetTrackParamRefitted ( AliExternalTrackParam& ) const {return 0;}
169 virtual Int_t GetTrackParamIp ( AliExternalTrackParam& ) const {return 0;}
170 virtual Int_t GetTrackParamTPCInner ( AliExternalTrackParam& ) const {return 0;}
171 virtual Int_t GetTrackParamOp ( AliExternalTrackParam& ) const {return 0;}
172 virtual Int_t GetTrackParamCp ( AliExternalTrackParam& ) const {return 0;}
173 virtual Int_t GetTrackParamITSOut ( AliExternalTrackParam& ) const {return 0;}
175 ClassDef(AliVTrack,1) // base class for tracks