AliTPCcalibBase - use of the current event, track and seed innthe base class
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTime.h
1 #ifndef ALITPCCALIBTIME_H
2 #define ALITPCCALIBTIME_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include "AliTPCcalibBase.h"
8 #include "TH2F.h"
9 #include "TF1.h"
10 #include "TArrayD.h"
11 #include "TObjArray.h"
12
13 class TH1F;
14 class TH3F;
15 class TH2F;
16 class THnSparse;
17 class TList;
18 class AliESDEvent;
19 class AliESDtrack;
20 class AliTPCcalibLaser;
21 class TGraphErrors;
22 class AliSplineFit;
23 class AliESDfriendTrack;
24
25 #include "TTreeStream.h"
26 #include "TMap.h"
27  
28 class AliTPCcalibTime:public AliTPCcalibBase {
29 public:
30   AliTPCcalibTime(); 
31   AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift);
32   virtual ~AliTPCcalibTime();
33   
34   virtual void           Process(AliESDEvent *event);
35   virtual Long64_t       Merge(TCollection *li);
36   virtual void           Analyze();
37   static Bool_t          IsLaser      (AliESDEvent *event);
38   static Bool_t          IsCosmics    (AliESDEvent *event);
39   static Bool_t          IsBeam       (AliESDEvent *event);
40   void                   ProcessLaser (AliESDEvent *event);
41   void                   ProcessCosmic(AliESDEvent *event);
42   void                   ProcessBeam  (AliESDEvent *event);
43   Bool_t                 IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
44   Bool_t                 IsCross(AliESDtrack *tr0, AliESDtrack *tr1);
45   Bool_t                 IsSame (AliESDtrack *tr0, AliESDtrack *tr1);
46   void                   ProcessSame(AliESDtrack* track, AliESDfriendTrack *friendTrack,AliESDEvent *event);
47   void                   ProcessAlignITS(AliESDtrack* track, AliESDfriendTrack *friendTrack, AliESDEvent *event,AliESDfriend *ESDfriend);
48   void                   ProcessAlignTRD(AliESDtrack* track, AliESDfriendTrack *friendTrack);
49   void                   ProcessAlignTOF(AliESDtrack* track, AliESDfriendTrack *friendTrack);
50
51   THnSparse*    GetHistVdriftLaserA(Int_t index=1){return fHistVdriftLaserA[index];};
52   THnSparse*    GetHistVdriftLaserC(Int_t index=1){return fHistVdriftLaserC[index];};
53   THnSparse*    GetHistoDrift(const char* name);
54   TObjArray*    GetHistoDrift();
55   TGraphErrors* GetGraphDrift(const char* name);
56   TObjArray*    GetGraphDrift();
57   AliSplineFit* GetFitDrift(const char* name);
58 //  TObjArray*    GetFitDrift();
59   TH1F*         GetCosmiMatchingHisto(Int_t index=0){return fCosmiMatchingHisto[index];};
60   
61   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
62   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
63   TObjArray* GetAlignITSTPC() {return fAlignITSTPC;}              // alignemnt array ITS TPC match
64   TObjArray* GetAlignTRDTPC() {return fAlignTRDTPC;}              // alignemnt array TRD TPC match
65   TObjArray* GetAlignTOFTPC() {return fAlignTOFTPC;}              // alignemnt array TOF TPC match
66
67
68 private:
69   void ResetCurrent();                  // reset current values
70
71   AliTPCcalibLaser * fLaser;            //! laser calibration
72   //
73   // current information
74   //
75   Float_t fDz;          //! current delta z
76   
77   // cuts
78   //
79   Float_t fCutMaxD;     // maximal distance in rfi ditection
80   Float_t fCutMaxDz;    // maximal distance in z ditection
81   Float_t fCutTheta;    // maximal distance in theta ditection
82   Float_t fCutMinDir;   // direction vector products
83   Int_t   fCutTracks;   // maximal number of tracks
84  
85   AliTPCcalibTime(const AliTPCcalibTime&); 
86   AliTPCcalibTime& operator=(const AliTPCcalibTime&); 
87
88   TH1F* fCosmiMatchingHisto[10];
89
90   // laser histo
91   THnSparse * fHistVdriftLaserA[3];     //Histograms for V drift from laser
92   THnSparse * fHistVdriftLaserC[3];     //Histograms for V drift from laser
93   // DELTA Z histo
94 //  TMap*      fMapDz;                  //Tmap of V drifts for different triggers
95   TObjArray* fArrayDz;                  // array of DZ histograms for different triggers
96   TObjArray* fAlignITSTPC;              // alignemnt array ITS TPC match
97   TObjArray* fAlignTRDTPC;              // alignemnt array TRD TPC match
98   TObjArray* fAlignTOFTPC;              // alignemnt array TOF TPC match
99   Int_t    fTimeBins;                   //Bins time
100   Double_t fTimeStart;                  //Start time
101   Double_t fTimeEnd;                    //End time
102   Int_t    fPtBins;                     //Bins pt
103   Double_t fPtStart;                    //Start pt
104   Double_t fPtEnd;                      //End pt
105   Int_t    fVdriftBins;                 //Bins vdrift
106   Double_t fVdriftStart;                //Start vdrift
107   Double_t fVdriftEnd;                  //End vdrift
108   Int_t    fRunBins;                    //Bins run
109   Double_t fRunStart;                   //Start run
110   Double_t fRunEnd;                     //End run
111   Int_t    fBinsVdrift[4];              //Bins for vdrift
112   Double_t fXminVdrift[4];              //Xmax for vdrift
113   Double_t fXmaxVdrift[4];              //Xmin for vdrift
114   ClassDef(AliTPCcalibTime, 2); 
115 };
116
117 #endif
118
119