trigger names changed (Markus)
[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 AliTRDeventInfo;
26 class AliTRDcheckDET : public AliTRDrecoTask{
27 public:
28   // The Histogram number
29   enum  HistType_t {
30     kNclustersTrack     = 0,
31     kNclustersTracklet  = 1,
32     kNtrackletsTrack    = 2,
33     kNtrackletsSTA      = 3,
34     kNtrackletsBAR      = 4,
35     kNtrackletsCross    = 5,
36     kNtrackletsFindable = 6,
37     kNtracksEvent       = 7,
38     kNtracksSector      = 8,
39     kPH                 = 9,
40     kChi2               = 10,
41     kChargeCluster      = 11,
42     kChargeTracklet     = 12,
43     kNeventsTrigger     = 13,
44     kNeventsTriggerTracks=14,
45     kTriggerPurity      = 15,
46     kTrackStatus        = 16,
47     kTrackletStatus     = 17,
48     kNTrackletsP        = 18,
49     kNclustersLayer     = 19
50   };
51   enum FigureType_t{
52     kFigNclustersTrack,
53     kFigNclustersTracklet,
54     kFigNtrackletsTrack,
55     kFigNTrackletsP,
56     kFigNtrackletsCross,
57     kFigNtrackletsFindable,
58     kFigNtracksEvent,
59     kFigNtracksSector,
60     kFigTrackStatus,
61     kFigTrackletStatus,
62     kFigChi2,
63     kFigPH,
64     kFigChargeCluster,
65     kFigChargeTracklet,
66     kFigNeventsTrigger,
67     kFigNeventsTriggerTracks,
68     kFigTriggerPurity
69   };
70  
71   AliTRDcheckDET();
72   AliTRDcheckDET(char* name);
73   virtual ~AliTRDcheckDET();
74
75   virtual void UserCreateOutputObjects();
76   virtual void UserExec(Option_t *opt);
77   virtual TObjArray *Histos();
78
79   // Plotting Functions:
80   TH1 *PlotTrackStatus(const AliTRDtrackV1 *track = 0x0);
81   TH1 *PlotTrackletStatus(const AliTRDtrackV1 *track = 0x0);
82   TH1 *PlotNClustersTracklet(const AliTRDtrackV1 *t = 0x0);
83   TH1 *PlotNClustersTrack(const AliTRDtrackV1 *t = 0x0);
84   TH1 *PlotNTrackletsTrack(const AliTRDtrackV1 *t = 0x0);
85   TH1 *PlotNTrackletsRowCross(const AliTRDtrackV1 *t = 0x0);
86   TH1 *PlotFindableTracklets(const AliTRDtrackV1 *track = 0x0);
87   TH1 *PlotNTracksSector(const AliTRDtrackV1 *t = 0x0);
88   TH1 *PlotPHt(const AliTRDtrackV1 *t = 0x0);
89   TH1 *PlotPHx(const AliTRDtrackV1 *track = 0x0);
90   TH1 *PlotChi2(const AliTRDtrackV1 *t = 0x0);
91   TH1 *PlotChargeCluster(const AliTRDtrackV1 *t = 0x0);
92   TH1 *PlotChargeTracklet(const AliTRDtrackV1 *t = 0x0);
93
94   virtual Bool_t PostProcess();
95   virtual Bool_t GetRefFigure(Int_t ifig);
96   virtual void MakeSummary();
97   
98   Bool_t IsUsingClustersOutsideChamber() const {return TESTBIT(fFlags, kUseClustersOutsideChamber);}
99   void UseClustersOutsideChamber(Bool_t b = kTRUE) {if(b) SETBIT(fFlags, kUseClustersOutsideChamber); else CLRBIT(fFlags, kUseClustersOutsideChamber);}
100
101 private:
102   enum{
103     kUseClustersOutsideChamber = 0 
104   };
105   AliTRDcheckDET(const AliTRDcheckDET &);
106   AliTRDcheckDET& operator=(const AliTRDcheckDET &);
107   void GetDistanceToTracklet(Double_t *dist, AliTRDseedV1 * const tracklet, AliTRDcluster * const c);
108   TH1* MakePlotChi2();
109   TH1* MakePlotNTracklets();
110   Bool_t MakePlotPulseHeight();
111   void MakePlotnTrackletsVsP();
112   void MakePlotMeanClustersLayer();
113   Bool_t MakeBarPlot(TH1 *histo, Int_t Color);
114   void GetEtaPhiAt(const AliExternalTrackParam *track, Double_t x, Double_t &eta, Double_t &phi);
115
116   AliTRDeventInfo *fEventInfo;         //! ESD Header
117   TMap *fTriggerNames;                 //! Containing trigger class names
118   UChar_t fFlags;                      // Flags for setting
119     
120   ClassDef(AliTRDcheckDET, 2)
121 };
122 #endif