]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSOH.h
Include binning component in the global analysis framework
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskSOH.h
1 #ifndef ALIANALYSISTASKSOH_H
2 #define ALIANALYSISTASKSOH_H
3
4 // $Id$
5
6 class TList;
7 class TH1F;
8 class TH2F;
9 class TH3F;
10 class THnSparse;
11 class TArrayI;
12 class AliESDEvent;
13 class AliMCEvent;
14 class AliESDtrack;
15 class AliESDCaloCluster;
16 class AliESDtrackCuts;
17
18 #include "AliAnalysisTaskSE.h"
19
20 class AliAnalysisTaskSOH : public AliAnalysisTaskSE {
21  public:
22   AliAnalysisTaskSOH();
23   AliAnalysisTaskSOH(const char *name);
24   virtual ~AliAnalysisTaskSOH();
25   
26   void                UserCreateOutputObjects();
27   void                UserExec(Option_t *option);
28   void                Terminate(Option_t *);
29   
30   void SetMcProcess(Bool_t p)                                        { fMcProcess=p;              }
31   void SetTrackProcess(Bool_t p)                                     { fTrackProcess=p;           }
32   void SetSFProcess(Bool_t p)                                        { fSFProcess=p;              }
33   void SetClusterProcess(Bool_t p)                                   { fClusterProcess=p;         }
34   void SetZvtx(Double_t zvtx)                                        { fZVtxMax = zvtx;           }
35
36   void                SetEsdTrackCuts(AliESDtrackCuts *cuts)         { fEsdTrackCuts     = cuts ; }
37   void                SetHybridTrackCuts1(AliESDtrackCuts *cuts)     { fHybridTrackCuts1 = cuts ; }
38   void                SetHybridTrackCuts2(AliESDtrackCuts *cuts)     { fHybridTrackCuts2 = cuts ; }
39
40  private:
41
42   AliESDtrack         *GetAcceptTrack(AliESDtrack *esdtrack)                ;
43   Bool_t              IsGoodCluster(AliESDCaloCluster *cluster)             ;
44   Bool_t              IsGoodMcParticle(AliVParticle* vParticle, Int_t ipart);
45   Bool_t              EsdVertexOk() const                  ;
46   void                ProcessTrack()                       ;
47   void                ProcessCluster()                     ;
48   void                ProcessMc()                          ;
49   void                ProcessScaleFactor()                 ;
50
51   AliESDEvent        *fESD;                      //!esd event
52   AliMCEvent         *fMC;                       //!mv event
53   Double_t           fZVtxMax;                  //  Max vertex z cut
54   AliESDtrackCuts    *fEsdTrackCuts;             // esd track cuts
55   AliESDtrackCuts    *fHybridTrackCuts1;         // hybrid track cuts
56   AliESDtrackCuts    *fHybridTrackCuts2;         // hybrid track cuts
57   TArrayI            *fTrackIndices;             //!selected track index
58   TArrayI            *fClusterIndices;           //!cluster with two matched MC track index
59   TObjArray          *fClusterArray;             //!selected cluster array
60   Bool_t             fMcProcess;
61   Bool_t             fTrackProcess;  
62   Bool_t             fSFProcess;
63   Bool_t             fClusterProcess;
64
65   TList              *fOutputList;               //!output list
66
67   TH1F               *fHEventStat;               //!statistics histo
68   TH1F               *fHScaleFactor;             //!scale factor spectrum
69   TH1F               *fHScaleFactor100HC;        //!scale factor with 100% HC spectrum
70   TH2F               *fHEOverPVsPt;              //!(cluster energy over reconstructed track p) vs. track pt
71   TH2F               *fHEMCalResponsePion;       //!same as above for pions 
72   TH2F               *fHEMCalResponseElec;       //!same as above for electrons
73   TH2F               *fHEMCalResponseProton;     //!same as above for protons
74   TH2F               *fHEMCalRecdPhidEta;        //!(EMCal cluster phi - track phi) vs. (EMCal cluster eta - track eta)
75   TH2F               *fHEMCalRecdPhidEtaP;       //!same as above for positive charge tracks
76   TH2F               *fHEMCalRecdPhidEtaM;       //!same as above for negative charge tracks
77   TH2F               *fHEMCalRecdPhidEta_Truth;  //!same as above with mc truth matching
78   TH2F               *fHEMCalRecdPhidEtaP_Truth; //!same as above with positive truth charge matching
79   TH2F               *fHEMCalRecdPhidEtaM_Truth; //!same as above with negative truth charge matching
80   TH2F               *fHEMCalRecdPhidEtaposEta;  //!same as above for positive eta
81   TH2F               *fHEMCalRecdPhidEtanegEta;  //!same as above for negative eta
82   TH2F               *fHPhotonEdiff100HC;        //!(truth E - calculated E in 100% HC)/truth E vs. truth E with photon
83   TH2F               *fHPhotonEdiff70HC;         //!(truth E - calculated E in 70% HC)/truth E vs. truth E with photon
84   TH2F               *fHPhotonEdiff30HC;         //!(truth E - calculated E in 30% HC)/truth E vs. truth E with photon
85   TH2F               *fHPhotonEdiff0HC;          //!(truth E - cluster E)/truth E vs. truth E with photon
86   TH2F               *fHPhotonEVsClsE;           //!cluster E vs. truth photon E
87   TH2F               *fHistEsub1Pch;             //!(subtracted E in 100% HC) vs. total track P, clusters with 1 matching track
88   TH2F               *fHistEsub2Pch;             //!(subtracted E in 100% HC) vs. total track P, clusters with 2 matching tracks
89   TH2F               *fHistEsub1PchRat;          //!(subtracted E in 100% HC)/total track P vs. total track P, clusters with 1 matching track
90   TH2F               *fHistEsub2PchRat;          //!(subtracted E in 100% HC)/total track P vs. total track P, clusters with 2 matching tracks
91   THnSparse          *fHClsEoverMcE_All;         //!cluster E/MC particle E, cluster with only one matching particle
92   THnSparse          *fHClsEoverMcE_Photon;      //!above for photon
93   THnSparse          *fHClsEoverMcE_Elec;        //!above for electron
94   THnSparse          *fHClsEoverMcE_Pion;        //!above for pion
95   TH3F               *fHParGenPion_p;            //!plus pion mc truth pt, phi, eta spectrum
96   TH3F               *fHParGenPion_m;            //!minus pion mc truth pt, phi, eta spectrum
97   TH3F               *fHParGenPion_rmInj_p;      //!plus charged mc truth(pion) without injected signal pt, phi, eta spectrum
98   TH3F               *fHParGenPion_rmInj_m;      //!minus charged mc truth(pion) without injected signal pt, phi, eta spectrum
99   TH3F               *fHDetGenFakePion;          //!fake pion tracks pt, phi, eta spectrum
100   TH3F               *fHDetRecFakePion;          //!fake pion tracks pt, phi, eta spectrum
101   TH3F               *fHDetGenSecPion;           //!secondary pion tracks pt, phi, eta spectrum
102   TH3F               *fHDetRecSecPion;           //!secondary pion tracks pt, phi, eta spectrum
103   TH3F               *fHDetGenPion_p[3];         //!plus pion mc detector level pt, phi, eta spectrum
104   TH3F               *fHDetRecPion_p[3];         //!plus pion reconstructed detector level pt, phi, eta spectrum
105   TH3F               *fHDetGenPion_m[3];         //!minus pion mc detector level pt, phi, eta spectrum
106   TH3F               *fHDetRecPion_m[3];         //!minus pion reconstructed detector level pt, phi, eta spectrum
107   TH3F               *fHDetGenPion_rmInj_p[3];   //!plus charged generated detector level particle(pion) without injected signal pt, phi, eta spectrum 
108   TH3F               *fHDetRecPion_rmInj_p[3];   //!plus charged reconstructed detector level pion+ track without injected signal pt, phi, eta spectrum
109   TH3F               *fHDetGenPion_rmInj_m[3];   //!minus charged generated detector level particle(pion) without injected signal pt, phi, eta spectrum 
110   TH3F               *fHDetRecPion_rmInj_m[3];   //!minus charged reconstructed detector level pion- track without injected signal pt, phi, eta spectrum
111   
112   AliAnalysisTaskSOH(const AliAnalysisTaskSOH&); // not implemented
113   AliAnalysisTaskSOH& operator=(const AliAnalysisTaskSOH&); // not implemented
114   
115   ClassDef(AliAnalysisTaskSOH, 13); // Analysis task Saehanseul Oh
116 };
117 #endif