]>
Commit | Line | Data |
---|---|---|
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 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 |