]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TRD/AliTRDonlineTrackletQA.h
coverity fix
[u/mrichter/AliRoot.git] / PWGPP / TRD / AliTRDonlineTrackletQA.h
1 // AliTRDonlineTrackletQA implements the standard QA for the TRD
2 // on-line tracklets.
3
4 #ifndef ALITRDONLINETRACKLETQA_H
5 #define ALITRDONLINETRACKLETQA_H
6
7 #include "AliAnalysisTask.h"
8
9 #include "AliTRDgeometry.h"
10 #include "AliTRDpadPlane.h"
11 #include "AliESDTrdTracklet.h"
12
13 class TList;
14 class TH1F;
15 class TH2F;
16
17 class AliInputEventHandler;
18 class AliVEvent;
19 class AliESDEvent;
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
40   void PlotMC(AliESDTrdTracklet *trkl);
41   void PlotESD(AliESDTrdTracklet *trkl);
42
43   Int_t GetTrackletsForMC(Int_t label, Int_t idx[]) const;
44
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
49  protected:
50   AliESDEvent *fESD;                    //! current ESD event
51
52   AliInputEventHandler *fInputHandler;  //! input handler
53   AliVEvent            *fInputEvent;    //! input event
54   AliAODEvent          *fOutputAOD;     //! output AOD
55   AliMCEvent           *fMCEvent;       //! MC event
56
57   TClonesArray         *fTrackletsRaw;  //! array of raw tracklets
58   TClonesArray         *fTrackletsSim;  //! array of sim tracklets
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 
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
94
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
98
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
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
115   Int_t fNevent;             // current event number
116
117   TTree *fTrackletTree;  //! tracklets from simulation
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