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 */
6 /* $Id: AliTRDresolution.h 27496 2008-07-22 08:35:45Z cblume $ */
8 ////////////////////////////////////////////////////////////////////////////
12 ////////////////////////////////////////////////////////////////////////////
14 #ifndef ALITRDRECOTASK_H
15 #include "AliTRDrecoTask.h"
21 class AliTRDReconstructor;
23 class AliTRDrecoParam;
25 class AliTRDtrackInfo;
26 class AliTRDresolution : public AliTRDrecoTask
29 enum ETRDresolutionPlot {
30 kCluster = 0 // cluster - track
31 ,kTracklet = 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
48 enum ETRDresolutionSteer {
54 virtual ~AliTRDresolution();
56 void CreateOutputObjects();
57 Bool_t GetRefFigure(Int_t ifig);
59 void Exec(Option_t *);
60 Bool_t IsVerbose() const {return TESTBIT(fStatus, kVerbose);}
61 Bool_t IsVisual() const {return TESTBIT(fStatus, kVisual);}
63 Bool_t Process(ETRDresolutionPlot ip, TF1 *f=0x0, Float_t scale=1.);
64 Bool_t Process3D(ETRDresolutionPlot ip, TF1 *f=0x0, Float_t scale=1.);
66 TH1* PlotCluster(const AliTRDtrackV1 *t=0x0);
67 TH1* PlotTracklet(const AliTRDtrackV1 *t=0x0);
68 TH1* PlotTrackletPhi(const AliTRDtrackV1 *t=0x0);
69 TH1* PlotTrackIn(const AliTRDtrackV1 *t=0x0);
70 TH1* PlotMC(const AliTRDtrackV1 *t=0x0);
72 void SetRecoParam(AliTRDrecoParam *r);
73 void SetVerbose(Bool_t v = kTRUE) {v ? SETBIT(fStatus ,kVerbose): CLRBIT(fStatus ,kVerbose);}
74 void SetVisual(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kVisual) : CLRBIT(fStatus, kVisual);}
76 void Terminate(Option_t *);
79 AliTRDresolution(const AliTRDresolution&);
80 AliTRDresolution& operator=(const AliTRDresolution&);
81 void AdjustF1(TH1 *h, TF1 *f);
83 UChar_t fStatus; // steer parameter of the task
84 AliTRDReconstructor *fReconstructor; //! local reconstructor
85 AliTRDgeometry *fGeo; //! TRD geometry
86 TObjArray *fGraphS; //! result holder - sigma values
87 TObjArray *fGraphM; //! result holder - mean values
89 // calibration containers
90 TObjArray *fCl; //! cluster2track calib
91 TObjArray *fTrklt; //! tracklet2track calib
92 TObjArray *fMCcl; //! cluster2mc calib
93 TObjArray *fMCtrklt;//! tracklet2mc calib
95 ClassDef(AliTRDresolution, 1) // TRD tracking resolution task