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 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
40 enum ETRDresolutionSteer {
46 virtual ~AliTRDresolution();
48 void CreateOutputObjects();
49 Bool_t GetRefFigure(Int_t ifig);
51 void Exec(Option_t *);
52 Bool_t IsVerbose() const {return TESTBIT(fStatus, kVerbose);}
53 Bool_t IsVisual() const {return TESTBIT(fStatus, kVisual);}
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);
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);}
66 void Terminate(Option_t *);
67 Bool_t GetGraphPlot(Float_t *bb, ETRDresolutionPlot ip, Int_t idx=-1);
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.);
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
84 // calibration containers
85 TObjArray *fCl; //! cluster2track calib
86 TObjArray *fTrklt; //! tracklet2track calib
87 TObjArray *fMCcl; //! cluster2mc calib
88 TObjArray *fMCtrklt;//! tracklet2mc calib
90 ClassDef(AliTRDresolution, 2) // TRD tracking resolution task