68e66046f1e30a14a282847f9991e95922fbe861
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDcheckDET.h
1 #ifndef ALITRDCHECKDET_H
2 #define ALITRDCHECKDET_H
3
4 #ifndef ALITRDRECOTASK_H
5 #include "AliTRDrecoTask.h"
6 #endif
7
8 class TObjArray;
9 class TH1;
10 class TMap;
11 class AliESDHeader;
12 class AliTRDcluster;
13 class AliTRDseedV1;
14 class AliTRDgeometry;
15 class AliTRDReconstructor;
16 class AliTRDrecoParam;
17 class AliTRDeventInfo;
18 class AliTRDcheckDET : public AliTRDrecoTask{
19 public:
20   // The Histogram number
21   enum  HistType_t {
22     kNclustersTrack     = 0,
23     kNclustersTracklet  = 1,
24     kNtrackletsTrack    = 2,
25     kNtrackletsSTA      = 3,
26     kNtrackletsBAR      = 4,
27     kNtrackletsCross    = 5,
28     kNtrackletsFindable = 6,
29     kNtracksEvent       = 7,
30     kNtracksSector      = 8,
31     kPH                 = 9,
32     kChi2               = 10,
33     kChargeCluster      = 11,
34     kChargeTracklet     = 12,
35     kNeventsTrigger     = 13,
36     kNeventsTriggerTracks=14,
37     kTriggerPurity      = 15,
38     kTrackStatus        = 16,
39     kTrackletStatus     = 17
40   };
41
42   AliTRDcheckDET();
43   virtual ~AliTRDcheckDET();
44
45   virtual void ConnectInputData(const Option_t *);
46   virtual void CreateOutputObjects();
47   virtual void Exec(Option_t *);
48   virtual void Terminate(Option_t *);
49
50   virtual TObjArray *Histos();
51
52   // Plotting Functions:
53   TH1 *PlotTrackStatus(const AliTRDtrackV1 *track = 0x0);
54   TH1 *PlotTrackletStatus(const AliTRDtrackV1 *track = 0x0);
55   TH1 *PlotNClustersTracklet(const AliTRDtrackV1 *t = 0x0);
56   TH1 *PlotNClustersTrack(const AliTRDtrackV1 *t = 0x0);
57   TH1 *PlotNTrackletsTrack(const AliTRDtrackV1 *t = 0x0);
58   TH1 *PlotNTrackletsRowCross(const AliTRDtrackV1 *t = 0x0);
59   TH1 *PlotFindableTracklets(const AliTRDtrackV1 *track = 0x0);
60   TH1 *PlotNTracksSector(const AliTRDtrackV1 *t = 0x0);
61   TH1 *PlotPHt(const AliTRDtrackV1 *t = 0x0);
62   TH1 *PlotPHx(const AliTRDtrackV1 *track = 0x0);
63   TH1 *PlotChi2(const AliTRDtrackV1 *t = 0x0);
64   TH1 *PlotChargeCluster(const AliTRDtrackV1 *t = 0x0);
65   TH1 *PlotChargeTracklet(const AliTRDtrackV1 *t = 0x0);
66
67   virtual Bool_t PostProcess();
68   virtual Bool_t GetRefFigure(Int_t ifig);
69   
70   void SetRecoParam(AliTRDrecoParam *r);
71
72 private:
73   AliTRDcheckDET(const AliTRDcheckDET &);
74   AliTRDcheckDET& operator=(const AliTRDcheckDET &);
75   void GetDistanceToTracklet(Double_t *dist, AliTRDseedV1 *tracklet, AliTRDcluster *c);
76   void MakePlotChi2();
77   void MakePlotNTracklets();
78   void MakePlotPulseHeight();
79   Bool_t MakeBarPlot(TH1 *histo, Int_t Color);
80   AliTRDeventInfo *fEventInfo;         //! ESD Header
81   TMap *fTriggerNames;                 //! Containing trigger class names
82   AliTRDReconstructor *fReconstructor; // TRD Reconstructor
83   AliTRDgeometry *fGeo;                // TRD Geometry object
84     
85   ClassDef(AliTRDcheckDET, 1)
86 };
87 #endif
88