]>
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 | //--------------------------------------------------------------------------------------- | |
35709701 | 85 | void SetLightMode ( Bool_t lLight = kTRUE) { |
86 | fkLight = lLight; | |
87 | } | |
88 | //--------------------------------------------------------------------------------------- | |
6060d6b5 | 89 | void SetCascadeMassWindow ( Double_t lCascadeMassWindow = 0.060) { |
90 | fCascadeMassWindow = lCascadeMassWindow; | |
91 | } | |
92 | //--------------------------------------------------------------------------------------- | |
165ff019 | 93 | //Setters for the V0 Vertexer Parameters |
df14ae99 | 94 | void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; } |
95 | void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; } | |
96 | void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; } | |
97 | void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; } | |
98 | void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; } | |
99 | void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; } | |
100 | void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; } | |
101 | //--------------------------------------------------------------------------------------- | |
102 | //Setters for the Cascade Vertexer Parameters | |
103 | void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; } | |
104 | void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; } | |
105 | void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; } | |
106 | void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; } | |
107 | void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; } | |
108 | void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; } | |
109 | void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; } | |
110 | void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; } | |
111 | //--------------------------------------------------------------------------------------- | |
112 | //Setters for SuperLight analysis | |
113 | void SetSuperLightV0Radius ( Double_t lParameter ){ fCut_V0Radius = lParameter; } | |
114 | void SetSuperLightCascRadius ( Double_t lParameter ){ fCut_CascRadius = lParameter; } | |
115 | void SetSuperLightV0Mass ( Double_t lParameter ){ fCut_V0Mass = lParameter; } | |
116 | void SetSuperLightV0CosPA ( Double_t lParameter ){ fCut_V0CosPA = lParameter; } | |
117 | void SetSuperLightCascCosPA ( Double_t lParameter ){ fCut_CascCosPA = lParameter; } | |
118 | void SetSuperLightDCANegToPV ( Double_t lParameter ){ fCut_DCANegToPV = lParameter; } | |
119 | void SetSuperLightDCAPosToPV ( Double_t lParameter ){ fCut_DCAPosToPV = lParameter; } | |
120 | void SetSuperLightDCABachToPV ( Double_t lParameter ){ fCut_DCABachToPV = lParameter; } | |
121 | void SetSuperLightDCAV0Daughters ( Double_t lParameter ){ fCut_DCAV0Daughters = lParameter; } | |
122 | void SetSuperLightDCACascDaughters ( Double_t lParameter ){ fCut_DCACascDaughters = lParameter; } | |
123 | void SetSuperLightDCAV0ToPV ( Double_t lParameter ){ fCut_DCAV0ToPV = lParameter; } | |
124 | void SetSuperLightCTau ( Double_t lParameter ){ fCut_CTau = lParameter; } | |
125 | //--------------------------------------------------------------------------------------- | |
126 | ||
127 | //--------------------------------------------------------------------------------------- | |
128 | private: | |
129 | // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ... | |
130 | // your data member object is created on the worker nodes and streaming is not needed. | |
131 | // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14 | |
132 | TList *fListHist; //! List of Cascade histograms | |
133 | TTree *fTreeCascade; //! Output Tree, Cascades | |
134 | ||
135 | //Objects that have to be streamed: | |
136 | AliPIDResponse *fPIDResponse; // PID response object | |
137 | AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition | |
138 | AliAnalysisUtils *fUtils; // analysis utils (for pA vertex selection) | |
139 | ||
140 | //Objects Controlling Task Behaviour | |
141 | // (have to be streamed too or configuration is lost) | |
142 | Bool_t fkIsNuclear; //if true, replace multiplicity est. by centrality (default FALSE) | |
143 | Bool_t fkSwitchINT7; //if true, skip FASTOnly (default FALSE) | |
144 | TString fCentralityEstimator; //Centrality Estimator String value (default V0M) | |
145 | Bool_t fkpAVertexSelection; //if true, select vertex with pPb Methods | |
146 | Double_t fEtaRefMult; //Reference multiplicity eta | |
147 | //Objects Controlling Task Behaviour: has to be streamed! | |
148 | Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb! | |
149 | Bool_t fkDebugMode; //Store extra debugging information in tree | |
b21a3912 | 150 | Bool_t fkSelectCentrality; //Switch to skip anything other than 60-80% V0M |
df14ae99 | 151 | Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related |
152 | Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related | |
b21a3912 | 153 | |
154 | Double_t fCentSel_Low; | |
155 | Double_t fCentSel_High; | |
165ff019 | 156 | |
6060d6b5 | 157 | Double_t fLowPtCutoff; //Reduction of data volume |
158 | Double_t fCascadeMassWindow; //Reduction of data volume: mass window selection | |
df14ae99 | 159 | |
b68d5ca6 | 160 | //Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related |
161 | //Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related | |
df14ae99 | 162 | |
163 | //=========================================================================================== | |
164 | // Variables for tree, cascades | |
165 | //=========================================================================================== | |
166 | ||
167 | Int_t fTreeCascVarCharge; //! | |
168 | Float_t fTreeCascVarMassAsXi; //! | |
169 | Float_t fTreeCascVarMassAsOmega; //! | |
170 | Float_t fTreeCascVarPt; //! | |
171 | Float_t fTreeCascVarPtMC; //! | |
172 | Float_t fTreeCascVarRapMC; //! | |
173 | Float_t fTreeCascVarRapXi; //! | |
174 | Float_t fTreeCascVarRapOmega; //! | |
175 | Float_t fTreeCascVarNegEta; //! | |
176 | Float_t fTreeCascVarPosEta; //! | |
177 | Float_t fTreeCascVarBachEta; //! | |
178 | Float_t fTreeCascVarDCACascDaughters; //! | |
179 | Float_t fTreeCascVarDCABachToPrimVtx; //! | |
180 | Float_t fTreeCascVarDCAV0Daughters; //! | |
181 | Float_t fTreeCascVarDCAV0ToPrimVtx; //! | |
182 | Float_t fTreeCascVarDCAPosToPrimVtx; //! | |
183 | Float_t fTreeCascVarDCANegToPrimVtx; //! | |
184 | Float_t fTreeCascVarCascCosPointingAngle; //! | |
185 | Float_t fTreeCascVarCascRadius; //! | |
186 | Float_t fTreeCascVarV0Mass; //! | |
187 | Float_t fTreeCascVarV0CosPointingAngle; //! | |
188 | Float_t fTreeCascVarV0CosPointingAngleSpecial; //! | |
189 | Float_t fTreeCascVarV0Radius; //! | |
190 | Int_t fTreeCascVarLeastNbrClusters; //! | |
191 | Int_t fTreeCascVarMultiplicity; //! | |
192 | Int_t fTreeCascVarMultiplicityV0A; //! | |
193 | Int_t fTreeCascVarMultiplicityZNA; //! | |
194 | Int_t fTreeCascVarMultiplicityTRK; //! | |
195 | Int_t fTreeCascVarMultiplicitySPD; //! | |
196 | Float_t fTreeCascVarDistOverTotMom; //! | |
197 | Int_t fTreeCascVarPID; //! | |
198 | Int_t fTreeCascVarPIDBachelor; //! | |
199 | Int_t fTreeCascVarPIDNegative; //! | |
200 | Int_t fTreeCascVarPIDPositive; //! | |
201 | Float_t fTreeCascVarBachTransMom; //! | |
202 | Float_t fTreeCascVarPosTransMom; //! | |
203 | Float_t fTreeCascVarNegTransMom; //! | |
204 | Float_t fTreeCascVarPosTransMomMC; //! | |
205 | Float_t fTreeCascVarNegTransMomMC; //! | |
206 | ||
207 | Float_t fTreeCascVarNegNSigmaPion; //! | |
208 | Float_t fTreeCascVarNegNSigmaProton; //! | |
209 | Float_t fTreeCascVarPosNSigmaPion; //! | |
210 | Float_t fTreeCascVarPosNSigmaProton; //! | |
211 | Float_t fTreeCascVarBachNSigmaPion; //! | |
212 | Float_t fTreeCascVarBachNSigmaKaon; //! | |
213 | ||
214 | Bool_t fTreeCascVarkITSRefitBachelor; //! | |
215 | Bool_t fTreeCascVarkITSRefitNegative; //! | |
216 | Bool_t fTreeCascVarkITSRefitPositive; //! | |
d55fa19c | 217 | |
218 | //Debugging information, if requested | |
219 | //Part A: EbyE info, Run number | |
220 | Int_t fTreeCascVarRunNumber; //! | |
221 | ULong64_t fTreeCascVarEventNumber; //! | |
222 | ||
223 | //Part B: Shared Clusters | |
80521867 | 224 | Int_t fTreeCascVarNegClusters; //! |
225 | Int_t fTreeCascVarPosClusters; //! | |
226 | Int_t fTreeCascVarBachClusters; //! | |
d55fa19c | 227 | Int_t fTreeCascVarNegSharedClusters; //! |
228 | Int_t fTreeCascVarPosSharedClusters; //! | |
229 | Int_t fTreeCascVarBachSharedClusters; //! | |
230 | ||
231 | //Part C: All momenta | |
232 | Float_t fTreeCascVarNegPx; //! | |
233 | Float_t fTreeCascVarNegPy; //! | |
234 | Float_t fTreeCascVarNegPz; //! | |
235 | Float_t fTreeCascVarPosPx; //! | |
236 | Float_t fTreeCascVarPosPy; //! | |
237 | Float_t fTreeCascVarPosPz; //! | |
238 | Float_t fTreeCascVarBachPx; //! | |
239 | Float_t fTreeCascVarBachPy; //! | |
240 | Float_t fTreeCascVarBachPz; //! | |
df14ae99 | 241 | |
3eb670b7 | 242 | Float_t fTreeCascVarV0DecayX; //! |
243 | Float_t fTreeCascVarV0DecayY; //! | |
244 | Float_t fTreeCascVarV0DecayZ; //! | |
245 | Float_t fTreeCascVarCascadeDecayX; //! | |
246 | Float_t fTreeCascVarCascadeDecayY; //! | |
247 | Float_t fTreeCascVarCascadeDecayZ; //! | |
d55fa19c | 248 | |
df14ae99 | 249 | Bool_t fTreeCascVarBadCascadeJai; //! |
45ecf7a7 | 250 | Float_t fTreeCascVarDeltaDCA; //! |
251 | ||
df14ae99 | 252 | //=========================================================================================== |
253 | // Histograms | |
254 | //=========================================================================================== | |
255 | ||
256 | TH1F *fHistV0MultiplicityBeforeTrigSel; //! V0 multiplicity distribution | |
257 | TH1F *fHistV0MultiplicityForTrigEvt; //! V0 multiplicity distribution | |
258 | TH1F *fHistV0MultiplicityForSelEvt; //! V0 multiplicity distribution | |
259 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnly; //! V0 multiplicity distribution | |
260 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup; //! V0 multiplicity distribution | |
261 | ||
262 | //V0M Centrality (default) | |
263 | TH1F *fHistMultiplicityBeforeTrigSel; //! multiplicity distribution | |
264 | TH1F *fHistMultiplicityForTrigEvt; //! multiplicity distribution | |
265 | TH1F *fHistMultiplicity; //! multiplicity distribution | |
266 | TH1F *fHistMultiplicityNoTPCOnly; //! multiplicity distribution | |
267 | TH1F *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution | |
268 | ||
269 | //V0A Centrality | |
270 | TH1F *fHistMultiplicityV0ABeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 271 | TH1F *fHistMultiplicityV0AForTrigEvt; //! multiplicity distribution |
272 | TH1F *fHistMultiplicityV0A; //! multiplicity distribution | |
273 | TH1F *fHistMultiplicityV0ANoTPCOnly; //! multiplicity distribution | |
274 | TH1F *fHistMultiplicityV0ANoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 275 | |
276 | //ZNA Centrality | |
277 | TH1F *fHistMultiplicityZNABeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 278 | TH1F *fHistMultiplicityZNAForTrigEvt; //! multiplicity distribution |
279 | TH1F *fHistMultiplicityZNA; //! multiplicity distribution | |
280 | TH1F *fHistMultiplicityZNANoTPCOnly; //! multiplicity distribution | |
281 | TH1F *fHistMultiplicityZNANoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 282 | |
283 | //TRK Centrality | |
284 | TH1F *fHistMultiplicityTRKBeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 285 | TH1F *fHistMultiplicityTRKForTrigEvt; //! multiplicity distribution |
286 | TH1F *fHistMultiplicityTRK; //! multiplicity distribution | |
287 | TH1F *fHistMultiplicityTRKNoTPCOnly; //! multiplicity distribution | |
288 | TH1F *fHistMultiplicityTRKNoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 289 | |
290 | //SPD Centrality | |
291 | TH1F *fHistMultiplicitySPDBeforeTrigSel; //! multiplicity distribution | |
5d43de53 | 292 | TH1F *fHistMultiplicitySPDForTrigEvt; //! multiplicity distribution |
293 | TH1F *fHistMultiplicitySPD; //! multiplicity distribution | |
294 | TH1F *fHistMultiplicitySPDNoTPCOnly; //! multiplicity distribution | |
295 | TH1F *fHistMultiplicitySPDNoTPCOnlyNoPileup; //! multiplicity distribution | |
df14ae99 | 296 | |
297 | //---> Generated Histograms | |
298 | ||
299 | TH1F *fHistPVx; //! PVx distrib | |
300 | TH1F *fHistPVy; //! PVy distrib | |
301 | TH1F *fHistPVz; //! PVz distrib | |
302 | TH1F *fHistPVxAnalysis; //! PVx distrib | |
303 | TH1F *fHistPVyAnalysis; //! PVy distrib | |
304 | TH1F *fHistPVzAnalysis; //! PVz distrib | |
305 | ||
306 | //======================================================= | |
307 | // --- Superlight Output Mode - Experimental --- | |
308 | //======================================================= | |
309 | ||
35709701 | 310 | Bool_t fkLight; //Switch for intermediate mode |
df14ae99 | 311 | Bool_t fkSuperLight; //Switch for super light output mode |
312 | ||
313 | //Selection criteria for superlight analysis | |
314 | Double_t fCut_V0Radius; | |
315 | Double_t fCut_CascRadius; | |
316 | Double_t fCut_V0Mass; | |
317 | Double_t fCut_V0CosPA; | |
318 | Double_t fCut_CascCosPA; | |
319 | Double_t fCut_DCANegToPV; | |
320 | Double_t fCut_DCAPosToPV; | |
321 | Double_t fCut_DCABachToPV; | |
322 | Double_t fCut_DCAV0Daughters; | |
323 | Double_t fCut_DCACascDaughters; | |
324 | Double_t fCut_DCAV0ToPV; | |
325 | Double_t fCut_CTau; | |
326 | ||
327 | //---> Super-lightweight histogram output (rebinnable) | |
328 | ||
329 | TH2F *f2dHist_MassVsPt_XiMinus; | |
330 | TH2F *f2dHist_MassVsPt_XiPlus; | |
331 | TH2F *f2dHist_MassVsPt_OmegaMinus; | |
332 | TH2F *f2dHist_MassVsPt_OmegaPlus; | |
333 | ||
334 | AliAnalysisTaskExtractCascade(const AliAnalysisTaskExtractCascade&); // not implemented | |
335 | AliAnalysisTaskExtractCascade& operator=(const AliAnalysisTaskExtractCascade&); // not implemented | |
336 | ||
337 | ClassDef(AliAnalysisTaskExtractCascade, 11); | |
76029adc | 338 | }; |
339 | ||
340 | #endif |