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