]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/qaRec/AliTRDtrackingResolution.h
00e486d1aef5480339a2ee240a3e053c0986f08a
[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     kClusterYResidual         = 0
31 //     ,kTrackletRiemanYResidual = 1 // Riemann track model
32 //     ,kTrackletRiemanAngleResidual = 2
33 //     ,kTrackletKalmanYResidual = 3 // Kalman track model
34 //     ,kTrackletKalmanAngleResidual = 4
35     ,kClusterYResolution      = 1/*5*/
36     ,kTrackletYResolution     = 2/*6*/
37     ,kTrackletAngleResolution = 3/*7*/
38 //     ,kTrackRYResolution       = 8 // Riemann track model
39 //     ,kTrackRZResolution       = 9
40 //     ,kTrackRAngleResolution   = 10
41 //     ,kTrackKYResolution       = 11 // Kalman track model
42 //     ,kTrackKZResolution       = 12
43 //     ,kTrackKAngleResolution   = 13
44   };
45   enum{
46     kVerbose  = 0
47     ,kVisual  = 1
48   };
49
50   AliTRDtrackingResolution();
51   virtual ~AliTRDtrackingResolution();
52   
53   void    CreateOutputObjects();
54   void    Exec(Option_t *);
55   void    GetRefFigure(Int_t ifig);
56   Bool_t  IsVerbose() const {return TESTBIT(fStatus, kVerbose);}
57   Bool_t  IsVisual() const {return TESTBIT(fStatus, kVisual);}
58   Bool_t  PostProcess();
59
60   void    SetRecoParam(AliTRDrecoParam *r);
61   void    SetVerbose(Bool_t v = kTRUE) {v ? SETBIT(fStatus ,kVerbose): CLRBIT(fStatus ,kVerbose);}
62   void    SetVisual(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kVisual) : CLRBIT(fStatus, kVisual);}
63
64   void    Terminate(Option_t *);
65   
66 private:
67   AliTRDtrackingResolution(const AliTRDtrackingResolution&);
68   AliTRDtrackingResolution& operator=(const AliTRDtrackingResolution&);
69   void        AdjustF1(TH1 *h, TF1 *f);
70   TObjArray*  Histos(); 
71   Bool_t      Resolution(AliTRDseedV1 *tracklet, AliTRDtrackInfo *info, Double_t &p, Double_t &y, Double_t &z, Double_t &phi, Double_t &theta);
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   ClassDef(AliTRDtrackingResolution, 1) // tracking resolution task
80 };
81 #endif