]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/AliTRDcheckDET.h
add V0 task as cuasi-independent performance task
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDcheckDET.h
1 #ifndef ALITRDCHECKDET_H
2 #define ALITRDCHECKDET_H
3
4 #ifndef ALITRDRECOTASK_H
5 #include "AliTRDrecoTask.h"
6 #endif
7 ////////////////////////////////////////////////////////////////////////////
8 //  Basic checks for tracking and detector performance                    //
9 //                                                                        //
10 //  Authors:                                                              //
11 //    Anton Andronic <A.Andronic@gsi.de>                                  //
12 //    Alexandru Bercuci <A.Bercuci@gsi.de>                                //
13 //    Markus Fasel <M.Fasel@gsi.de>                                       //
14 ////////////////////////////////////////////////////////////////////////////
15
16
17 class TObjArray;
18 class TH1;
19 class TMap;
20 class AliESDHeader;
21 class AliExternalTrackParam;
22 class AliTRDcluster;
23 class AliTRDseedV1;
24 class AliTRDgeometry;
25 class AliTRDReconstructor;
26 class AliTRDrecoParam;
27 class AliTRDeventInfo;
28 class AliTRDcheckDET : public AliTRDrecoTask{
29 public:
30   // The Histogram number
31   enum  HistType_t {
32     kNclustersTrack     = 0,
33     kNclustersTracklet  = 1,
34     kNtrackletsTrack    = 2,
35     kNtrackletsSTA      = 3,
36     kNtrackletsBAR      = 4,
37     kNtrackletsCross    = 5,
38     kNtrackletsFindable = 6,
39     kNtracksEvent       = 7,
40     kNtracksSector      = 8,
41     kPH                 = 9,
42     kChi2               = 10,
43     kChargeCluster      = 11,
44     kChargeTracklet     = 12,
45     kNeventsTrigger     = 13,
46     kNeventsTriggerTracks=14,
47     kTriggerPurity      = 15,
48     kTrackStatus        = 16,
49     kTrackletStatus     = 17,
50     kNTrackletsP        = 18,
51     kNclustersLayer     = 19
52   };
53   enum FigureType_t{
54     kFigNclustersTrack,
55     kFigNclustersTracklet,
56     kFigNtrackletsTrack,
57     kFigNTrackletsP,
58     kFigNtrackletsCross,
59     kFigNtrackletsFindable,
60     kFigNtracksEvent,
61     kFigNtracksSector,
62     kFigTrackStatus,
63     kFigTrackletStatus,
64     kFigChi2,
65     kFigPH,
66     kFigChargeCluster,
67     kFigChargeTracklet,
68     kFigNeventsTrigger,
69     kFigNeventsTriggerTracks,
70     kFigTriggerPurity
71   };
72  
73   AliTRDcheckDET();
74   AliTRDcheckDET(char* name);
75   virtual ~AliTRDcheckDET();
76
77   virtual void UserCreateOutputObjects();
78   virtual void UserExec(Option_t *opt);
79   virtual TObjArray *Histos();
80
81   // Plotting Functions:
82   TH1 *PlotTrackStatus(const AliTRDtrackV1 *track = 0x0);
83   TH1 *PlotTrackletStatus(const AliTRDtrackV1 *track = 0x0);
84   TH1 *PlotNClustersTracklet(const AliTRDtrackV1 *t = 0x0);
85   TH1 *PlotNClustersTrack(const AliTRDtrackV1 *t = 0x0);
86   TH1 *PlotNTrackletsTrack(const AliTRDtrackV1 *t = 0x0);
87   TH1 *PlotNTrackletsRowCross(const AliTRDtrackV1 *t = 0x0);
88   TH1 *PlotFindableTracklets(const AliTRDtrackV1 *track = 0x0);
89   TH1 *PlotNTracksSector(const AliTRDtrackV1 *t = 0x0);
90   TH1 *PlotPHt(const AliTRDtrackV1 *t = 0x0);
91   TH1 *PlotPHx(const AliTRDtrackV1 *track = 0x0);
92   TH1 *PlotChi2(const AliTRDtrackV1 *t = 0x0);
93   TH1 *PlotChargeCluster(const AliTRDtrackV1 *t = 0x0);
94   TH1 *PlotChargeTracklet(const AliTRDtrackV1 *t = 0x0);
95
96   virtual Bool_t PostProcess();
97   virtual Bool_t GetRefFigure(Int_t ifig);
98   virtual void MakeSummary();
99   
100   Bool_t IsUsingClustersOutsideChamber() const {return TESTBIT(fFlags, kUseClustersOutsideChamber);}
101   void UseClustersOutsideChamber(Bool_t b = kTRUE) {if(b) SETBIT(fFlags, kUseClustersOutsideChamber); else CLRBIT(fFlags, kUseClustersOutsideChamber);}
102   void SetRecoParam(AliTRDrecoParam *r);
103
104 private:
105   enum{
106     kUseClustersOutsideChamber = 0 
107   };
108   AliTRDcheckDET(const AliTRDcheckDET &);
109   AliTRDcheckDET& operator=(const AliTRDcheckDET &);
110   void GetDistanceToTracklet(Double_t *dist, AliTRDseedV1 * const tracklet, AliTRDcluster * const c);
111   TH1* MakePlotChi2();
112   TH1* MakePlotNTracklets();
113   Bool_t MakePlotPulseHeight();
114   void MakePlotnTrackletsVsP();
115   void MakePlotMeanClustersLayer();
116   Bool_t MakeBarPlot(TH1 *histo, Int_t Color);
117   void GetEtaPhiAt(AliExternalTrackParam *track, Double_t x, Double_t &eta, Double_t &phi);
118
119   AliTRDeventInfo *fEventInfo;         //! ESD Header
120   TMap *fTriggerNames;                 //! Containing trigger class names
121   AliTRDReconstructor *fReconstructor; // TRD Reconstructor
122   AliTRDgeometry *fGeo;                // TRD Geometry object
123   UChar_t fFlags;                      // Flags for setting
124     
125   ClassDef(AliTRDcheckDET, 1)
126 };
127 #endif