]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/qaRec/AliTRDresolution.h
complete list of resolution histograms
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDresolution.h
1 #ifndef ALITRDRESOLUTION_H
2 #define ALITRDRESOLUTION_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliTRDresolution.h 27496 2008-07-22 08:35:45Z cblume $ */
7
8 ////////////////////////////////////////////////////////////////////////////
9 //                                                                        //
10 //  Resolution QA                                                     //
11 //                                                                        //
12 ////////////////////////////////////////////////////////////////////////////
13
14 #ifndef ALITRDRECOTASK_H
15 #include "AliTRDrecoTask.h"
16 #endif
17
18 class TH1;
19 class TF1;
20 class TObjArray;
21 class AliTRDReconstructor;
22 class AliTRDgeometry;
23 class AliTRDrecoParam;
24 class AliTRDseedV1;
25 class AliTRDtrackInfo;
26 class AliTRDresolution : public AliTRDrecoTask
27 {
28 public:
29   enum ETRDresolutionPlot {
30     kCluster          =  0 // cluster - track
31     ,kTracklet        =  1 // tracklet - track residuals/pulls
32     ,kTrackTPC        =  2 // tracklet - track residuals/pulls at lower TRD entrance 
33     ,kMCcluster       =  3 // cluster-mc resolution/pulls
34     ,kMCtracklet      =  4 // tracklet-mc resolution/pulls
35     ,kMCtrackTPC      =  5 // TPC track monitor
36     ,kMCtrackHMPID    =  6 // TOF/HMPID track monitor
37     ,kMCtrack         =  7 // TRD track monitor
38     ,kNhistos         =  8
39   };
40   enum ETRDresolutionSteer {
41     kVerbose  = 0
42     ,kVisual  = 1
43   };
44
45   AliTRDresolution();
46   virtual ~AliTRDresolution();
47   
48   void    CreateOutputObjects();
49   Bool_t  GetRefFigure(Int_t ifig);
50   TObjArray*  Histos(); 
51   void    Exec(Option_t *);
52   Bool_t  IsVerbose() const {return TESTBIT(fStatus, kVerbose);}
53   Bool_t  IsVisual() const {return TESTBIT(fStatus, kVisual);}
54   Bool_t  PostProcess();
55
56   TH1*    PlotCluster(const AliTRDtrackV1 *t=0x0);
57   TH1*    PlotTracklet(const AliTRDtrackV1 *t=0x0);
58   TH1*    PlotTrackTPC(const AliTRDtrackV1 *t=0x0);
59   TH1*    PlotMC(const AliTRDtrackV1 *t=0x0);
60   void    DumpAxTitle(Int_t plot, Int_t fig=-1);
61
62   void    SetRecoParam(AliTRDrecoParam *r);
63   void    SetVerbose(Bool_t v = kTRUE) {v ? SETBIT(fStatus ,kVerbose): CLRBIT(fStatus ,kVerbose);}
64   void    SetVisual(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kVisual) : CLRBIT(fStatus, kVisual);}
65
66   void    Terminate(Option_t *);
67   Bool_t  GetGraphPlot(Float_t *bb, ETRDresolutionPlot ip, Int_t idx=-1);
68   
69 private:
70   AliTRDresolution(const AliTRDresolution&);
71   AliTRDresolution& operator=(const AliTRDresolution&);
72   void    AdjustF1(TH1 *h, TF1 *f);
73   Bool_t  Process(ETRDresolutionPlot ip, Int_t idx=-1, TF1 *f=0x0,  Float_t scale=1.);
74   Bool_t  Process3D(ETRDresolutionPlot ip, TF1 *f=0x0,  Float_t scale=1.);
75
76   UChar_t             fStatus;          // steer parameter of the task
77   static UChar_t      fNElements[kNhistos]; // number of componets per task
78   static Char_t       *fAxTitle[32][3]; // axis title for all ref histos
79   AliTRDReconstructor *fReconstructor;  //! local reconstructor
80   AliTRDgeometry      *fGeo;            //! TRD geometry
81   TObjArray           *fGraphS;         //! result holder - sigma values
82   TObjArray           *fGraphM;         //! result holder - mean values
83
84   // calibration containers
85   TObjArray           *fCl;     //! cluster2track calib
86   TObjArray           *fTrklt;  //! tracklet2track calib
87   TObjArray           *fMCcl;   //! cluster2mc calib
88   TObjArray           *fMCtrklt;//! tracklet2mc calib
89   
90   ClassDef(AliTRDresolution, 2) // TRD tracking resolution task
91 };
92 #endif