]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSOH.h
update from hanseul
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskSOH.h
... / ...
CommitLineData
1#ifndef ALIANALYSISTASKSOH_H
2#define ALIANALYSISTASKSOH_H
3
4// $Id$
5
6class TList;
7class TH1F;
8class TH2F;
9class TH3F;
10class THnSparse;
11class TArrayI;
12class AliESDEvent;
13class AliMCEvent;
14class AliESDtrack;
15class AliESDCaloCluster;
16class AliESDtrackCuts;
17
18#include "AliAnalysisTaskSE.h"
19
20class 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 SetEsdTrackCuts(AliESDtrackCuts *cuts) { fEsdTrackCuts = cuts ; }
31 void SetHybridTrackCuts1(AliESDtrackCuts *cuts) { fHybridTrackCuts1 = cuts ; }
32 void SetHybridTrackCuts2(AliESDtrackCuts *cuts) { fHybridTrackCuts2 = cuts ; }
33
34 private:
35
36 AliESDtrack *GetAcceptTrack(AliESDtrack *esdtrack) ;
37 Bool_t IsGoodCluster(AliESDCaloCluster *cluster) ;
38 Bool_t IsGoodMcParticle(AliVParticle* vParticle, Int_t ipart);
39 void ProcessTrack() ;
40 void ProcessCluster() ;
41 void ProcessMc() ;
42 void ProcessScaleFactor() ;
43
44 AliESDEvent *fESD; //!esd event
45 AliMCEvent *fMC; //!mv event
46 AliESDtrackCuts *fEsdTrackCuts; // esd track cuts
47 AliESDtrackCuts *fHybridTrackCuts1; // hybrid track cuts
48 AliESDtrackCuts *fHybridTrackCuts2; // hybrid track cuts
49 TArrayI *fTrackIndices; //!selected track index
50 TArrayI *fClusterIndices; //!cluster with two matched MC track index
51 TObjArray *fClusterArray; //!selected cluster array
52
53 TList *fOutputList; //!output list
54 TH1F *fHEventStat; //!statistics histo
55 TH3F *fHTrkEffParGenPtEtaPhi; //!charged pion mc truth pt spectrum
56 TH3F *fHTrkEffDetGenPtEtaPhi; //!charged pion mc detector level pt spectrum
57 TH3F *fHTrkEffDetRecPtEtaPhi; //!charged pion reconstructed detector level pt spectrum
58 TH3F *fHTrkEffDetRecFakePtEtaPhi;//!fake and secondary tracks pt spectrum
59 TH1F *fHTrkEffParGenPt_rmInj; //!mc truth without injected signal pt spectrum
60 TH1F *fHTrkEffDetGenPt_rmInj; //!generated detector level particle without injected signal pt spectrum
61 TH1F *fHTrkEffParGenPt_PiRmInj; //!mc truth(pion) without injected signal pt spectrum
62 TH1F *fHTrkEffDetGenPt_PiRmInj; //!generated detector level particle(pion) without injected signal pt spectrum
63 TH1F *fHTrkEffParGenPt_all; //!mc truth pt spectrum
64 TH1F *fHTrkEffDetGenPt_all; //!generated detector level pt spectrum
65 TH1F *fHTrkEffParGenPt_Dch; //!charged D meson truth pt spectrum
66 TH1F *fHTrkEffDetGenPt_Dch; //!charged D meson generated detector level pt spectrum
67 TH1F *fHTrkEffParGenPt_Dn; //!neutral D meson truth pt spectrum
68 TH1F *fHTrkEffDetGenPt_Dn; //!neutral D meson generated detector level pt spectrum
69 TH1F *fHTrkEffParGenPt_Ds; //!strange D meson truth pt spectrum
70 TH1F *fHTrkEffDetGenPt_Ds; //!strange D meson generated detector level pt spectrum
71 TH1F *fHTrkEffParGenPt_cL; //!charmed lambda truth pt spectrum
72 TH1F *fHTrkEffDetGenPt_cL; //!charmed lambda generated detector level pt spectrum
73 TH1F *fHTrkEffParGenPt_JPsi; //!J/Psi truth pt spectrum
74 TH1F *fHTrkEffDetGenPt_JPsi; //!J/Psi reconstructed detector level pt spectrum
75 TH1F *fHScaleFactor; //!scale factor spectrum
76 TH1F *fHScaleFactor100HC; //!scale factor with 100% HC spectrum
77 TH2F *fHEOverPVsPt; //!(cluster energy over reconstructed track p) vs. track pt
78 TH2F *fHEMCalResponsePion; //!same as above for pions
79 TH2F *fHEMCalResponseElec; //!same as above for electrons
80 TH2F *fHEMCalResponseProton; //!same as above for protons
81 TH2F *fHEMCalRecdPhidEta; //!(EMCal cluster phi - track phi) vs. (EMCal cluster eta - track eta)
82 TH2F *fHEMCalRecdPhidEtaP; //!same as above for positive charge tracks
83 TH2F *fHEMCalRecdPhidEtaM; //!same as above for negative charge tracks
84 TH2F *fHEMCalRecdPhidEta_Truth; //!same as above with mc truth matching
85 TH2F *fHEMCalRecdPhidEtaP_Truth; //!same as above with positive truth charge matching
86 TH2F *fHEMCalRecdPhidEtaM_Truth; //!same as above with negative truth charge matching
87 TH2F *fHEMCalRecdPhidEtaposEta; //!same as above for positive eta
88 TH2F *fHEMCalRecdPhidEtanegEta; //!same as above for negative eta
89 TH2F *fHPhotonEdiff100HC; //!(truth E - calculated E in 100% HC)/truth E vs. truth E with photon
90 TH2F *fHPhotonEdiff70HC; //!(truth E - calculated E in 70% HC)/truth E vs. truth E with photon
91 TH2F *fHPhotonEdiff30HC; //!(truth E - calculated E in 30% HC)/truth E vs. truth E with photon
92 TH2F *fHPhotonEdiff0HC; //!(truth E - cluster E)/truth E vs. truth E with photon
93 TH2F *fHPhotonEVsClsE; //!cluster E vs. truth photon E
94 TH2F *fHistEsub1Pch; //!(subtracted E in 100% HC) vs. total track P, clusters with 1 matching track
95 TH2F *fHistEsub2Pch; //!(subtracted E in 100% HC) vs. total track P, clusters with 2 matching tracks
96 TH2F *fHistEsub1PchRat; //!(subtracted E in 100% HC)/total track P vs. total track P, clusters with 1 matching track
97 TH2F *fHistEsub2PchRat; //!(subtracted E in 100% HC)/total track P vs. total track P, clusters with 2 matching tracks
98 THnSparse *fHClsEoverMcE_All; //!cluster E/MC particle E, cluster with only one matching particle
99 THnSparse *fHClsEoverMcE_Photon; //!above for photon
100 THnSparse *fHClsEoverMcE_Elec; //!above for electron
101 THnSparse *fHClsEoverMcE_Pion; //!above for pion
102
103 AliAnalysisTaskSOH(const AliAnalysisTaskSOH&); // not implemented
104 AliAnalysisTaskSOH& operator=(const AliAnalysisTaskSOH&); // not implemented
105
106 ClassDef(AliAnalysisTaskSOH, 9); // Analysis task Saehanseul Oh
107};
108#endif