some interfaces in VV commented out (as they are not in use and have no implementatio...
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliVTrack.h
CommitLineData
74ca66e3 1#ifndef AliVTrack_H
2#define AliVTrack_H
3/* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6
7//-------------------------------------------------------------------------
8// base class for ESD and AOD tracks
9// Author: A. Dainese
10//-------------------------------------------------------------------------
11
12#include <TBits.h>
13
14#include "AliVParticle.h"
fc9b31a7 15#include "AliPID.h"
74ca66e3 16
d38034b8 17class AliVEvent;
74ca66e3 18class AliVVertex;
74ca66e3 19class AliTPCdEdxInfo;
20class AliDetectorPID;
42fcc729 21class AliTOFHeader;
50ff8c36 22class AliVVtrack;
fc9b31a7 23
74ca66e3 24
25class AliVTrack: public AliVParticle {
26
27public:
28 enum {
2e4eee7d 29 kITSin = 0x1
30 ,kITSout = 0x2
31 ,kITSrefit = 0x4
32 ,kITSpid = 0x8
33 ,kTPCin = 0x10
34 ,kTPCout = 0x20
35 ,kTPCrefit = 0x40
36 ,kTPCpid = 0x80
37 ,kTRDin = 0x100
38 ,kTRDout = 0x200
39 ,kTRDrefit = 0x400
40 ,kTRDpid = 0x800
41 ,kTOFin = 0x1000
42 ,kTOFout = 0x2000
43 ,kTOFrefit = 0x4000
44 ,kTOFpid = 0x8000
45 ,kHMPIDout = 0x10000
46 ,kHMPIDpid = 0x20000
47 ,kEMCALmatch = 0x40000
48 ,kTRDbackup = 0x80000
49 ,kTOFmismatch = 0x100000
50 ,kPHOSmatch = 0x200000
51 ,kITSupg = 0x400000 // flag that in the ITSupgrade reco
52 //
53 ,kGlobalMerge = 0x1000000
54 ,kMultInV0 = 0x2000000 //BIT(25): assumed to be belong to V0 in multiplicity estimates
55 ,kMultSec = 0x4000000 //BIT(26): assumed to be secondary (due to the DCA) in multiplicity estimates
56 ,kEmbedded = 0x8000000 // BIT(27), 1<<27: Is a track that has been embedded into the event
57 //
58 ,kITSpureSA = 0x10000000
59 ,kTRDStop = 0x20000000
60 ,kESDpid = 0x40000000
61 ,kTIME = 0x80000000
74ca66e3 62 };
63 enum {
64 kTRDnPlanes = 6,
65 kEMCALNoMatch = -4096,
66 kTOFBCNA = -100
67 };
68
69 AliVTrack() { }
70 virtual ~AliVTrack() { }
71 AliVTrack(const AliVTrack& vTrack);
72 AliVTrack& operator=(const AliVTrack& vTrack);
a4b2769d 73 // constructor for reinitialisation of vtable
74 AliVTrack( AliVVConstructorReinitialisationFlag f) :AliVParticle(f){}
74ca66e3 75
d38034b8 76 virtual const AliVEvent* GetEvent() const {return 0;}
74ca66e3 77 virtual Int_t GetID() const = 0;
78 virtual UChar_t GetITSClusterMap() const = 0;
79 virtual void GetITSdEdxSamples(Double_t s[4]) const {for (int i=4;i--;) s[i]=0;};
80 virtual const TBits* GetTPCClusterMapPtr() const {return NULL;}
81 virtual const TBits* GetTPCFitMapPtr() const {return NULL;}
82 virtual const TBits* GetTPCSharedMapPtr() const {return NULL;}
83 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.;}
84 virtual AliTPCdEdxInfo * GetTPCdEdxInfo() const {return 0x0;}
85 virtual UShort_t GetTPCNcls() const { return 0;}
86 virtual UShort_t GetTPCNclsF() const { return 0;}
87 virtual Double_t GetTRDslice(Int_t /*plane*/, Int_t /*slice*/) const { return -1.; }
88 virtual Int_t GetNumberOfTRDslices() const { return 0; }
89 virtual UChar_t GetTRDncls() const {return 0;}
90 virtual UChar_t GetTRDntrackletsPID() const { return 0;}
91 virtual void SetDetectorPID(const AliDetectorPID */*pid*/) {;}
92 virtual const AliDetectorPID* GetDetectorPID() const { return 0x0; }
93 virtual Double_t GetTRDchi2() const { return -1;}
50ff8c36 94 virtual Int_t GetNumberOfClusters() const {return 0;}
74ca66e3 95
96 virtual Int_t GetEMCALcluster() const {return kEMCALNoMatch;}
97 virtual void SetEMCALcluster(Int_t) {;}
98 virtual Bool_t IsEMCAL() const {return kFALSE;}
99
d60591b8
CL
100 virtual Double_t GetTrackPhiOnEMCal() const {return -999;}
101 virtual Double_t GetTrackEtaOnEMCal() const {return -999;}
102 virtual Double_t GetTrackPtOnEMCal() const {return -999;}
103 virtual Double_t GetTrackPOnEMCal() const {return -999;}
ca6e83df 104 virtual Bool_t IsExtrapolatedToEMCAL() const {return GetTrackPtOnEMCal()!=-999;}
a29b2a8a 105 virtual void SetTrackPhiEtaPtOnEMCal(Double_t,Double_t,Double_t=-999) {;}
74ca66e3 106
107 virtual Int_t GetPHOScluster() const {return -1;}
108 virtual void SetPHOScluster(Int_t) {;}
109 virtual Bool_t IsPHOS() const {return kFALSE;}
a3314882 110 virtual void SetPIDForTracking(Int_t ) {}
111 virtual Int_t GetPIDForTracking() const {return -999;}
74ca66e3 112
113 //pid info
114 virtual void SetStatus(ULong_t /*flags*/) {;}
115 virtual void ResetStatus(ULong_t /*flags*/) {;}
116
117 virtual Double_t GetITSsignal() const {return 0.;}
118 virtual Double_t GetTPCsignal() const {return 0.;}
119 virtual Double_t GetTPCsignalTunedOnData() const {return 0.;}
120 virtual UShort_t GetTPCsignalN() const {return 0 ;}
121 virtual Double_t GetTPCmomentum() const {return 0.;}
ef7661fd 122 virtual Double_t GetTPCTgl() const {return 0.;}
74ca66e3 123 virtual Double_t GetTOFsignal() const {return 0.;}
a2c30af1 124 virtual Double_t GetTOFsignalTunedOnData() const {return 0.;}
74ca66e3 125 virtual Double_t GetHMPIDsignal() const {return 0.;}
6736efd5 126 virtual Double_t GetTRDsignal() const {return 0.;}
74ca66e3 127
567624b5 128 virtual Double_t GetHMPIDoccupancy() const {return 0.;}
129
130 virtual Int_t GetHMPIDcluIdx() const {return 0;}
131
132 virtual void GetHMPIDtrk(Float_t &/*&x*/, Float_t &/*y*/, Float_t &/*th*/, Float_t &/*ph*/) const {;}
133 virtual void GetHMPIDmip(Float_t &/*x*/, Float_t &/*y*/, Int_t &/*q*/,Int_t &/*nph*/) const {;}
134
135 virtual Bool_t GetOuterHmpPxPyPz(Double_t */*p*/) const {return kFALSE;}
136
fc9b31a7 137 virtual void GetIntegratedTimes(Double_t */*times*/, Int_t nspec=AliPID::kSPECIESC) const;
74ca66e3 138 virtual Double_t GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;}
139 virtual void GetHMPIDpid(Double_t */*p*/) const {;}
9b5c8b95 140 virtual Double_t GetIntegratedLength() const { return 0.;}
141
74ca66e3 142 virtual ULong_t GetStatus() const = 0;
08f45a9c 143 virtual Bool_t GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const ;
144 using AliVVtrack::GetXYZ;
145 virtual Bool_t GetXYZ(Double_t* /*p*/) const ;
74ca66e3 146 virtual Double_t GetBz() const;
147 virtual void GetBxByBz(Double_t b[3]) const;
148 virtual Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0;
149 virtual Bool_t PropagateToDCA(const AliVVertex *vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]) = 0;
50ff8c36 150 virtual const AliVVtrack * GetOuterParam() const { return NULL; }
151 virtual const AliVVtrack * GetInnerParam() const { return NULL; }
74ca66e3 152 virtual Int_t GetNcls(Int_t /*idet*/) const { return 0; }
153 virtual Bool_t GetPxPyPz(Double_t */*p*/) const { return kFALSE; }
154 virtual void SetID(Short_t /*id*/) {;}
155 virtual Int_t GetTOFBunchCrossing(Double_t = 0, Bool_t = kFALSE) const { return kTOFBCNA;}
42fcc729 156 virtual const AliTOFHeader *GetTOFHeader() const {return NULL;};
74ca66e3 157
158 ClassDef(AliVTrack,1) // base class for tracks
159};
160
161#endif