TOF + macros to each detector folder
[u/mrichter/AliRoot.git] / TRD / qaAnalysis / AliTRDqaJPsi.h
1 #ifndef ALITRDQAJPSI_H
2 #define ALITRDQAJPSI_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 //
7 // This class is a part of a package of high level QA monitoring for TRD.
8 //
9 // S. Radomski
10 // radomski@physi.uni-heidelberg.de
11 // March 2008
12 //
13
14 #include "AliAnalysisTask.h"  
15
16 class TTree; 
17 class TH1D; 
18 class TH2D;
19 class TLorentzVector;
20
21 class AliExternalTrackParam;
22 class AliKFParticle;
23 class AliESDEvent; 
24 class AliESDtrack;
25
26 class AliTRDqaJPsi : public AliAnalysisTask {
27
28  public:
29
30   AliTRDqaJPsi();
31   AliTRDqaJPsi(const char *name);
32   AliTRDqaJPsi(const AliTRDqaJPsi &trd);
33   AliTRDqaJPsi &operator=(const AliTRDqaJPsi & /*g*/) { return *this; };
34   virtual ~AliTRDqaJPsi() {}
35    
36   virtual void Exec(Option_t * opt = "");
37   virtual void ConnectInputData(Option_t *);
38   virtual void CreateOutputObjects();
39   virtual void Terminate(Option_t * opt = "");
40
41  private:
42  
43   TTree        * fChain;             //!pointer to the analyzed TTree or TChain
44   AliESDEvent  * fESD;               //! Declaration of leave types
45
46   TObjArray * fOutputContainer; //! output data container
47   
48   // histograms
49
50   static const Int_t fgknSteps = 5;   // number of analysis steps (arbitrary)
51
52   TH1D *fStatus[fgknSteps];      // track status
53   TH1D *fnTracks[2*fgknSteps];   // number of tracks
54   TH1D *fPt[2*fgknSteps];        // transverse momentum
55   TH1D *fPID[2*fgknSteps];       // PID LQ
56   TH1D *fAngleSM[fgknSteps];     // difference in SM ID
57   
58   //TH2D *fnGoodTracks;          // correlation of the final number of Pos and Neg tracks
59   TH1D *fInvMass[fgknSteps];     // invariant mass using different cuts
60   TH1D *fInvMassVec[fgknSteps];  // invariant mass
61   TH1D *fInvMassDiff[fgknSteps]; // invariant mass difference
62
63   TH2D *fPtAngle[fgknSteps];     // pt angle 
64
65   // tracks
66   AliKFParticle *fTracks[1000];  // tracks
67   TLorentzVector *fVec[1000];    // Lorentz vector for the tracks
68   Int_t fInSample[1000][fgknSteps]; // in sample?
69   Int_t fSM[1000];                  // TRD sector
70   Int_t fnKFtracks;                 //[2];          
71   
72   // helper functions
73   void FillHist(AliESDtrack *track, Int_t step);
74   TLorentzVector *CreateVector(AliESDtrack *track);
75
76
77   ClassDef(AliTRDqaJPsi, 0); // a TRD analysis task 
78 };
79 #endif // ALITRDQAJPSI_H