]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/qaRec/AliTRDresolution.h
fix MC selection
[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 ETRDresolutionPlots{
30     kCluster          =  0 // cluster - track
31     ,kTrackletY       =  1 // tracklet - track y pulls
32     ,kTrackletPhi     =  2 // tracklet - track angular pulls residuals
33     ,kMCcluster       =  3 // cluster - mc residuals/systematics
34     ,kMCtrackletY     =  4 // tracklet - mc y resolution/systematics
35     ,kMCtrackletYPull =  5 // tracklet - mc y resolution/systematics
36     ,kMCtrackletZ     =  6 // tracklet - mc z resolution/systematics (pad row cross)
37     ,kMCtrackletZPull =  7 // tracklet - mc z resolution/systematics (pad row cross)
38     ,kMCtrackletPhi   =  8 // tracklet - mc phi resolution/systematics
39     ,kMCtrackY        =  9 // Kalman Y resolution
40     ,kMCtrackYPull    = 10 // Kalman Y resolution
41     ,kMCtrackZIn      = 11 // Kalman Z resolution
42     ,kMCtrackZOut     = 12 // Kalman Z resolution
43     ,kMCtrackZInPull  = 13 // Kalman Z resolution
44     ,kMCtrackZOutPull = 14 // Kalman Z resolution
45     ,kMCtrackPt       = 15 // Kalman Pt resolution
46     ,kNhistos         = 16
47   };
48   enum ETRDresolutionSteer {
49     kVerbose  = 0
50     ,kVisual  = 1
51   };
52
53   AliTRDresolution();
54   virtual ~AliTRDresolution();
55   
56   void    CreateOutputObjects();
57   Bool_t  GetRefFigure(Int_t ifig);
58   TObjArray*  Histos(); 
59   void    Exec(Option_t *);
60   Bool_t  IsVerbose() const {return TESTBIT(fStatus, kVerbose);}
61   Bool_t  IsVisual() const {return TESTBIT(fStatus, kVisual);}
62   Bool_t  PostProcess();
63
64   TH1*    PlotCluster(const AliTRDtrackV1 *t=0x0);
65   TH1*    PlotTracklet(const AliTRDtrackV1 *t=0x0);
66   TH1*    PlotTrackletPhi(const AliTRDtrackV1 *t=0x0);
67   TH1*    PlotResolution(const AliTRDtrackV1 *t=0x0);
68
69   void    SetRecoParam(AliTRDrecoParam *r);
70   void    SetVerbose(Bool_t v = kTRUE) {v ? SETBIT(fStatus ,kVerbose): CLRBIT(fStatus ,kVerbose);}
71   void    SetVisual(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kVisual) : CLRBIT(fStatus, kVisual);}
72
73   void    Terminate(Option_t *);
74   
75 private:
76   AliTRDresolution(const AliTRDresolution&);
77   AliTRDresolution& operator=(const AliTRDresolution&);
78   void        AdjustF1(TH1 *h, TF1 *f);
79
80 private:
81   UChar_t             fStatus;          // steer parameter of the task
82   AliTRDReconstructor *fReconstructor;  //! local reconstructor
83   AliTRDgeometry      *fGeo;            //! TRD geometry
84   TObjArray           *fGraphS;         //! result holder - sigma values
85   TObjArray           *fGraphM;         //! result holder - mean values
86
87   // calibration containers
88   TObjArray           *fCl;     //! cluster2track calib
89   TObjArray           *fTrklt;  //! tracklet2track calib
90   TObjArray           *fMCcl;   //! cluster2mc calib
91   TObjArray           *fMCtrklt;//! tracklet2mc calib
92   
93   ClassDef(AliTRDresolution, 1) // TRD tracking resolution task
94 };
95 #endif