]>
Commit | Line | Data |
---|---|---|
c74c5f6c | 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 */ | |
e0ef0ad7 | 6 | /* |
7 | Comments to be written here: | |
8 | What do we calibrate. | |
9 | Time dependence of gain and drift velocity in order to account for changes in: temperature, pressure, gas composition. | |
10 | */ | |
11 | ||
c74c5f6c | 12 | |
13 | #include "AliTPCcalibBase.h" | |
c6c14e33 | 14 | #include "THnSparse.h" |
e0ef0ad7 | 15 | //#include "TH1D.h" // Temporary make code compiling for HLT in the |
16 | ||
2811495d | 17 | class TObjArray; |
c74c5f6c | 18 | class TH1F; |
19 | class TH3F; | |
20 | class TH2F; | |
3e0d9569 | 21 | class TH1D; |
c74c5f6c | 22 | class TList; |
0efde530 | 23 | class AliESDEvent; |
24 | class AliESDtrack; | |
da6c0bc9 | 25 | class AliTPCcalibLaser; |
74235403 | 26 | class TGraphErrors; |
dde68d36 | 27 | class AliSplineFit; |
0efde530 | 28 | class AliESDfriendTrack; |
c74c5f6c | 29 | |
c74c5f6c | 30 | class AliTPCcalibTime:public AliTPCcalibBase { |
31 | public: | |
32 | AliTPCcalibTime(); | |
660f0543 | 33 | AliTPCcalibTime(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeVdrift, Int_t memoryMode=2); |
c74c5f6c | 34 | virtual ~AliTPCcalibTime(); |
35 | ||
0efde530 | 36 | virtual void Process(AliESDEvent *event); |
2811495d | 37 | virtual Long64_t Merge(TCollection *const li); |
c74c5f6c | 38 | virtual void Analyze(); |
9170f0f0 | 39 | //static Bool_t IsLaser (const AliESDEvent *const event) const; |
40 | //static Bool_t IsCosmics (const AliESDEvent *const event) const; | |
41 | //static Bool_t IsBeam (const AliESDEvent *const event) const; | |
0efde530 | 42 | void ProcessLaser (AliESDEvent *event); |
43 | void ProcessCosmic(const AliESDEvent *const event); | |
44 | void ProcessBeam (const AliESDEvent *const event); | |
e0ef0ad7 | 45 | Bool_t IsPair(const AliExternalTrackParam *tr0, const AliExternalTrackParam *tr1); |
0efde530 | 46 | Bool_t IsCross(const AliESDtrack *const tr0, const AliESDtrack *const tr1); |
47 | Bool_t IsSame (const AliESDtrack *const tr0, const AliESDtrack *const tr1); | |
48 | void ProcessSame(const AliESDtrack *const track, AliESDfriendTrack *const friendTrack, const AliESDEvent *const event); | |
49 | void ProcessAlignITS(AliESDtrack *const track, const AliESDfriendTrack *const friendTrack, const AliESDEvent *const event, AliESDfriend *const ESDfriend); | |
50 | void ProcessAlignTRD(AliESDtrack* const track, const AliESDfriendTrack *const friendTrack); | |
51 | void ProcessAlignTOF(AliESDtrack* const track, const AliESDfriendTrack *const friendTrack); | |
d3ce44cb | 52 | |
6ba68367 | 53 | THnSparse* GetHistVdriftLaserA(Int_t index=1) const {return fHistVdriftLaserA[index];}; |
54 | THnSparse* GetHistVdriftLaserC(Int_t index=1) const {return fHistVdriftLaserC[index];}; | |
2811495d | 55 | THnSparse* GetHistoDrift(const char* name) const; |
56 | TObjArray* GetHistoDrift() const; | |
dde68d36 | 57 | TGraphErrors* GetGraphDrift(const char* name); |
58 | TObjArray* GetGraphDrift(); | |
59 | AliSplineFit* GetFitDrift(const char* name); | |
60 | // TObjArray* GetFitDrift(); | |
6ba68367 | 61 | TH1F* GetCosmiMatchingHisto(Int_t index=0) const {return fCosmiMatchingHisto[index];}; |
0efde530 | 62 | void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);}; |
1aa15e8d | 63 | void Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);} |
2811495d | 64 | TObjArray* GetAlignITSTPC() const {return fAlignITSTPC;} // alignemnt array ITS TPC match |
65 | TObjArray* GetAlignTRDTPC() const {return fAlignTRDTPC;} // alignemnt array TRD TPC match | |
66 | TObjArray* GetAlignTOFTPC() const {return fAlignTOFTPC;} // alignemnt array TOF TPC match | |
3e55050f | 67 | |
9170f0f0 | 68 | THnSparse * GetTPCVertexHisto(Int_t index) const { return fTPCVertex[index%12];} |
69 | THnSparse * GetTPCVertexHistoCorrelation(Int_t index) const { return fTPCVertexCorrelation[index%5];} | |
70036ef3 | 70 | |
b9908d0b | 71 | THnSparse* GetResHistoTPCCE(Int_t index) const { return (index<5) ? fResHistoTPCCE[index]:0;} //TPC-CE matching map |
9112627b | 72 | THnSparse* GetResHistoTPCITS(Int_t index) const { return (index<5) ? fResHistoTPCITS[index]:0;} //TPC-ITS matching map |
391ffdb2 | 73 | THnSparse* GetResHistoTPCvertex(Int_t index) const { return (index<5) ? fResHistoTPCvertex[index] :0;} //TPC vertex matching map |
74 | THnSparse* GetResHistoTPCTRD(Int_t index) const { return (index<5) ? fResHistoTPCTRD[index]:0;} //TPC-TRD matching map | |
0b736a46 | 75 | THnSparse* GetResHistoTPCTOF(Int_t index) const { return (index<5) ? fResHistoTPCTOF[index]:0;} //TPC-TOF matching map |
391ffdb2 | 76 | |
77 | void BookDistortionMaps(); // book histograms | |
b9908d0b | 78 | void FillResHistoTPCCE(const AliExternalTrackParam * pTPCIn, const AliExternalTrackParam * pTPCOut ); // fill residual histo |
391ffdb2 | 79 | void FillResHistoTPCITS(const AliExternalTrackParam * pTPCIn, const AliExternalTrackParam * pITSOut ); // fill residual histo |
0efde530 | 80 | void FillResHistoTPC(const AliESDtrack * pTrack); |
391ffdb2 | 81 | void FillResHistoTPCTRD(const AliExternalTrackParam * pTPCOut, const AliExternalTrackParam * pTRDIn ); |
0b736a46 | 82 | void FillResHistoTPCTOF(const AliExternalTrackParam * pTPCOut, const AliExternalTrackParam * pTOFIn ); |
3e55050f | 83 | |
00ec4542 | 84 | TObjArray * GetLaserArrayA() const { return fArrayLaserA;} |
85 | TObjArray * GetLaserArrayC() const { return fArrayLaserC;} | |
86 | ||
c6c14e33 | 87 | Int_t GetEntries() const {if (fResHistoTPCTOF[0]) return fResHistoTPCITS[0]->GetEntries(); else return 0;} |
b9ab8e40 | 88 | |
89 | void SetCutTracks(Int_t maxTracks) { fCutTracks = maxTracks; } // set maximal number of tracks | |
90 | Int_t GetCutTracks() const { return fCutTracks; } // retun maximal number of tracks | |
91 | ||
c6c14e33 | 92 | static Double_t fgResHistoMergeCut; |
93 | static void SetResHistoMergeCut(Double_t d) {fgResHistoMergeCut=d;} | |
b9ab8e40 | 94 | |
00ec4542 | 95 | protected: |
da6c0bc9 | 96 | void ResetCurrent(); // reset current values |
660f0543 | 97 | Int_t fMemoryMode; // 0 -do not fill THnSparse with residuals 1- fill only important QA THn 2 - Fill all THnsparse for calibration |
da6c0bc9 | 98 | AliTPCcalibLaser * fLaser; //! laser calibration |
99 | // | |
100 | // current information | |
101 | // | |
102 | Float_t fDz; //! current delta z | |
da6c0bc9 | 103 | |
c74c5f6c | 104 | // cuts |
105 | // | |
106 | Float_t fCutMaxD; // maximal distance in rfi ditection | |
74235403 | 107 | Float_t fCutMaxDz; // maximal distance in z ditection |
c74c5f6c | 108 | Float_t fCutTheta; // maximal distance in theta ditection |
109 | Float_t fCutMinDir; // direction vector products | |
74235403 | 110 | Int_t fCutTracks; // maximal number of tracks |
c74c5f6c | 111 | |
c74c5f6c | 112 | |
e0ef0ad7 | 113 | TH1F* fCosmiMatchingHisto[10]; // cosmic matching histogram |
391ffdb2 | 114 | // |
115 | // distortion maps | |
116 | // | |
b9908d0b | 117 | THnSparse* fResHistoTPCCE[5]; //TPC-TPCE matching map |
391ffdb2 | 118 | THnSparse* fResHistoTPCITS[5]; //TPC-ITS matching map |
119 | THnSparse* fResHistoTPCvertex[5]; //TPC-ITS vertex matching map | |
120 | THnSparse* fResHistoTPCTRD[5]; //TPC-TRD matching map | |
0b736a46 | 121 | THnSparse* fResHistoTPCTOF[5]; //TPC-TRD matching map |
2be25cc9 | 122 | // laser histo |
74235403 | 123 | THnSparse * fHistVdriftLaserA[3]; //Histograms for V drift from laser |
124 | THnSparse * fHistVdriftLaserC[3]; //Histograms for V drift from laser | |
97d3fea0 | 125 | TObjArray *fArrayLaserA; //Object array of driftvelocity laserA |
126 | TObjArray *fArrayLaserC; //Object array of driftvelocity laserC | |
70036ef3 | 127 | // |
128 | // TPC vertex A side C side histo | |
129 | // | |
b1fea14f | 130 | THnSparse * fTPCVertex[12]; // TPC vertex histograms A side c side - A+C -ESD |
131 | THnSparse * fTPCVertexCorrelation[5]; // TPC vertex correlation A side C side with TPC vertex and ITS vertex | |
2be25cc9 | 132 | // DELTA Z histo |
dde68d36 | 133 | TObjArray* fArrayDz; // array of DZ histograms for different triggers |
817766d5 | 134 | TObjArray* fAlignITSTPC; // alignemnt array ITS TPC match |
135 | TObjArray* fAlignTRDTPC; // alignemnt array TRD TPC match | |
136 | TObjArray* fAlignTOFTPC; // alignemnt array TOF TPC match | |
97d3fea0 | 137 | Int_t fTimeKalmanBin; // width of Kalman bin - time in seconds |
74235403 | 138 | Int_t fTimeBins; //Bins time |
139 | Double_t fTimeStart; //Start time | |
140 | Double_t fTimeEnd; //End time | |
141 | Int_t fPtBins; //Bins pt | |
142 | Double_t fPtStart; //Start pt | |
143 | Double_t fPtEnd; //End pt | |
144 | Int_t fVdriftBins; //Bins vdrift | |
145 | Double_t fVdriftStart; //Start vdrift | |
146 | Double_t fVdriftEnd; //End vdrift | |
147 | Int_t fRunBins; //Bins run | |
148 | Double_t fRunStart; //Start run | |
149 | Double_t fRunEnd; //End run | |
150 | Int_t fBinsVdrift[4]; //Bins for vdrift | |
151 | Double_t fXminVdrift[4]; //Xmax for vdrift | |
152 | Double_t fXmaxVdrift[4]; //Xmin for vdrift | |
00ec4542 | 153 | |
154 | private: | |
155 | AliTPCcalibTime(const AliTPCcalibTime&); | |
156 | AliTPCcalibTime& operator=(const AliTPCcalibTime&); | |
157 | ||
b1fea14f | 158 | ClassDef(AliTPCcalibTime, 10); |
c74c5f6c | 159 | }; |
160 | ||
161 | #endif | |
162 | ||
163 |