Make OCDB object version 0 (savannah #101470).
[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"
15
16class AliVVertex;
17class AliExternalTrackParam;
18class AliTPCdEdxInfo;
19class AliDetectorPID;
20
21class AliVTrack: public AliVParticle {
22
23public:
24 enum {
25 kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
26 kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
27 kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
28 kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
29 kTOFmismatch=0x100000,
30 kHMPIDout=0x10000,kHMPIDpid=0x20000,
31 kEMCALmatch=0x40000,
32 kPHOSmatch=0x200000,
33 kTRDbackup =0x80000,
34 kTRDStop=0x20000000,
35 kESDpid=0x40000000,
36 kTIME=0x80000000,
37 kGlobalMerge=0x08000000,
38 kITSpureSA=0x10000000,
39 kMultInV0 =0x2000000, //BIT(25): assumed to be belong to V0 in multiplicity estimates
40 kMultSec =0x4000000, //BIT(26): assumed to be secondary (due to the DCA) in multiplicity estimates
41 kEmbedded =0x8000000 // BIT(27), 1<<27: Is a track that has been embedded into the event
42 };
43 enum {
44 kTRDnPlanes = 6,
45 kEMCALNoMatch = -4096,
46 kTOFBCNA = -100
47 };
48
49 AliVTrack() { }
50 virtual ~AliVTrack() { }
51 AliVTrack(const AliVTrack& vTrack);
52 AliVTrack& operator=(const AliVTrack& vTrack);
53
54 virtual Int_t GetID() const = 0;
55 virtual UChar_t GetITSClusterMap() const = 0;
56 virtual void GetITSdEdxSamples(Double_t s[4]) const {for (int i=4;i--;) s[i]=0;};
57 virtual const TBits* GetTPCClusterMapPtr() const {return NULL;}
58 virtual const TBits* GetTPCFitMapPtr() const {return NULL;}
59 virtual const TBits* GetTPCSharedMapPtr() const {return NULL;}
60 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.;}
61 virtual AliTPCdEdxInfo * GetTPCdEdxInfo() const {return 0x0;}
62 virtual UShort_t GetTPCNcls() const { return 0;}
63 virtual UShort_t GetTPCNclsF() const { return 0;}
64 virtual Double_t GetTRDslice(Int_t /*plane*/, Int_t /*slice*/) const { return -1.; }
65 virtual Int_t GetNumberOfTRDslices() const { return 0; }
66 virtual UChar_t GetTRDncls() const {return 0;}
67 virtual UChar_t GetTRDntrackletsPID() const { return 0;}
68 virtual void SetDetectorPID(const AliDetectorPID */*pid*/) {;}
69 virtual const AliDetectorPID* GetDetectorPID() const { return 0x0; }
70 virtual Double_t GetTRDchi2() const { return -1;}
71
72 virtual Int_t GetEMCALcluster() const {return kEMCALNoMatch;}
73 virtual void SetEMCALcluster(Int_t) {;}
74 virtual Bool_t IsEMCAL() const {return kFALSE;}
75
76 virtual Double_t GetTrackPhiOnEMCal() const {return -999;}
77 virtual Double_t GetTrackEtaOnEMCal() const {return -999;}
a29b2a8a 78 virtual Double_t GetTrackPtOnEMCal() const {return -999;}
79 virtual Double_t GetTrackPOnEMCal() const {return -999;}
80 virtual void SetTrackPhiEtaPtOnEMCal(Double_t,Double_t,Double_t=-999) {;}
74ca66e3 81
82 virtual Int_t GetPHOScluster() const {return -1;}
83 virtual void SetPHOScluster(Int_t) {;}
84 virtual Bool_t IsPHOS() const {return kFALSE;}
85
86 //pid info
87 virtual void SetStatus(ULong_t /*flags*/) {;}
88 virtual void ResetStatus(ULong_t /*flags*/) {;}
89
90 virtual Double_t GetITSsignal() const {return 0.;}
91 virtual Double_t GetTPCsignal() const {return 0.;}
92 virtual Double_t GetTPCsignalTunedOnData() const {return 0.;}
93 virtual UShort_t GetTPCsignalN() const {return 0 ;}
94 virtual Double_t GetTPCmomentum() const {return 0.;}
95 virtual Double_t GetTOFsignal() const {return 0.;}
a2c30af1 96 virtual Double_t GetTOFsignalTunedOnData() const {return 0.;}
74ca66e3 97 virtual Double_t GetHMPIDsignal() const {return 0.;}
6736efd5 98 virtual Double_t GetTRDsignal() const {return 0.;}
74ca66e3 99
567624b5 100 virtual Double_t GetHMPIDoccupancy() const {return 0.;}
101
102 virtual Int_t GetHMPIDcluIdx() const {return 0;}
103
104 virtual void GetHMPIDtrk(Float_t &/*&x*/, Float_t &/*y*/, Float_t &/*th*/, Float_t &/*ph*/) const {;}
105 virtual void GetHMPIDmip(Float_t &/*x*/, Float_t &/*y*/, Int_t &/*q*/,Int_t &/*nph*/) const {;}
106
107 virtual Bool_t GetOuterHmpPxPyPz(Double_t */*p*/) const {return kFALSE;}
108
74ca66e3 109 virtual void GetIntegratedTimes(Double_t */*times*/) const { return; }
110 virtual Double_t GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;}
111 virtual void GetHMPIDpid(Double_t */*p*/) const {;}
9b5c8b95 112 virtual Double_t GetIntegratedLength() const { return 0.;}
113
74ca66e3 114 virtual ULong_t GetStatus() const = 0;
115 virtual Bool_t GetXYZ(Double_t *p) const = 0;
116 virtual Bool_t GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const {return kFALSE;}
117 virtual Double_t GetBz() const;
118 virtual void GetBxByBz(Double_t b[3]) const;
119 virtual Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0;
120 virtual Bool_t PropagateToDCA(const AliVVertex *vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]) = 0;
121 virtual const AliExternalTrackParam * GetOuterParam() const { return NULL; }
122 virtual const AliExternalTrackParam * GetInnerParam() const { return NULL; }
123 virtual Int_t GetNcls(Int_t /*idet*/) const { return 0; }
124 virtual Bool_t GetPxPyPz(Double_t */*p*/) const { return kFALSE; }
125 virtual void SetID(Short_t /*id*/) {;}
126 virtual Int_t GetTOFBunchCrossing(Double_t = 0, Bool_t = kFALSE) const { return kTOFBCNA;}
127
128 ClassDef(AliVTrack,1) // base class for tracks
129};
130
131#endif