]>
Commit | Line | Data |
---|---|---|
6419bebb | 1 | // AliTRDonlineTrackletQA implements the standard QA for the TRD |
2 | // on-line tracklets. | |
3 | ||
b220e595 | 4 | #ifndef ALITRDONLINETRACKLETQA_H |
5 | #define ALITRDONLINETRACKLETQA_H | |
6 | ||
7 | #include "AliAnalysisTask.h" | |
8 | ||
6911c7f9 | 9 | #include "AliTRDgeometry.h" |
10 | #include "AliTRDpadPlane.h" | |
11 | #include "AliESDTrdTracklet.h" | |
12 | ||
b220e595 | 13 | class TList; |
6911c7f9 | 14 | class TH1F; |
15 | class TH2F; | |
b220e595 | 16 | |
17 | class AliInputEventHandler; | |
18 | class AliVEvent; | |
6911c7f9 | 19 | class AliESDEvent; |
b220e595 | 20 | class AliAODEvent; |
21 | class AliMCEvent; | |
22 | ||
23 | class AliTRDgeometry; | |
24 | class AliTRDpadPlane; | |
25 | class AliTRDtrackletMCM; | |
26 | class AliTRDtrackletWord; | |
27 | ||
28 | class AliTRDonlineTrackletQA : public AliAnalysisTask | |
29 | { | |
30 | public: | |
31 | AliTRDonlineTrackletQA(const char *name); | |
32 | ~AliTRDonlineTrackletQA(); | |
33 | ||
34 | void ConnectInputData(const Option_t *option); | |
35 | void CreateOutputObjects(); | |
36 | void Exec(const Option_t *option); | |
37 | void LocalInit(); | |
38 | void Terminate(const Option_t *option); | |
39 | ||
6911c7f9 | 40 | void PlotMC(AliESDTrdTracklet *trkl); |
41 | void PlotESD(AliESDTrdTracklet *trkl); | |
b220e595 | 42 | |
6419bebb | 43 | Int_t GetTrackletsForMC(Int_t label, Int_t idx[]) const; |
b220e595 | 44 | |
6911c7f9 | 45 | Float_t GetX(AliESDTrdTracklet *trkl) { return fGeo->GetTime0(trkl->GetDetector() % 6); } |
46 | Float_t GetZ(AliESDTrdTracklet *trkl) { return fGeo->GetPadPlane((trkl->GetDetector() % 6) / 2, (trkl->GetDetector()/6) % 5)->GetRowPos(trkl->GetBinZ()) - | |
47 | fGeo->GetPadPlane((trkl->GetDetector() % 6) / 2, (trkl->GetDetector()/6) % 5)->GetRowSize(trkl->GetBinZ()); } | |
48 | ||
b220e595 | 49 | protected: |
54d34aac | 50 | AliESDEvent *fESD; //! current ESD event |
b220e595 | 51 | |
54d34aac | 52 | AliInputEventHandler *fInputHandler; //! input handler |
53 | AliVEvent *fInputEvent; //! input event | |
54 | AliAODEvent *fOutputAOD; //! output AOD | |
55 | AliMCEvent *fMCEvent; //! MC event | |
b220e595 | 56 | |
54d34aac | 57 | TClonesArray *fTrackletsRaw; //! array of raw tracklets |
58 | TClonesArray *fTrackletsSim; //! array of sim tracklets | |
b220e595 | 59 | |
60 | // ----- output objects ----- | |
61 | TList *fOutputList; //! list of output objects | |
62 | TH1F *fHistYpos; //! trkl y-position within chamber | |
63 | TH1F *fHistYres; //! trkl y-residual to track reference | |
64 | TH2F *fHistYresDy; //! trkl y-residual to track reference vs. deflection | |
65 | TH1F *fHistdY; //! trkl dy | |
66 | TH1F *fHistdYres; //! trkl dy-residual to track reference | |
67 | TH2F *fHistYlocal[6]; //! trkl local y vs. MC (per layer) | |
68 | TH1F *fHistYresESD; //! trkl y-residual to ESD track | |
69 | TH1F *fHistdYresESD; //! trkl dy-residual to ESD track | |
70 | TH1F *fHistCanddY; //! trkl cand at given dy | |
71 | TH1F *fHistFounddY; //! trkl found at given dy | |
72 | TH1F *fHistTrklPerRef; //! no. of tracklets found per track reference | |
73 | TH2F *fHistdYdYref; //! dy vs. dy from track reference | |
74 | TH1F *fHistYposRaw; //! trkl y-position within chamber | |
75 | TH1F *fHistdYRaw; //! trkl dy | |
6911c7f9 | 76 | TH1F *fHistAlphaRaw; //! trkl alpha |
b220e595 | 77 | TH2F *fHistYdYRaw; //! y vs dy from raw |
78 | TH1F *fHistZrow; //! z-row | |
79 | TH1F *fHistZrowRaw; //! z-row | |
80 | TH1F *fHistPid; //! PID | |
81 | TH1F *fHistPidRaw; //! PID | |
6911c7f9 | 82 | TH1F *fHistPidDiff; //! PID |
b220e595 | 83 | TH1F *fHistYdiff; //! difference in y between sim and raw |
84 | TH1F *fHistdYdiff; //! difference in dy between sim and raw | |
85 | TH2F *fHistdYdYraw; //! dy sim vs. raw | |
6911c7f9 | 86 | TH1F *fHistFitYres; //! trkl y-residual to track fit through |
87 | // contributing tracklets | |
88 | TH1F *fHistFitDyresEven; //! trkl deflection residual to track fit through | |
89 | // contributing tracklets | |
90 | TH1F *fHistFitDyresOdd; //! trkl deflection residual to track fit through | |
91 | // contributing tracklets | |
92 | TH2F *fHistNoMatchSim; //! simulated tracklets which were not matched to a raw one | |
93 | TH2F *fHistNoMatchRaw; //! raw tracklets which were not matched to a simulated one | |
94 | ||
95 | TH1F *fHistResY; //! residuals in y w.r.t. GTU track | |
96 | TH1F *fHistResZ; //! residuals in z w.r.t. GTU track | |
b220e595 | 97 | TTree *fTreeTracklets; //! store tracklet information |
98 | ||
99 | // ----- temporary storage ----- | |
54d34aac | 100 | Float_t fY; // y-position |
101 | Float_t fDY; // deflection length | |
102 | Float_t fYdiff; // difference in y-position | |
103 | Float_t fDYdiff; // difference in deflection | |
104 | Int_t fQ0; // accumulated charge in first window | |
105 | Int_t fQ1; // accumulated charge in second window | |
106 | Int_t fNHits; // no. of hits | |
b220e595 | 107 | |
108 | // ----- configuration ----- | |
109 | Float_t fMinPt; // minimal pt for tracks and track reference | |
110 | // which are used for comparison | |
111 | ||
112 | // ----- internal use ----- | |
113 | AliTRDgeometry *fGeo; //! TRD geometry | |
114 | ||
54d34aac | 115 | Int_t fNevent; // current event number |
b220e595 | 116 | |
54d34aac | 117 | TTree *fTrackletTree; //! tracklets from simulation |
b220e595 | 118 | |
119 | private: | |
120 | AliTRDonlineTrackletQA(const AliTRDonlineTrackletQA&); // not implemented | |
121 | AliTRDonlineTrackletQA& operator=(const AliTRDonlineTrackletQA&); // not implemented | |
122 | ||
123 | ClassDef(AliTRDonlineTrackletQA, 0); | |
124 | }; | |
125 | ||
126 | #endif |