]>
Commit | Line | Data |
---|---|---|
2b2cdb6e | 1 | #ifndef ALIANALYSISTASKSOH_H |
2 | #define ALIANALYSISTASKSOH_H | |
e9fd1d62 | 3 | |
4 | // $Id$ | |
5 | ||
6 | class TList; | |
7 | class TH1F; | |
8 | class TH2F; | |
9733b37f | 9 | class TH3F; |
048f6758 | 10 | class THnSparse; |
e9fd1d62 | 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 | ||
83888eef | 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 | ||
e9fd1d62 | 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 | ||
83888eef | 42 | AliESDtrack *GetAcceptTrack(AliESDtrack *esdtrack) ; |
e9fd1d62 | 43 | Bool_t IsGoodCluster(AliESDCaloCluster *cluster) ; |
44 | Bool_t IsGoodMcParticle(AliVParticle* vParticle, Int_t ipart); | |
83888eef | 45 | Bool_t EsdVertexOk() const ; |
e9fd1d62 | 46 | void ProcessTrack() ; |
4bbf59e5 | 47 | void ProcessCluster() ; |
e9fd1d62 | 48 | void ProcessMc() ; |
4bbf59e5 | 49 | void ProcessScaleFactor() ; |
e9fd1d62 | 50 | |
51 | AliESDEvent *fESD; //!esd event | |
52 | AliMCEvent *fMC; //!mv event | |
83888eef | 53 | Double_t fZVtxMax; // Max vertex z cut |
e9fd1d62 | 54 | AliESDtrackCuts *fEsdTrackCuts; // esd track cuts |
55 | AliESDtrackCuts *fHybridTrackCuts1; // hybrid track cuts | |
56 | AliESDtrackCuts *fHybridTrackCuts2; // hybrid track cuts | |
57 | TArrayI *fTrackIndices; //!selected track index | |
4bbf59e5 | 58 | TArrayI *fClusterIndices; //!cluster with two matched MC track index |
59 | TObjArray *fClusterArray; //!selected cluster array | |
83888eef | 60 | Bool_t fMcProcess; |
61 | Bool_t fTrackProcess; | |
62 | Bool_t fSFProcess; | |
63 | Bool_t fClusterProcess; | |
64 | ||
e9fd1d62 | 65 | TList *fOutputList; //!output list |
83888eef | 66 | |
e9fd1d62 | 67 | TH1F *fHEventStat; //!statistics histo |
4bbf59e5 | 68 | TH1F *fHScaleFactor; //!scale factor spectrum |
69 | TH1F *fHScaleFactor100HC; //!scale factor with 100% HC spectrum | |
e9fd1d62 | 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 | |
e9fd1d62 | 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 | |
faba08b8 | 82 | TH2F *fHPhotonEdiff100HC; //!(truth E - calculated E in 100% HC)/truth E vs. truth E with photon |
a64777f6 | 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 | |
faba08b8 | 85 | TH2F *fHPhotonEdiff0HC; //!(truth E - cluster E)/truth E vs. truth E with photon |
86 | TH2F *fHPhotonEVsClsE; //!cluster E vs. truth photon E | |
048f6758 | 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 | |
83888eef | 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 | ||
e9fd1d62 | 112 | AliAnalysisTaskSOH(const AliAnalysisTaskSOH&); // not implemented |
113 | AliAnalysisTaskSOH& operator=(const AliAnalysisTaskSOH&); // not implemented | |
114 | ||
6418e58f | 115 | ClassDef(AliAnalysisTaskSOH, 13); // Analysis task Saehanseul Oh |
e9fd1d62 | 116 | }; |
117 | #endif |