]>
Commit | Line | Data |
---|---|---|
1d99986f | 1 | #ifndef ALIESDFRIENDTRACK_H |
2 | #define ALIESDFRIENDTRACK_H | |
3 | ||
4 | //------------------------------------------------------------------------- | |
5 | // Class AliESDfriendTrack | |
6 | // This class contains ESD track additions | |
7 | // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch | |
8 | //------------------------------------------------------------------------- | |
9 | ||
10 | #include <TObject.h> | |
5637918c | 11 | #include <TClonesArray.h> |
ded25cc6 | 12 | #include <AliExternalTrackParam.h> |
1f516476 | 13 | #include "AliVfriendTrack.h" |
08f45a9c | 14 | #include "AliTrackPointArray.h" |
1d99986f | 15 | |
15e85efa | 16 | class AliKalmanTrack; |
00dce61a | 17 | class TObjArrray; |
aa883ad7 | 18 | class AliTPCseed; |
08f45a9c | 19 | |
4a08929f | 20 | |
1d99986f | 21 | //_____________________________________________________________________________ |
d3d72a17 | 22 | class AliESDfriendTrack : public AliVfriendTrack { |
1d99986f | 23 | public: |
15e85efa | 24 | enum { |
25 | kMaxITScluster=12, | |
26 | kMaxTPCcluster=160, | |
27 | kMaxTRDcluster=180 | |
28 | }; | |
1d99986f | 29 | AliESDfriendTrack(); |
7454372c | 30 | AliESDfriendTrack(const AliESDfriendTrack &t); |
1d99986f | 31 | virtual ~AliESDfriendTrack(); |
32 | ||
15e85efa | 33 | void Set1P(Float_t p) {f1P=p;} |
34 | void SetTrackPointArray(AliTrackPointArray *points) { | |
35 | fPoints=points; | |
36 | } | |
37 | Float_t Get1P() const {return f1P;} | |
38 | Int_t *GetITSindices() {return fITSindex;} | |
39 | Int_t *GetTPCindices() {return fTPCindex;} | |
40 | Int_t *GetTRDindices() {return fTRDindex;} | |
1d99986f | 41 | const AliTrackPointArray *GetTrackPointArray() const {return fPoints;} |
42 | ||
15e85efa | 43 | void SetITStrack(AliKalmanTrack *t) {fITStrack=t;} |
44 | void SetTRDtrack(AliKalmanTrack *t) {fTRDtrack=t;} | |
45 | AliKalmanTrack *GetTRDtrack() {return fTRDtrack;} | |
46 | AliKalmanTrack *GetITStrack() {return fITStrack;} | |
00dce61a | 47 | void AddCalibObject(TObject * calibObject); |
a453390d | 48 | TObject * GetCalibObject(Int_t index) const; |
6a33e0e9 | 49 | |
ded25cc6 | 50 | // |
51 | // parameters backup | |
52 | void SetTPCOut(const AliExternalTrackParam ¶m); | |
53 | void SetITSOut(const AliExternalTrackParam ¶m); | |
54 | void SetTRDIn(const AliExternalTrackParam ¶m); | |
55 | // | |
5637918c | 56 | |
c5060262 | 57 | const AliExternalTrackParam * GetTPCOut() const {return fTPCOut;} |
58 | const AliExternalTrackParam * GetITSOut() const {return fITSOut;} | |
59 | const AliExternalTrackParam * GetTRDIn() const {return fTRDIn;} | |
7454372c | 60 | |
03e1e359 | 61 | //used in calibration |
62 | Int_t GetTrackParamTPCOut( AliExternalTrackParam &p ) const { | |
63 | if(!GetTPCOut()) return -1; | |
64 | p=*GetTPCOut(); | |
65 | return 0;} | |
66 | ||
67 | Int_t GetTrackParamITSOut( AliExternalTrackParam &p ) const { | |
68 | if(!GetITSOut()) return -1; | |
69 | p=*GetITSOut(); | |
70 | return 0;} | |
71 | ||
6d3a7bbf | 72 | void SetITSIndices(Int_t* indices, Int_t n); |
73 | void SetTPCIndices(Int_t* indices, Int_t n); | |
74 | void SetTRDIndices(Int_t* indices, Int_t n); | |
75 | ||
76 | Int_t GetMaxITScluster() {return fnMaxITScluster;} | |
77 | Int_t GetMaxTPCcluster() {return fnMaxTPCcluster;} | |
78 | Int_t GetMaxTRDcluster() {return fnMaxTRDcluster;} | |
5637918c | 79 | |
3e341ccb | 80 | // bit manipulation for filtering |
81 | void SetSkipBit(Bool_t skip){SetBit(23,skip);} | |
48ec9ee6 | 82 | Bool_t TestSkipBit() const {return TestBit(23);} |
ddfbc51a | 83 | |
1f516476 | 84 | // VfriendTrack interface |
6a33e0e9 | 85 | |
86 | Int_t GetTPCseed( AliTPCseed &) const; | |
87 | ||
1d99986f | 88 | protected: |
15e85efa | 89 | Float_t f1P; // 1/P (1/(GeV/c)) |
6d3a7bbf | 90 | Int_t fnMaxITScluster; // Max number of ITS clusters |
91 | Int_t fnMaxTPCcluster; // Max number of TPC clusters | |
92 | Int_t fnMaxTRDcluster; // Max number of TRD clusters | |
93 | Int_t* fITSindex; //[fnMaxITScluster] indices of the ITS clusters | |
94 | Int_t* fTPCindex; //[fnMaxTPCcluster] indices of the TPC clusters | |
95 | Int_t* fTRDindex; //[fnMaxTRDcluster] indices of the TRD clusters | |
96 | ||
15e85efa | 97 | AliTrackPointArray *fPoints;//Array of track space points in the global frame |
00dce61a | 98 | TObjArray *fCalibContainer; //Array of objects for calibration |
15e85efa | 99 | AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes) |
100 | AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes) | |
ded25cc6 | 101 | // |
102 | // | |
103 | AliExternalTrackParam * fTPCOut; // tpc outer parameters | |
104 | AliExternalTrackParam * fITSOut; // its outer parameters | |
105 | AliExternalTrackParam * fTRDIn; // trd inner parameters | |
ddfbc51a | 106 | |
7454372c | 107 | private: |
42cdc768 | 108 | AliESDfriendTrack &operator=(const AliESDfriendTrack & /* t */) {return *this;} |
7454372c | 109 | |
e3d1b1e2 | 110 | ClassDef(AliESDfriendTrack,7) //ESD friend track |
1d99986f | 111 | }; |
112 | ||
113 | #endif | |
114 | ||
115 |