]>
Commit | Line | Data |
---|---|---|
cb68eb1d | 1 | //-*- Mode: C++ -*- |
2 | ||
3 | #ifndef ALIANALYSISTASKNETPARTICLE_H | |
4 | #define ALIANALYSISTASKNETPARTICLE_H | |
5 | ||
6 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
7 | * See cxx source for full Copyright notice */ | |
8 | ||
9 | // Task for NetParticle Distributions | |
10 | // Authors: Jochen Thaeder <jochen@thaeder.de> | |
11 | ||
12 | #include "AliAnalysisTaskSE.h" | |
13 | #include "TList.h" | |
14 | #include "THnSparse.h" | |
15 | ||
16 | #include "AliAnalysisNetParticleHelper.h" | |
17 | #include "AliAnalysisNetParticleEffCont.h" | |
18 | #include "AliAnalysisNetParticleDCA.h" | |
19 | #include "AliAnalysisNetParticleDistribution.h" | |
20 | ||
21 | class AliESDEvent; | |
22 | class AliESDInputHandler; | |
23 | class AliMCEvent; | |
24 | class AliStack; | |
25 | class AliPIDResponse; | |
26 | class AliESDResponse; | |
27 | ||
28 | class AliAnalysisTaskNetParticle : public AliAnalysisTaskSE { | |
29 | ||
30 | public: | |
31 | ||
32 | /* | |
33 | * --------------------------------------------------------------------------------- | |
34 | * Constructor / Destructor | |
35 | * --------------------------------------------------------------------------------- | |
36 | */ | |
37 | ||
38 | AliAnalysisTaskNetParticle(const char *name = "AliAnalysisTaskNetParticle"); | |
39 | virtual ~AliAnalysisTaskNetParticle(); | |
40 | ||
41 | /* | |
42 | * --------------------------------------------------------------------------------- | |
43 | * Task Methods | |
44 | * --------------------------------------------------------------------------------- | |
45 | */ | |
46 | ||
47 | virtual void UserCreateOutputObjects(); | |
48 | virtual void UserExec(Option_t *option); | |
49 | virtual void Terminate(Option_t *); | |
50 | ||
51 | /* | |
52 | * --------------------------------------------------------------------------------- | |
53 | * Public Methods | |
54 | * --------------------------------------------------------------------------------- | |
55 | */ | |
56 | ||
57 | /** Initialize Task */ | |
58 | Int_t Initialize(); | |
59 | ||
60 | /* | |
61 | * --------------------------------------------------------------------------------- | |
62 | * Setter | |
63 | * --------------------------------------------------------------------------------- | |
64 | */ | |
65 | ||
66 | void SetIsMC() {fIsMC = kTRUE;} | |
67 | void SetUseQATHnSparse(Bool_t b) {fUseQATHnSparse = b;} | |
68 | ||
69 | void SetESDTrackCutMode(Int_t i) {fESDTrackCutMode = i;} | |
70 | void SetModeEffCreation(Int_t i) {fModeEffCreation = i;} | |
71 | void SetModeDCACreation(Int_t i) {fModeDCACreation = i;} | |
72 | void SetModeDistCreation(Int_t i) {fModeDistCreation = i;} | |
73 | ||
74 | void SetEtaMax(Float_t f) {fEtaMax = f;} | |
75 | void SetPtRange(Float_t f1, Float_t f2) {fPtRange[0] = f1; fPtRange[1] = f2;} | |
76 | void SetPtRangeEff(Float_t f1, Float_t f2) {fPtRangeEff[0] = f1; fPtRangeEff[1] = f2;} | |
77 | ||
78 | /* | |
79 | * --------------------------------------------------------------------------------- | |
80 | * Setter - Pass-Through | |
81 | * --------------------------------------------------------------------------------- | |
82 | */ | |
83 | ||
84 | void SetCentralityBinMax(Int_t d) {fHelper->SetCentralityBinMax(d);} | |
85 | void SetVertexZMax(Float_t f) {fHelper->SetVertexZMax(f);} | |
86 | ||
87 | void SetRapidityMax(Float_t f) {fHelper->SetRapidityMax(f);} | |
88 | void SetMinTrackLengthMC(Float_t f) {fHelper->SetMinTrackLengthMC(f);} | |
89 | void SetNSigmaMaxCdd(Float_t f) {fHelper->SetNSigmaMaxCdd(f);} | |
90 | void SetNSigmaMaxCzz(Float_t f) {fHelper->SetNSigmaMaxCzz(f);} | |
91 | ||
92 | void SetParticleSpecies(AliPID::EParticleType pid) {fHelper->SetParticleSpecies(pid);} | |
93 | void SetControlParticleSpecies(Int_t pdgCode, Bool_t isNeutral, const Char_t *name) { | |
94 | fHelper->SetControlParticleSpecies(pdgCode, isNeutral, name); | |
95 | } | |
96 | ||
97 | void SetNSigmaMaxTPC(Float_t f) {fHelper->SetNSigmaMaxTPC(f);} | |
98 | void SetNSigmaMaxTOF(Float_t f) {fHelper->SetNSigmaMaxTOF(f);} | |
99 | void SetMinPtForTOFRequired(Float_t f) {fHelper->SetMinPtForTOFRequired(f);} | |
100 | ||
101 | /////////////////////////////////////////////////////////////////////////////////// | |
102 | ||
103 | private: | |
104 | ||
105 | AliAnalysisTaskNetParticle(const AliAnalysisTaskNetParticle&); // not implemented | |
106 | AliAnalysisTaskNetParticle& operator=(const AliAnalysisTaskNetParticle&); // not implemented | |
107 | ||
108 | /* | |
109 | * --------------------------------------------------------------------------------- | |
110 | * Setup/Reset Methods - private | |
111 | * --------------------------------------------------------------------------------- | |
112 | */ | |
113 | ||
114 | /** Setup Event */ | |
115 | Int_t SetupEvent(); | |
116 | ||
117 | /** Setup ESD Event */ | |
118 | Int_t SetupESDEvent(); | |
119 | ||
120 | /** Setup MC Event */ | |
121 | Int_t SetupMCEvent(); | |
122 | ||
123 | /** Reset Event */ | |
124 | void ResetEvent(); | |
125 | ||
126 | /* | |
127 | * --------------------------------------------------------------------------------- | |
128 | * Members - private | |
129 | * --------------------------------------------------------------------------------- | |
130 | */ | |
131 | ||
132 | AliAnalysisNetParticleHelper *fHelper; //! Helper class | |
133 | AliAnalysisNetParticleEffCont *fEffCont; //! Efficiency and Contamination class | |
134 | AliAnalysisNetParticleDCA *fDCA; //! DCA class | |
135 | AliAnalysisNetParticleDistribution *fDist; //! Distributions class | |
136 | ||
137 | // --- OutLists ---------------------------------------------------------- | |
138 | ||
139 | TList *fOutList; //! Ptr to output data container | |
140 | TList *fOutListEff; //! Ptr to output data container - efficiency | |
141 | TList *fOutListCont; //! Ptr to output data container - contamination | |
142 | TList *fOutListDCA; //! Ptr to output data container - DCA | |
143 | TList *fOutListQA; //! Ptr to QA output data container | |
144 | ||
145 | // --- ESD only ---------------------------------------------------------- | |
146 | ||
147 | AliESDEvent *fESD; //! Ptr to ESD event | |
148 | AliESDInputHandler *fESDHandler; //! Ptr to ESD Handler | |
149 | ||
150 | AliESDtrackCuts *fESDTrackCutsBase; //! ESD cuts - base settings | |
151 | AliESDtrackCuts *fESDTrackCuts; //! ESD cuts | |
152 | AliESDtrackCuts *fESDTrackCutsBkg; //! ESD cuts for Bkg | |
153 | AliESDtrackCuts *fESDTrackCutsEff; //! ESD cuts for efficiency determination -> larger pt Range | |
154 | ||
155 | // --- Flags ------------------------------------------------------------- | |
156 | ||
157 | Bool_t fIsMC; // Is MC event | |
158 | Int_t fESDTrackCutMode; // ESD track cut mode : 0 = clean | 1 dirty | |
159 | Int_t fModeEffCreation ; // Correction creation mode : 1 = on | 0 = off | |
160 | Int_t fModeDCACreation; // DCA creation mode : 1 = on | 0 = off | |
161 | Int_t fModeDistCreation; // Dist creation mode : 1 = on | 0 = off | |
162 | ||
163 | // --- MC only ----------------------------------------------------------- | |
164 | ||
165 | AliMCEvent *fMCEvent; //! Ptr to MC event | |
166 | AliStack *fMCStack; //! Ptr to MC stack | |
167 | ||
168 | // ----------------------------------------------------------------------- | |
169 | ||
170 | THnSparseF *fHnQA; // THnSparseF : tracks for QA | |
171 | Float_t fUseQATHnSparse; // Usage of THnSparse for QA | |
172 | ||
173 | // ----------------------------------------------------------------------- | |
174 | ||
175 | Float_t fEtaMax; // Max, absolut eta | |
176 | Float_t *fPtRange; // Array of pt [min,max] | |
177 | Float_t *fPtRangeEff; // Array of pt [min,max] for efficiency | |
178 | ||
179 | // ----------------------------------------------------------------------- | |
180 | ||
181 | ClassDef(AliAnalysisTaskNetParticle, 1); | |
182 | }; | |
183 | ||
184 | #endif |