]>
Commit | Line | Data |
---|---|---|
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" | |
16 | #include "TH2F.h" | |
17 | ||
18 | ||
19 | class AliExternalTrackParam; | |
20 | class AliESDtrack; | |
21 | class AliESDEvent; | |
22 | class AliESDfriend; | |
23 | class TGraphErrors; | |
24 | class TTree; | |
25 | class TH2F; | |
26 | class AliTPCLaserTrack; | |
27 | ||
28 | class AliTPCcalibLaser:public AliTPCcalibBase { | |
29 | public: | |
30 | AliTPCcalibLaser(); | |
31 | AliTPCcalibLaser(const Text_t *name, const Text_t *title, Bool_t full=kTRUE); | |
32 | AliTPCcalibLaser(const AliTPCcalibLaser& laser); | |
33 | AliTPCcalibLaser & operator=(const AliTPCcalibLaser& calibLaser); | |
34 | virtual ~AliTPCcalibLaser(); | |
35 | virtual void Process(AliESDEvent *event); | |
36 | virtual void Analyze(); | |
37 | virtual Long64_t Merge(TCollection *li); | |
38 | virtual void DumpMeanInfo(Float_t bfield, Int_t run=-1); | |
39 | static void DumpScanInfo(TTree * tree); | |
40 | static void DumpFitInfo(TTree * chainFit, Int_t id); | |
41 | static TH1* GetLaserProjection(TH2F* his, Int_t laser){return his->ProjectionY("aaa",laser+1,laser+1);} | |
42 | // | |
43 | // | |
44 | virtual void DumpLaser(Int_t id); | |
45 | virtual void RefitLaserJW(Int_t id); | |
46 | void FitDriftV(); | |
47 | void MakeDistHisto(Int_t id); | |
48 | void AddCut(Double_t xcut, Double_t ycut, Double_t ncl){fEdgeXcuts[fNcuts]=xcut; fEdgeYcuts[fNcuts]=ycut; fNClCuts[fNcuts]=ncl; fNcuts++;} | |
49 | ||
50 | Int_t FindMirror(AliESDtrack *track, AliTPCseed *seed); | |
51 | Bool_t AcceptLaser(Int_t id); | |
52 | Float_t GetDistance(AliExternalTrackParam *track, AliTPCLaserTrack *ltrp); | |
53 | void MakeFitHistos(); | |
54 | void MergeFitHistos(AliTPCcalibLaser * add); | |
55 | void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);}; | |
56 | void Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);} | |
57 | // | |
58 | ||
59 | AliESDEvent * fESD; //! ESD event - not OWNER | |
60 | AliESDfriend * fESDfriend; //! ESD event - not OWNER | |
61 | TObjArray fTracksMirror; //! tracks with mirror information | |
62 | TObjArray fTracksEsd; //! tracks with reconstructed information - | |
63 | // not owner ESD | |
64 | TObjArray fTracksEsdParam; //! tracks with reconstructed information - | |
65 | // is owner ESD at mirror | |
66 | TObjArray fTracksTPC; //! tracks with reconstructed information - TPC | |
67 | Int_t fCounter[336]; //! counter of usage | |
68 | Float_t fClusterCounter[336]; //!couter of clusters in "sensitive are" | |
69 | Float_t fClusterSatur[336]; //!couter of saturated clusters in "sensitive are" | |
70 | Bool_t fFullCalib; // do full calibrration | |
71 | Float_t fFitZ[336]; //fitted z position | |
72 | // | |
73 | TObjArray fDeltaZ; //-> array of histograms of delta z for each track | |
74 | TObjArray fDeltaP3; //-> array of histograms of P3 for each track | |
75 | TObjArray fDeltaP4; //-> array of histograms of P4 for each track | |
76 | TObjArray fDeltaPhi; //-> array of histograms of delta z for each track | |
77 | TObjArray fDeltaPhiP; //-> array of histograms of delta z for each track | |
78 | TObjArray fSignals; //->Array of dedx signals | |
79 | // | |
80 | // Refit residuals histogram | |
81 | // | |
82 | TH2F *fHisNclIn; //->Number of clusters inner | |
83 | TH2F *fHisNclOut; //->Number of clusters outer | |
84 | TH2F *fHisNclIO; //->Number of cluster inner outer | |
85 | TH2F *fHisLclIn; //->Level arm inner | |
86 | TH2F *fHisLclOut; //->Level arm outer | |
87 | TH2F *fHisLclIO; //->Level aram inner outer | |
88 | ||
89 | TH2F *fHisdEdx; //->dEdx histo | |
90 | TH2F *fHisdZfit; //->distance to the mirror after linear fit | |
91 | // | |
92 | // | |
93 | TH2F *fHisChi2YIn1; //->chi2 y inner - line | |
94 | TH2F *fHisChi2YOut1; //->chi2 y inner - line | |
95 | TH2F *fHisChi2YIn2; //->chi2 y inner - parabola | |
96 | TH2F *fHisChi2YOut2; //->chi2 y inner - parabola | |
97 | TH2F *fHisChi2YIO1; //->chi2 y IO - common | |
98 | TH2F *fHisChi2ZIn1; //->chi2 z inner - line | |
99 | TH2F *fHisChi2ZOut1; //->chi2 z inner - line | |
100 | TH2F *fHisChi2ZIn2; //->chi2 z inner - parabola | |
101 | TH2F *fHisChi2ZOut2; //->chi2 z inner - parabola | |
102 | TH2F *fHisChi2ZIO1; //->chi2 z IO - common | |
103 | // | |
104 | // | |
105 | TH2F *fHisPy1vP0; //-> delta y P0outer-P0inner - line | |
106 | TH2F *fHisPy2vP0; //-> delta y P0outer-P0inner - parabola | |
107 | TH2F *fHisPy3vP0; //-> delta y P0outer-P0inner - common parabola | |
108 | TH2F *fHisPy1vP1; //-> delta ky P1outer-P1inner - line | |
109 | TH2F *fHisPy2vP1; //-> delta ky P1outer-P1inner - parabola | |
110 | TH2F *fHisPy3vP1; //-> delta ky P1outer-P1inner - common parabola | |
111 | TH2F *fHisPy2vP2In; //-> Curv P2inner - parabola | |
112 | TH2F *fHisPy2vP2Out; //-> Curv P2outer - parabola | |
113 | TH2F *fHisPy3vP2IO; //-> Curv P2outerinner - common parabola | |
114 | // | |
115 | // | |
116 | TH2F *fHisPz1vP0; //-> delta z P0outer-P0inner - line | |
117 | TH2F *fHisPz2vP0; //-> delta z P0outer-P0inner - parabola | |
118 | TH2F *fHisPz3vP0; //-> delta z P0outer-P0inner - common parabola | |
119 | TH2F *fHisPz1vP1; //-> delta kz P1outer-P1inner - line | |
120 | TH2F *fHisPz2vP1; //-> delta kz P1outer-P1inner - parabola | |
121 | TH2F *fHisPz3vP1; //-> delta kz P1outer-P1inner - common parabola | |
122 | TH2F *fHisPz2vP2In; //-> Curv P2inner - parabola | |
123 | TH2F *fHisPz2vP2Out; //-> Curv P2outer - parabola | |
124 | TH2F *fHisPz3vP2IO; //-> Curv P2outerinner - common parabola | |
125 | // | |
126 | // Residual histograms | |
127 | // | |
128 | TObjArray fDeltaYres; //-> array of histograms of delta y residuals for each track | |
129 | TObjArray fDeltaZres; //-> array of histograms of delta z residuals for each track | |
130 | TObjArray fDeltaYres2; //-> array of histograms of delta y residuals for each track | |
131 | TObjArray fDeltaZres2; //-> array of histograms of delta z residuals for each track | |
132 | // TObjArray fDeltaYres3; //-> array of histograms of delta y residuals for each track | |
133 | //TObjArray fDeltaZres3; //-> array of histograms of delta z residuals for each track | |
134 | ||
135 | // | |
136 | TVectorD* fFitAside; //! drift fit - A side | |
137 | TVectorD* fFitCside; //! drift fit - C- side | |
138 | TVectorD* fFitACside; //! drift fit - A+C- side | |
139 | // | |
140 | TVectorD fEdgeXcuts; //! cuts in local x direction; used in the refit of the laser tracks | |
141 | TVectorD fEdgeYcuts; //! cuts in local y direction; used in the refit of the laser tracks | |
142 | TVectorD fNClCuts; //! cuts on the number of clusters per tracklet; used in the refit of the laser tracks | |
143 | Int_t fNcuts; //! number of cuts | |
144 | // | |
145 | private: | |
146 | ClassDef(AliTPCcalibLaser,3) | |
147 | }; | |
148 | ||
149 | ||
150 | ||
151 | ||
152 | ||
153 | #endif |