]>
Commit | Line | Data |
---|---|---|
76029adc | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
17 | // | |
18 | // Modified version of AliAnalysisTaskCheckCascade.h | |
19 | // Used bits of code from AliAnalysisTaskCheckPerformanceStrange | |
20 | // | |
21 | // --- David Dobrigkeit Chinellato | |
22 | // | |
23 | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
24 | ||
25 | #ifndef ALIANALYSISTASKEXTRACTCASCADE_H | |
26 | #define ALIANALYSISTASKEXTRACTCASCADE_H | |
27 | ||
28 | class TList; | |
29 | class TH1F; | |
30 | class TH2F; | |
31 | class TH3F; | |
32 | class TVector3; | |
33 | class THnSparse; | |
34 | ||
35 | class AliESDpid; | |
36 | class AliESDtrackCuts; | |
37 | class AliESDEvent; | |
38 | class AliPhysicsSelection; | |
39 | class AliCFContainer; | |
2add50c1 | 40 | class AliAnalysisUtils; |
76029adc | 41 | |
42 | //#include "TString.h" | |
43 | //#include "AliESDtrackCuts.h" | |
44 | #include "AliAnalysisTaskSE.h" | |
45 | ||
46 | class AliAnalysisTaskExtractCascade : public AliAnalysisTaskSE { | |
df14ae99 | 47 | public: |
48 | AliAnalysisTaskExtractCascade(); | |
49 | AliAnalysisTaskExtractCascade(const char *name); | |
50 | virtual ~AliAnalysisTaskExtractCascade(); | |
51 | ||
52 | virtual void UserCreateOutputObjects(); | |
53 | virtual void UserExec(Option_t *option); | |
54 | virtual void Terminate(Option_t *); | |
55 | Double_t MyRapidity(Double_t rE, Double_t rPz) const; | |
56 | ||
57 | void SetIsNuclear (Bool_t lIsNuclear = kTRUE ) { fkIsNuclear = lIsNuclear; } | |
58 | void SetINT7Trigger (Bool_t lSwitchINT7 = kTRUE ) { fkSwitchINT7 = lSwitchINT7; } | |
59 | void SetCentralityEstimator (TString lCentralityEstimator = "V0M" ) { fCentralityEstimator = lCentralityEstimator; } | |
60 | void SetpAVertexSelection (Bool_t lpAVertexSelection = kTRUE) {fkpAVertexSelection = lpAVertexSelection; } | |
61 | void SetEtaRefMult ( Double_t lEtaRefMult = 0.5 ) { fEtaRefMult = lEtaRefMult; } | |
62 | ||
63 | //--------------------------------------------------------------------------------------- | |
64 | //Task Configuration: Meant to enable quick re-execution of vertexer if needed | |
65 | void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; } | |
66 | //--------------------------------------------------------------------------------------- | |
67 | //Set Debug Mode | |
68 | void SetDebugMode ( Bool_t lDebugMode = kTRUE) { fkDebugMode = lDebugMode; } | |
47d2266a | 69 | //--------------------------------------------------------------------------------------- |
70 | //Set Peripheral event debugging mode (Pb-Pb X-check) | |
b21a3912 | 71 | void SetSelectCentrality ( Bool_t lSelectCentrality = kTRUE, Double_t lCentSelLow = 0.0, Double_t lCentSelHigh = 10.0) { |
72 | fkSelectCentrality = lSelectCentrality; | |
73 | fCentSel_Low = lCentSelLow; | |
74 | fCentSel_High = lCentSelHigh; | |
75 | } | |
47d2266a | 76 | //--------------------------------------------------------------------------------------- |
165ff019 | 77 | void SetLowPtCutoff ( Double_t lLowPtCutoff = 1.0) { |
78 | fLowPtCutoff = lLowPtCutoff; | |
79 | } | |
80 | //--------------------------------------------------------------------------------------- | |
df14ae99 | 81 | void SetSuperLightMode ( Bool_t lSuperLight = kTRUE) { |
82 | fkSuperLight = lSuperLight; | |
83 | } | |
84 | //--------------------------------------------------------------------------------------- | |
165ff019 | 85 | //Setters for the V0 Vertexer Parameters |
df14ae99 | 86 | void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; } |
87 | void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; } | |
88 | void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; } | |
89 | void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; } | |
90 | void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; } | |
91 | void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; } | |
92 | void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; } | |
93 | //--------------------------------------------------------------------------------------- | |
94 | //Setters for the Cascade Vertexer Parameters | |
95 | void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; } | |
96 | void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; } | |
97 | void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; } | |
98 | void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; } | |
99 | void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; } | |
100 | void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; } | |
101 | void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; } | |
102 | void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; } | |
103 | //--------------------------------------------------------------------------------------- | |
104 | //Setters for SuperLight analysis | |
105 | void SetSuperLightV0Radius ( Double_t lParameter ){ fCut_V0Radius = lParameter; } | |
106 | void SetSuperLightCascRadius ( Double_t lParameter ){ fCut_CascRadius = lParameter; } | |
107 | void SetSuperLightV0Mass ( Double_t lParameter ){ fCut_V0Mass = lParameter; } | |
108 | void SetSuperLightV0CosPA ( Double_t lParameter ){ fCut_V0CosPA = lParameter; } | |
109 | void SetSuperLightCascCosPA ( Double_t lParameter ){ fCut_CascCosPA = lParameter; } | |
110 | void SetSuperLightDCANegToPV ( Double_t lParameter ){ fCut_DCANegToPV = lParameter; } | |
111 | void SetSuperLightDCAPosToPV ( Double_t lParameter ){ fCut_DCAPosToPV = lParameter; } | |
112 | void SetSuperLightDCABachToPV ( Double_t lParameter ){ fCut_DCABachToPV = lParameter; } | |
113 | void SetSuperLightDCAV0Daughters ( Double_t lParameter ){ fCut_DCAV0Daughters = lParameter; } | |
114 | void SetSuperLightDCACascDaughters ( Double_t lParameter ){ fCut_DCACascDaughters = lParameter; } | |
115 | void SetSuperLightDCAV0ToPV ( Double_t lParameter ){ fCut_DCAV0ToPV = lParameter; } | |
116 | void SetSuperLightCTau ( Double_t lParameter ){ fCut_CTau = lParameter; } | |
117 | //--------------------------------------------------------------------------------------- | |
118 | ||
119 | //--------------------------------------------------------------------------------------- | |
120 | private: | |
121 | // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ... | |
122 | // your data member object is created on the worker nodes and streaming is not needed. | |
123 | // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14 | |
124 | TList *fListHist; //! List of Cascade histograms | |
125 | TTree *fTreeCascade; //! Output Tree, Cascades | |
126 | ||
127 | //Objects that have to be streamed: | |
128 | AliPIDResponse *fPIDResponse; // PID response object | |
129 | AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition | |
130 | AliAnalysisUtils *fUtils; // analysis utils (for pA vertex selection) | |
131 | ||
132 | //Objects Controlling Task Behaviour | |
133 | // (have to be streamed too or configuration is lost) | |
134 | Bool_t fkIsNuclear; //if true, replace multiplicity est. by centrality (default FALSE) | |
135 | Bool_t fkSwitchINT7; //if true, skip FASTOnly (default FALSE) | |
136 | TString fCentralityEstimator; //Centrality Estimator String value (default V0M) | |
137 | Bool_t fkpAVertexSelection; //if true, select vertex with pPb Methods | |
138 | Double_t fEtaRefMult; //Reference multiplicity eta | |
139 | //Objects Controlling Task Behaviour: has to be streamed! | |
140 | Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb! | |
141 | Bool_t fkDebugMode; //Store extra debugging information in tree | |
b21a3912 | 142 | Bool_t fkSelectCentrality; //Switch to skip anything other than 60-80% V0M |
df14ae99 | 143 | Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related |
144 | Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related | |
b21a3912 | 145 | |
146 | Double_t fCentSel_Low; | |
147 | Double_t fCentSel_High; | |
165ff019 | 148 | |
149 | Double_t fLowPtCutoff; //Reduction of data volume | |
df14ae99 | 150 | |
b68d5ca6 | 151 | //Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related |
152 | //Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related | |
df14ae99 | 153 | |
154 | //=========================================================================================== | |
155 | // Variables for tree, cascades | |
156 | //=========================================================================================== | |
157 | ||
158 | Int_t fTreeCascVarCharge; //! | |
159 | Float_t fTreeCascVarMassAsXi; //! | |
160 | Float_t fTreeCascVarMassAsOmega; //! | |
161 | Float_t fTreeCascVarPt; //! | |
162 | Float_t fTreeCascVarPtMC; //! | |
163 | Float_t fTreeCascVarRapMC; //! | |
164 | Float_t fTreeCascVarRapXi; //! | |
165 | Float_t fTreeCascVarRapOmega; //! | |
166 | Float_t fTreeCascVarNegEta; //! | |
167 | Float_t fTreeCascVarPosEta; //! | |
168 | Float_t fTreeCascVarBachEta; //! | |
169 | Float_t fTreeCascVarDCACascDaughters; //! | |
170 | Float_t fTreeCascVarDCABachToPrimVtx; //! | |
171 | Float_t fTreeCascVarDCAV0Daughters; //! | |
172 | Float_t fTreeCascVarDCAV0ToPrimVtx; //! | |
173 | Float_t fTreeCascVarDCAPosToPrimVtx; //! | |
174 | Float_t fTreeCascVarDCANegToPrimVtx; //! | |
175 | Float_t fTreeCascVarCascCosPointingAngle; //! | |
176 | Float_t fTreeCascVarCascRadius; //! | |
177 | Float_t fTreeCascVarV0Mass; //! | |
178 | Float_t fTreeCascVarV0CosPointingAngle; //! | |
179 | Float_t fTreeCascVarV0CosPointingAngleSpecial; //! | |
180 | Float_t fTreeCascVarV0Radius; //! | |
181 | Int_t fTreeCascVarLeastNbrClusters; //! | |
182 | Int_t fTreeCascVarMultiplicity; //! | |
183 | Int_t fTreeCascVarMultiplicityV0A; //! | |
184 | Int_t fTreeCascVarMultiplicityZNA; //! | |
185 | Int_t fTreeCascVarMultiplicityTRK; //! | |
186 | Int_t fTreeCascVarMultiplicitySPD; //! | |
187 | Float_t fTreeCascVarDistOverTotMom; //! | |
188 | Int_t fTreeCascVarPID; //! | |
189 | Int_t fTreeCascVarPIDBachelor; //! | |
190 | Int_t fTreeCascVarPIDNegative; //! | |
191 | Int_t fTreeCascVarPIDPositive; //! | |
192 | Float_t fTreeCascVarBachTransMom; //! | |
193 | Float_t fTreeCascVarPosTransMom; //! | |
194 | Float_t fTreeCascVarNegTransMom; //! | |
195 | Float_t fTreeCascVarPosTransMomMC; //! | |
196 | Float_t fTreeCascVarNegTransMomMC; //! | |
197 | ||
198 | Float_t fTreeCascVarNegNSigmaPion; //! | |
199 | Float_t fTreeCascVarNegNSigmaProton; //! | |
200 | Float_t fTreeCascVarPosNSigmaPion; //! | |
201 | Float_t fTreeCascVarPosNSigmaProton; //! | |
202 | Float_t fTreeCascVarBachNSigmaPion; //! | |
203 | Float_t fTreeCascVarBachNSigmaKaon; //! | |
204 | ||
205 | Bool_t fTreeCascVarkITSRefitBachelor; //! | |
206 | Bool_t fTreeCascVarkITSRefitNegative; //! | |
207 | Bool_t fTreeCascVarkITSRefitPositive; //! | |
d55fa19c | 208 | |
209 | //Debugging information, if requested | |
210 | //Part A: EbyE info, Run number | |
211 | Int_t fTreeCascVarRunNumber; //! | |
212 | ULong64_t fTreeCascVarEventNumber; //! | |
213 | ||
214 | //Part B: Shared Clusters | |
80521867 | 215 | Int_t fTreeCascVarNegClusters; //! |
216 | Int_t fTreeCascVarPosClusters; //! | |
217 | Int_t fTreeCascVarBachClusters; //! | |
d55fa19c | 218 | Int_t fTreeCascVarNegSharedClusters; //! |
219 | Int_t fTreeCascVarPosSharedClusters; //! | |
220 | Int_t fTreeCascVarBachSharedClusters; //! | |
221 | ||
222 | //Part C: All momenta | |
223 | Float_t fTreeCascVarNegPx; //! | |
224 | Float_t fTreeCascVarNegPy; //! | |
225 | Float_t fTreeCascVarNegPz; //! | |
226 | Float_t fTreeCascVarPosPx; //! | |
227 | Float_t fTreeCascVarPosPy; //! | |
228 | Float_t fTreeCascVarPosPz; //! | |
229 | Float_t fTreeCascVarBachPx; //! | |
230 | Float_t fTreeCascVarBachPy; //! | |
231 | Float_t fTreeCascVarBachPz; //! | |
df14ae99 | 232 | |
3eb670b7 | 233 | Float_t fTreeCascVarV0DecayX; //! |
234 | Float_t fTreeCascVarV0DecayY; //! | |
235 | Float_t fTreeCascVarV0DecayZ; //! | |
236 | Float_t fTreeCascVarCascadeDecayX; //! | |
237 | Float_t fTreeCascVarCascadeDecayY; //! | |
238 | Float_t fTreeCascVarCascadeDecayZ; //! | |
d55fa19c | 239 | |
df14ae99 | 240 | Bool_t fTreeCascVarBadCascadeJai; //! |
45ecf7a7 | 241 | Float_t fTreeCascVarDeltaDCA; //! |
242 | ||
df14ae99 | 243 | //=========================================================================================== |
244 | // Histograms | |
245 | //=========================================================================================== | |
246 | ||
247 | TH1F *fHistV0MultiplicityBeforeTrigSel; //! V0 multiplicity distribution | |
248 | TH1F *fHistV0MultiplicityForTrigEvt; //! V0 multiplicity distribution | |
249 | TH1F *fHistV0MultiplicityForSelEvt; //! V0 multiplicity distribution | |
250 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnly; //! V0 multiplicity distribution | |
251 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup; //! V0 multiplicity distribution | |
252 | ||
253 | //V0M Centrality (default) | |
254 | TH1F *fHistMultiplicityBeforeTrigSel; //! multiplicity distribution | |
255 | TH1F *fHistMultiplicityForTrigEvt; //! multiplicity distribution | |
256 | TH1F *fHistMultiplicity; //! multiplicity distribution | |
257 | TH1F *fHistMultiplicityNoTPCOnly; //! multiplicity distribution | |
258 | TH1F *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution | |
259 | ||
260 | //V0A Centrality | |
261 | TH1F *fHistMultiplicityV0ABeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 262 | TH1F *fHistMultiplicityV0AForTrigEvt; //! multiplicity distribution |
263 | TH1F *fHistMultiplicityV0A; //! multiplicity distribution | |
264 | TH1F *fHistMultiplicityV0ANoTPCOnly; //! multiplicity distribution | |
265 | TH1F *fHistMultiplicityV0ANoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 266 | |
267 | //ZNA Centrality | |
268 | TH1F *fHistMultiplicityZNABeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 269 | TH1F *fHistMultiplicityZNAForTrigEvt; //! multiplicity distribution |
270 | TH1F *fHistMultiplicityZNA; //! multiplicity distribution | |
271 | TH1F *fHistMultiplicityZNANoTPCOnly; //! multiplicity distribution | |
272 | TH1F *fHistMultiplicityZNANoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 273 | |
274 | //TRK Centrality | |
275 | TH1F *fHistMultiplicityTRKBeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 276 | TH1F *fHistMultiplicityTRKForTrigEvt; //! multiplicity distribution |
277 | TH1F *fHistMultiplicityTRK; //! multiplicity distribution | |
278 | TH1F *fHistMultiplicityTRKNoTPCOnly; //! multiplicity distribution | |
279 | TH1F *fHistMultiplicityTRKNoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 280 | |
281 | //SPD Centrality | |
282 | TH1F *fHistMultiplicitySPDBeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 283 | TH1F *fHistMultiplicitySPDForTrigEvt; //! multiplicity distribution |
284 | TH1F *fHistMultiplicitySPD; //! multiplicity distribution | |
285 | TH1F *fHistMultiplicitySPDNoTPCOnly; //! multiplicity distribution | |
286 | TH1F *fHistMultiplicitySPDNoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 287 | |
288 | //---> Generated Histograms | |
289 | ||
290 | TH1F *fHistPVx; //! PVx distrib | |
291 | TH1F *fHistPVy; //! PVy distrib | |
292 | TH1F *fHistPVz; //! PVz distrib | |
293 | TH1F *fHistPVxAnalysis; //! PVx distrib | |
294 | TH1F *fHistPVyAnalysis; //! PVy distrib | |
295 | TH1F *fHistPVzAnalysis; //! PVz distrib | |
296 | ||
297 | //======================================================= | |
298 | // --- Superlight Output Mode - Experimental --- | |
299 | //======================================================= | |
300 | ||
301 | Bool_t fkSuperLight; //Switch for super light output mode | |
302 | ||
303 | //Selection criteria for superlight analysis | |
304 | Double_t fCut_V0Radius; | |
305 | Double_t fCut_CascRadius; | |
306 | Double_t fCut_V0Mass; | |
307 | Double_t fCut_V0CosPA; | |
308 | Double_t fCut_CascCosPA; | |
309 | Double_t fCut_DCANegToPV; | |
310 | Double_t fCut_DCAPosToPV; | |
311 | Double_t fCut_DCABachToPV; | |
312 | Double_t fCut_DCAV0Daughters; | |
313 | Double_t fCut_DCACascDaughters; | |
314 | Double_t fCut_DCAV0ToPV; | |
315 | Double_t fCut_CTau; | |
316 | ||
317 | //---> Super-lightweight histogram output (rebinnable) | |
318 | ||
319 | TH2F *f2dHist_MassVsPt_XiMinus; | |
320 | TH2F *f2dHist_MassVsPt_XiPlus; | |
321 | TH2F *f2dHist_MassVsPt_OmegaMinus; | |
322 | TH2F *f2dHist_MassVsPt_OmegaPlus; | |
323 | ||
324 | AliAnalysisTaskExtractCascade(const AliAnalysisTaskExtractCascade&); // not implemented | |
325 | AliAnalysisTaskExtractCascade& operator=(const AliAnalysisTaskExtractCascade&); // not implemented | |
326 | ||
327 | ClassDef(AliAnalysisTaskExtractCascade, 11); | |
76029adc | 328 | }; |
329 | ||
330 | #endif |