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