]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDfriendTrack.h
Taking into account that only 1 or 2 values may be present for the
[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(){return  fTPCOut;} 
51   const AliExternalTrackParam * GetITSOut() { return fITSOut;} 
52   const AliExternalTrackParam * GetTRDIn() { return fTRDIn;} 
53
54 protected:
55   Float_t f1P;                     // 1/P (1/(GeV/c))
56   Int_t fITSindex[kMaxITScluster]; // indices of the ITS clusters 
57   Int_t fTPCindex[kMaxTPCcluster]; // indices of the TPC clusters
58   Int_t fTRDindex[kMaxTRDcluster]; // indices of the TRD clusters
59   AliTrackPointArray *fPoints;//Array of track space points in the global frame
60   TObjArray      *fCalibContainer; //Array of objects for calibration    
61   AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes) 
62   AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes) 
63   //
64   //
65   AliExternalTrackParam * fTPCOut; // tpc outer parameters
66   AliExternalTrackParam * fITSOut; // its outer parameters
67   AliExternalTrackParam * fTRDIn;  // trd inner parameters
68
69 private:
70   AliESDfriendTrack &operator=(const AliESDfriendTrack & /* t */) {return *this;}
71
72   ClassDef(AliESDfriendTrack,3) //ESD friend track
73 };
74
75 #endif
76
77