]>
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 | // | |
be113f6e | 60 | |
e9f38a4b | 61 | AliESDEvent * fESD; //! ESD event - not OWNER |
62 | AliESDfriend * fESDfriend; //! ESD event - not OWNER | |
592a0c8f | 63 | Int_t fNtracks; //! counter of associated laser tracks |
64 | // | |
e9f38a4b | 65 | TObjArray fTracksMirror; //! tracks with mirror information |
66 | TObjArray fTracksEsd; //! tracks with reconstructed information - | |
67 | // not owner ESD | |
68 | TObjArray fTracksEsdParam; //! tracks with reconstructed information - | |
69 | // is owner ESD at mirror | |
70 | TObjArray fTracksTPC; //! tracks with reconstructed information - TPC | |
be113f6e | 71 | Int_t fCounter[336]; //! counter of usage |
72 | Float_t fClusterCounter[336]; //!couter of clusters in "sensitive are" | |
73 | Float_t fClusterSatur[336]; //!couter of saturated clusters in "sensitive are" | |
3ac724f0 | 74 | Bool_t fFullCalib; // do full calibrration |
be113f6e | 75 | Float_t fFitZ[336]; //fitted z position |
c18f4385 | 76 | // |
2b35e8e6 | 77 | TObjArray fDeltaZ; //-> array of histograms of delta z for each track |
be113f6e | 78 | TObjArray fDeltaP3; //-> array of histograms of P3 for each track |
79 | TObjArray fDeltaP4; //-> array of histograms of P4 for each track | |
592a0c8f | 80 | TObjArray fDeltaPhi; //-> array of histograms of delta Phi for each track |
81 | TObjArray fDeltaPhiP; //-> array of histograms of delta Phi direction for each track | |
2b35e8e6 | 82 | TObjArray fSignals; //->Array of dedx signals |
95a0e09b | 83 | // |
be113f6e | 84 | // Refit residuals histogram |
85 | // | |
86 | TH2F *fHisNclIn; //->Number of clusters inner | |
87 | TH2F *fHisNclOut; //->Number of clusters outer | |
88 | TH2F *fHisNclIO; //->Number of cluster inner outer | |
89 | TH2F *fHisLclIn; //->Level arm inner | |
90 | TH2F *fHisLclOut; //->Level arm outer | |
91 | TH2F *fHisLclIO; //->Level aram inner outer | |
92 | ||
93 | TH2F *fHisdEdx; //->dEdx histo | |
94 | TH2F *fHisdZfit; //->distance to the mirror after linear fit | |
95 | // | |
96 | // | |
97 | TH2F *fHisChi2YIn1; //->chi2 y inner - line | |
98 | TH2F *fHisChi2YOut1; //->chi2 y inner - line | |
99 | TH2F *fHisChi2YIn2; //->chi2 y inner - parabola | |
100 | TH2F *fHisChi2YOut2; //->chi2 y inner - parabola | |
101 | TH2F *fHisChi2YIO1; //->chi2 y IO - common | |
102 | TH2F *fHisChi2ZIn1; //->chi2 z inner - line | |
103 | TH2F *fHisChi2ZOut1; //->chi2 z inner - line | |
104 | TH2F *fHisChi2ZIn2; //->chi2 z inner - parabola | |
105 | TH2F *fHisChi2ZOut2; //->chi2 z inner - parabola | |
106 | TH2F *fHisChi2ZIO1; //->chi2 z IO - common | |
107 | // | |
108 | // | |
109 | TH2F *fHisPy1vP0; //-> delta y P0outer-P0inner - line | |
110 | TH2F *fHisPy2vP0; //-> delta y P0outer-P0inner - parabola | |
111 | TH2F *fHisPy3vP0; //-> delta y P0outer-P0inner - common parabola | |
112 | TH2F *fHisPy1vP1; //-> delta ky P1outer-P1inner - line | |
113 | TH2F *fHisPy2vP1; //-> delta ky P1outer-P1inner - parabola | |
114 | TH2F *fHisPy3vP1; //-> delta ky P1outer-P1inner - common parabola | |
115 | TH2F *fHisPy2vP2In; //-> Curv P2inner - parabola | |
116 | TH2F *fHisPy2vP2Out; //-> Curv P2outer - parabola | |
117 | TH2F *fHisPy3vP2IO; //-> Curv P2outerinner - common parabola | |
118 | // | |
119 | // | |
120 | TH2F *fHisPz1vP0; //-> delta z P0outer-P0inner - line | |
121 | TH2F *fHisPz2vP0; //-> delta z P0outer-P0inner - parabola | |
122 | TH2F *fHisPz3vP0; //-> delta z P0outer-P0inner - common parabola | |
123 | TH2F *fHisPz1vP1; //-> delta kz P1outer-P1inner - line | |
124 | TH2F *fHisPz2vP1; //-> delta kz P1outer-P1inner - parabola | |
125 | TH2F *fHisPz3vP1; //-> delta kz P1outer-P1inner - common parabola | |
126 | TH2F *fHisPz2vP2In; //-> Curv P2inner - parabola | |
127 | TH2F *fHisPz2vP2Out; //-> Curv P2outer - parabola | |
128 | TH2F *fHisPz3vP2IO; //-> Curv P2outerinner - common parabola | |
129 | // | |
95a0e09b | 130 | // Residual histograms |
131 | // | |
132 | TObjArray fDeltaYres; //-> array of histograms of delta y residuals for each track | |
133 | TObjArray fDeltaZres; //-> array of histograms of delta z residuals for each track | |
108953e9 | 134 | TObjArray fDeltaYres2; //-> array of histograms of delta y residuals for each track |
135 | TObjArray fDeltaZres2; //-> array of histograms of delta z residuals for each track | |
136 | // TObjArray fDeltaYres3; //-> array of histograms of delta y residuals for each track | |
137 | //TObjArray fDeltaZres3; //-> array of histograms of delta z residuals for each track | |
138 | ||
95a0e09b | 139 | // |
c18f4385 | 140 | TVectorD* fFitAside; //! drift fit - A side |
141 | TVectorD* fFitCside; //! drift fit - C- side | |
108953e9 | 142 | TVectorD* fFitACside; //! drift fit - A+C- side |
c18f4385 | 143 | // |
61ae0623 | 144 | TVectorD fEdgeXcuts; //! cuts in local x direction; used in the refit of the laser tracks |
145 | TVectorD fEdgeYcuts; //! cuts in local y direction; used in the refit of the laser tracks | |
146 | TVectorD fNClCuts; //! cuts on the number of clusters per tracklet; used in the refit of the laser tracks | |
147 | Int_t fNcuts; //! number of cuts | |
148 | // | |
c18f4385 | 149 | private: |
108953e9 | 150 | ClassDef(AliTPCcalibLaser,3) |
c6914c83 | 151 | }; |
152 | ||
153 | ||
154 | ||
155 | ||
156 | ||
157 | #endif |