]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibTime.h
correcting AliHLTGlobalTriggerDecision::Clear(): using Delete instead of Clear for...
[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 "THnSparse.h"           // Temporary
9 #include "TH1D.h"                // Temporary make code compiling for HLT in the 
10 class TObjArray;
11 class TH1F;
12 class TH3F;
13 class TH2F;
14 class THnSparse;
15 class TH1D;
16 class TList;
17 class AliESDEvent;
18 class AliESDtrack;
19 class AliTPCcalibLaser;
20 class TGraphErrors;
21 class AliSplineFit;
22 class AliESDfriendTrack;
23
24 class AliTPCcalibTime:public AliTPCcalibBase {
25 public:
26   AliTPCcalibTime(); 
27   AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift, Int_t memoryMode=2);
28   virtual ~AliTPCcalibTime();
29   
30   virtual void           Process(AliESDEvent *event);
31   virtual Long64_t       Merge(TCollection *const li);
32   virtual void           Analyze();
33   static Bool_t          IsLaser      (const AliESDEvent *const event);
34   static Bool_t          IsCosmics    (const AliESDEvent *const event);
35   static Bool_t          IsBeam       (const AliESDEvent *const event);
36   void                   ProcessLaser (AliESDEvent *event);
37   void                   ProcessCosmic(const AliESDEvent *const event);
38   void                   ProcessBeam  (const AliESDEvent *const event);
39   Bool_t                 IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
40   Bool_t                 IsCross(AliESDtrack *const tr0, AliESDtrack *const tr1);
41   Bool_t                 IsSame (AliESDtrack *const tr0, AliESDtrack *const tr1);
42   void                   ProcessSame(AliESDtrack *const track, AliESDfriendTrack *const friendTrack, const AliESDEvent *const event);
43   void                   ProcessAlignITS(AliESDtrack *const track, AliESDfriendTrack *const friendTrack, const AliESDEvent *const event, AliESDfriend *const ESDfriend);
44   void                   ProcessAlignTRD(AliESDtrack* const track, AliESDfriendTrack *const friendTrack);
45   void                   ProcessAlignTOF(AliESDtrack* const track, AliESDfriendTrack *const friendTrack);
46
47   THnSparse*    GetHistVdriftLaserA(Int_t index=1) const {return fHistVdriftLaserA[index];};
48   THnSparse*    GetHistVdriftLaserC(Int_t index=1) const {return fHistVdriftLaserC[index];};
49   THnSparse*    GetHistoDrift(const char* name) const;
50   TObjArray*    GetHistoDrift() const;
51   TGraphErrors* GetGraphDrift(const char* name);
52   TObjArray*    GetGraphDrift();
53   AliSplineFit* GetFitDrift(const char* name);
54 //  TObjArray*    GetFitDrift();
55   TH1F*         GetCosmiMatchingHisto(Int_t index=0) const {return fCosmiMatchingHisto[index];};
56   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
57   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
58   TObjArray* GetAlignITSTPC() const {return fAlignITSTPC;}              // alignemnt array ITS TPC match
59   TObjArray* GetAlignTRDTPC() const {return fAlignTRDTPC;}              // alignemnt array TRD TPC match
60   TObjArray* GetAlignTOFTPC() const {return fAlignTOFTPC;}              // alignemnt array TOF TPC match
61
62   THnSparse * GetTPCVertexHisto(Int_t index) { return fTPCVertex[index%12];}
63
64   THnSparse*  GetResHistoTPCCE(Int_t index) const { return (index<5) ? fResHistoTPCCE[index]:0;}        //TPC-CE    matching map
65   THnSparse*  GetResHistoTPCITS(Int_t index) const { return (index<5) ? fResHistoTPCITS[index]:0;}        //TPC-ITS    matching map
66   THnSparse*  GetResHistoTPCvertex(Int_t index)      const { return (index<5) ? fResHistoTPCvertex[index]   :0;}        //TPC vertex matching map
67   THnSparse*  GetResHistoTPCTRD(Int_t index)   const { return (index<5) ? fResHistoTPCTRD[index]:0;}        //TPC-TRD    matching map
68   THnSparse*  GetResHistoTPCTOF(Int_t index)   const { return (index<5) ? fResHistoTPCTOF[index]:0;}        //TPC-TOF    matching map
69
70   void        BookDistortionMaps();      // book histograms
71   void        FillResHistoTPCCE(const AliExternalTrackParam * pTPCIn, const AliExternalTrackParam * pTPCOut );       // fill residual histo
72   void        FillResHistoTPCITS(const AliExternalTrackParam * pTPCIn, const AliExternalTrackParam * pITSOut );       // fill residual histo
73   void        FillResHistoTPC(const AliESDtrack * pTrack);
74   void        FillResHistoTPCTRD(const AliExternalTrackParam * pTPCOut, const AliExternalTrackParam * pTRDIn );
75   void        FillResHistoTPCTOF(const AliExternalTrackParam * pTPCOut, const AliExternalTrackParam * pTOFIn );
76
77   TObjArray * GetLaserArrayA() const { return fArrayLaserA;}
78   TObjArray * GetLaserArrayC() const { return fArrayLaserC;}
79
80 protected:
81   void ResetCurrent();                  // reset current values
82   Int_t              fMemoryMode;       // 0 -do not fill THnSparse with residuals  1- fill only important QA THn 2 - Fill all THnsparse for calibration
83   AliTPCcalibLaser * fLaser;            //! laser calibration
84   //
85   // current information
86   //
87   Float_t fDz;          //! current delta z
88   
89   // cuts
90   //
91   Float_t fCutMaxD;     // maximal distance in rfi ditection
92   Float_t fCutMaxDz;    // maximal distance in z ditection
93   Float_t fCutTheta;    // maximal distance in theta ditection
94   Float_t fCutMinDir;   // direction vector products
95   Int_t   fCutTracks;   // maximal number of tracks
96  
97
98   TH1F* fCosmiMatchingHisto[10];
99   //
100   // distortion maps
101   //
102   THnSparse*  fResHistoTPCCE[5];        //TPC-TPCE matching map
103   THnSparse*  fResHistoTPCITS[5];        //TPC-ITS    matching map
104   THnSparse*  fResHistoTPCvertex[5];           //TPC-ITS    vertex matching map
105   THnSparse*  fResHistoTPCTRD[5];        //TPC-TRD    matching map
106   THnSparse*  fResHistoTPCTOF[5];        //TPC-TRD    matching map
107   // laser histo
108   THnSparse * fHistVdriftLaserA[3];     //Histograms for V drift from laser
109   THnSparse * fHistVdriftLaserC[3];     //Histograms for V drift from laser
110   TObjArray *fArrayLaserA;              //Object array of driftvelocity laserA
111   TObjArray *fArrayLaserC;              //Object array of driftvelocity laserC
112   //
113   // TPC vertex A side C side histo
114   //
115   THnSparse * fTPCVertex[12];                  // TPC vertex histograms A side c side - A+C -ESD
116   // DELTA Z histo
117   TObjArray* fArrayDz;                  // array of DZ histograms for different triggers
118   TObjArray* fAlignITSTPC;              // alignemnt array ITS TPC match
119   TObjArray* fAlignTRDTPC;              // alignemnt array TRD TPC match
120   TObjArray* fAlignTOFTPC;              // alignemnt array TOF TPC match
121   Int_t      fTimeKalmanBin;            // width of Kalman bin - time in seconds
122   Int_t    fTimeBins;                   //Bins time
123   Double_t fTimeStart;                  //Start time
124   Double_t fTimeEnd;                    //End time
125   Int_t    fPtBins;                     //Bins pt
126   Double_t fPtStart;                    //Start pt
127   Double_t fPtEnd;                      //End pt
128   Int_t    fVdriftBins;                 //Bins vdrift
129   Double_t fVdriftStart;                //Start vdrift
130   Double_t fVdriftEnd;                  //End vdrift
131   Int_t    fRunBins;                    //Bins run
132   Double_t fRunStart;                   //Start run
133   Double_t fRunEnd;                     //End run
134   Int_t    fBinsVdrift[4];              //Bins for vdrift
135   Double_t fXminVdrift[4];              //Xmax for vdrift
136   Double_t fXmaxVdrift[4];              //Xmin for vdrift
137
138 private:
139   AliTPCcalibTime(const AliTPCcalibTime&); 
140   AliTPCcalibTime& operator=(const AliTPCcalibTime&); 
141
142   ClassDef(AliTPCcalibTime, 8); 
143 };
144
145 #endif
146
147