]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/qaRec/AliTRDtrackingResolution.h
63b412e8d27740e713d322555608ef31327d8327
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDtrackingResolution.h
1 #ifndef ALITRDTRACKINGRESOLUTION_H
2 #define ALITRDTRACKINGRESOLUTION_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliTRDtrackingResolution.h 27496 2008-07-22 08:35:45Z cblume $ */
7
8 ////////////////////////////////////////////////////////////////////////////
9 //                                                                        //
10 //  Reconstruction 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 AliTRDtrackingResolution : public AliTRDrecoTask
27 {
28 public:
29   enum{
30     kCluster        = 0 // cluster - track
31     ,kTrackletY     = 1 // tracklet - track y pools
32     ,kTrackletPhi   = 2 // tracklet - track angular pools residuals
33     ,kMCcluster     = 3 // cluster - mc residuals/systematics
34     ,kMCtrackletY   = 4 // tracklet - mc y resolution/systematics
35     ,kMCtrackletZ   = 5 // tracklet - mc z resolution/systematics (pad row cross)
36     ,kMCtrackletPhi = 6 // tracklet - mc phi resolution/systematics
37     ,kMCtrackY      = 7 // Kalman Y resolution
38     ,kMCtrackZ      = 8 // Kalman Z resolution
39     ,kMCtrackPt     = 9 // Kalman Pt resolution
40   };
41   enum{
42     kVerbose  = 0
43     ,kVisual  = 1
44   };
45
46   AliTRDtrackingResolution();
47   virtual ~AliTRDtrackingResolution();
48   
49   void    CreateOutputObjects();
50   Bool_t  GetRefFigure(Int_t ifig);
51   TObjArray*  Histos(); 
52   void    Exec(Option_t *);
53   Bool_t  IsVerbose() const {return TESTBIT(fStatus, kVerbose);}
54   Bool_t  IsVisual() const {return TESTBIT(fStatus, kVisual);}
55   Bool_t  PostProcess();
56
57   TH1*    PlotCluster(const AliTRDtrackV1 *t=0x0);
58   TH1*    PlotTracklet(const AliTRDtrackV1 *t=0x0);
59   TH1*    PlotTrackletPhi(const AliTRDtrackV1 *t=0x0);
60   TH1*    PlotResolution(const AliTRDtrackV1 *t=0x0);
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   
68 private:
69   AliTRDtrackingResolution(const AliTRDtrackingResolution&);
70   AliTRDtrackingResolution& operator=(const AliTRDtrackingResolution&);
71   void        AdjustF1(TH1 *h, TF1 *f);
72
73 private:
74   UChar_t             fStatus;          // steer parameter of the task
75   AliTRDReconstructor *fReconstructor;  //! local reconstructor
76   AliTRDgeometry      *fGeo;            //! TRD geometry
77   TObjArray           *fGraphS;         //! result holder - sigma values
78   TObjArray           *fGraphM;         //! result holder - mean values
79
80   // calibration containers
81   TObjArray           *fCl;     //! cluster2track calib
82   TObjArray           *fTrklt;  //! tracklet2track calib
83   TObjArray           *fMCcl;   //! cluster2mc calib
84   TObjArray           *fMCtrklt;//! tracklet2mc calib
85   
86   ClassDef(AliTRDtrackingResolution, 1) // TRD tracking resolution task
87 };
88 #endif