]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibTime.h
c9387f7f8b64cd58d2a8cbba39e25b0e84ef3a64
[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
24 #include "TTreeStream.h"
25 #include "TMap.h"
26  
27 class AliTPCcalibTime:public AliTPCcalibBase {
28 public:
29   AliTPCcalibTime(); 
30   AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift);
31   virtual ~AliTPCcalibTime();
32   
33   virtual void           Process(AliESDEvent *event);
34   virtual Long64_t       Merge(TCollection *li);
35   virtual void           Analyze();
36   static Bool_t          IsLaser      (AliESDEvent *event);
37   static Bool_t          IsCosmics    (AliESDEvent *event);
38   static Bool_t          IsBeam       (AliESDEvent *event);
39   void                   ProcessLaser (AliESDEvent *event);
40   void                   ProcessCosmic(AliESDEvent *event);
41   void                   ProcessBeam  (AliESDEvent *event);
42   Bool_t                 IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
43   Bool_t                 IsCross(AliESDtrack *tr0, AliESDtrack *tr1);
44   Bool_t                 IsSame (AliESDtrack *tr0, AliESDtrack *tr1);
45
46   THnSparse*    GetHistVdriftLaserA(Int_t index=1){return fHistVdriftLaserA[index];};
47   THnSparse*    GetHistVdriftLaserC(Int_t index=1){return fHistVdriftLaserC[index];};
48   THnSparse*    GetHistoDrift(const char* name);
49   TObjArray*    GetHistoDrift();
50   TGraphErrors* GetGraphDrift(const char* name);
51   TObjArray*    GetGraphDrift();
52   AliSplineFit* GetFitDrift(const char* name);
53 //  TObjArray*    GetFitDrift();
54   TH1F*         GetCosmiMatchingHisto(Int_t index=0){return fCosmiMatchingHisto[index];};
55   
56   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
57   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
58 private:
59   void ResetCurrent();                  // reset current values
60
61   AliTPCcalibLaser * fLaser;            //! laser calibration
62   //
63   // current information
64   //
65   Float_t fDz;          //! current delta z
66   
67   // cuts
68   //
69   Float_t fCutMaxD;     // maximal distance in rfi ditection
70   Float_t fCutMaxDz;    // maximal distance in z ditection
71   Float_t fCutTheta;    // maximal distance in theta ditection
72   Float_t fCutMinDir;   // direction vector products
73   Int_t   fCutTracks;   // maximal number of tracks
74  
75   AliTPCcalibTime(const AliTPCcalibTime&); 
76   AliTPCcalibTime& operator=(const AliTPCcalibTime&); 
77
78   TH1F* fCosmiMatchingHisto[10];
79
80   // laser histo
81   THnSparse * fHistVdriftLaserA[3];     //Histograms for V drift from laser
82   THnSparse * fHistVdriftLaserC[3];     //Histograms for V drift from laser
83   // DELTA Z histo
84 //  TMap*      fMapDz;                  //Tmap of V drifts for different triggers
85   TObjArray* fArrayDz;                  // array of DZ histograms for different triggers
86
87   Int_t    fTimeBins;                   //Bins time
88   Double_t fTimeStart;                  //Start time
89   Double_t fTimeEnd;                    //End time
90   Int_t    fPtBins;                     //Bins pt
91   Double_t fPtStart;                    //Start pt
92   Double_t fPtEnd;                      //End pt
93   Int_t    fVdriftBins;                 //Bins vdrift
94   Double_t fVdriftStart;                //Start vdrift
95   Double_t fVdriftEnd;                  //End vdrift
96   Int_t    fRunBins;                    //Bins run
97   Double_t fRunStart;                   //Start run
98   Double_t fRunEnd;                     //End run
99   Int_t    fBinsVdrift[4];              //Bins for vdrift
100   Double_t fXminVdrift[4];              //Xmax for vdrift
101   Double_t fXmaxVdrift[4];              //Xmin for vdrift
102   ClassDef(AliTPCcalibTime, 2); 
103 };
104
105 #endif
106
107