ROOT logo
// AliTRDonlineTrackletQA implements the standard QA for the TRD
// on-line tracklets.

#ifndef ALITRDONLINETRACKLETQA_H
#define ALITRDONLINETRACKLETQA_H

#include "AliAnalysisTask.h"

#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"
#include "AliESDTrdTracklet.h"

class TList;
class TH1F;
class TH2F;

class AliInputEventHandler;
class AliVEvent;
class AliESDEvent;
class AliAODEvent;
class AliMCEvent;

class AliTRDgeometry;
class AliTRDpadPlane;
class AliTRDtrackletMCM;
class AliTRDtrackletWord;

class AliTRDonlineTrackletQA : public AliAnalysisTask
{
 public:
  AliTRDonlineTrackletQA(const char *name);
  ~AliTRDonlineTrackletQA();

  void ConnectInputData(const Option_t *option);
  void CreateOutputObjects();
  void Exec(const Option_t *option);
  void LocalInit();
  void Terminate(const Option_t *option);

  void PlotMC(AliESDTrdTracklet *trkl);
  void PlotESD(AliESDTrdTracklet *trkl);

  Int_t GetTrackletsForMC(Int_t label, Int_t idx[]) const;

  Float_t GetX(AliESDTrdTracklet *trkl) { return fGeo->GetTime0(trkl->GetDetector() % 6); }
  Float_t GetZ(AliESDTrdTracklet *trkl) { return fGeo->GetPadPlane((trkl->GetDetector() % 6) / 2, (trkl->GetDetector()/6) % 5)->GetRowPos(trkl->GetBinZ()) -
					    fGeo->GetPadPlane((trkl->GetDetector() % 6) / 2, (trkl->GetDetector()/6) % 5)->GetRowSize(trkl->GetBinZ()); }

 protected:
  AliESDEvent *fESD;                    //! current ESD event

  AliInputEventHandler *fInputHandler;  //! input handler
  AliVEvent            *fInputEvent;    //! input event
  AliAODEvent          *fOutputAOD;     //! output AOD
  AliMCEvent           *fMCEvent;       //! MC event

  TClonesArray         *fTrackletsRaw;  //! array of raw tracklets
  TClonesArray         *fTrackletsSim;  //! array of sim tracklets

  // ----- output objects -----
  TList                *fOutputList;	//! list of output objects
  TH1F                 *fHistYpos;      //! trkl y-position within chamber
  TH1F                 *fHistYres;      //! trkl y-residual to track reference
  TH2F                 *fHistYresDy;    //! trkl y-residual to track reference vs. deflection
  TH1F                 *fHistdY;	//! trkl dy 
  TH1F                 *fHistdYres;     //! trkl dy-residual to track reference
  TH2F                 *fHistYlocal[6]; //! trkl local y vs. MC (per layer)
  TH1F                 *fHistYresESD;   //! trkl y-residual to ESD track
  TH1F                 *fHistdYresESD;  //! trkl dy-residual to ESD track
  TH1F                 *fHistCanddY;    //! trkl cand at given dy
  TH1F                 *fHistFounddY;    //! trkl found at given dy
  TH1F                 *fHistTrklPerRef; //! no. of tracklets found per track reference
  TH2F                 *fHistdYdYref;    //! dy vs. dy from track reference
  TH1F                 *fHistYposRaw;    //! trkl y-position within chamber
  TH1F                 *fHistdYRaw;	//! trkl dy 
  TH1F                 *fHistAlphaRaw;	//! trkl alpha 
  TH2F                 *fHistYdYRaw;    //! y vs dy from raw
  TH1F                 *fHistZrow;      //! z-row
  TH1F                 *fHistZrowRaw;   //! z-row
  TH1F                 *fHistPid;       //! PID
  TH1F                 *fHistPidRaw;    //! PID
  TH1F                 *fHistPidDiff;   //! PID
  TH1F                 *fHistYdiff;     //! difference in y between sim and raw
  TH1F                 *fHistdYdiff;    //! difference in dy between sim and raw
  TH2F                 *fHistdYdYraw;   //! dy sim vs. raw
  TH1F                 *fHistFitYres;   //! trkl y-residual to track fit through
					//  contributing tracklets
  TH1F                 *fHistFitDyresEven;  //! trkl deflection residual to track fit through
					    //  contributing tracklets
  TH1F                 *fHistFitDyresOdd;   //! trkl deflection residual to track fit through
					    //  contributing tracklets
  TH2F                 *fHistNoMatchSim; //! simulated tracklets which were not matched to a raw one
  TH2F                 *fHistNoMatchRaw; //! raw tracklets which were not matched to a simulated one

  TH1F                 *fHistResY;      //! residuals in y w.r.t. GTU track
  TH1F                 *fHistResZ;      //! residuals in z w.r.t. GTU track
  TTree                *fTreeTracklets; //! store tracklet information

  // ----- temporary storage -----
  Float_t fY;			// y-position
  Float_t fDY;			// deflection length
  Float_t fYdiff;		// difference in y-position
  Float_t fDYdiff;		// difference in deflection
  Int_t   fQ0;			// accumulated charge in first window
  Int_t   fQ1;			// accumulated charge in second window
  Int_t   fNHits;		// no. of hits

  // ----- configuration -----
  Float_t fMinPt;                       // minimal pt for tracks and track reference
					// which are used for comparison

  // ----- internal use -----
  AliTRDgeometry       *fGeo; //! TRD geometry

  Int_t fNevent;             // current event number

  TTree *fTrackletTree;  //! tracklets from simulation

 private:
  AliTRDonlineTrackletQA(const AliTRDonlineTrackletQA&); // not implemented
  AliTRDonlineTrackletQA& operator=(const AliTRDonlineTrackletQA&); // not implemented

  ClassDef(AliTRDonlineTrackletQA, 0);
};

#endif
 AliTRDonlineTrackletQA.h:1
 AliTRDonlineTrackletQA.h:2
 AliTRDonlineTrackletQA.h:3
 AliTRDonlineTrackletQA.h:4
 AliTRDonlineTrackletQA.h:5
 AliTRDonlineTrackletQA.h:6
 AliTRDonlineTrackletQA.h:7
 AliTRDonlineTrackletQA.h:8
 AliTRDonlineTrackletQA.h:9
 AliTRDonlineTrackletQA.h:10
 AliTRDonlineTrackletQA.h:11
 AliTRDonlineTrackletQA.h:12
 AliTRDonlineTrackletQA.h:13
 AliTRDonlineTrackletQA.h:14
 AliTRDonlineTrackletQA.h:15
 AliTRDonlineTrackletQA.h:16
 AliTRDonlineTrackletQA.h:17
 AliTRDonlineTrackletQA.h:18
 AliTRDonlineTrackletQA.h:19
 AliTRDonlineTrackletQA.h:20
 AliTRDonlineTrackletQA.h:21
 AliTRDonlineTrackletQA.h:22
 AliTRDonlineTrackletQA.h:23
 AliTRDonlineTrackletQA.h:24
 AliTRDonlineTrackletQA.h:25
 AliTRDonlineTrackletQA.h:26
 AliTRDonlineTrackletQA.h:27
 AliTRDonlineTrackletQA.h:28
 AliTRDonlineTrackletQA.h:29
 AliTRDonlineTrackletQA.h:30
 AliTRDonlineTrackletQA.h:31
 AliTRDonlineTrackletQA.h:32
 AliTRDonlineTrackletQA.h:33
 AliTRDonlineTrackletQA.h:34
 AliTRDonlineTrackletQA.h:35
 AliTRDonlineTrackletQA.h:36
 AliTRDonlineTrackletQA.h:37
 AliTRDonlineTrackletQA.h:38
 AliTRDonlineTrackletQA.h:39
 AliTRDonlineTrackletQA.h:40
 AliTRDonlineTrackletQA.h:41
 AliTRDonlineTrackletQA.h:42
 AliTRDonlineTrackletQA.h:43
 AliTRDonlineTrackletQA.h:44
 AliTRDonlineTrackletQA.h:45
 AliTRDonlineTrackletQA.h:46
 AliTRDonlineTrackletQA.h:47
 AliTRDonlineTrackletQA.h:48
 AliTRDonlineTrackletQA.h:49
 AliTRDonlineTrackletQA.h:50
 AliTRDonlineTrackletQA.h:51
 AliTRDonlineTrackletQA.h:52
 AliTRDonlineTrackletQA.h:53
 AliTRDonlineTrackletQA.h:54
 AliTRDonlineTrackletQA.h:55
 AliTRDonlineTrackletQA.h:56
 AliTRDonlineTrackletQA.h:57
 AliTRDonlineTrackletQA.h:58
 AliTRDonlineTrackletQA.h:59
 AliTRDonlineTrackletQA.h:60
 AliTRDonlineTrackletQA.h:61
 AliTRDonlineTrackletQA.h:62
 AliTRDonlineTrackletQA.h:63
 AliTRDonlineTrackletQA.h:64
 AliTRDonlineTrackletQA.h:65
 AliTRDonlineTrackletQA.h:66
 AliTRDonlineTrackletQA.h:67
 AliTRDonlineTrackletQA.h:68
 AliTRDonlineTrackletQA.h:69
 AliTRDonlineTrackletQA.h:70
 AliTRDonlineTrackletQA.h:71
 AliTRDonlineTrackletQA.h:72
 AliTRDonlineTrackletQA.h:73
 AliTRDonlineTrackletQA.h:74
 AliTRDonlineTrackletQA.h:75
 AliTRDonlineTrackletQA.h:76
 AliTRDonlineTrackletQA.h:77
 AliTRDonlineTrackletQA.h:78
 AliTRDonlineTrackletQA.h:79
 AliTRDonlineTrackletQA.h:80
 AliTRDonlineTrackletQA.h:81
 AliTRDonlineTrackletQA.h:82
 AliTRDonlineTrackletQA.h:83
 AliTRDonlineTrackletQA.h:84
 AliTRDonlineTrackletQA.h:85
 AliTRDonlineTrackletQA.h:86
 AliTRDonlineTrackletQA.h:87
 AliTRDonlineTrackletQA.h:88
 AliTRDonlineTrackletQA.h:89
 AliTRDonlineTrackletQA.h:90
 AliTRDonlineTrackletQA.h:91
 AliTRDonlineTrackletQA.h:92
 AliTRDonlineTrackletQA.h:93
 AliTRDonlineTrackletQA.h:94
 AliTRDonlineTrackletQA.h:95
 AliTRDonlineTrackletQA.h:96
 AliTRDonlineTrackletQA.h:97
 AliTRDonlineTrackletQA.h:98
 AliTRDonlineTrackletQA.h:99
 AliTRDonlineTrackletQA.h:100
 AliTRDonlineTrackletQA.h:101
 AliTRDonlineTrackletQA.h:102
 AliTRDonlineTrackletQA.h:103
 AliTRDonlineTrackletQA.h:104
 AliTRDonlineTrackletQA.h:105
 AliTRDonlineTrackletQA.h:106
 AliTRDonlineTrackletQA.h:107
 AliTRDonlineTrackletQA.h:108
 AliTRDonlineTrackletQA.h:109
 AliTRDonlineTrackletQA.h:110
 AliTRDonlineTrackletQA.h:111
 AliTRDonlineTrackletQA.h:112
 AliTRDonlineTrackletQA.h:113
 AliTRDonlineTrackletQA.h:114
 AliTRDonlineTrackletQA.h:115
 AliTRDonlineTrackletQA.h:116
 AliTRDonlineTrackletQA.h:117
 AliTRDonlineTrackletQA.h:118
 AliTRDonlineTrackletQA.h:119
 AliTRDonlineTrackletQA.h:120
 AliTRDonlineTrackletQA.h:121
 AliTRDonlineTrackletQA.h:122
 AliTRDonlineTrackletQA.h:123
 AliTRDonlineTrackletQA.h:124
 AliTRDonlineTrackletQA.h:125
 AliTRDonlineTrackletQA.h:126