Possibility to filter the ESD friends and add objects to AliESDfriends.root. Major...
[u/mrichter/AliRoot.git] / STEER / AliESDfriendTrack.h
CommitLineData
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>
ded25cc6 11#include <AliExternalTrackParam.h>
1d99986f 12
13class AliTrackPointArray;
15e85efa 14class AliKalmanTrack;
00dce61a 15class TObjArrray;
1d99986f 16//_____________________________________________________________________________
17class AliESDfriendTrack : public TObject {
18public:
15e85efa 19 enum {
20 kMaxITScluster=12,
21 kMaxTPCcluster=160,
22 kMaxTRDcluster=180
23 };
1d99986f 24 AliESDfriendTrack();
7454372c 25 AliESDfriendTrack(const AliESDfriendTrack &t);
1d99986f 26 virtual ~AliESDfriendTrack();
27
15e85efa 28 void Set1P(Float_t p) {f1P=p;}
29 void SetTrackPointArray(AliTrackPointArray *points) {
30 fPoints=points;
31 }
32 Float_t Get1P() const {return f1P;}
33 Int_t *GetITSindices() {return fITSindex;}
34 Int_t *GetTPCindices() {return fTPCindex;}
35 Int_t *GetTRDindices() {return fTRDindex;}
1d99986f 36 const AliTrackPointArray *GetTrackPointArray() const {return fPoints;}
37
15e85efa 38 void SetITStrack(AliKalmanTrack *t) {fITStrack=t;}
39 void SetTRDtrack(AliKalmanTrack *t) {fTRDtrack=t;}
40 AliKalmanTrack *GetTRDtrack() {return fTRDtrack;}
41 AliKalmanTrack *GetITStrack() {return fITStrack;}
00dce61a 42 void AddCalibObject(TObject * calibObject);
43 TObject * GetCalibObject(Int_t index);
ded25cc6 44 //
45 // parameters backup
46 void SetTPCOut(const AliExternalTrackParam &param);
47 void SetITSOut(const AliExternalTrackParam &param);
48 void SetTRDIn(const AliExternalTrackParam &param);
49 //
50 const AliExternalTrackParam * GetTPCOut(){return fTPCOut;}
51 const AliExternalTrackParam * GetITSOut() { return fITSOut;}
52 const AliExternalTrackParam * GetTRDIn() { return fTRDIn;}
7454372c 53
6d3a7bbf 54 void SetITSIndices(Int_t* indices, Int_t n);
55 void SetTPCIndices(Int_t* indices, Int_t n);
56 void SetTRDIndices(Int_t* indices, Int_t n);
57
58 Int_t GetMaxITScluster() {return fnMaxITScluster;}
59 Int_t GetMaxTPCcluster() {return fnMaxTPCcluster;}
60 Int_t GetMaxTRDcluster() {return fnMaxTRDcluster;}
61
1d99986f 62protected:
15e85efa 63 Float_t f1P; // 1/P (1/(GeV/c))
6d3a7bbf 64 Int_t fnMaxITScluster; // Max number of ITS clusters
65 Int_t fnMaxTPCcluster; // Max number of TPC clusters
66 Int_t fnMaxTRDcluster; // Max number of TRD clusters
67 Int_t* fITSindex; //[fnMaxITScluster] indices of the ITS clusters
68 Int_t* fTPCindex; //[fnMaxTPCcluster] indices of the TPC clusters
69 Int_t* fTRDindex; //[fnMaxTRDcluster] indices of the TRD clusters
70
15e85efa 71 AliTrackPointArray *fPoints;//Array of track space points in the global frame
00dce61a 72 TObjArray *fCalibContainer; //Array of objects for calibration
15e85efa 73 AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes)
74 AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes)
ded25cc6 75 //
76 //
77 AliExternalTrackParam * fTPCOut; // tpc outer parameters
78 AliExternalTrackParam * fITSOut; // its outer parameters
79 AliExternalTrackParam * fTRDIn; // trd inner parameters
80
7454372c 81private:
42cdc768 82 AliESDfriendTrack &operator=(const AliESDfriendTrack & /* t */) {return *this;}
7454372c 83
6d3a7bbf 84 ClassDef(AliESDfriendTrack,4) //ESD friend track
1d99986f 85};
86
87#endif
88
89