Fix in inline methods declarations
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliVTrack.h
CommitLineData
a7d9ab9e 1#ifndef AliVTrack_H\r
2#define AliVTrack_H\r
3/* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *\r
4 * See cxx source for full Copyright notice */\r
5\r
6\r
7//-------------------------------------------------------------------------\r
8// base class for ESD and AOD tracks\r
9// Author: A. Dainese\r
10//-------------------------------------------------------------------------\r
11\r
12#include <TBits.h>\r
13\r
14#include "AliVParticle.h"\r
15\r
16class AliVVertex;\r
17class AliExternalTrackParam;\r
563976ea 18class AliTPCdEdxInfo;\r
00a38d07 19class AliDetectorPID;\r
563976ea 20 \r
a7d9ab9e 21class AliVTrack: public AliVParticle {\r
22\r
23public:\r
24 enum {\r
25 kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,\r
26 kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,\r
27 kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,\r
28 kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,\r
29 kTOFmismatch=0x100000,\r
30 kHMPIDout=0x10000,kHMPIDpid=0x20000,\r
31 kEMCALmatch=0x40000,\r
32 kPHOSmatch=0x200000,\r
33 kTRDbackup =0x80000,\r
34 kTRDStop=0x20000000,\r
35 kESDpid=0x40000000,\r
36 kTIME=0x80000000,\r
37 kGlobalMerge=0x08000000,\r
38 kITSpureSA=0x10000000,\r
39 kMultInV0 =0x2000000, //BIT(25): assumed to be belong to V0 in multiplicity estimates\r
40 kMultSec =0x4000000, //BIT(26): assumed to be secondary (due to the DCA) in multiplicity estimates\r
41 kEmbedded =0x8000000 // BIT(27), 1<<27: Is a track that has been embedded into the event\r
42 };\r
43 enum {\r
44 kTRDnPlanes = 6,\r
3f2db92f 45 kEMCALNoMatch = -4096,\r
46 kTOFBCNA = -100\r
a7d9ab9e 47 };\r
48\r
49 AliVTrack() { }\r
50 virtual ~AliVTrack() { }\r
51 AliVTrack(const AliVTrack& vTrack); \r
52 AliVTrack& operator=(const AliVTrack& vTrack);\r
53\r
54 virtual Int_t GetID() const = 0;\r
55 virtual UChar_t GetITSClusterMap() const = 0;\r
086400fc 56 virtual const TBits* GetTPCClusterMapPtr() const {return NULL;}\r
25f906db 57 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
086400fc 58 virtual AliTPCdEdxInfo * GetTPCdEdxInfo() const {return 0x0;}\r
a7d9ab9e 59 virtual UShort_t GetTPCNcls() const { return 0;}\r
60 virtual UShort_t GetTPCNclsF() const { return 0;}\r
61 virtual Double_t GetTRDslice(Int_t /*plane*/, Int_t /*slice*/) const { return -1.; }\r
73b4da68 62 virtual Int_t GetNumberOfTRDslices() const { return 0; }\r
99e9d5ec 63 virtual UChar_t GetTRDntrackletsPID() const { return 0;}\r
00a38d07 64 virtual void SetDetectorPID(const AliDetectorPID */*pid*/) {;}\r
65 virtual const AliDetectorPID* GetDetectorPID() const { return 0x0; }\r
643d59bf 66 virtual Double_t GetTRDchi2() const { return -1;}\r
a7d9ab9e 67 \r
68 virtual Int_t GetEMCALcluster() const {return -1;}\r
69 virtual void SetEMCALcluster(Int_t) {;}\r
70 virtual Bool_t IsEMCAL() const {return kFALSE;}\r
71\r
ed15417e 72 virtual Double_t GetTrackPhiOnEMCal() const {return -999;}\r
73 virtual Double_t GetTrackEtaOnEMCal() const {return -999;}\r
74 virtual void SetTrackPhiEtaOnEMCal(Double_t,Double_t) {;}\r
75\r
a7d9ab9e 76 virtual Int_t GetPHOScluster() const {return -1;}\r
77 virtual void SetPHOScluster(Int_t) {;}\r
78 virtual Bool_t IsPHOS() const {return kFALSE;}\r
79 \r
80 //pid info\r
cc92083e 81 virtual void SetStatus(ULong_t /*flags*/) {;}\r
82 virtual void ResetStatus(ULong_t /*flags*/) {;}\r
83\r
a7d9ab9e 84 virtual Double_t GetITSsignal() const {return 0.;}\r
85 virtual Double_t GetTPCsignal() const {return 0.;}\r
73b4da68 86 virtual Double_t GetTPCsignalTunedOnData() const {return 0.;}\r
a7d9ab9e 87 virtual UShort_t GetTPCsignalN() const {return 0 ;}\r
88 virtual Double_t GetTPCmomentum() const {return 0.;}\r
89 virtual Double_t GetTOFsignal() const {return 0.;}\r
72b35cc8 90 virtual Double_t GetHMPIDsignal() const {return 0.;}\r
91\r
a7d9ab9e 92 virtual void GetIntegratedTimes(Double_t */*times*/) const { return; }\r
93 virtual Double_t GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;}\r
94 virtual void GetHMPIDpid(Double_t */*p*/) const {;}\r
95 \r
96 virtual ULong_t GetStatus() const = 0;\r
97 virtual Bool_t GetXYZ(Double_t *p) const = 0;\r
086400fc 98 virtual Bool_t GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const {return kFALSE;}\r
a7d9ab9e 99 virtual Double_t GetBz() const;\r
100 virtual void GetBxByBz(Double_t b[3]) const;\r
101 virtual Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0;\r
102 virtual Bool_t PropagateToDCA(const AliVVertex *vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]) = 0;\r
103 virtual const AliExternalTrackParam * GetOuterParam() const { return NULL; }\r
086400fc 104 virtual const AliExternalTrackParam * GetInnerParam() const { return NULL; }\r
a7d9ab9e 105 virtual Int_t GetNcls(Int_t /*idet*/) const { return 0; }\r
106 virtual Bool_t GetPxPyPz(Double_t */*p*/) const { return kFALSE; }\r
107 virtual void SetID(Short_t /*id*/) {;}\r
1cecd6e3 108 virtual Int_t GetTOFBunchCrossing(Double_t = 0, Bool_t = kFALSE) const { return kTOFBCNA;}\r
a7d9ab9e 109\r
110 ClassDef(AliVTrack,1) // base class for tracks\r
111};\r
112\r
113#endif\r