]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TRD/AliTRDonlineTrackletQA.h
add protection for backward data compatibility
[u/mrichter/AliRoot.git] / PWGPP / TRD / AliTRDonlineTrackletQA.h
CommitLineData
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 13class TList;
6911c7f9 14class TH1F;
15class TH2F;
b220e595 16
17class AliInputEventHandler;
18class AliVEvent;
6911c7f9 19class AliESDEvent;
b220e595 20class AliAODEvent;
21class AliMCEvent;
22
23class AliTRDgeometry;
24class AliTRDpadPlane;
25class AliTRDtrackletMCM;
26class AliTRDtrackletWord;
27
28class 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