]>
Commit | Line | Data |
---|---|---|
e3cf3d02 | 1 | #ifndef ALITRDRESOLUTION_H |
2 | #define ALITRDRESOLUTION_H | |
77203477 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
e3cf3d02 | 6 | /* $Id: AliTRDresolution.h 27496 2008-07-22 08:35:45Z cblume $ */ |
77203477 | 7 | |
8 | //////////////////////////////////////////////////////////////////////////// | |
9 | // // | |
ddd1a033 | 10 | // TRD Resolution performance // |
77203477 | 11 | // // |
ddd1a033 | 12 | // Authors: // |
13 | // Alexandru Bercuci <A.Bercuci@gsi.de> // | |
14 | // Markus Fasel <M.Fasel@gsi.de> // | |
e9987811 | 15 | // // |
16 | //////////////////////////////////////////////////////////////////////////// | |
77203477 | 17 | |
3d86166d | 18 | #ifndef ALITRDRECOTASK_H |
19 | #include "AliTRDrecoTask.h" | |
20 | #endif | |
77203477 | 21 | |
3c3d9ff1 | 22 | class TH1; |
dad4c5fc | 23 | class TH2; |
3c3d9ff1 | 24 | class TF1; |
dad4c5fc | 25 | class TGraphErrors; |
b718144c | 26 | class TObjArray; |
aaf47b30 | 27 | class AliTRDReconstructor; |
9605ce80 | 28 | class AliTRDgeometry; |
aaf47b30 | 29 | class AliTRDrecoParam; |
39779ce6 | 30 | class AliTRDseedV1; |
31 | class AliTRDtrackInfo; | |
e3cf3d02 | 32 | class AliTRDresolution : public AliTRDrecoTask |
874acced | 33 | { |
77203477 | 34 | public: |
e9ecf70f | 35 | enum ETRDresolutionPlot { |
a63b505e | 36 | kCharge = 0 // charge resolution |
37 | ,kCluster = 1 // cluster - track | |
38 | ,kTrackTRD = 2 // tracklet - track residuals/pulls | |
39 | ,kTrackTPC = 3 // tracklet - track residuals/pulls at lower TRD entrance | |
40 | ,kMCcluster = 4 // cluster-mc resolution/pulls | |
41 | ,kMCtracklet = 5 // tracklet-mc resolution/pulls | |
42 | ,kMCtrackTPC = 6 // TPC track monitor | |
43 | ,kMCtrackTOF = 7 // TOF/HMPID track monitor | |
44 | ,kMCtrackTRD = 8 // TRD track monitor | |
45 | ,kNhistos = 9 | |
874acced | 46 | }; |
e3cf3d02 | 47 | enum ETRDresolutionSteer { |
017bd6af | 48 | kVerbose = 0 |
49 | ,kVisual = 1 | |
50 | }; | |
874acced | 51 | |
e3cf3d02 | 52 | AliTRDresolution(); |
53 | virtual ~AliTRDresolution(); | |
77203477 | 54 | |
39779ce6 | 55 | void CreateOutputObjects(); |
e15179be | 56 | Bool_t GetRefFigure(Int_t ifig); |
cf194b94 | 57 | TObjArray* Histos(); |
dad4c5fc | 58 | TObjArray* Results(Int_t i=0) const {return i ? fGraphS : fGraphM;} |
e9987811 | 59 | void Exec(Option_t * opt); |
017bd6af | 60 | Bool_t IsVerbose() const {return TESTBIT(fStatus, kVerbose);} |
61 | Bool_t IsVisual() const {return TESTBIT(fStatus, kVisual);} | |
d85cd79c | 62 | Bool_t PostProcess(); |
017bd6af | 63 | |
0b433f72 | 64 | TH1* PlotCharge(const AliTRDtrackV1 *t=0x0); |
b1957d3c | 65 | TH1* PlotCluster(const AliTRDtrackV1 *t=0x0); |
66 | TH1* PlotTracklet(const AliTRDtrackV1 *t=0x0); | |
ca309b00 | 67 | TH1* PlotTrackTPC(const AliTRDtrackV1 *t=0x0); |
e9ecf70f | 68 | TH1* PlotMC(const AliTRDtrackV1 *t=0x0); |
de520d8f | 69 | |
017bd6af | 70 | void SetRecoParam(AliTRDrecoParam *r); |
71 | void SetVerbose(Bool_t v = kTRUE) {v ? SETBIT(fStatus ,kVerbose): CLRBIT(fStatus ,kVerbose);} | |
72 | void SetVisual(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kVisual) : CLRBIT(fStatus, kVisual);} | |
73 | ||
e9987811 | 74 | void Terminate(Option_t * opt); |
27353166 | 75 | Bool_t GetGraphPlot(Float_t *bb, ETRDresolutionPlot ip, Int_t idx=-1); |
7ffc00a6 | 76 | Bool_t GetGraphTrack(Float_t *bb, Int_t idx, Int_t ily); |
dad4c5fc | 77 | Bool_t GetGraphTrackTPC(Float_t *bb, Int_t selector); |
77203477 | 78 | |
79 | private: | |
e3cf3d02 | 80 | AliTRDresolution(const AliTRDresolution&); |
81 | AliTRDresolution& operator=(const AliTRDresolution&); | |
82b33eb2 | 82 | void AdjustF1(TH1 *h, TF1 *f); |
e9987811 | 83 | void GetLandauMpvFwhm(TF1 * const f, Float_t &mpv, Float_t &xm, Float_t &xM); |
84 | Bool_t Process(TH2* const h2, TF1 *f, Float_t k, TGraphErrors **g); | |
dad4c5fc | 85 | Bool_t Process2D(ETRDresolutionPlot ip, Int_t idx=-1, TF1 *f=0x0, Float_t scale=1.); |
86 | Bool_t Process3D(ETRDresolutionPlot ip, Int_t idx=-1, TF1 *f=0x0, Float_t scale=1.); | |
0b433f72 | 87 | Bool_t Process3DL(ETRDresolutionPlot ip, Int_t idx=-1, TF1 *f=0x0, Float_t scale=1.); |
dad4c5fc | 88 | Bool_t Process4D(ETRDresolutionPlot ip, Int_t idx=-1, TF1 *f=0x0, Float_t scale=1.); |
77203477 | 89 | |
b2dc316d | 90 | UChar_t fStatus; // steer parameter of the task |
dad4c5fc | 91 | UChar_t fIdxPlot; //! plot counter (internal) |
e9987811 | 92 | static Char_t *fgPerformanceName[kNhistos]; // name of performance plot |
93 | static UChar_t fgNElements[kNhistos]; // number of componets per task | |
94 | static Char_t *fgAxTitle[46][4]; // Title for all ref histos | |
b2dc316d | 95 | AliTRDReconstructor *fReconstructor; //! local reconstructor |
96 | AliTRDgeometry *fGeo; //! TRD geometry | |
97 | TObjArray *fGraphS; //! result holder - sigma values | |
98 | TObjArray *fGraphM; //! result holder - mean values | |
99 | ||
100 | // calibration containers | |
6fc46cba | 101 | TObjArray *fCl; //! cluster2track calib |
102 | TObjArray *fTrklt; //! tracklet2track calib | |
103 | TObjArray *fMCcl; //! cluster2mc calib | |
104 | TObjArray *fMCtrklt;//! tracklet2mc calib | |
b2dc316d | 105 | |
e9987811 | 106 | ClassDef(AliTRDresolution, 3) // TRD tracking resolution task |
77203477 | 107 | }; |
108 | #endif |