3 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
\r
4 * See cxx source for full Copyright notice */
\r
7 //-------------------------------------------------------------------------
\r
8 // base class for ESD and AOD tracks
\r
9 // Author: A. Dainese
\r
10 //-------------------------------------------------------------------------
\r
14 #include "AliVParticle.h"
\r
17 class AliExternalTrackParam;
\r
18 class AliTPCdEdxInfo;
\r
20 class AliVTrack: public AliVParticle {
\r
24 kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
\r
25 kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
\r
26 kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
\r
27 kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
\r
28 kTOFmismatch=0x100000,
\r
29 kHMPIDout=0x10000,kHMPIDpid=0x20000,
\r
30 kEMCALmatch=0x40000,
\r
31 kPHOSmatch=0x200000,
\r
32 kTRDbackup =0x80000,
\r
33 kTRDStop=0x20000000,
\r
36 kGlobalMerge=0x08000000,
\r
37 kITSpureSA=0x10000000,
\r
38 kMultInV0 =0x2000000, //BIT(25): assumed to be belong to V0 in multiplicity estimates
\r
39 kMultSec =0x4000000, //BIT(26): assumed to be secondary (due to the DCA) in multiplicity estimates
\r
40 kEmbedded =0x8000000 // BIT(27), 1<<27: Is a track that has been embedded into the event
\r
44 kEMCALNoMatch = -4096,
\r
49 virtual ~AliVTrack() { }
\r
50 AliVTrack(const AliVTrack& vTrack);
\r
51 AliVTrack& operator=(const AliVTrack& vTrack);
\r
53 virtual Int_t GetID() const = 0;
\r
54 virtual UChar_t GetITSClusterMap() const = 0;
\r
55 virtual const TBits* GetTPCClusterMapPtr() const {return NULL;}
\r
56 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.;}
\r
57 virtual AliTPCdEdxInfo * GetTPCdEdxInfo() const {return 0x0;}
\r
58 virtual UShort_t GetTPCNcls() const { return 0;}
\r
59 virtual UShort_t GetTPCNclsF() const { return 0;}
\r
60 virtual Double_t GetTRDslice(Int_t /*plane*/, Int_t /*slice*/) const { return -1.; }
\r
61 virtual Int_t GetNumberOfTRDslices() const { return 0; }
\r
62 virtual UChar_t GetTRDntrackletsPID() const { return 0;}
\r
63 virtual Double_t GetTRDchi2() const { return -1;}
\r
65 virtual Int_t GetEMCALcluster() const {return -1;}
\r
66 virtual void SetEMCALcluster(Int_t) {;}
\r
67 virtual Bool_t IsEMCAL() const {return kFALSE;}
\r
69 virtual Double_t GetTrackPhiOnEMCal() const {return -999;}
\r
70 virtual Double_t GetTrackEtaOnEMCal() const {return -999;}
\r
71 virtual void SetTrackPhiEtaOnEMCal(Double_t,Double_t) {;}
\r
73 virtual Int_t GetPHOScluster() const {return -1;}
\r
74 virtual void SetPHOScluster(Int_t) {;}
\r
75 virtual Bool_t IsPHOS() const {return kFALSE;}
\r
78 virtual void SetStatus(ULong_t /*flags*/) {;}
\r
79 virtual void ResetStatus(ULong_t /*flags*/) {;}
\r
81 virtual Double_t GetITSsignal() const {return 0.;}
\r
82 virtual Double_t GetTPCsignal() const {return 0.;}
\r
83 virtual Double_t GetTPCsignalTunedOnData() const {return 0.;}
\r
84 virtual UShort_t GetTPCsignalN() const {return 0 ;}
\r
85 virtual Double_t GetTPCmomentum() const {return 0.;}
\r
86 virtual Double_t GetTOFsignal() const {return 0.;}
\r
87 virtual Double_t GetHMPIDsignal() const {return 0.;}
\r
89 virtual void GetIntegratedTimes(Double_t */*times*/) const { return; }
\r
90 virtual Double_t GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;}
\r
91 virtual void GetHMPIDpid(Double_t */*p*/) const {;}
\r
93 virtual ULong_t GetStatus() const = 0;
\r
94 virtual Bool_t GetXYZ(Double_t *p) const = 0;
\r
95 virtual Bool_t GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const {return kFALSE;}
\r
96 virtual Double_t GetBz() const;
\r
97 virtual void GetBxByBz(Double_t b[3]) const;
\r
98 virtual Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0;
\r
99 virtual Bool_t PropagateToDCA(const AliVVertex *vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]) = 0;
\r
100 virtual const AliExternalTrackParam * GetOuterParam() const { return NULL; }
\r
101 virtual const AliExternalTrackParam * GetInnerParam() const { return NULL; }
\r
102 virtual Int_t GetNcls(Int_t /*idet*/) const { return 0; }
\r
103 virtual Bool_t GetPxPyPz(Double_t */*p*/) const { return kFALSE; }
\r
104 virtual void SetID(Short_t /*id*/) {;}
\r
105 virtual Int_t GetTOFBunchCrossing(Double_t = 0, Bool_t = kFALSE) const { return kTOFBCNA;}
\r
107 ClassDef(AliVTrack,1) // base class for tracks
\r