]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/AliTRDcheckDET.h
Streamlining with the analyis framework:
[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 AliTRDcluster;
22 class AliTRDseedV1;
23 class AliTRDgeometry;
24 class AliTRDReconstructor;
25 class AliTRDrecoParam;
26 class AliTRDeventInfo;
27 class AliTRDcheckDET : public AliTRDrecoTask{
28 public:
29   // The Histogram number
30   enum  HistType_t {
31     kNclustersTrack     = 0,
32     kNclustersTracklet  = 1,
33     kNtrackletsTrack    = 2,
34     kNtrackletsSTA      = 3,
35     kNtrackletsBAR      = 4,
36     kNtrackletsCross    = 5,
37     kNtrackletsFindable = 6,
38     kNtracksEvent       = 7,
39     kNtracksSector      = 8,
40     kPH                 = 9,
41     kChi2               = 10,
42     kChargeCluster      = 11,
43     kChargeTracklet     = 12,
44     kNeventsTrigger     = 13,
45     kNeventsTriggerTracks=14,
46     kTriggerPurity      = 15,
47     kTrackStatus        = 16,
48     kTrackletStatus     = 17,
49     kNTrackletsP        = 18
50   };
51
52   AliTRDcheckDET();
53   AliTRDcheckDET(char* name);
54   virtual ~AliTRDcheckDET();
55
56   virtual void UserCreateOutputObjects();
57   virtual void UserExec(Option_t *opt);
58   virtual void ConnectInputData(Option_t *opt);
59   virtual TObjArray *Histos();
60
61   // Plotting Functions:
62   TH1 *PlotTrackStatus(const AliTRDtrackV1 *track = 0x0);
63   TH1 *PlotTrackletStatus(const AliTRDtrackV1 *track = 0x0);
64   TH1 *PlotNClustersTracklet(const AliTRDtrackV1 *t = 0x0);
65   TH1 *PlotNClustersTrack(const AliTRDtrackV1 *t = 0x0);
66   TH1 *PlotNTrackletsTrack(const AliTRDtrackV1 *t = 0x0);
67   TH1 *PlotNTrackletsRowCross(const AliTRDtrackV1 *t = 0x0);
68   TH1 *PlotFindableTracklets(const AliTRDtrackV1 *track = 0x0);
69   TH1 *PlotNTracksSector(const AliTRDtrackV1 *t = 0x0);
70   TH1 *PlotPHt(const AliTRDtrackV1 *t = 0x0);
71   TH1 *PlotPHx(const AliTRDtrackV1 *track = 0x0);
72   TH1 *PlotChi2(const AliTRDtrackV1 *t = 0x0);
73   TH1 *PlotChargeCluster(const AliTRDtrackV1 *t = 0x0);
74   TH1 *PlotChargeTracklet(const AliTRDtrackV1 *t = 0x0);
75
76   virtual Bool_t PostProcess();
77   virtual Bool_t GetRefFigure(Int_t ifig);
78   
79   Bool_t IsUsingClustersOutsideChamber() const {return TESTBIT(fFlags, kUseClustersOutsideChamber);}
80   void UseClustersOutsideChamber(Bool_t b = kTRUE) {if(b) SETBIT(fFlags, kUseClustersOutsideChamber); else CLRBIT(fFlags, kUseClustersOutsideChamber);}
81   void SetRecoParam(AliTRDrecoParam *r);
82
83 private:
84   enum{
85     kUseClustersOutsideChamber
86   };
87   AliTRDcheckDET(const AliTRDcheckDET &);
88   AliTRDcheckDET& operator=(const AliTRDcheckDET &);
89   void GetDistanceToTracklet(Double_t *dist, AliTRDseedV1 * const tracklet, AliTRDcluster * const c);
90   TH1* MakePlotChi2();
91   TH1* MakePlotNTracklets();
92   TH1* MakePlotPulseHeight();
93   void MakePlotnTrackletsVsP();
94   Bool_t MakeBarPlot(TH1 *histo, Int_t Color);
95
96   AliTRDeventInfo *fEventInfo;         //! ESD Header
97   TMap *fTriggerNames;                 //! Containing trigger class names
98   AliTRDReconstructor *fReconstructor; // TRD Reconstructor
99   AliTRDgeometry *fGeo;                // TRD Geometry object
100   UChar_t fFlags;                      // Flags for setting
101     
102   ClassDef(AliTRDcheckDET, 1)
103 };
104 #endif