]>
Commit | Line | Data |
---|---|---|
c6914c83 | 1 | #ifndef ALITPCCALIBLASER_H |
2 | #define ALITPCCALIBLASER_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //// | |
8 | //// | |
9 | //// | |
10 | ||
11 | #include "TObject.h" | |
12 | #include "TObjArray.h" | |
13 | #include "TLinearFitter.h" | |
14 | #include "AliTPCcalibBase.h" | |
15 | #include "TH1.h" | |
be113f6e | 16 | #include "TH2F.h" |
c6914c83 | 17 | |
c18f4385 | 18 | |
c6914c83 | 19 | class AliExternalTrackParam; |
20 | class AliESDtrack; | |
e9f38a4b | 21 | class AliESDEvent; |
22 | class AliESDfriend; | |
c6914c83 | 23 | class TGraphErrors; |
1fd56785 | 24 | class TTree; |
be113f6e | 25 | class TH2F; |
26 | class AliTPCLaserTrack; | |
592a0c8f | 27 | class TCut; |
c18f4385 | 28 | |
c6914c83 | 29 | class AliTPCcalibLaser:public AliTPCcalibBase { |
30 | public: | |
31 | AliTPCcalibLaser(); | |
3ac724f0 | 32 | AliTPCcalibLaser(const Text_t *name, const Text_t *title, Bool_t full=kTRUE); |
be113f6e | 33 | AliTPCcalibLaser(const AliTPCcalibLaser& laser); |
34 | AliTPCcalibLaser & operator=(const AliTPCcalibLaser& calibLaser); | |
c6914c83 | 35 | virtual ~AliTPCcalibLaser(); |
e9f38a4b | 36 | virtual void Process(AliESDEvent *event); |
592a0c8f | 37 | Int_t GetNtracks(){return fNtracks;} |
c6914c83 | 38 | virtual void Analyze(); |
c03e3250 | 39 | virtual Long64_t Merge(TCollection *li); |
57dc06f2 | 40 | virtual void DumpMeanInfo(Float_t bfield, Int_t run=-1); |
592a0c8f | 41 | static void DumpScanInfo(TTree * tree, const char * cutUser="entries>300&&(gz2<0.15&&gphi2<0.1&&gp42<0.02&&abs(gp41)<0.03)"); |
e5c59218 | 42 | static void DumpFitInfo(TTree * chainFit, Int_t id); |
be113f6e | 43 | static TH1* GetLaserProjection(TH2F* his, Int_t laser){return his->ProjectionY("aaa",laser+1,laser+1);} |
e9f38a4b | 44 | // |
45 | // | |
46 | virtual void DumpLaser(Int_t id); | |
61ae0623 | 47 | virtual void RefitLaserJW(Int_t id); |
c18f4385 | 48 | void FitDriftV(); |
be113f6e | 49 | void MakeDistHisto(Int_t id); |
61ae0623 | 50 | void AddCut(Double_t xcut, Double_t ycut, Double_t ncl){fEdgeXcuts[fNcuts]=xcut; fEdgeYcuts[fNcuts]=ycut; fNClCuts[fNcuts]=ncl; fNcuts++;} |
51 | ||
e9f38a4b | 52 | Int_t FindMirror(AliESDtrack *track, AliTPCseed *seed); |
c18f4385 | 53 | Bool_t AcceptLaser(Int_t id); |
be113f6e | 54 | Float_t GetDistance(AliExternalTrackParam *track, AliTPCLaserTrack *ltrp); |
55 | void MakeFitHistos(); | |
56 | void MergeFitHistos(AliTPCcalibLaser * add); | |
1aa15e8d | 57 | void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);}; |
58 | void Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);} | |
59 | // | |
7af539c6 | 60 | void SetBeamParameters(TVectorD& meanOffset, TVectorD& meanSlope, |
61 | TVectorD& sectorArray, Int_t option); | |
be113f6e | 62 | |
e9f38a4b | 63 | AliESDEvent * fESD; //! ESD event - not OWNER |
64 | AliESDfriend * fESDfriend; //! ESD event - not OWNER | |
592a0c8f | 65 | Int_t fNtracks; //! counter of associated laser tracks |
66 | // | |
e9f38a4b | 67 | TObjArray fTracksMirror; //! tracks with mirror information |
68 | TObjArray fTracksEsd; //! tracks with reconstructed information - | |
69 | // not owner ESD | |
70 | TObjArray fTracksEsdParam; //! tracks with reconstructed information - | |
71 | // is owner ESD at mirror | |
72 | TObjArray fTracksTPC; //! tracks with reconstructed information - TPC | |
be113f6e | 73 | Int_t fCounter[336]; //! counter of usage |
74 | Float_t fClusterCounter[336]; //!couter of clusters in "sensitive are" | |
75 | Float_t fClusterSatur[336]; //!couter of saturated clusters in "sensitive are" | |
3ac724f0 | 76 | Bool_t fFullCalib; // do full calibrration |
be113f6e | 77 | Float_t fFitZ[336]; //fitted z position |
c18f4385 | 78 | // |
2b35e8e6 | 79 | TObjArray fDeltaZ; //-> array of histograms of delta z for each track |
be113f6e | 80 | TObjArray fDeltaP3; //-> array of histograms of P3 for each track |
81 | TObjArray fDeltaP4; //-> array of histograms of P4 for each track | |
592a0c8f | 82 | TObjArray fDeltaPhi; //-> array of histograms of delta Phi for each track |
83 | TObjArray fDeltaPhiP; //-> array of histograms of delta Phi direction for each track | |
2b35e8e6 | 84 | TObjArray fSignals; //->Array of dedx signals |
7af539c6 | 85 | |
95a0e09b | 86 | // |
be113f6e | 87 | // Refit residuals histogram |
88 | // | |
89 | TH2F *fHisNclIn; //->Number of clusters inner | |
90 | TH2F *fHisNclOut; //->Number of clusters outer | |
91 | TH2F *fHisNclIO; //->Number of cluster inner outer | |
92 | TH2F *fHisLclIn; //->Level arm inner | |
93 | TH2F *fHisLclOut; //->Level arm outer | |
94 | TH2F *fHisLclIO; //->Level aram inner outer | |
95 | ||
96 | TH2F *fHisdEdx; //->dEdx histo | |
97 | TH2F *fHisdZfit; //->distance to the mirror after linear fit | |
98 | // | |
99 | // | |
100 | TH2F *fHisChi2YIn1; //->chi2 y inner - line | |
101 | TH2F *fHisChi2YOut1; //->chi2 y inner - line | |
102 | TH2F *fHisChi2YIn2; //->chi2 y inner - parabola | |
103 | TH2F *fHisChi2YOut2; //->chi2 y inner - parabola | |
104 | TH2F *fHisChi2YIO1; //->chi2 y IO - common | |
105 | TH2F *fHisChi2ZIn1; //->chi2 z inner - line | |
106 | TH2F *fHisChi2ZOut1; //->chi2 z inner - line | |
107 | TH2F *fHisChi2ZIn2; //->chi2 z inner - parabola | |
108 | TH2F *fHisChi2ZOut2; //->chi2 z inner - parabola | |
109 | TH2F *fHisChi2ZIO1; //->chi2 z IO - common | |
110 | // | |
111 | // | |
112 | TH2F *fHisPy1vP0; //-> delta y P0outer-P0inner - line | |
113 | TH2F *fHisPy2vP0; //-> delta y P0outer-P0inner - parabola | |
114 | TH2F *fHisPy3vP0; //-> delta y P0outer-P0inner - common parabola | |
115 | TH2F *fHisPy1vP1; //-> delta ky P1outer-P1inner - line | |
116 | TH2F *fHisPy2vP1; //-> delta ky P1outer-P1inner - parabola | |
117 | TH2F *fHisPy3vP1; //-> delta ky P1outer-P1inner - common parabola | |
118 | TH2F *fHisPy2vP2In; //-> Curv P2inner - parabola | |
119 | TH2F *fHisPy2vP2Out; //-> Curv P2outer - parabola | |
120 | TH2F *fHisPy3vP2IO; //-> Curv P2outerinner - common parabola | |
121 | // | |
122 | // | |
123 | TH2F *fHisPz1vP0; //-> delta z P0outer-P0inner - line | |
124 | TH2F *fHisPz2vP0; //-> delta z P0outer-P0inner - parabola | |
125 | TH2F *fHisPz3vP0; //-> delta z P0outer-P0inner - common parabola | |
126 | TH2F *fHisPz1vP1; //-> delta kz P1outer-P1inner - line | |
127 | TH2F *fHisPz2vP1; //-> delta kz P1outer-P1inner - parabola | |
128 | TH2F *fHisPz3vP1; //-> delta kz P1outer-P1inner - common parabola | |
129 | TH2F *fHisPz2vP2In; //-> Curv P2inner - parabola | |
130 | TH2F *fHisPz2vP2Out; //-> Curv P2outer - parabola | |
131 | TH2F *fHisPz3vP2IO; //-> Curv P2outerinner - common parabola | |
132 | // | |
95a0e09b | 133 | // Residual histograms |
134 | // | |
135 | TObjArray fDeltaYres; //-> array of histograms of delta y residuals for each track | |
136 | TObjArray fDeltaZres; //-> array of histograms of delta z residuals for each track | |
108953e9 | 137 | TObjArray fDeltaYres2; //-> array of histograms of delta y residuals for each track |
138 | TObjArray fDeltaZres2; //-> array of histograms of delta z residuals for each track | |
7af539c6 | 139 | TObjArray fDeltaYresAbs; //-> array of histograms of absolute delta y residuals for each track |
140 | TObjArray fDeltaZresAbs; //-> array of histograms of absolute delta z residuals for each track | |
108953e9 | 141 | // TObjArray fDeltaYres3; //-> array of histograms of delta y residuals for each track |
142 | //TObjArray fDeltaZres3; //-> array of histograms of delta z residuals for each track | |
143 | ||
95a0e09b | 144 | // |
c18f4385 | 145 | TVectorD* fFitAside; //! drift fit - A side |
146 | TVectorD* fFitCside; //! drift fit - C- side | |
108953e9 | 147 | TVectorD* fFitACside; //! drift fit - A+C- side |
c18f4385 | 148 | // |
61ae0623 | 149 | TVectorD fEdgeXcuts; //! cuts in local x direction; used in the refit of the laser tracks |
150 | TVectorD fEdgeYcuts; //! cuts in local y direction; used in the refit of the laser tracks | |
151 | TVectorD fNClCuts; //! cuts on the number of clusters per tracklet; used in the refit of the laser tracks | |
152 | Int_t fNcuts; //! number of cuts | |
7af539c6 | 153 | TVectorD fBeamSectorOuter; //! sector map for beams in outer sector |
154 | TVectorD fBeamSectorInner; //! sector map for beams in inner sector | |
155 | TVectorD fBeamOffsetYOuter; //! absolute y beam offset in outer sector | |
156 | TVectorD fBeamSlopeYOuter; //! absolute y beam slope in outer sector | |
157 | TVectorD fBeamOffsetYInner; //! absolute y beam offset in inner sector | |
158 | TVectorD fBeamSlopeYInner; //! absolute y beam slope in inner sector | |
159 | TVectorD fBeamOffsetZOuter; //! absolute z beam offset in outer sectror | |
160 | TVectorD fBeamSlopeZOuter; //! absolute z beam slope in outer sector | |
161 | TVectorD fBeamOffsetZInner; //! absolute z beam offset in inner sectror | |
162 | TVectorD fBeamSlopeZInner; //! absolute z beam slope in inner sector | |
163 | Bool_t fInverseSlopeZ; //! invert slope in z - mismatch between database and lasers | |
61ae0623 | 164 | // |
c18f4385 | 165 | private: |
108953e9 | 166 | ClassDef(AliTPCcalibLaser,3) |
c6914c83 | 167 | }; |
168 | ||
169 | ||
170 | ||
171 | ||
172 | ||
173 | #endif |