]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDfriendTrack.h
use Terminate function for producing summary plots (Markus)
[u/mrichter/AliRoot.git] / STEER / AliESDfriendTrack.h
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>
11 #include <AliExternalTrackParam.h>
12
13 class AliTrackPointArray;
14 class AliKalmanTrack;
15 class TObjArrray;
16 //_____________________________________________________________________________
17 class AliESDfriendTrack : public TObject {
18 public:
19   enum {
20     kMaxITScluster=12,
21     kMaxTPCcluster=160,
22     kMaxTRDcluster=180
23   };
24   AliESDfriendTrack();
25   AliESDfriendTrack(const AliESDfriendTrack &t);
26   virtual ~AliESDfriendTrack();
27
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;}
36   const AliTrackPointArray *GetTrackPointArray() const {return fPoints;}
37
38   void SetITStrack(AliKalmanTrack *t) {fITStrack=t;}
39   void SetTRDtrack(AliKalmanTrack *t) {fTRDtrack=t;}
40   AliKalmanTrack *GetTRDtrack() {return fTRDtrack;}
41   AliKalmanTrack *GetITStrack() {return fITStrack;}
42   void AddCalibObject(TObject * calibObject); 
43   TObject * GetCalibObject(Int_t index);
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() const {return  fTPCOut;} 
51   const AliExternalTrackParam * GetITSOut() const {return fITSOut;} 
52   const AliExternalTrackParam * GetTRDIn()  const {return fTRDIn;} 
53
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
62   // bit manipulation for filtering
63   void SetSkipBit(Bool_t skip){SetBit(23,skip);}
64   Bool_t TestSkipBit() {return TestBit(23);}
65
66 protected:
67   Float_t f1P;                     // 1/P (1/(GeV/c))
68   Int_t fnMaxITScluster; // Max number of ITS clusters
69   Int_t fnMaxTPCcluster; // Max number of TPC clusters
70   Int_t fnMaxTRDcluster; // Max number of TRD clusters
71   Int_t* fITSindex; //[fnMaxITScluster] indices of the ITS clusters 
72   Int_t* fTPCindex; //[fnMaxTPCcluster] indices of the TPC clusters
73   Int_t* fTRDindex; //[fnMaxTRDcluster] indices of the TRD clusters
74
75   AliTrackPointArray *fPoints;//Array of track space points in the global frame
76   TObjArray      *fCalibContainer; //Array of objects for calibration    
77   AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes) 
78   AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes) 
79   //
80   //
81   AliExternalTrackParam * fTPCOut; // tpc outer parameters
82   AliExternalTrackParam * fITSOut; // its outer parameters
83   AliExternalTrackParam * fTRDIn;  // trd inner parameters
84
85 private:
86   AliESDfriendTrack &operator=(const AliESDfriendTrack & /* t */) {return *this;}
87
88   ClassDef(AliESDfriendTrack,4) //ESD friend track
89 };
90
91 #endif
92
93