1 // AliTRDonlineTrackletQA implements the standard QA for the TRD
4 #ifndef ALITRDONLINETRACKLETQA_H
5 #define ALITRDONLINETRACKLETQA_H
7 #include "AliAnalysisTask.h"
9 #include "AliTRDgeometry.h"
10 #include "AliTRDpadPlane.h"
11 #include "AliESDTrdTracklet.h"
17 class AliInputEventHandler;
25 class AliTRDtrackletMCM;
26 class AliTRDtrackletWord;
28 class AliTRDonlineTrackletQA : public AliAnalysisTask
31 AliTRDonlineTrackletQA(const char *name);
32 ~AliTRDonlineTrackletQA();
34 void ConnectInputData(const Option_t *option);
35 void CreateOutputObjects();
36 void Exec(const Option_t *option);
38 void Terminate(const Option_t *option);
40 void PlotMC(AliESDTrdTracklet *trkl);
41 void PlotESD(AliESDTrdTracklet *trkl);
43 Int_t GetTrackletsForMC(Int_t label, Int_t idx[]) const;
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()); }
50 AliESDEvent *fESD; //! current ESD event
52 AliInputEventHandler *fInputHandler; //! input handler
53 AliVEvent *fInputEvent; //! input event
54 AliAODEvent *fOutputAOD; //! output AOD
55 AliMCEvent *fMCEvent; //! MC event
57 TClonesArray *fTrackletsRaw; //! array of raw tracklets
58 TClonesArray *fTrackletsSim; //! array of sim tracklets
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
76 TH1F *fHistAlphaRaw; //! trkl alpha
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
82 TH1F *fHistPidDiff; //! PID
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
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
95 TH1F *fHistResY; //! residuals in y w.r.t. GTU track
96 TH1F *fHistResZ; //! residuals in z w.r.t. GTU track
97 TTree *fTreeTracklets; //! store tracklet information
99 // ----- temporary storage -----
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
108 // ----- configuration -----
109 Float_t fMinPt; // minimal pt for tracks and track reference
110 // which are used for comparison
112 // ----- internal use -----
113 AliTRDgeometry *fGeo; //! TRD geometry
115 Int_t fNevent; // current event number
117 TTree *fTrackletTree; //! tracklets from simulation
120 AliTRDonlineTrackletQA(const AliTRDonlineTrackletQA&); // not implemented
121 AliTRDonlineTrackletQA& operator=(const AliTRDonlineTrackletQA&); // not implemented
123 ClassDef(AliTRDonlineTrackletQA, 0);