33 #include <TParticle.h>
34 #include <TParticlePDG.h>
38 #include <THnSparse.h>
39 #include <TLorentzVector.h>
42 #include <TDatabasePDG.h>
43 #include <AliAnalysisDataSlot.h>
44 #include <AliAnalysisDataContainer.h>
46 #include "AliMCEvent.h"
47 #include "AliAnalysisManager.h"
48 #include "AliAODMCHeader.h"
49 #include "AliAODHandler.h"
51 #include "AliExternalTrackParam.h"
52 #include "AliAODVertex.h"
53 #include "AliESDVertex.h"
54 #include "AliAODRecoDecay.h"
57 #include "AliESDtrack.h"
58 #include "AliAODTrack.h"
60 #include "AliAODcascade.h"
61 #include "AliAODMCParticle.h"
62 #include "AliAnalysisTaskSE.h"
64 #include "AliPIDResponse.h"
65 #include "AliPIDCombined.h"
66 #include "AliTOFPIDResponse.h"
68 #include "AliInputEventHandler.h"
69 #include "AliESDtrackCuts.h"
70 #include "AliNeutralTrackParam.h"
71 #include "AliKFParticle.h"
72 #include "AliKFVertex.h"
73 #include "AliExternalTrackParam.h"
74 #include "AliESDtrack.h"
75 #include "AliCentrality.h"
76 #include "AliVertexerTracks.h"
77 #include "AliEventPoolManager.h"
98 fIsEventSelected(kFALSE),
99 fWriteVariableTree(kFALSE),
100 fWriteEachVariableTree(kFALSE),
101 fWriteMCVariableTree(kFALSE),
103 fEleVariablesTree(0),
104 fCascVariablesTree(0),
106 fMCEleVariablesTree(0),
107 fMCCascVariablesTree(0),
108 fMCGenPairVariablesTree(0),
109 fCorrelationVariablesTree(0),
110 fReconstructPrimVert(kFALSE),
116 fCandidateVariables(),
117 fCandidateEleVariables(),
118 fCandidateCascVariables(),
119 fCandidateMCVariables(),
120 fCandidateMCEleVariables(),
121 fCandidateMCCascVariables(),
122 fCandidateMCGenPairVariables(),
123 fCorrelationVariables(),
131 fUseCentralityV0M(kFALSE),
134 fMCDoPairAnalysis(kFALSE),
136 fHistoEleXiMassRS(0),
137 fHistoEleXiMassWS(0),
138 fHistoEleXiMassRSMix(0),
139 fHistoEleXiMassWSMix(0),
140 fHistoEleXiMassRSSide(0),
141 fHistoEleXiMassWSSide(0),
142 fHistoEleXiMassRS1(0),
143 fHistoEleXiMassWS1(0),
144 fHistoEleXiMassRSMix1(0),
145 fHistoEleXiMassWSMix1(0),
146 fHistoEleXiMassRSSide1(0),
147 fHistoEleXiMassWSSide1(0),
148 fHistoEleXiMassRS2(0),
149 fHistoEleXiMassWS2(0),
150 fHistoEleXiMassRSMix2(0),
151 fHistoEleXiMassWSMix2(0),
152 fHistoEleXiMassRSSide2(0),
153 fHistoEleXiMassWSSide2(0),
154 fHistoEleXiMassAway(0),
155 fHistoEleXiMassRSAway(0),
156 fHistoEleXiMassWSAway(0),
157 fHistoEleXiMassRSMixAway(0),
158 fHistoEleXiMassWSMixAway(0),
159 fHistoEleXiMassRSSideAway(0),
160 fHistoEleXiMassWSSideAway(0),
161 fHistoEleXiMassRS1Away(0),
162 fHistoEleXiMassWS1Away(0),
163 fHistoEleXiMassRSMix1Away(0),
164 fHistoEleXiMassWSMix1Away(0),
165 fHistoEleXiMassRSSide1Away(0),
166 fHistoEleXiMassWSSide1Away(0),
167 fHistoEleXiMassRS2Away(0),
168 fHistoEleXiMassWS2Away(0),
169 fHistoEleXiMassRSMix2Away(0),
170 fHistoEleXiMassWSMix2Away(0),
171 fHistoEleXiMassRSSide2Away(0),
172 fHistoEleXiMassWSSide2Away(0),
173 fHistoEleXiMassvsElePtRS(0),
174 fHistoEleXiMassvsElePtWS(0),
175 fHistoEleXiMassvsElePtRSMix(0),
176 fHistoEleXiMassvsElePtWSMix(0),
177 fHistoEleXiMassvsElePtRSSide(0),
178 fHistoEleXiMassvsElePtWSSide(0),
179 fHistoEleXiMassvsElePtRS1(0),
180 fHistoEleXiMassvsElePtWS1(0),
181 fHistoEleXiMassvsElePtRSMix1(0),
182 fHistoEleXiMassvsElePtWSMix1(0),
183 fHistoEleXiMassvsElePtRSSide1(0),
184 fHistoEleXiMassvsElePtWSSide1(0),
185 fHistoEleXiMassvsElePtRS2(0),
186 fHistoEleXiMassvsElePtWS2(0),
187 fHistoEleXiMassvsElePtRSMix2(0),
188 fHistoEleXiMassvsElePtWSMix2(0),
189 fHistoEleXiMassvsElePtRSSide2(0),
190 fHistoEleXiMassvsElePtWSSide2(0),
195 fHistoEleXiMassMCS(0),
196 fHistoEleXiMassMCS1(0),
197 fHistoEleXiMassMCS2(0),
198 fHistoEleXiMassXibMCS(0),
199 fHistoEleXiMassXibMCS1(0),
200 fHistoEleXiMassXibMCS2(0),
201 fHistoEleXiMassPromptMCS(0),
202 fHistoEleXiMassPromptMCS1(0),
203 fHistoEleXiMassPromptMCS2(0),
204 fHistoEleXiMassBFeeddownMCS(0),
205 fHistoEleXiMassBFeeddownMCS1(0),
206 fHistoEleXiMassBFeeddownMCS2(0),
207 fHistoEleXiMassMCGen(0),
208 fHistoEleXiMassvsElePtMCS(0),
209 fHistoEleXiMassvsElePtMCGen(0),
210 fHistoEleXiMassvsElePtMCS1(0),
211 fHistoEleXiMassvsElePtMCGen1(0),
212 fHistoEleXiMassvsElePtMCS2(0),
213 fHistoEleXiMassvsElePtMCGen2(0),
216 fHistoElePtvsEtaRS(0),
217 fHistoElePtvsEtaWS(0),
218 fHistoElePtvsEtaRSMix(0),
219 fHistoElePtvsEtaWSMix(0),
220 fHistoElePtvsEtaMCS(0),
221 fHistoElePtvsEtaMCGen(0),
222 fHistoElePtvsXiPtRS(0),
223 fHistoElePtvsXiPtWS(0),
224 fHistoElePtvsXiPtRSMix(0),
225 fHistoElePtvsXiPtWSMix(0),
226 fHistoElePtvsXiPtMCS(0),
227 fHistoElePtvsXiPtvsXicPtMCS(0),
228 fHistoElePtvsXiPtMCGen(0),
229 fHistoElePtvsXiPtvsXicPtMCGen(0),
230 fHistoElePtvsXiPtMCXicGen(0),
231 fHistoElePtvsd0RS(0),
232 fHistoElePtvsd0WS(0),
233 fHistoElePtvsd0RSMix(0),
234 fHistoElePtvsd0WSMix(0),
235 fHistoElePtvsd0MCS(0),
236 fHistoElePtvsd0PromptMCS(0),
237 fHistoElePtvsd0BFeeddownMCS(0),
240 fHistoBachPtMCGen(0),
243 fHistoXiMassvsPtMCS(0),
244 fHistoXiMassvsPtMCGen(0),
245 fHistoOmegaMassvsPt(0),
246 fHistoElectronTPCPID(0),
247 fHistoElectronTOFPID(0),
248 fHistoElectronTPCSelPID(0),
249 fHistoElectronTOFSelPID(0),
250 fHistoElectronTPCPIDSelTOF(0),
251 fHistoElectronTOFPIDSelTPC(0),
252 fHistoElectronTPCPIDSelTOFSmallEta(0),
253 fHistoElectronTPCPIDSelTOFLargeEta(0),
254 fHistoMassConversionsMin(0),
255 fHistoMassConversionsSameSignMin(0),
256 fHistoElectronQovPtvsPhi(0),
257 fHistoXiQovPtvsPhi(0),
265 fHistoXibMCGenWithXic(0),
267 fHistoXicElectronMCGen(0),
268 fHistoXicElectronMCGen1(0),
269 fHistoXicElectronMCGen2(0),
270 fHistoXicElectronMCS(0),
271 fHistoXicElectronMCS1(0),
272 fHistoXicElectronMCS2(0),
273 fHistoElectronMCGen(0),
274 fHistoBottomElectronMCGen(0),
275 fHistoCharmElectronMCGen(0),
277 fHistoLambdaPtvsDl(0),
278 fHistoLambdaPtvsDlSide(0),
279 fHistoLambdaPtvsDlMCS(0),
280 fHistoLambdaPtvsDR(0),
281 fHistoLambdaPtvsDRSide(0),
282 fHistoLambdaPtvsDRMCS(0),
283 fHistoEleXiPtvsRapidityRS(0),
284 fHistoEleXiPtvsRapidityWS(0),
285 fHistoEleXiPtvsRapidityMCS(0),
286 fHistoCorrelationVariablesvsEleXiPt(0),
287 fHistoCorrelationVariablesvsEleXiPtMix(0),
288 fHistoCorrelationVariablesvsEleXiPtMC(0),
289 fHistoCorrelationVariablesvsElePt(0),
290 fHistoCorrelationVariablesvsElePtMix(0),
291 fHistoCorrelationVariablesvsElePtMC(0),
292 fHistoCorrelationVariablesvsXiPt(0),
293 fHistoCorrelationVariablesvsXiPtMix(0),
294 fHistoCorrelationVariablesvsXiPtMC(0),
295 fHistoResponseElePt(0),
296 fHistoResponseXiPt(0),
297 fHistoResponseEleXiPt(0),
298 fHistoResponseXiPtvsEleXiPt(0),
299 fHistoResponseXiPtXib(0),
300 fHistoResponseEleXiPtXib(0),
301 fHistoResponseMcGenXibPtvsXicPt(0),
303 fHistoElectronPi0Total(0),
304 fHistoElectronPi0Tag(0),
306 fHistoElectronEtaTotal(0),
307 fHistoElectronEtaTag(0),
309 fHistonEvtvsRunNumber(0),
310 fHistonElevsRunNumber(0),
311 fHistonXivsRunNumber(0),
312 fHistoMCEventType(0),
313 fHistoMCXic0Decays(0),
314 fHistoMCDeltaPhiccbar(0),
316 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
317 fHistodPhiSdEtaSElectronProtonR125RS(0),
318 fHistodPhiSdEtaSElectronProtonR125WS(0),
319 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
320 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
321 fHistodPhiSdEtaSElectronPionR125RS(0),
322 fHistodPhiSdEtaSElectronPionR125WS(0),
323 fHistodPhiSdEtaSElectronPionR125RSMix(0),
324 fHistodPhiSdEtaSElectronPionR125WSMix(0),
325 fHistodPhiSdEtaSElectronBachelorR125RS(0),
326 fHistodPhiSdEtaSElectronBachelorR125WS(0),
327 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
328 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
330 fMixWithoutConversionFlag(kFALSE),
331 fNumberOfEventsForMixing (5),
336 fEventInfo(new TObjString(
"")),
337 fElectronTracks(0x0),
338 fCascadeTracks1(0x0),
339 fCascadeTracks2(0x0),
340 fElectronCutVarsArray(0x0),
341 fCascadeCutVarsArray1(0x0),
342 fCascadeCutVarsArray2(0x0)
347 for(Int_t i=0;i<23;i++){
352 for(Int_t i=0;i<8;i++){
360 Bool_t writeVariableTree) :
361 AliAnalysisTaskSE(name),
370 fIsEventSelected(kFALSE),
371 fWriteVariableTree(writeVariableTree),
372 fWriteEachVariableTree(kFALSE),
373 fWriteMCVariableTree(kFALSE),
375 fEleVariablesTree(0),
376 fCascVariablesTree(0),
378 fMCEleVariablesTree(0),
379 fMCCascVariablesTree(0),
380 fMCGenPairVariablesTree(0),
381 fCorrelationVariablesTree(0),
382 fReconstructPrimVert(kFALSE),
388 fCandidateVariables(),
389 fCandidateEleVariables(),
390 fCandidateCascVariables(),
391 fCandidateMCVariables(),
392 fCandidateMCEleVariables(),
393 fCandidateMCCascVariables(),
394 fCandidateMCGenPairVariables(),
395 fCorrelationVariables(),
403 fUseCentralityV0M(kFALSE),
406 fMCDoPairAnalysis(kFALSE),
408 fHistoEleXiMassRS(0),
409 fHistoEleXiMassWS(0),
410 fHistoEleXiMassRSMix(0),
411 fHistoEleXiMassWSMix(0),
412 fHistoEleXiMassRSSide(0),
413 fHistoEleXiMassWSSide(0),
414 fHistoEleXiMassRS1(0),
415 fHistoEleXiMassWS1(0),
416 fHistoEleXiMassRSMix1(0),
417 fHistoEleXiMassWSMix1(0),
418 fHistoEleXiMassRSSide1(0),
419 fHistoEleXiMassWSSide1(0),
420 fHistoEleXiMassRS2(0),
421 fHistoEleXiMassWS2(0),
422 fHistoEleXiMassRSMix2(0),
423 fHistoEleXiMassWSMix2(0),
424 fHistoEleXiMassRSSide2(0),
425 fHistoEleXiMassWSSide2(0),
426 fHistoEleXiMassAway(0),
427 fHistoEleXiMassRSAway(0),
428 fHistoEleXiMassWSAway(0),
429 fHistoEleXiMassRSMixAway(0),
430 fHistoEleXiMassWSMixAway(0),
431 fHistoEleXiMassRSSideAway(0),
432 fHistoEleXiMassWSSideAway(0),
433 fHistoEleXiMassRS1Away(0),
434 fHistoEleXiMassWS1Away(0),
435 fHistoEleXiMassRSMix1Away(0),
436 fHistoEleXiMassWSMix1Away(0),
437 fHistoEleXiMassRSSide1Away(0),
438 fHistoEleXiMassWSSide1Away(0),
439 fHistoEleXiMassRS2Away(0),
440 fHistoEleXiMassWS2Away(0),
441 fHistoEleXiMassRSMix2Away(0),
442 fHistoEleXiMassWSMix2Away(0),
443 fHistoEleXiMassRSSide2Away(0),
444 fHistoEleXiMassWSSide2Away(0),
445 fHistoEleXiMassvsElePtRS(0),
446 fHistoEleXiMassvsElePtWS(0),
447 fHistoEleXiMassvsElePtRSMix(0),
448 fHistoEleXiMassvsElePtWSMix(0),
449 fHistoEleXiMassvsElePtRSSide(0),
450 fHistoEleXiMassvsElePtWSSide(0),
451 fHistoEleXiMassvsElePtRS1(0),
452 fHistoEleXiMassvsElePtWS1(0),
453 fHistoEleXiMassvsElePtRSMix1(0),
454 fHistoEleXiMassvsElePtWSMix1(0),
455 fHistoEleXiMassvsElePtRSSide1(0),
456 fHistoEleXiMassvsElePtWSSide1(0),
457 fHistoEleXiMassvsElePtRS2(0),
458 fHistoEleXiMassvsElePtWS2(0),
459 fHistoEleXiMassvsElePtRSMix2(0),
460 fHistoEleXiMassvsElePtWSMix2(0),
461 fHistoEleXiMassvsElePtRSSide2(0),
462 fHistoEleXiMassvsElePtWSSide2(0),
467 fHistoEleXiMassMCS(0),
468 fHistoEleXiMassMCS1(0),
469 fHistoEleXiMassMCS2(0),
470 fHistoEleXiMassXibMCS(0),
471 fHistoEleXiMassXibMCS1(0),
472 fHistoEleXiMassXibMCS2(0),
473 fHistoEleXiMassPromptMCS(0),
474 fHistoEleXiMassPromptMCS1(0),
475 fHistoEleXiMassPromptMCS2(0),
476 fHistoEleXiMassBFeeddownMCS(0),
477 fHistoEleXiMassBFeeddownMCS1(0),
478 fHistoEleXiMassBFeeddownMCS2(0),
479 fHistoEleXiMassMCGen(0),
480 fHistoEleXiMassvsElePtMCS(0),
481 fHistoEleXiMassvsElePtMCGen(0),
482 fHistoEleXiMassvsElePtMCS1(0),
483 fHistoEleXiMassvsElePtMCGen1(0),
484 fHistoEleXiMassvsElePtMCS2(0),
485 fHistoEleXiMassvsElePtMCGen2(0),
488 fHistoElePtvsEtaRS(0),
489 fHistoElePtvsEtaWS(0),
490 fHistoElePtvsEtaRSMix(0),
491 fHistoElePtvsEtaWSMix(0),
492 fHistoElePtvsEtaMCS(0),
493 fHistoElePtvsEtaMCGen(0),
494 fHistoElePtvsXiPtRS(0),
495 fHistoElePtvsXiPtWS(0),
496 fHistoElePtvsXiPtRSMix(0),
497 fHistoElePtvsXiPtWSMix(0),
498 fHistoElePtvsXiPtMCS(0),
499 fHistoElePtvsXiPtvsXicPtMCS(0),
500 fHistoElePtvsXiPtMCGen(0),
501 fHistoElePtvsXiPtvsXicPtMCGen(0),
502 fHistoElePtvsXiPtMCXicGen(0),
503 fHistoElePtvsd0RS(0),
504 fHistoElePtvsd0WS(0),
505 fHistoElePtvsd0RSMix(0),
506 fHistoElePtvsd0WSMix(0),
507 fHistoElePtvsd0MCS(0),
508 fHistoElePtvsd0PromptMCS(0),
509 fHistoElePtvsd0BFeeddownMCS(0),
512 fHistoBachPtMCGen(0),
515 fHistoXiMassvsPtMCS(0),
516 fHistoXiMassvsPtMCGen(0),
517 fHistoOmegaMassvsPt(0),
518 fHistoElectronTPCPID(0),
519 fHistoElectronTOFPID(0),
520 fHistoElectronTPCSelPID(0),
521 fHistoElectronTOFSelPID(0),
522 fHistoElectronTPCPIDSelTOF(0),
523 fHistoElectronTOFPIDSelTPC(0),
524 fHistoElectronTPCPIDSelTOFSmallEta(0),
525 fHistoElectronTPCPIDSelTOFLargeEta(0),
526 fHistoMassConversionsMin(0),
527 fHistoMassConversionsSameSignMin(0),
528 fHistoElectronQovPtvsPhi(0),
529 fHistoXiQovPtvsPhi(0),
537 fHistoXibMCGenWithXic(0),
539 fHistoXicElectronMCGen(0),
540 fHistoXicElectronMCGen1(0),
541 fHistoXicElectronMCGen2(0),
542 fHistoXicElectronMCS(0),
543 fHistoXicElectronMCS1(0),
544 fHistoXicElectronMCS2(0),
545 fHistoElectronMCGen(0),
546 fHistoBottomElectronMCGen(0),
547 fHistoCharmElectronMCGen(0),
549 fHistoLambdaPtvsDl(0),
550 fHistoLambdaPtvsDlSide(0),
551 fHistoLambdaPtvsDlMCS(0),
552 fHistoLambdaPtvsDR(0),
553 fHistoLambdaPtvsDRSide(0),
554 fHistoLambdaPtvsDRMCS(0),
555 fHistoEleXiPtvsRapidityRS(0),
556 fHistoEleXiPtvsRapidityWS(0),
557 fHistoEleXiPtvsRapidityMCS(0),
558 fHistoCorrelationVariablesvsEleXiPt(0),
559 fHistoCorrelationVariablesvsEleXiPtMix(0),
560 fHistoCorrelationVariablesvsEleXiPtMC(0),
561 fHistoCorrelationVariablesvsElePt(0),
562 fHistoCorrelationVariablesvsElePtMix(0),
563 fHistoCorrelationVariablesvsElePtMC(0),
564 fHistoCorrelationVariablesvsXiPt(0),
565 fHistoCorrelationVariablesvsXiPtMix(0),
566 fHistoCorrelationVariablesvsXiPtMC(0),
567 fHistoResponseElePt(0),
568 fHistoResponseXiPt(0),
569 fHistoResponseEleXiPt(0),
570 fHistoResponseXiPtvsEleXiPt(0),
571 fHistoResponseXiPtXib(0),
572 fHistoResponseEleXiPtXib(0),
573 fHistoResponseMcGenXibPtvsXicPt(0),
575 fHistoElectronPi0Total(0),
576 fHistoElectronPi0Tag(0),
578 fHistoElectronEtaTotal(0),
579 fHistoElectronEtaTag(0),
581 fHistonEvtvsRunNumber(0),
582 fHistonElevsRunNumber(0),
583 fHistonXivsRunNumber(0),
584 fHistoMCEventType(0),
585 fHistoMCXic0Decays(0),
586 fHistoMCDeltaPhiccbar(0),
588 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
589 fHistodPhiSdEtaSElectronProtonR125RS(0),
590 fHistodPhiSdEtaSElectronProtonR125WS(0),
591 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
592 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
593 fHistodPhiSdEtaSElectronPionR125RS(0),
594 fHistodPhiSdEtaSElectronPionR125WS(0),
595 fHistodPhiSdEtaSElectronPionR125RSMix(0),
596 fHistodPhiSdEtaSElectronPionR125WSMix(0),
597 fHistodPhiSdEtaSElectronBachelorR125RS(0),
598 fHistodPhiSdEtaSElectronBachelorR125WS(0),
599 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
600 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
602 fMixWithoutConversionFlag(kFALSE),
603 fNumberOfEventsForMixing (5),
608 fEventInfo(new TObjString(
"")),
609 fElectronTracks(0x0),
610 fCascadeTracks1(0x0),
611 fCascadeTracks2(0x0),
612 fElectronCutVarsArray(0x0),
613 fCascadeCutVarsArray1(0x0),
614 fCascadeCutVarsArray2(0x0)
619 Info(
"AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Constructor");
621 for(Int_t i=0;i<23;i++){
626 for(Int_t i=0;i<8;i++){
630 DefineOutput(1,TList::Class());
631 DefineOutput(2,TList::Class());
632 DefineOutput(3,TList::Class());
633 DefineOutput(4,TTree::Class());
634 DefineOutput(5,TTree::Class());
635 DefineOutput(6,TTree::Class());
636 DefineOutput(7,TTree::Class());
637 DefineOutput(8,AliNormalizationCounter::Class());
638 DefineOutput(9,TTree::Class());
639 DefineOutput(10,TTree::Class());
640 DefineOutput(11,TTree::Class());
641 DefineOutput(12,TTree::Class());
649 Info(
"~AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Destructor");
745 if (fDebug > 1) AliInfo(
"Init");
764 AliError(
"NO EVENT FOUND!");
767 AliAODEvent* aodEvent =
dynamic_cast<AliAODEvent*
>(fInputEvent);
775 fBzkG = (Double_t)aodEvent->GetMagneticField();
776 AliKFParticle::SetField(
fBzkG);
777 if (TMath::Abs(
fBzkG)<0.001) {
788 TClonesArray *mcArray = 0;
789 AliAODMCHeader *mcHeader=0;
792 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
794 AliError(
"Could not find Monte-Carlo in AOD");
800 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
802 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec: MC header branch not found!\n");
807 Double_t zMCVertex = mcHeader->GetVtxZ();
809 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
823 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
826 Double_t pos[3],cov[6];
828 fVtx1->GetCovarianceMatrix(cov);
829 fV1 =
new AliESDVertex(pos,cov,100.,100,
fVtx1->GetName());
842 fIsMB=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kMB)==(AliVEvent::kMB);
843 fIsSemi=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kSemiCentral)==(AliVEvent::kSemiCentral);
844 fIsCent=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kCentral)==(AliVEvent::kCentral);
845 fIsINT7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kINT7)==(AliVEvent::kINT7);
846 fIsEMC7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kEMC7)==(AliVEvent::kEMC7);
860 AliCentrality *cent = aodEvent->GetCentrality();
861 fCentrality = cent->GetCentralityPercentile(
"V0M");
865 if(fCentrality<0.||fCentrality>100.-0.0000001) {
872 Int_t runnumber_offset = 0;
873 Int_t runnumber = aodEvent->GetRunNumber();
874 if(runnumber<=131000&&runnumber>=114000){
875 runnumber_offset = 114000;
876 }
else if(runnumber<=196000&&runnumber>=195000){
877 runnumber_offset = 195000;
878 }
else if(runnumber<=170593&&runnumber>=167902){
879 runnumber_offset = 167902;
924 AliAnalysisTaskSE::Terminate();
926 fOutput =
dynamic_cast<TList*
> (GetOutputData(1));
928 AliError(
"fOutput not available");
932 fOutputAll =
dynamic_cast<TList*
> (GetOutputData(3));
934 AliError(
"fOutputAll not available");
990 TString normName=
"NormalizationCounter";
991 AliAnalysisDataContainer *cont = GetOutputSlot(8)->GetContainer();
992 if(cont)normName=(TString)cont->GetName();
1014 fEventBuffer[i]=
new TTree(Form(
"EventBuffer_%d",i),
"Temporary buffer for event mixing");
1034 AliAODEvent *aodEvent, TClonesArray *mcArray
1043 if(fDoEventMixing && fElectronTracks) fElectronTracks->Delete();
1044 if(fDoEventMixing && fCascadeTracks1) fCascadeTracks1->Delete();
1045 if(fDoEventMixing && fCascadeTracks2) fCascadeTracks2->Delete();
1046 if(fDoEventMixing && fCascadeCutVarsArray1) fCascadeCutVarsArray1->Delete();
1047 if(fDoEventMixing && fCascadeCutVarsArray2) fCascadeCutVarsArray2->Delete();
1049 ResetGlobalTrackReference();
1051 for (Int_t iTrack=0;iTrack<aodEvent->GetNumberOfTracks();iTrack++){
1053 AliAODTrack *track =
dynamic_cast<AliAODTrack *
>(aodEvent->GetTrack(iTrack));
1054 if (!track)
continue;
1057 StoreGlobalTrackReference(track,iTrack);
1061 Int_t nCascs= aodEvent->GetNumberOfCascades();
1062 Int_t nTracks= aodEvent->GetNumberOfTracks();
1064 Bool_t seleTrkFlags[nTracks];
1066 SelectTrack(aodEvent,nTracks,nSeleTrks,seleTrkFlags,mcArray);
1068 Bool_t seleCascFlags[nCascs];
1070 SelectCascade(aodEvent,nCascs,nSeleCasc,seleCascFlags,mcArray);
1072 Int_t runnumber_offset = 0;
1073 Int_t runnumber = aodEvent->GetRunNumber();
1074 if(runnumber<=131000&&runnumber>=114000){
1075 runnumber_offset = 114000;
1076 }
else if(runnumber<=196000&&runnumber>=195000){
1077 runnumber_offset = 195000;
1078 }
else if(runnumber<=170593&&runnumber>=167902){
1079 runnumber_offset = 167902;
1081 fHistonElevsRunNumber->Fill(runnumber-runnumber_offset,nSeleTrks);
1082 fHistonXivsRunNumber->Fill(runnumber-runnumber_offset,nSeleCasc);
1087 for (Int_t icasc = 0; icasc<nCascs; icasc++) {
1088 if(!seleCascFlags[icasc])
continue;
1089 AliAODcascade *casc = aodEvent->GetCascade(icasc);
1092 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1093 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1094 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1099 for (Int_t itrk = 0; itrk<nTracks; itrk++) {
1100 if(!seleTrkFlags[itrk])
continue;
1101 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1109 AliAODTrack *trkpid = 0;
1110 if(fAnalCuts->GetProdAODFilterBit()==7){
1111 trkpid = fGTI[-trk->GetID()-1];
1116 Int_t cpid = cptrack->GetID();
1117 Int_t cnid = cntrack->GetID();
1118 Int_t cbid = cbtrack->GetID();
1119 Int_t lpid = trkpid->GetID();
1120 if((cpid==lpid)||(cnid==lpid)||(cbid==lpid))
continue;
1122 AliAODVertex *secVert = ReconstructSecondaryVertex(casc,trk,aodEvent);
1123 if(!secVert)
continue;
1130 FillROOTObjects(exobj, casc,trk,trkpid,aodEvent,mcArray);
1132 exobj->GetSecondaryVtx()->RemoveDaughters();
1134 delete exobj;exobj=NULL;
1140 fEventInfo->SetString(Form(
"Ev%d_esd%d_E%d_C%d",AliAnalysisManager::GetAnalysisManager()->GetNcalls(),((AliAODHeader*)aodEvent->GetHeader())->GetEventNumberESDFile(),fElectronTracks->GetEntries(),fCascadeTracks1->GetEntries()+fCascadeTracks2->GetEntries()));
1141 Int_t ind=GetPoolIndex(fVtxZ,fCentrality);
1142 if(ind>=0 && ind<fNOfPools){
1143 if(fEventBuffer[ind]->GetEntries() >= fNumberOfEventsForMixing){
1144 DoEventMixingWithPools(ind);
1145 if(fEventBuffer[ind]->GetEntries() >= 20*fNumberOfEventsForMixing){
1149 fEventBuffer[ind]->Fill();
1162 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
1163 fVariablesTree =
new TTree(nameoutput,
"Candidates variables tree");
1166 TString * fCandidateVariableNames =
new TString[
nVar];
1168 fCandidateVariableNames[ 0]=
"Centrality";
1169 fCandidateVariableNames[ 1]=
"InvMassEleXi";
1170 fCandidateVariableNames[ 2]=
"EleXiPt";
1171 fCandidateVariableNames[ 3]=
"EleXiPx";
1172 fCandidateVariableNames[ 4]=
"EleXiPy";
1173 fCandidateVariableNames[ 5]=
"EleXiPz";
1174 fCandidateVariableNames[ 6]=
"ElePx";
1175 fCandidateVariableNames[ 7]=
"ElePy";
1176 fCandidateVariableNames[ 8]=
"ElePz";
1177 fCandidateVariableNames[ 9]=
"XiPx";
1178 fCandidateVariableNames[10]=
"XiPy";
1179 fCandidateVariableNames[11]=
"XiPz";
1180 fCandidateVariableNames[12]=
"XiCharge";
1181 fCandidateVariableNames[13]=
"MassXi";
1182 fCandidateVariableNames[14]=
"MassLambda";
1183 fCandidateVariableNames[15]=
"Eled0";
1184 fCandidateVariableNames[16]=
"Xid0";
1185 fCandidateVariableNames[17]=
"nSigmaTPCele";
1186 fCandidateVariableNames[18]=
"nSigmaTOFele";
1187 fCandidateVariableNames[19]=
"nSigmaTPCpr_etrk";
1188 fCandidateVariableNames[20]=
"nSigmaTOFpr_etrk";
1189 fCandidateVariableNames[21]=
"nSigmaTPCka_etrk";
1190 fCandidateVariableNames[22]=
"nSigmaTOFka_etrk";
1191 fCandidateVariableNames[23]=
"nSigmaTPCv0pr";
1192 fCandidateVariableNames[24]=
"nSigmaTOFv0pr";
1193 fCandidateVariableNames[25]=
"nSigmaTPCv0pi";
1194 fCandidateVariableNames[26]=
"nSigmaTOFv0pi";
1195 fCandidateVariableNames[27]=
"nSigmaTPCbachpi";
1196 fCandidateVariableNames[28]=
"nSigmaTOFbachpi";
1197 fCandidateVariableNames[29]=
"EleCharge";
1198 fCandidateVariableNames[30]=
"Mixing";
1199 fCandidateVariableNames[31]=
"DcaXiDaughters";
1200 fCandidateVariableNames[32]=
"DcaV0Daughters";
1201 fCandidateVariableNames[33]=
"DecayLengthXi";
1202 fCandidateVariableNames[34]=
"CosPointingAngleXi";
1203 fCandidateVariableNames[35]=
"DcaV0toPrimVertex";
1204 fCandidateVariableNames[36]=
"DcaPostoPrimVertex";
1205 fCandidateVariableNames[37]=
"DcaNegtoPrimVertex";
1206 fCandidateVariableNames[38]=
"DcaBachtoPrimVertex";
1207 fCandidateVariableNames[39]=
"DecayLengthV0";
1208 fCandidateVariableNames[40]=
"CosPointingAngleV0";
1210 fCandidateVariableNames[41]=
"mcpdgxic";
1211 fCandidateVariableNames[42]=
"mclabxic";
1212 fCandidateVariableNames[43]=
"mcxicpx";
1213 fCandidateVariableNames[44]=
"mcxicpy";
1214 fCandidateVariableNames[45]=
"mcxicpz";
1215 fCandidateVariableNames[46]=
"mcelepx";
1216 fCandidateVariableNames[47]=
"mcelepy";
1217 fCandidateVariableNames[48]=
"mcelepz";
1218 fCandidateVariableNames[49]=
"mccascpx";
1219 fCandidateVariableNames[50]=
"mccascpy";
1220 fCandidateVariableNames[51]=
"mccascpz";
1222 fCandidateVariableNames[52]=
"mcpdgele";
1223 fCandidateVariableNames[53]=
"mcpdgcasc";
1224 fCandidateVariableNames[54]=
"mcpdgmomele";
1225 fCandidateVariableNames[55]=
"mcpdgmomcasc";
1226 fCandidateVariableNames[56]=
"mcpdggrmomele";
1227 fCandidateVariableNames[57]=
"mcpdggrmomcasc";
1228 fCandidateVariableNames[58]=
"mcngenele";
1229 fCandidateVariableNames[59]=
"mcngencasc";
1231 fCandidateVariableNames[60]=
"nSigmaTPCpi_etrk";
1232 fCandidateVariableNames[61]=
"nSigmaTOFpi_etrk";
1234 fCandidateVariableNames[62]=
"V0PosPx";
1235 fCandidateVariableNames[63]=
"V0PosPy";
1236 fCandidateVariableNames[64]=
"V0PosPz";
1237 fCandidateVariableNames[65]=
"V0NegPx";
1238 fCandidateVariableNames[66]=
"V0NegPy";
1239 fCandidateVariableNames[67]=
"V0NegPz";
1240 fCandidateVariableNames[68]=
"V0VertX";
1241 fCandidateVariableNames[69]=
"V0VertY";
1242 fCandidateVariableNames[70]=
"V0VertZ";
1243 fCandidateVariableNames[71]=
"BachPx";
1244 fCandidateVariableNames[72]=
"BachPy";
1245 fCandidateVariableNames[73]=
"BachPz";
1246 fCandidateVariableNames[74]=
"XiVertX";
1247 fCandidateVariableNames[75]=
"XiVertY";
1248 fCandidateVariableNames[76]=
"XiVertZ";
1249 fCandidateVariableNames[77]=
"PrimVertX";
1250 fCandidateVariableNames[78]=
"PrimVertY";
1251 fCandidateVariableNames[79]=
"PrimVertZ";
1253 fCandidateVariableNames[80]=
"MassOmega";
1255 fCandidateVariableNames[81]=
"EleITSMatch";
1256 fCandidateVariableNames[82]=
"BachITSMatch";
1257 fCandidateVariableNames[83]=
"V0PosITSMatch";
1258 fCandidateVariableNames[84]=
"V0NegITSMatch";
1260 fCandidateVariableNames[85]=
"TPCNclsF";
1261 fCandidateVariableNames[86]=
"TPCNcls";
1262 fCandidateVariableNames[87]=
"TPCNclsS";
1263 fCandidateVariableNames[88]=
"IsXiPeakReagion";
1266 fCandidateVariableNames[89]=
"MagneticField";
1267 fCandidateVariableNames[90]=
"EvNumber";
1268 fCandidateVariableNames[91]=
"RunNumber";
1270 for (Int_t ivar=0; ivar<
nVar; ivar++) {
1287 for(Int_t i=0;i<92;i++){
1292 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1293 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1294 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1304 Double_t pxe = exobj->PxProng(0);
1305 Double_t pye = exobj->PyProng(0);
1306 Double_t pze = exobj->PzProng(0);
1307 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
1308 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
1309 Double_t pxv = exobj->PxProng(1);
1310 Double_t pyv = exobj->PyProng(1);
1311 Double_t pzv = exobj->PzProng(1);
1312 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
1313 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
1314 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
1315 Double_t Esum = Ee + Ev;
1317 Double_t uxe = pxe/mome;
1318 Double_t uye = pye/mome;
1319 Double_t uze = pze/mome;
1320 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
1321 Double_t pxv_flip = pxv + lf * uxe;
1322 Double_t pyv_flip = pyv + lf * uye;
1323 Double_t pzv_flip = pzv + lf * uze;
1324 Double_t pxsum_flip = pxe + pxv_flip;
1325 Double_t pysum_flip = pye + pyv_flip;
1326 Double_t pzsum_flip = pze + pzv_flip;
1327 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
1328 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
1330 Double_t minmass_ee = 9999.;
1332 Double_t minmasslike_ee = 9999.;
1336 Double_t posVtx[3] = {0.,0.,0.};
1337 fVtx1->GetXYZ(posVtx);
1340 UInt_t pdgdg[2]={11,3312};
1354 if(casc->ChargeXi()<0)
1361 Double_t nSigmaTPCele = -9999.;
1362 Double_t nSigmaTOFele = -9999.;
1384 Double_t nSigmaTPCv0pr=-9999.;
1385 Double_t nSigmaTOFv0pr=-9999.;
1386 Double_t nSigmaTPCv0pi=-9999.;
1387 Double_t nSigmaTOFv0pi=-9999.;
1388 Double_t nSigmaTPCbachpi=-9999.;
1389 Double_t nSigmaTOFbachpi=-9999.;
1392 if(casc->ChargeXi()>0){
1427 AliAODMCParticle *mcxic = 0;
1428 AliAODMCParticle *mcele = 0;
1429 AliAODMCParticle *mccasc = 0;
1431 Int_t mcpdgele_array[100];
1432 Int_t mcpdgcasc_array[100];
1433 Int_t mclabelele_array[100];
1434 Int_t mclabelcasc_array[100];
1435 Int_t mcngen_ele = -9999;
1436 Int_t mcngen_casc = -9999;
1439 mclabxic =
MatchToMC(exobj,mcArray,mcpdgele_array, mcpdgcasc_array,mclabelele_array,mclabelcasc_array,mcngen_ele,mcngen_casc);
1442 mcxic = (AliAODMCParticle*) mcArray->At(mclabxic);
1443 if(mclabelele_array[0]>=0)
1444 mcele = (AliAODMCParticle*) mcArray->At(mclabelele_array[0]);
1445 if(mclabelcasc_array[0]>=0)
1446 mccasc = (AliAODMCParticle*) mcArray->At(mclabelcasc_array[0]);
1513 Double_t dphis_ele_pr, detas_ele_pr,dphis_ele_pi, detas_ele_pi, dphis_ele_bach, detas_ele_bach;
1514 dphis_ele_pr = 9999.;detas_ele_pr = 9999.;dphis_ele_pi = 9999.;detas_ele_pi = 9999.;dphis_ele_bach=9999.;detas_ele_bach=9999.;
1519 cont[0] = exobj->InvMass(2,pdgdg);
1520 cont[1] = exobj->Pt();
1521 cont[2] = exobj->Getd0Prong(0)*trk->Charge();
1525 Double_t cont_flip[4];
1526 cont_flip[0] = mexi_flip;
1527 cont_flip[1] = ptexi_flip;
1532 cont2[0] = exobj->InvMass(2,pdgdg);
1533 cont2[1] = trk->Pt();
1536 Double_t cont_eleptvseta[3];
1537 cont_eleptvseta[0] = trk->Pt();
1538 cont_eleptvseta[1] = trk->Eta();
1541 Double_t cont_eleptvsxipt[3];
1542 cont_eleptvsxipt[0] = trk->Pt();
1543 cont_eleptvsxipt[1] = sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY());
1546 Double_t cont_eleptvsd0[3];
1547 cont_eleptvsd0[0] = trk->Pt();
1548 cont_eleptvsd0[1] = exobj->Getd0Prong(0)*trk->Charge();
1551 Double_t exobj_mass = exobj->InvMass(2,pdgdg);
1552 Double_t exobj_px = exobj->Px();
1553 Double_t exobj_py = exobj->Py();
1554 Double_t exobj_pz = exobj->Pz();
1555 Double_t exobj_E = sqrt(exobj_mass*exobj_mass+exobj_px*exobj_px+exobj_py*exobj_py+exobj_pz*exobj_pz);
1556 Double_t exobj_rap = 0.5*log((exobj_E+exobj_pz)/(exobj_E-exobj_pz));
1563 if(trk->Charge()*casc->ChargeXi()<0){
1576 for(Int_t ih=0;ih<23;ih++){
1577 Double_t cont_eleptvscutvars[3];
1578 cont_eleptvscutvars[0] = exobj->Pt();
1582 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1584 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1586 cont_eleptvscutvars[1] = nSigmaTPCele;
1588 cont_eleptvscutvars[1] = nSigmaTOFele;
1590 cont_eleptvscutvars[1] = trk->Eta();
1592 cont_eleptvscutvars[1] = trk->GetITSNcls();
1594 if(casc->ChargeXi()<0)
1595 cont_eleptvscutvars[1] = casc->MassLambda();
1597 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1599 cont_eleptvscutvars[1] = casc->MassXi();
1602 lPosV0[0] = casc->DecayVertexV0X();
1603 lPosV0[1] = casc->DecayVertexV0Y();
1604 lPosV0[2] = casc->DecayVertexV0Z();
1605 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1608 lPosXi[0] = casc->DecayVertexXiX();
1609 lPosXi[1] = casc->DecayVertexXiY();
1610 lPosXi[2] = casc->DecayVertexXiZ();
1611 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1613 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1615 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1617 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1619 if(casc->ChargeXi()<0.)
1620 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1622 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1624 if(casc->ChargeXi()>0.)
1625 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1627 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1629 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1631 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1633 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1635 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1637 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1639 cont_eleptvscutvars[1] = casc->Eta();
1641 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1643 Double_t xipx = exobj->PxProng(1);
1644 Double_t xipy = exobj->PyProng(1);
1645 Double_t xipz = exobj->PzProng(1);
1646 Double_t epx = exobj->PxProng(0);
1647 Double_t epy = exobj->PyProng(0);
1648 Double_t epz = exobj->PzProng(0);
1649 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1651 cont_eleptvscutvars[1] = -9999.;
1659 Int_t pdgcode = mcxic->GetPdgCode();
1660 cont2[1] = mcele->Pt();
1661 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
1662 Int_t labmotherxic = mcxic->GetMother();
1663 Bool_t isbottomfd = kFALSE;
1666 AliAODMCParticle *motherxic = (AliAODMCParticle*)mcArray->At(labmotherxic);
1667 Int_t pdgmotherxic = motherxic->GetPdgCode();
1668 if(TMath::Abs(pdgmotherxic)==511||TMath::Abs(pdgmotherxic)==521||TMath::Abs(pdgmotherxic)==5122||TMath::Abs(pdgmotherxic)==5132||TMath::Abs(pdgmotherxic)==5232||TMath::Abs(pdgmotherxic)==5332){
1697 Double_t cont_xic[3];
1698 cont_xic[0] = mcxic->Pt();
1699 cont_xic[1] = mcxic->Y();
1705 Double_t cont_mcele[3];
1706 cont_mcele[0] = mcele->Pt();
1707 cont_mcele[1] = mcele->Eta();
1714 fHistoResponseXiPt->Fill(mcxic->Pt(),sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2)));
1718 Double_t cont_eleptvsxiptvsxicpt[4];
1719 cont_eleptvsxiptvsxicpt[0] = cont_eleptvsxipt[0];
1720 cont_eleptvsxiptvsxicpt[1] = cont_eleptvsxipt[1];
1721 cont_eleptvsxiptvsxicpt[2] = mcxic->Pt();
1722 cont_eleptvsxiptvsxicpt[3] = cont_eleptvsxipt[2];
1731 for(Int_t ih=0;ih<23;ih++){
1732 Double_t cont_eleptvscutvars[3];
1733 cont_eleptvscutvars[0] = exobj->Pt();
1737 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1739 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1741 cont_eleptvscutvars[1] = nSigmaTPCele;
1743 cont_eleptvscutvars[1] = nSigmaTOFele;
1745 cont_eleptvscutvars[1] = trk->Eta();
1747 cont_eleptvscutvars[1] = trk->GetITSNcls();
1749 if(casc->ChargeXi()<0)
1750 cont_eleptvscutvars[1] = casc->MassLambda();
1752 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1754 cont_eleptvscutvars[1] = casc->MassXi();
1757 lPosV0[0] = casc->DecayVertexV0X();
1758 lPosV0[1] = casc->DecayVertexV0Y();
1759 lPosV0[2] = casc->DecayVertexV0Z();
1760 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1763 lPosXi[0] = casc->DecayVertexXiX();
1764 lPosXi[1] = casc->DecayVertexXiY();
1765 lPosXi[2] = casc->DecayVertexXiZ();
1766 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1768 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1770 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1772 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1774 if(casc->ChargeXi()<0.)
1775 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1777 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1779 if(casc->ChargeXi()>0.)
1780 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1782 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1784 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1786 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1788 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1790 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1792 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1794 cont_eleptvscutvars[1] = casc->Eta();
1796 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1798 Double_t xipx = exobj->PxProng(1);
1799 Double_t xipy = exobj->PyProng(1);
1800 Double_t xipz = exobj->PzProng(1);
1801 Double_t epx = exobj->PxProng(0);
1802 Double_t epy = exobj->PyProng(0);
1803 Double_t epz = exobj->PzProng(0);
1804 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1806 cont_eleptvscutvars[1] = -9999.;
1832 for(Int_t ih=0;ih<23;ih++){
1833 Double_t cont_eleptvscutvars[3];
1834 cont_eleptvscutvars[0] = exobj->Pt();
1838 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1840 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1842 cont_eleptvscutvars[1] = nSigmaTPCele;
1844 cont_eleptvscutvars[1] = nSigmaTOFele;
1846 cont_eleptvscutvars[1] = trk->Eta();
1848 cont_eleptvscutvars[1] = trk->GetITSNcls();
1850 if(casc->ChargeXi()<0)
1851 cont_eleptvscutvars[1] = casc->MassLambda();
1853 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1855 cont_eleptvscutvars[1] = casc->MassXi();
1858 lPosV0[0] = casc->DecayVertexV0X();
1859 lPosV0[1] = casc->DecayVertexV0Y();
1860 lPosV0[2] = casc->DecayVertexV0Z();
1861 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1864 lPosXi[0] = casc->DecayVertexXiX();
1865 lPosXi[1] = casc->DecayVertexXiY();
1866 lPosXi[2] = casc->DecayVertexXiZ();
1867 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1869 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1871 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1873 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1875 if(casc->ChargeXi()<0.)
1876 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1878 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1880 if(casc->ChargeXi()>0.)
1881 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1883 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1885 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1887 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1889 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1891 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1893 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1895 cont_eleptvscutvars[1] = casc->Eta();
1897 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1899 Double_t xipx = exobj->PxProng(1);
1900 Double_t xipy = exobj->PyProng(1);
1901 Double_t xipz = exobj->PzProng(1);
1902 Double_t epx = exobj->PxProng(0);
1903 Double_t epy = exobj->PyProng(0);
1904 Double_t epz = exobj->PzProng(0);
1905 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1907 cont_eleptvscutvars[1] = -9999.;
1915 Int_t pdgcode = mcxic->GetPdgCode();
1916 Double_t cont_xib[3];
1917 cont_xib[0] = mcxic->Pt();
1918 cont_xib[1] = mcxic->Y();
1921 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
1931 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
1941 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
1951 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
1971 if( mexi_flip <10. && cosoa < 0. && fAnalCuts->IsPeakRegion(casc))
1973 if(trk->Charge()*casc->ChargeXi()<0){
1986 if(trk->Charge()*casc->ChargeXi()<0){
2004 if( mexi_flip< 10. && cosoa < 0. && fAnalCuts->IsSideBand(casc))
2006 if(trk->Charge()*casc->ChargeXi()<0){
2020 for(Int_t iv=0;iv<13;iv++){
2023 Double_t cont_cor_nd[7];
2024 for(Int_t iv=0;iv<7;iv++){
2025 cont_cor_nd[iv] = -9999.;
2035 if(trk->Charge()>0){
2038 }
else if(trk->Charge()<0){
2047 cont_cor_nd[0] = exobj->Pt();
2049 cont_cor_nd[2] = 1.;
2050 if(trk->Charge()>0){
2051 if(casc->ChargeXi()<0) cont_cor_nd[3] = 0;
2052 else cont_cor_nd[3] = 2;
2053 }
else if(trk->Charge()<0){
2054 if(casc->ChargeXi()<0) cont_cor_nd[3] = 3;
2055 else cont_cor_nd[3] = 1;
2063 Int_t pdgcode = mcxic->GetPdgCode();
2064 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
2068 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
2072 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
2076 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
2080 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
2115 if(exobj->InvMass(2,pdgdg)<2.5)
2117 cont_cor_nd[0] = trk->Pt();
2119 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2122 if(exobj->InvMass(2,pdgdg)<2.5)
2124 cont_cor_nd[0] = trk->Pt();
2126 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2145 for(Int_t i=0;i<90;i++){
2149 Double_t pxe = trke->Px();
2150 Double_t pye = trke->Py();
2151 Double_t pze = trke->Pz();
2152 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
2153 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
2155 Double_t pxv = casc->Px();
2156 Double_t pyv = casc->Py();
2157 Double_t pzv = casc->Pz();
2158 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
2159 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
2161 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
2163 Double_t pxsum = pxe + pxv;
2164 Double_t pysum = pye + pyv;
2165 Double_t pzsum = pze + pzv;
2166 Double_t Esum = Ee + Ev;
2167 Double_t mexi = sqrt(Esum*Esum-pxsum*pxsum-pysum*pysum-pzsum*pzsum);
2169 Double_t uxe = pxe/mome;
2170 Double_t uye = pye/mome;
2171 Double_t uze = pze/mome;
2172 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
2173 Double_t pxv_flip = pxv + lf * uxe;
2174 Double_t pyv_flip = pyv + lf * uye;
2175 Double_t pzv_flip = pzv + lf * uze;
2176 Double_t pxsum_flip = pxe + pxv_flip;
2177 Double_t pysum_flip = pye + pyv_flip;
2178 Double_t pzsum_flip = pze + pzv_flip;
2179 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
2180 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
2182 Double_t posVtx[3] = {0.,0.,0.};
2183 fVtx1->GetXYZ(posVtx);
2186 UInt_t pdgdg[2]={11,3312};
2212 cont[1] = sqrt(pxsum*pxsum+pysum*pysum);
2216 Double_t cont_flip[4];
2217 cont_flip[0] = mexi_flip;
2218 cont_flip[1] = ptexi_flip;
2224 cont2[1] = sqrt(pxe*pxe+pye*pye);
2227 Double_t cont_eleptvseta[3];
2228 cont_eleptvseta[0] = trke->Pt();
2229 cont_eleptvseta[1] = trke->Eta();
2232 Double_t cont_eleptvsxipt[3];
2233 cont_eleptvsxipt[0] = trke->Pt();
2234 cont_eleptvsxipt[1] = casc->Pt();
2237 Double_t cont_eleptvsd0[3];
2238 cont_eleptvsd0[0] = trke->Pt();
2239 cont_eleptvsd0[1] = 0.;
2242 Double_t xyzR125_ele[3], xyzR125_pr[3], xyzR125_pi[3], xyzR125_bach[3];
2243 xyzR125_ele[0] = (*elevars)[0];
2244 xyzR125_ele[1] = (*elevars)[1];
2245 xyzR125_ele[2] = (*elevars)[2];
2246 xyzR125_pr[0] = (*cascvars)[0];
2247 xyzR125_pr[1] = (*cascvars)[1];
2248 xyzR125_pr[2] = (*cascvars)[2];
2249 xyzR125_pi[0] = (*cascvars)[3];
2250 xyzR125_pi[1] = (*cascvars)[4];
2251 xyzR125_pi[2] = (*cascvars)[5];
2252 xyzR125_bach[0] = (*cascvars)[6];
2253 xyzR125_bach[1] = (*cascvars)[7];
2254 xyzR125_bach[2] = (*cascvars)[8];
2256 Double_t rdhfcutvars[12];
2257 rdhfcutvars[0] = xyzR125_ele[0];
2258 rdhfcutvars[1] = xyzR125_ele[1];
2259 rdhfcutvars[2] = xyzR125_ele[2];
2260 rdhfcutvars[3] = xyzR125_pr[0];
2261 rdhfcutvars[4] = xyzR125_pr[1];
2262 rdhfcutvars[5] = xyzR125_pr[2];
2263 rdhfcutvars[6] = xyzR125_pi[0];
2264 rdhfcutvars[7] = xyzR125_pi[1];
2265 rdhfcutvars[8] = xyzR125_pi[2];
2266 rdhfcutvars[9] = xyzR125_bach[0];
2267 rdhfcutvars[10] = xyzR125_bach[1];
2268 rdhfcutvars[11] = xyzR125_bach[2];
2280 if(((
int)trke->T())*chargexi<0){
2316 if(mexi_flip < 10. && cosoa<0. && fAnalCuts->IsPeakRegion(casc))
2318 if(((
int)trke->T())*chargexi<0){
2332 for(Int_t iv=0;iv<13;iv++){
2336 Double_t cont_cor_nd[7];
2337 for(Int_t iv=0;iv<7;iv++){
2338 cont_cor_nd[iv] = -9999.;
2345 fCorrelationVariables[5] = (*elevars)[5];
2346 fCorrelationVariables[6] = 2;
2348 if(chargexi<0) fCorrelationVariables[7] = 0;
2349 else fCorrelationVariables[7] = 2;
2350 }
else if(trke->T()<0){
2351 if(chargexi<0) fCorrelationVariables[7] = 1;
2352 else fCorrelationVariables[7] = 3;
2354 fCorrelationVariables[8] = (*elevars)[6];
2355 fCorrelationVariables[9] = (*elevars)[7];
2357 fCorrelationVariables[11] = sqrt(pxsum*pxsum+pysum*pysum);
2358 fCorrelationVariables[12] = mexi;
2360 cont_cor_nd[0] = sqrt(pxsum*pxsum+pysum*pysum);
2361 cont_cor_nd[1] = TVector2::Phi_mpi_pi(casc->Phi()-trke->Phi());
2362 cont_cor_nd[2] = 1.;
2364 if(chargexi<0) cont_cor_nd[3] = 0;
2365 else cont_cor_nd[3] = 2;
2366 }
else if(trke->T()<0){
2367 if(chargexi<0) cont_cor_nd[3] = 3;
2368 else cont_cor_nd[3] = 1;
2370 cont_cor_nd[4] = fCorrelationVariables[8];
2372 if(fabs(fCorrelationVariables[9]-1013)<0.001) cont_cor_nd[5] = 7;
2373 if(fabs(fCorrelationVariables[9]-1016)<0.001) cont_cor_nd[5] = 8;
2374 if(fabs(fCorrelationVariables[9]-1019)<0.001) cont_cor_nd[5] = 9;
2384 cont_cor_nd[0] = trke->Pt();
2386 cont_cor_nd[0] = casc->Pt();
2400 const char* nameoutput = GetOutputSlot(5)->GetContainer()->GetName();
2404 TString * fCandidateVariableNames =
new TString[
nVar];
2406 fCandidateVariableNames[ 0]=
"ElePx";
2407 fCandidateVariableNames[ 1]=
"ElePy";
2408 fCandidateVariableNames[ 2]=
"ElePz";
2409 fCandidateVariableNames[ 3]=
"TPCChi2overNDF";
2410 fCandidateVariableNames[ 4]=
"ITSNcls";
2411 fCandidateVariableNames[ 5]=
"TPCNcls";
2412 fCandidateVariableNames[ 6]=
"TPCNclsPID";
2413 fCandidateVariableNames[ 7]=
"TPCNclsRatio";
2414 fCandidateVariableNames[ 8]=
"d0R";
2415 fCandidateVariableNames[ 9]=
"d0Z";
2416 fCandidateVariableNames[10]=
"ITSClusterMap";
2417 fCandidateVariableNames[11]=
"nSigmaTPCele";
2418 fCandidateVariableNames[12]=
"nSigmaTOFele";
2419 fCandidateVariableNames[13]=
"nSigmaTPCpi";
2420 fCandidateVariableNames[14]=
"nSigmaTPCka";
2421 fCandidateVariableNames[15]=
"nSigmaTPCpr";
2422 fCandidateVariableNames[16]=
"EvNumber";
2423 fCandidateVariableNames[17]=
"EleCharge";
2424 fCandidateVariableNames[18]=
"ElePdgCode";
2425 fCandidateVariableNames[19]=
"EleMotherPdgCode";
2426 fCandidateVariableNames[20]=
"mcelepx";
2427 fCandidateVariableNames[21]=
"mcelepy";
2428 fCandidateVariableNames[22]=
"mcelepz";
2429 fCandidateVariableNames[23]=
"Centrality";
2430 fCandidateVariableNames[24]=
"PrimVertZ";
2431 fCandidateVariableNames[25]=
"RunNumber";
2433 for (Int_t ivar=0; ivar<
nVar; ivar++) {
2451 Double_t d0z0[2],covd0z0[3];
2452 trk->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0,covd0z0);
2456 pv[0] =
fVtx1->GetX();
2457 pv[1] =
fVtx1->GetY();
2458 pv[2] =
fVtx1->GetZ();
2459 Double_t xyzR125[3] = {9999.,9999.,9999.};
2461 TVector *varvec =
new TVector(8);
2462 (*varvec)[0] = xyzR125[0];
2463 (*varvec)[1] = xyzR125[1];
2464 (*varvec)[2] = xyzR125[2];
2467 (*varvec)[5] = d0z0[0];
2468 (*varvec)[6] = convtype;
2469 (*varvec)[7] = mcetype;
2470 fElectronTracks->AddLast(
new TLorentzVector(trk->Px(),trk->Py(),trk->Pz(),trk->Charge()));
2475 Int_t pdgEle = -9999;
2476 Int_t pdgEleMother = -9999;
2477 Float_t mcepx = -9999;
2478 Float_t mcepy = -9999;
2479 Float_t mcepz = -9999;
2482 Int_t labEle = trk->GetLabel();
2483 if(labEle<0)
return;
2484 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
2486 pdgEle = mcetrk->GetPdgCode();
2487 mcepx = mcetrk->Px();
2488 mcepy = mcetrk->Py();
2489 mcepz = mcetrk->Pz();
2496 for(Int_t i=0;i<26;i++){
2507 if(trk->GetTPCNclsF()>0)
2512 Int_t itsmap = trk->GetITSClusterMap();
2515 Bool_t spdfirst = (itsmap & bit1) == bit1;
2516 Bool_t spdsecond = (itsmap & bit2) == bit2;
2554 const char* nameoutput = GetOutputSlot(6)->GetContainer()->GetName();
2558 TString * fCandidateVariableNames =
new TString[
nVar];
2560 fCandidateVariableNames[ 0]=
"Centrality";
2561 fCandidateVariableNames[ 1]=
"InvMassXi";
2562 fCandidateVariableNames[ 2]=
"XiPx";
2563 fCandidateVariableNames[ 3]=
"XiPy";
2564 fCandidateVariableNames[ 4]=
"XiPz";
2565 fCandidateVariableNames[ 5]=
"InvMassLambda";
2566 fCandidateVariableNames[ 6]=
"DcaXiDaughters";
2567 fCandidateVariableNames[ 7]=
"DcaV0Daughters";
2568 fCandidateVariableNames[ 8]=
"DecayLengthXi";
2569 fCandidateVariableNames[ 9]=
"CosPointingAngleXi";
2570 fCandidateVariableNames[10]=
"DcaV0toPrimVertex";
2571 fCandidateVariableNames[11]=
"DcaPostoPrimVertex";
2572 fCandidateVariableNames[12]=
"DcaNegtoPrimVertex";
2573 fCandidateVariableNames[13]=
"DcaBachtoPrimVertex";
2574 fCandidateVariableNames[14]=
"DecayLengthV0";
2575 fCandidateVariableNames[15]=
"CosPointingAngleV0";
2576 fCandidateVariableNames[16]=
"XiCharge";
2577 fCandidateVariableNames[17]=
"XiPdgCode";
2578 fCandidateVariableNames[18]=
"XiMotherPdgCode";
2579 fCandidateVariableNames[19]=
"mcxipx";
2580 fCandidateVariableNames[20]=
"mcxipy";
2581 fCandidateVariableNames[21]=
"mcxipz";
2582 fCandidateVariableNames[22]=
"labcasc";
2583 fCandidateVariableNames[23]=
"RunNumber";
2584 fCandidateVariableNames[24]=
"PrimVertZ";
2585 fCandidateVariableNames[25]=
"EvNumber";
2587 for (Int_t ivar=0; ivar<
nVar; ivar++) {
2601 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
2602 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
2603 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
2604 if(!cptrack)
return;
2605 if(!cntrack)
return;
2606 if(!cbtrack)
return;
2608 fHistoXiMassvsPt->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
2609 fHistoOmegaMassvsPt->Fill(casc->MassOmega(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
2610 Double_t momxix = casc->MomXiX();
2611 Double_t momxiy = casc->MomXiY();
2612 Double_t phi_alice = atan2(momxiy,momxix);
2613 if(phi_alice<0.) phi_alice += 2 * M_PI;
2614 fHistoXiQovPtvsPhi->Fill(phi_alice,(Double_t)casc->ChargeXi()/sqrt(momxix*momxix+momxiy*momxiy));
2616 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2617 Double_t posVtx[3] = {0.,0.,0.};
2618 fVtx1->GetXYZ(posVtx);
2619 Double_t ptotlam = TMath::Sqrt(pow(casc->Px(),2)+pow(casc->Py(),2)+pow(casc->Pz(),2));
2620 Double_t dl = sqrt(pow(casc->DecayVertexV0X()-posVtx[0],2)+pow(casc->DecayVertexV0Y()-posVtx[1],2)+pow(casc->DecayVertexV0Z()-posVtx[2],2));
2621 Double_t v0propdl = dl*mlamPDG/ptotlam;
2631 Int_t xipdgcode = -9999;
2632 Int_t ximotherpdgcode = -9999;
2633 Float_t mcxipx = -9999.;
2634 Float_t mcxipy = -9999.;
2635 Float_t mcxipz = -9999.;
2636 Int_t labcasc = -9999.;
2638 Int_t pdgDgcasc[2]={211,3122};
2639 Int_t pdgDgv0[2]={2212,211};
2641 if(labcasc<0)
return;
2643 fHistoXiMassvsPtMCS->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
2645 AliAODMCParticle *mccasctrk = (AliAODMCParticle*)mcArray->At(labcasc);
2646 if(!mccasctrk)
return;
2651 Bool_t hfxi_flag = kFALSE;
2652 xipdgcode = mccasctrk->GetPdgCode();
2653 Int_t labcascmother = mccasctrk->GetMother();
2654 if(labcascmother>=0){
2655 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
2657 ximotherpdgcode = mothercasc->GetPdgCode();
2658 if(abs(ximotherpdgcode)>4000&&abs(ximotherpdgcode)<4400){
2663 if(!hfxi_flag)
return;
2664 mcxipx = mccasctrk->Px();
2665 mcxipy = mccasctrk->Py();
2666 mcxipz = mccasctrk->Pz();
2670 Double_t xyz[3], pxpypz[3], cv[21]; Short_t sign;
2671 xyz[0]=casc->DecayVertexXiX();
2672 xyz[1]=casc->DecayVertexXiY();
2673 xyz[2]=casc->DecayVertexXiZ();
2674 pxpypz[0]=casc->MomXiX();
2675 pxpypz[1]=casc->MomXiY();
2676 pxpypz[2]=casc->MomXiZ();
2677 casc->GetCovarianceXYZPxPyPz(cv);
2678 sign=casc->ChargeXi();
2679 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
2680 trackCasc->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig);
2681 Double_t momcasc_new[3]={-9999,-9999,-9999.};
2682 trackCasc->GetPxPyPz(momcasc_new);
2685 TLorentzVector *lv =
new TLorentzVector();
2686 lv->SetXYZM(momcasc_new[0],momcasc_new[1],momcasc_new[2],casc->MassXi());
2687 Double_t xyzR125pr[3]={9999.,9999.,9999.};
2688 Double_t xyzR125pi[3]={9999.,9999.,9999.};
2689 Double_t xyzR125bach[3]={9999.,9999.,9999.};
2690 if(casc->ChargeXi()>0){
2697 TVector *varvec =
new TVector(9);
2698 (*varvec)[0] = xyzR125pr[0];
2699 (*varvec)[1] = xyzR125pr[1];
2700 (*varvec)[2] = xyzR125pr[2];
2701 (*varvec)[3] = xyzR125pi[0];
2702 (*varvec)[4] = xyzR125pi[1];
2703 (*varvec)[5] = xyzR125pi[2];
2704 (*varvec)[6] = xyzR125bach[0];
2705 (*varvec)[7] = xyzR125bach[1];
2706 (*varvec)[8] = xyzR125bach[2];
2715 TVector *varvec =
new TVector(9);
2716 (*varvec)[0] = xyzR125pr[0];
2717 (*varvec)[1] = xyzR125pr[1];
2718 (*varvec)[2] = xyzR125pr[2];
2719 (*varvec)[3] = xyzR125pi[0];
2720 (*varvec)[4] = xyzR125pi[1];
2721 (*varvec)[5] = xyzR125pi[2];
2722 (*varvec)[6] = xyzR125bach[0];
2723 (*varvec)[7] = xyzR125bach[1];
2724 (*varvec)[8] = xyzR125bach[2];
2731 for(Int_t i=0;i<26;i++){
2740 if(casc->ChargeXi()<0)
2776 const char* nameoutput = GetOutputSlot(7)->GetContainer()->GetName();
2780 TString * fCandidateVariableNames =
new TString[
nVar];
2782 fCandidateVariableNames[ 0]=
"Centrality";
2783 fCandidateVariableNames[ 1]=
"DecayType";
2784 fCandidateVariableNames[ 2]=
"XicPx";
2785 fCandidateVariableNames[ 3]=
"XicPy";
2786 fCandidateVariableNames[ 4]=
"XicPz";
2787 fCandidateVariableNames[ 5]=
"ElePx";
2788 fCandidateVariableNames[ 6]=
"ElePy";
2789 fCandidateVariableNames[ 7]=
"ElePz";
2790 fCandidateVariableNames[ 8]=
"CascPx";
2791 fCandidateVariableNames[ 9]=
"CascPy";
2792 fCandidateVariableNames[10]=
"CascPz";
2793 fCandidateVariableNames[11]=
"PdgCode";
2794 fCandidateVariableNames[12]=
"ElePdgCode";
2795 fCandidateVariableNames[13]=
"CascPdgCode";
2796 fCandidateVariableNames[14]=
"RunNumber";
2797 fCandidateVariableNames[15]=
"EvNumber";
2799 for (Int_t ivar=0; ivar<
nVar; ivar++) {
2811 if(!mcepart)
return;
2812 if(!mccascpart)
return;
2814 for(Int_t i=0;i<14;i++){
2835 Double_t epx = mcepart->Px();
2836 Double_t epy = mcepart->Py();
2837 Double_t epz = mcepart->Pz();
2838 Double_t eE = sqrt(epx*epx+epy*epy+epz*epz+0.000511*0.000511);
2839 Double_t cascpx = mccascpart->Px();
2840 Double_t cascpy = mccascpart->Py();
2841 Double_t cascpz = mccascpart->Pz();
2842 Double_t cascE = sqrt(cascpx*cascpx+cascpy*cascpy+cascpz*cascpz+1.32171*1.32171);
2844 Double_t InvMassEleXi = sqrt(pow(eE+cascE,2)-pow(epx+cascpx,2)-pow(epy+cascpy,2)-pow(epz+cascpz,2));
2847 cont[0] = InvMassEleXi;
2848 cont[1] = mcpart->Pt();
2852 cont2[0] = InvMassEleXi;
2853 cont2[1] = mcepart->Pt();
2855 Double_t cont_eleptvseta[3];
2856 cont_eleptvseta[0] = mcepart->Pt();
2857 cont_eleptvseta[1] = mcepart->Eta();
2859 Double_t cont_eleptvsxipt[3];
2860 cont_eleptvsxipt[0] = mcepart->Pt();
2861 cont_eleptvsxipt[1] = mccascpart->Pt();
2863 Double_t cont_eleptvsxiptvsxicpt[4];
2864 cont_eleptvsxiptvsxicpt[0] = mcepart->Pt();
2865 cont_eleptvsxiptvsxicpt[1] = mccascpart->Pt();
2866 cont_eleptvsxiptvsxicpt[2] = mcpart->Pt();
2870 contmc[0] = mcpart->Pt();
2871 contmc[1] = mcpart->Y();
2873 Double_t contmcele[3];
2874 contmcele[0] = mcepart->Pt();
2875 contmcele[1] = mcepart->Eta();
2881 esdcuts->GetEtaRange(etamin,etamax);
2891 if(fabs(mcepart->Eta())<etamax){
2895 if(InvMassEleXi<2.5){
2901 if(fabs(mcpart->Y())<0.7){
2902 if(InvMassEleXi<2.5){
2907 }
else if(decaytype==10){
2921 const char* nameoutput = GetOutputSlot(9)->GetContainer()->GetName();
2925 TString * fCandidateVariableNames =
new TString[
nVar];
2927 fCandidateVariableNames[ 0]=
"Centrality";
2928 fCandidateVariableNames[ 1]=
"ElePx";
2929 fCandidateVariableNames[ 2]=
"ElePy";
2930 fCandidateVariableNames[ 3]=
"ElePz";
2931 fCandidateVariableNames[ 4]=
"ElePdgCode";
2932 fCandidateVariableNames[ 5]=
"EleMotherPdgCode";
2933 fCandidateVariableNames[ 6]=
"RunNumber";
2934 fCandidateVariableNames[ 7]=
"EvNumber";
2936 for (Int_t ivar=0; ivar<
nVar; ivar++) {
2947 if(!mcepart)
return;
2949 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
2956 contmc[0] = mcepart->Pt();
2957 contmc[1] = mcepart->Eta();
2960 if(semi_flag==1 && !ele_from_bottom){
2963 if(semi_flag==1 && ele_from_bottom){
2971 Bool_t hfe_flag = kFALSE;
2972 Int_t labemother = mcepart->GetMother();
2973 Int_t pdgmotherele = -9999;
2975 AliAODMCParticle *motherele = (AliAODMCParticle*)mcArray->At(labemother);
2976 pdgmotherele = motherele->GetPdgCode();
2977 if(abs(pdgmotherele)>4000&&abs(pdgmotherele)<4400){
2981 if(!hfe_flag)
return;
2985 for(Int_t i=0;i<8;i++){
3009 const char* nameoutput = GetOutputSlot(10)->GetContainer()->GetName();
3013 TString * fCandidateVariableNames =
new TString[
nVar];
3015 fCandidateVariableNames[ 0]=
"Centrality";
3016 fCandidateVariableNames[ 1]=
"CascPx";
3017 fCandidateVariableNames[ 2]=
"CascPy";
3018 fCandidateVariableNames[ 3]=
"CascPz";
3019 fCandidateVariableNames[ 4]=
"CascPdgCode";
3020 fCandidateVariableNames[ 5]=
"CascMotherPdgCode";
3021 fCandidateVariableNames[ 6]=
"RunNumber";
3022 fCandidateVariableNames[ 7]=
"EvNumber";
3024 for (Int_t ivar=0; ivar<
nVar; ivar++) {
3035 if(!mccascpart)
return;
3037 for(Int_t i=0;i<8;i++){
3041 Bool_t hfxi_flag = kFALSE;
3042 Int_t labcascmother = mccascpart->GetMother();
3043 Int_t pdgmothercasc = -9999;
3044 if(labcascmother>=0){
3045 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
3047 pdgmothercasc = mothercasc->GetPdgCode();
3048 if(abs(pdgmothercasc)>4000&&abs(pdgmothercasc)<4400){
3053 if(!hfxi_flag)
return;
3056 contmc[0] = mccascpart->Pt();
3057 contmc[1] = mccascpart->Eta();
3081 fCEvents =
new TH1F(
"fCEvents",
"conter",18,-0.5,17.5);
3083 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3084 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3085 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3086 fCEvents->GetXaxis()->SetBinLabel(4,
"TriggerOK");
3087 fCEvents->GetXaxis()->SetBinLabel(5,
"IsEventSelected");
3088 fCEvents->GetXaxis()->SetBinLabel(6,
"CascadesHF exists");
3089 fCEvents->GetXaxis()->SetBinLabel(7,
"MCarray exists");
3090 fCEvents->GetXaxis()->SetBinLabel(8,
"MCheader exists");
3091 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3092 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3093 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3094 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3095 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3096 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3098 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3099 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3102 fCEvents->GetYaxis()->SetTitle(
"counts");
3104 fHTrigger =
new TH1F(
"fHTrigger",
"counter",18,-0.5,17.5);
3106 fHTrigger->GetXaxis()->SetBinLabel(1,
"X1");
3107 fHTrigger->GetXaxis()->SetBinLabel(2,
"kMB");
3108 fHTrigger->GetXaxis()->SetBinLabel(3,
"kSemiCentral");
3109 fHTrigger->GetXaxis()->SetBinLabel(4,
"kCentral");
3110 fHTrigger->GetXaxis()->SetBinLabel(5,
"kINT7");
3111 fHTrigger->GetXaxis()->SetBinLabel(6,
"kEMC7");
3113 fHTrigger->GetXaxis()->SetBinLabel(8,
"kMB|kSemiCentral|kCentral");
3114 fHTrigger->GetXaxis()->SetBinLabel(9,
"kINT7|kEMC7");
3115 fHTrigger->GetXaxis()->SetBinLabel(11,
"kMB&kSemiCentral");
3116 fHTrigger->GetXaxis()->SetBinLabel(12,
"kMB&kCentral");
3117 fHTrigger->GetXaxis()->SetBinLabel(13,
"kINT7&kEMC7");
3119 fHCentrality =
new TH1F(
"fHCentrality",
"conter",100,0.,100.);
3138 Int_t bins_base[4]= {22 ,100 , 100 ,10};
3139 Double_t xmin_base[4]={1.3,0 , -0.5 ,0.00};
3140 Double_t xmax_base[4]={5.7,20. , 0.5 ,100};
3142 fHistoEleXiMass =
new THnSparseF(
"fHistoEleXiMass",
"",4,bins_base,xmin_base,xmax_base);
3144 fHistoEleXiMassRS =
new THnSparseF(
"fHistoEleXiMassRS",
"",4,bins_base,xmin_base,xmax_base);
3146 fHistoEleXiMassWS =
new THnSparseF(
"fHistoEleXiMassWS",
"",4,bins_base,xmin_base,xmax_base);
3148 fHistoEleXiMassRSMix =
new THnSparseF(
"fHistoEleXiMassRSMix",
"",4,bins_base,xmin_base,xmax_base);
3150 fHistoEleXiMassWSMix =
new THnSparseF(
"fHistoEleXiMassWSMix",
"",4,bins_base,xmin_base,xmax_base);
3156 fHistoEleXiMassRS1 =
new THnSparseF(
"fHistoEleXiMassRS1",
"",4,bins_base,xmin_base,xmax_base);
3158 fHistoEleXiMassWS1 =
new THnSparseF(
"fHistoEleXiMassWS1",
"",4,bins_base,xmin_base,xmax_base);
3168 fHistoEleXiMassRS2 =
new THnSparseF(
"fHistoEleXiMassRS2",
"",4,bins_base,xmin_base,xmax_base);
3170 fHistoEleXiMassWS2 =
new THnSparseF(
"fHistoEleXiMassWS2",
"",4,bins_base,xmin_base,xmax_base);
3218 Int_t bins_base_elept[3]= {10 ,100 ,10};
3219 Double_t xmin_base_elept[3]={1.3,0 ,0.00};
3220 Double_t xmax_base_elept[3]={3.3,10. ,100};
3222 fHistoEleXiMassvsElePtRS =
new THnSparseF(
"fHistoEleXiMassvsElePtRS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3224 fHistoEleXiMassvsElePtWS =
new THnSparseF(
"fHistoEleXiMassvsElePtWS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3234 fHistoEleXiMassvsElePtRS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3236 fHistoEleXiMassvsElePtWS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3246 fHistoEleXiMassvsElePtRS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3248 fHistoEleXiMassvsElePtWS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3259 fHistoElePtRS=
new TH2F(
"fHistoElePtRS",
"Right-sign e pt",100,0.,10.,10,0.,100.);
3261 fHistoElePtWS=
new TH2F(
"fHistoElePtWS",
"Wrong-sign e pt",100,0.,10.,10,0.,100.);
3263 fHistoElePtRSMix=
new TH2F(
"fHistoElePtRSMix",
"Right-sign e pt",100,0.,10.,10,0.,100.);
3265 fHistoElePtWSMix=
new TH2F(
"fHistoElePtWSMix",
"Wrong-sign e pt",100,0.,10.,10,0.,100.);
3268 fHistoEleXiMassMCS =
new THnSparseF(
"fHistoEleXiMassMCS",
"",4,bins_base,xmin_base,xmax_base);
3270 fHistoEleXiMassMCS1 =
new THnSparseF(
"fHistoEleXiMassMCS1",
"",4,bins_base,xmin_base,xmax_base);
3272 fHistoEleXiMassMCS2 =
new THnSparseF(
"fHistoEleXiMassMCS2",
"",4,bins_base,xmin_base,xmax_base);
3292 fHistoEleXiMassMCGen =
new THnSparseF(
"fHistoEleXiMassMCGen",
"",4,bins_base,xmin_base,xmax_base);
3294 fHistoEleXiMassvsElePtMCS =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3298 fHistoEleXiMassvsElePtMCS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3302 fHistoEleXiMassvsElePtMCS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3306 fHistoElePtMCS=
new TH2F(
"fHistoElePtMCS",
"MC S e pt",100,0.,10.,10,0.,100.);
3308 fHistoElePtMCGen=
new TH2F(
"fHistoElePtMCGen",
"MC Gen e pt",100,0.,10.,10,0.,100.);
3311 Int_t bins_eleptvseta[3]= {50,20 ,10};
3312 Double_t xmin_eleptvseta[3]={0.,-1. ,0.0};
3313 Double_t xmax_eleptvseta[3]={5.,1. ,100};
3315 fHistoElePtvsEtaRS =
new THnSparseF(
"fHistoElePtvsEtaRS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3317 fHistoElePtvsEtaWS =
new THnSparseF(
"fHistoElePtvsEtaWS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3319 fHistoElePtvsEtaRSMix =
new THnSparseF(
"fHistoElePtvsEtaRSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3321 fHistoElePtvsEtaWSMix =
new THnSparseF(
"fHistoElePtvsEtaWSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3323 fHistoElePtvsEtaMCS =
new THnSparseF(
"fHistoElePtvsEtaMCS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3325 fHistoElePtvsEtaMCGen =
new THnSparseF(
"fHistoElePtvsEtaMCGen",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3328 Int_t bins_eleptvsxipt[3]= {50,20 ,10};
3329 Double_t xmin_eleptvsxipt[3]={0.,0. ,0.0};
3330 Double_t xmax_eleptvsxipt[3]={5.,5. ,100};
3332 fHistoElePtvsXiPtRS =
new THnSparseF(
"fHistoElePtvsXiPtRS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3334 fHistoElePtvsXiPtWS =
new THnSparseF(
"fHistoElePtvsXiPtWS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3336 fHistoElePtvsXiPtRSMix =
new THnSparseF(
"fHistoElePtvsXiPtRSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3338 fHistoElePtvsXiPtWSMix =
new THnSparseF(
"fHistoElePtvsXiPtWSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3340 fHistoElePtvsXiPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtMCS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3342 fHistoElePtvsXiPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtMCGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3344 fHistoElePtvsXiPtMCXicGen =
new THnSparseF(
"fHistoElePtvsXiPtMCXicGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3347 Int_t bins_eleptvsxiptvsxicpt[4]= {50,20,10,10};
3348 Double_t xmin_eleptvsxiptvsxicpt[4]={0.,0.,0.,0.0};
3349 Double_t xmax_eleptvsxiptvsxicpt[4]={5.,5.,10.,100};
3350 fHistoElePtvsXiPtvsXicPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCS",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3352 fHistoElePtvsXiPtvsXicPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCGen",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3355 Int_t bins_eleptvsd0[3]= {50 ,50 ,10};
3356 Double_t xmin_eleptvsd0[3]={0.,-0.2 ,0.0};
3357 Double_t xmax_eleptvsd0[3]={5.,0.2 ,100};
3359 fHistoElePtvsd0RS =
new THnSparseF(
"fHistoElePtvsd0RS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3361 fHistoElePtvsd0WS =
new THnSparseF(
"fHistoElePtvsd0WS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3363 fHistoElePtvsd0RSMix =
new THnSparseF(
"fHistoElePtvsd0RSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3365 fHistoElePtvsd0WSMix =
new THnSparseF(
"fHistoElePtvsd0WSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3367 fHistoElePtvsd0MCS =
new THnSparseF(
"fHistoElePtvsd0MCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3369 fHistoElePtvsd0PromptMCS =
new THnSparseF(
"fHistoElePtvsd0PromptMCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3377 fHistoBachPt =
new TH1F(
"fHistoBachPt",
"Bachelor p_{T}",100,0.0,5.0);
3379 fHistoBachPtMCS =
new TH1F(
"fHistoBachPtMCS",
"Bachelor p_{T}",100,0.0,5.0);
3383 fHistod0Bach =
new TH1F(
"fHistod0Bach",
"Bachelor d_{0}",100,-0.5,0.5);
3385 fHistoXiMassvsPt=
new TH2F(
"fHistoXiMassvsPt",
"Xi mass",100,1.32-0.05,1.32+0.05,20,0.,10.);
3387 fHistoXiMassvsPtMCS=
new TH2F(
"fHistoXiMassvsPtMCS",
"Xi mass",100,1.32-0.05,1.32+0.05,20,0.,10.);
3389 fHistoXiMassvsPtMCGen=
new TH2F(
"fHistoXiMassvsPtMCGen",
"Xi mass",100,1.32-0.05,1.32+0.05,20,0.,10.);
3391 fHistoOmegaMassvsPt=
new TH2F(
"fHistoOmegaMassvsPt",
"Omega mass",100,1.67-0.05,1.67+0.05,20,0.,10.);
3415 for(Int_t i=0;i<8;i++){
3425 Int_t bins_xicmcgen[3]= {100 ,20 ,10};
3426 Double_t xmin_xicmcgen[3]={0.,-1.0 ,0.0};
3427 Double_t xmax_xicmcgen[3]={20.,1.0 ,100};
3428 fHistoXicMCGen =
new THnSparseF(
"fHistoXicMCGen",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3430 fHistoXicMCGen1 =
new THnSparseF(
"fHistoXicMCGen1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3432 fHistoXicMCGen2 =
new THnSparseF(
"fHistoXicMCGen2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3434 fHistoXicMCS =
new THnSparseF(
"fHistoXicMCS",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3436 fHistoXicMCS1 =
new THnSparseF(
"fHistoXicMCS1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3438 fHistoXicMCS2 =
new THnSparseF(
"fHistoXicMCS2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3441 Int_t bins_xibmcgen[3]= {100 ,20 ,10};
3442 Double_t xmin_xibmcgen[3]={0.,-1.0 ,0.0};
3443 Double_t xmax_xibmcgen[3]={50.,1.0 ,100};
3444 fHistoXibMCGen =
new THnSparseF(
"fHistoXibMCGen",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3446 fHistoXibMCS =
new THnSparseF(
"fHistoXibMCS",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3449 Int_t bins_xibmcgen_withxic[3]= {50 ,100 ,100};
3450 Double_t xmin_xibmcgen_withxic[3]={0.,-5.,-5.};
3451 Double_t xmax_xibmcgen_withxic[3]={50.,5.,5.};
3452 fHistoXibMCGenWithXic =
new THnSparseF(
"fHistoXibMCGenWithXic",
"",3,bins_xibmcgen_withxic,xmin_xibmcgen_withxic,xmax_xibmcgen_withxic);
3455 Int_t bins_elemcgen[3]= {100 ,20 ,10};
3456 Double_t xmin_elemcgen[3]={0.,-1.0 ,0.0};
3457 Double_t xmax_elemcgen[3]={10.,1.0 ,100};
3458 fHistoElectronMCGen =
new THnSparseF(
"fHistoElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3462 fHistoCharmElectronMCGen =
new THnSparseF(
"fHistoCharmElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3464 fHistoXicElectronMCGen =
new THnSparseF(
"fHistoXicElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3466 fHistoXicElectronMCGen1 =
new THnSparseF(
"fHistoXicElectronMCGen1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3468 fHistoXicElectronMCGen2 =
new THnSparseF(
"fHistoXicElectronMCGen2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3470 fHistoXicElectronMCS =
new THnSparseF(
"fHistoXicElectronMCS",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3472 fHistoXicElectronMCS1 =
new THnSparseF(
"fHistoXicElectronMCS1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3474 fHistoXicElectronMCS2 =
new THnSparseF(
"fHistoXicElectronMCS2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3477 Int_t bins_ximcgen[3]= {50 ,20 ,10};
3478 Double_t xmin_ximcgen[3]={0.,-1.0 ,0.0};
3479 Double_t xmax_ximcgen[3]={10.,1.0 ,100};
3480 fHistoXiMCGen =
new THnSparseF(
"fHistoXiMCGen",
"",3,bins_ximcgen,xmin_ximcgen,xmax_ximcgen);
3483 fHistoLambdaPtvsDl=
new TH2F(
"fHistoLambdaPtvsDl",
"Lambda pt vs dl",20,0.,10.,20,0.,40.);
3489 fHistoLambdaPtvsDR=
new TH2F(
"fHistoLambdaPtvsDR",
"Lambda pt vs dl",20,0.,10.,80,0.,160.);
3559 for(Int_t ih=0;ih<23;ih++){
3560 Int_t bins_eleptvscutvars[3];
3561 Double_t xmin_eleptvscutvars[3];
3562 Double_t xmax_eleptvscutvars[3];
3564 bins_eleptvscutvars[0] = 20;
3565 xmin_eleptvscutvars[0] = 0.;
3566 xmax_eleptvscutvars[0] = 20.;
3567 bins_eleptvscutvars[2] = 10;
3568 xmin_eleptvscutvars[2] = 0.;
3569 xmax_eleptvscutvars[2] = 100.;
3573 bins_eleptvscutvars[1] = 40;
3574 xmin_eleptvscutvars[1] = 0.;
3575 xmax_eleptvscutvars[1] = 160.;
3576 }
else if(ih==2 || ih==3){
3578 bins_eleptvscutvars[1] = 20;
3579 xmin_eleptvscutvars[1] = -5.;
3580 xmax_eleptvscutvars[1] = 5.;
3583 bins_eleptvscutvars[1] = 30;
3584 xmin_eleptvscutvars[1] = -1.5;
3585 xmax_eleptvscutvars[1] = 1.5;
3588 bins_eleptvscutvars[1] = 7;
3589 xmin_eleptvscutvars[1] = -0.5;
3590 xmax_eleptvscutvars[1] = 6.5;
3593 bins_eleptvscutvars[1] = 50;
3594 xmin_eleptvscutvars[1] = 1.1156-0.03;
3595 xmax_eleptvscutvars[1] = 1.1156+0.03;
3598 bins_eleptvscutvars[1] = 50;
3599 xmin_eleptvscutvars[1] = 1.32-0.03;
3600 xmax_eleptvscutvars[1] = 1.32+0.03;
3601 }
else if(ih==8 || ih==9){
3603 bins_eleptvscutvars[1] = 20;
3604 xmin_eleptvscutvars[1] = 0.;
3605 xmax_eleptvscutvars[1] = 5.;
3606 }
else if(ih==10 || ih==11){
3608 bins_eleptvscutvars[1] = 20;
3609 xmin_eleptvscutvars[1] = 0.;
3610 xmax_eleptvscutvars[1] = 2.;
3611 }
else if(ih==12 || ih==13 || ih==14){
3613 bins_eleptvscutvars[1] = 20;
3614 xmin_eleptvscutvars[1] = 0.;
3615 xmax_eleptvscutvars[1] = 0.5;
3616 }
else if(ih==15 || ih==16){
3618 bins_eleptvscutvars[1] = 20;
3619 xmin_eleptvscutvars[1] = 0.95;
3620 xmax_eleptvscutvars[1] = 1.0;
3621 }
else if(ih==17 || ih==18 || ih==19){
3623 bins_eleptvscutvars[1] = 20;
3624 xmin_eleptvscutvars[1] = -5.;
3625 xmax_eleptvscutvars[1] = 5.;
3626 }
else if(ih==20 || ih==21){
3628 bins_eleptvscutvars[1] = 30;
3629 xmin_eleptvscutvars[1] = -1.5;
3630 xmax_eleptvscutvars[1] = 1.5;
3633 bins_eleptvscutvars[1] = 20;
3634 xmin_eleptvscutvars[1] = 0.;
3635 xmax_eleptvscutvars[1] = 3.141592/2;
3638 fHistoElePtvsCutVarsRS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsRS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
3640 fHistoElePtvsCutVarsWS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsWS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
3642 fHistoElePtvsCutVarsMCS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsMCS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
3646 Int_t bins_eletag[3]= {20 ,40 ,10};
3647 Double_t xmin_eletag[3]={0.,0. ,0.0};
3648 Double_t xmax_eletag[3]={10.,20 ,100};
3649 fHistoElectronPi0Total =
new THnSparseF(
"fHistoElectronPi0Total",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
3651 fHistoElectronPi0Tag =
new THnSparseF(
"fHistoElectronPi0Tag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
3653 fHistoElectronEtaTotal =
new THnSparseF(
"fHistoElectronEtaTotal",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
3655 fHistoElectronEtaTag =
new THnSparseF(
"fHistoElectronEtaTag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
3670 Int_t bins_cor_nd[7]= {100 , 20, 20, 4, 3, 10, 10};
3671 Double_t xmin_cor_nd[7]={0.,-M_PI,0.,-0.5,-0.5,-0.5,0.};
3672 Double_t xmax_cor_nd[7]={20.,M_PI,40.,3.5,2.5,9.5,100.};
3673 Double_t xmax_cor_nd2[7]={10.,M_PI,40.,3.5,2.5,9.5,100.};
3704 if(!casc)
return 0x0;
3705 if(!part)
return 0x0;
3706 if(!aod)
return 0x0;
3711 AliAODVertex *primVertexAOD;
3712 Bool_t unsetvtx = kFALSE;
3716 primVertexAOD =
fVtx1;
3721 primVertexAOD =
fVtx1;
3723 if(!primVertexAOD)
return 0x0;
3724 Double_t posprim[3]; primVertexAOD->GetXYZ(posprim);
3729 AliESDtrack *esdtrack =
new AliESDtrack((AliVTrack*)partpid);
3731 Double_t xyz[3], pxpypz[3], cv[21]; Short_t sign;
3732 xyz[0]=casc->DecayVertexXiX();
3733 xyz[1]=casc->DecayVertexXiY();
3734 xyz[2]=casc->DecayVertexXiZ();
3735 pxpypz[0]=casc->MomXiX();
3736 pxpypz[1]=casc->MomXiY();
3737 pxpypz[2]=casc->MomXiZ();
3738 casc->GetCovarianceXYZPxPyPz(cv);
3739 sign=casc->ChargeXi();
3740 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3742 Double_t xdummy, ydummy;
3743 Double_t dca = esdtrack->GetDCA(trackCasc,
fBzkG,xdummy,ydummy);
3750 Double_t d0z0bach[2],covd0z0bach[3];
3751 if(sqrt(pow(secVert->GetX(),2)+pow(secVert->GetY(),2))<1.){
3752 part->PropagateToDCA(secVert,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
3753 trackCasc->PropagateToDCA(secVert,
fBzkG,kVeryBig);
3755 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
3756 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig);
3758 Double_t momcasc_new[3]={-9999,-9999,-9999.};
3759 trackCasc->GetPxPyPz(momcasc_new);
3761 Double_t px[2],py[2],pz[2];
3762 px[0] = part->Px(); py[0] = part->Py(); pz[0] = part->Pz();
3763 px[1] = momcasc_new[0]; py[1] = momcasc_new[1]; pz[1] = momcasc_new[2];
3768 Double_t d0[3],d0err[3];
3770 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
3772 d0err[0] = TMath::Sqrt(covd0z0bach[0]);
3774 Double_t d0z0casc[2],covd0z0casc[3];
3775 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0casc,covd0z0casc);
3777 d0err[1] = TMath::Sqrt(covd0z0casc[0]);
3782 Short_t
charge = part->Charge();
3786 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
3787 if(esdtrack)
delete esdtrack;
3788 if(trackCasc)
delete trackCasc;
3792 UShort_t
id[2]={(UShort_t)part->GetID(),(UShort_t)trackCasc->GetID()};
3795 theCascade->GetSecondaryVtx()->AddDaughter(part);
3796 theCascade->GetSecondaryVtx()->AddDaughter(casc);
3797 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
3798 if(esdtrack)
delete esdtrack;
3799 if(trackCasc)
delete trackCasc;
3812 TObjArray *TrackArray =
new TObjArray(3);
3814 AliESDtrack *cptrk1 =
new AliESDtrack((AliVTrack*)trk);
3815 TrackArray->AddAt(cptrk1,0);
3817 AliESDtrack *cascptrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(0));
3818 TrackArray->AddAt(cascptrack,1);
3819 AliESDtrack *cascntrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(1));
3820 TrackArray->AddAt(cascntrack,2);
3821 AliESDtrack *cascbtrack =
new AliESDtrack((AliVTrack*)casc->GetDecayVertexXi()->GetDaughter(0));
3822 TrackArray->AddAt(cascbtrack,3);
3826 for(Int_t i=0;i<4;i++)
3828 AliESDtrack *tesd = (AliESDtrack*)TrackArray->UncheckedAt(i);
3831 TrackArray->Clear();
3846 Bool_t fRecoPrimVtxSkippingTrks = kTRUE;
3847 Bool_t fRmTrksFromPrimVtx = kFALSE;
3849 AliESDVertex *vertexESD = 0;
3850 AliAODVertex *vertexAOD = 0;
3855 if(!fRecoPrimVtxSkippingTrks && !fRmTrksFromPrimVtx) {
3858 vertexESD =
new AliESDVertex(*
fV1);
3863 Int_t nTrks = trkArray->GetEntriesFast();
3864 AliVertexerTracks *vertexer =
new AliVertexerTracks(event->GetMagneticField());
3866 if(fRecoPrimVtxSkippingTrks) {
3869 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraint")) {
3870 Float_t diamondcovxy[3];
3871 event->GetDiamondCovXY(diamondcovxy);
3872 Double_t pos[3]={
event->GetDiamondX(),
event->GetDiamondY(),0.};
3873 Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
3874 AliESDVertex *diamond =
new AliESDVertex(pos,cov,1.,1);
3875 vertexer->SetVtxStart(diamond);
3876 delete diamond; diamond=NULL;
3877 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraintOnlyFitter"))
3878 vertexer->SetOnlyFitter();
3880 Int_t skipped[1000];
3881 Int_t nTrksToSkip=0,id;
3882 AliExternalTrackParam *t = 0;
3883 for(Int_t i=0; i<nTrks; i++) {
3884 t = (AliExternalTrackParam*)trkArray->UncheckedAt(i);
3885 id = (Int_t)t->GetID();
3887 skipped[nTrksToSkip++] = id;
3891 Double_t covtest[21];
3892 for(Int_t j=0; j<
event->GetNumberOfTracks(); j++) {
3893 AliVTrack *vtrack = (AliVTrack*)event->GetTrack(j);
3894 if(!vtrack->GetCovarianceXYZPxPyPz(covtest)) {
3895 id = (Int_t)vtrack->GetID();
3897 skipped[nTrksToSkip++] = id;
3900 for(Int_t ijk=nTrksToSkip; ijk<1000; ijk++) skipped[ijk]=-1;
3902 vertexer->SetSkipTracks(nTrksToSkip,skipped);
3903 vertexESD = (AliESDVertex*)vertexer->FindPrimaryVertex(event);
3905 }
else if(fRmTrksFromPrimVtx && nTrks>0) {
3908 TObjArray rmArray(nTrks);
3909 UShort_t *rmId =
new UShort_t[nTrks];
3910 AliESDtrack *esdTrack = 0;
3912 for(Int_t i=0; i<nTrks; i++) {
3913 t = (AliESDtrack*)trkArray->UncheckedAt(i);
3914 esdTrack =
new AliESDtrack(*t);
3915 rmArray.AddLast(esdTrack);
3916 if(esdTrack->GetID()>=0) {
3917 rmId[i]=(UShort_t)esdTrack->GetID();
3922 Float_t diamondxy[2]={
static_cast<Float_t
>(
event->GetDiamondX()),static_cast<Float_t>(event->GetDiamondY())};
3923 vertexESD = vertexer->RemoveTracksFromVertex(
fV1,&rmArray,rmId,diamondxy);
3924 delete [] rmId; rmId=NULL;
3929 delete vertexer; vertexer=NULL;
3930 if(!vertexESD)
return vertexAOD;
3931 if(vertexESD->GetNContributors()<=0) {
3933 delete vertexESD; vertexESD=NULL;
3941 Double_t pos[3],cov[6],chi2perNDF;
3942 vertexESD->GetXYZ(pos);
3943 vertexESD->GetCovMatrix(cov);
3944 chi2perNDF = vertexESD->GetChi2toNDF();
3945 delete vertexESD; vertexESD=NULL;
3947 vertexAOD =
new AliAODVertex(pos,cov,chi2perNDF);
3959 AliAODVertex *primVertexAOD;
3960 Bool_t unsetvtx = kFALSE;
3964 primVertexAOD =
fVtx1;
3969 primVertexAOD =
fVtx1;
3971 if(!primVertexAOD)
return 0x0;
3973 AliESDVertex * vertexESD =
new AliESDVertex(*
fV1);
3975 Double_t pos[3],cov[6],chi2perNDF;
3976 vertexESD->GetXYZ(pos);
3977 vertexESD->GetCovMatrix(cov);
3978 chi2perNDF = vertexESD->GetChi2toNDF();
3979 delete vertexESD; vertexESD=NULL;
3981 AliAODVertex *secVert =
new AliAODVertex(pos,cov,chi2perNDF);
3991 for(Int_t i=0;i<100;i++){
3992 pdgarray_ele[i] = -9999;
3993 labelarray_ele[i] = -9999;
3994 pdgarray_casc[i] = -9999;
3995 labelarray_casc[i] = -9999;
4000 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(exobj->
GetBachelor());
4002 Int_t labEle = trk->GetLabel();
4003 if(labEle<0)
return -1;
4004 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
4005 if(!mcetrk)
return -1;
4006 labelarray_ele[0] = labEle;
4007 pdgarray_ele[0] = mcetrk->GetPdgCode();
4010 AliAODMCParticle *mcprimele=0;
4012 while(mcprimele->GetMother()>=0) {
4013 Int_t labprim_ele=mcprimele->GetMother();
4014 AliAODMCParticle *tmcprimele = (AliAODMCParticle*)mcArray->At(labprim_ele);
4019 mcprimele = tmcprimele;
4020 pdgarray_ele[ngen_ele] = mcprimele->GetPdgCode();
4021 labelarray_ele[ngen_ele] = labprim_ele;
4023 if(ngen_ele==100)
break;
4026 AliAODcascade *theCascade =
dynamic_cast<AliAODcascade*
>(exobj->
GetCascade());
4027 if(!theCascade)
return -1;
4029 Int_t pdgDgcasc[2]={211,3122};
4030 Int_t pdgDgv0[2]={2212,211};
4031 Int_t labcasc =
MatchToMCCascade(theCascade,3312,pdgDgcasc,pdgDgv0,mcArray);
4032 if(labcasc<0)
return -1;
4034 AliAODMCParticle *mccasc = (AliAODMCParticle*)mcArray->At(labcasc);
4035 if(!mccasc)
return -1;
4036 labelarray_casc[0] = labcasc;
4037 pdgarray_casc[0] = mccasc->GetPdgCode();
4040 AliAODMCParticle *mcprimcasc=0;
4041 mcprimcasc = mccasc;
4042 while(mcprimcasc->GetMother()>=0) {
4043 Int_t labprim_casc=mcprimcasc->GetMother();
4044 AliAODMCParticle *tmcprimcasc = (AliAODMCParticle*)mcArray->At(labprim_casc);
4049 mcprimcasc = tmcprimcasc;
4050 pdgarray_casc[ngen_casc] = mcprimcasc->GetPdgCode();
4051 labelarray_casc[ngen_casc] = labprim_casc;
4053 if(ngen_casc==100)
break;
4056 Bool_t same_flag = kFALSE;
4057 Int_t matchedlabel=-9999;
4058 for(Int_t iemc=0;iemc<ngen_ele;iemc++){
4059 for(Int_t ivmc=0;ivmc<ngen_casc;ivmc++){
4060 if(labelarray_ele[iemc]==labelarray_casc[ivmc]){
4062 matchedlabel = labelarray_ele[iemc];
4066 if(same_flag)
break;
4069 return matchedlabel;
4079 AliAODTrack *cptrack = (AliAODTrack*) theCascade->GetDaughter(0);
4080 if(!cptrack)
return -1;
4081 Int_t label_p = TMath::Abs(cptrack->GetLabel());
4082 if(label_p<0)
return -1;
4083 AliAODTrack *cntrack = (AliAODTrack*) theCascade->GetDaughter(1);
4084 if(!cntrack)
return -1;
4085 Int_t label_n = TMath::Abs(cntrack->GetLabel());
4086 if(label_n<0)
return -1;
4087 Int_t labv0 = theCascade->MatchToMC(pdgDgcasc[1],mcArray,2,pdgDgv0);
4088 if(labv0<0)
return -1;
4089 AliAODMCParticle *mcpartv0= (AliAODMCParticle*) mcArray->At(labv0);
4091 AliAODTrack *cbtrack = (AliAODTrack*) theCascade->GetDecayVertexXi()->GetDaughter(0);
4092 if(!cbtrack)
return -1;
4094 Int_t label_b = TMath::Abs(cbtrack->GetLabel());
4095 if(label_b<0)
return -1;
4097 AliAODMCParticle *mcpartb= (AliAODMCParticle*) mcArray->At(label_b);
4098 Int_t pdgb = TMath::Abs(mcpartb->GetPdgCode());
4099 if(pdgb!=pdgDgcasc[0])
return -1;
4101 AliAODMCParticle *mcmotherv0=mcpartv0;
4102 Bool_t isFromXiv0 = kFALSE;
4103 Int_t labxiv0 = mcmotherv0->GetMother();
4104 if(labxiv0<0)
return -1;
4105 mcmotherv0 = (AliAODMCParticle*) mcArray->At(labxiv0);
4107 Int_t
pdg = TMath::Abs(mcmotherv0 ->GetPdgCode());
4108 if(pdg==pdgabscasc){
4112 if(!isFromXiv0)
return -1;
4114 AliAODMCParticle *mcmotherb=mcpartb;
4115 Bool_t isFromXib = kFALSE;
4116 Int_t labxib = mcmotherb->GetMother();
4117 if(labxib<0)
return -1;
4118 mcmotherb = (AliAODMCParticle*) mcArray->At(labxib);
4120 Int_t
pdg = TMath::Abs(mcmotherb ->GetPdgCode());
4121 if(pdg==pdgabscasc){
4125 if(!isFromXib)
return -1;
4127 if(labxiv0!=labxib)
return -1;
4139 if(trkEntries==0)
return;
4142 for(Int_t i=0; i<trkEntries; i++) {
4143 seleFlags[i] = kFALSE;
4146 track = (AliVTrack*)event->GetTrack(i);
4149 Double_t covtest[21];
4150 if(!track->GetCovarianceXYZPxPyPz(covtest))
continue;
4154 AliAODTrack *aodt = (AliAODTrack*)track;
4159 if(!aodt->TestFilterBit(BIT(filterbit)))
continue;
4161 if(!aodt->TestFilterMask(BIT(filterbit)))
continue;
4165 AliAODTrack *aodtpid = 0;
4167 aodtpid =
fGTI[-aodt->GetID()-1];
4172 Double_t nsigma_tpcele = -9999;
4173 Double_t nsigma_tofele = -9999;
4182 if(fabs(nsigma_tofele)<3.){
4184 Double_t eleeta = aodt->Eta();
4185 if(fabs(eleeta)<0.6)
4187 if(fabs(eleeta)>0.6 && fabs(eleeta)<0.8)
4189 if(eleeta>-0.8 && eleeta<-0.6){
4191 }
else if(eleeta>-0.6&&eleeta<-0.4){
4193 }
else if(eleeta>-0.4&&eleeta<-0.2){
4195 }
else if(eleeta>-0.2&&eleeta<0.0){
4197 }
else if(eleeta>0.0&&eleeta<0.2){
4199 }
else if(eleeta>0.2&&eleeta<0.4){
4201 }
else if(eleeta>0.4&&eleeta<0.6){
4203 }
else if(eleeta>0.6&&eleeta<0.8){
4207 if(nsigma_tpcele>-0.5&&nsigma_tpcele<3.){
4217 Double_t minmass_ee = 9999.;
4218 Double_t minmasslike_ee = 9999.;
4221 Int_t mcetype = -9999;
4225 Int_t labEle = aodt->GetLabel();
4227 seleFlags[i]=kFALSE;
4230 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
4232 seleFlags[i]=kFALSE;
4235 Int_t pdgEle = mcetrk->GetPdgCode();
4236 if(abs(pdgEle)!=11){
4237 seleFlags[i]=kFALSE;
4241 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
4245 Bool_t gamma_flag = kFALSE;
4246 Bool_t pi0_flag = kFALSE;
4247 Bool_t eta_flag = kFALSE;
4248 Double_t pt_pi0 = -9999.;
4249 Double_t pt_eta = -9999.;
4250 if(abs(pdgarray_ele[0])>400&&abs(pdgarray_ele[0])<440){
4253 if(abs(pdgarray_ele[0])>4000&&abs(pdgarray_ele[0])<4400){
4256 if(abs(pdgarray_ele[0])>500&&abs(pdgarray_ele[0])<540){
4259 if(abs(pdgarray_ele[0])>5000&&abs(pdgarray_ele[0])<5400){
4262 if(abs(pdgarray_ele[0])==22){
4268 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==111)){
4270 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
4271 pt_pi0 = mctrkm->Pt();
4273 if(abs(pdgarray_ele[0])==111){
4275 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
4276 pt_pi0 = mctrkm->Pt();
4278 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==221)){
4280 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
4281 pt_eta = mctrkm->Pt();
4283 if(abs(pdgarray_ele[0])==221){
4285 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
4286 pt_eta = mctrkm->Pt();
4290 Double_t cont_pi0[3];
4291 cont_pi0[0] = aodt->Pt();
4292 cont_pi0[1] = pt_pi0;
4299 Double_t cont_eta[3];
4300 cont_eta[0] = aodt->Pt();
4301 cont_eta[1] = pt_eta;
4308 seleFlags[i]=kFALSE;
4328 FillElectronROOTObjects(aodt,aodtpid,(Int_t)isconv + 2 * (Int_t)isconv_like,mcetype,(AliAODEvent*)event,mcArray);
4354 Double_t primVtx[3];
4355 fVtx1->GetXYZ(primVtx);
4358 for(Int_t icasc=0;icasc<nCascs;icasc++)
4360 seleCascFlags[icasc] = kFALSE;
4361 AliAODcascade *casc = ((AliAODEvent*)event)->GetCascade(icasc);
4365 seleCascFlags[icasc] = kTRUE;
4379 if(theBinZ<0 || theBinZ>=
fNzVtxBins)
return -1;
4381 if(theBinM<0 || theBinM>=
fNCentBins)
return -1;
4389 if(poolIndex<0 || poolIndex>=
fNOfPools)
return;
4391 fEventBuffer[poolIndex]=
new TTree(Form(
"EventBuffer_%d",poolIndex),
"Temporary buffer for event mixing");
4416 TObjArray* c1array=0x0;
4417 TObjArray* c2array=0x0;
4418 TObjArray* c1varsarray=0x0;
4419 TObjArray* c2varsarray=0x0;
4420 Float_t zVertex,cent;
4421 TObjString* eventInfo=0x0;
4422 fEventBuffer[poolIndex]->SetBranchAddress(
"zVertex", &zVertex);
4423 fEventBuffer[poolIndex]->SetBranchAddress(
"eventInfo",&eventInfo);
4424 fEventBuffer[poolIndex]->SetBranchAddress(
"centrality", ¢);
4425 fEventBuffer[poolIndex]->SetBranchAddress(
"c1array", &c1array);
4426 fEventBuffer[poolIndex]->SetBranchAddress(
"c2array", &c2array);
4427 fEventBuffer[poolIndex]->SetBranchAddress(
"c1varsarray", &c1varsarray);
4428 fEventBuffer[poolIndex]->SetBranchAddress(
"c2varsarray", &c2varsarray);
4429 for (Int_t i=0; i<nEle; i++)
4436 fEventBuffer[poolIndex]->GetEvent(iEv + nEvents - fNumberOfEventsForMixing);
4438 Int_t nCascs1=c1array->GetEntries();
4449 for(Int_t iTr1=0; iTr1<nCascs1; iTr1++){
4450 TLorentzVector* casc1=(TLorentzVector*) c1array->At(iTr1);
4451 if(!casc1)
continue;
4452 TVector *cascvarsarray = (TVector*) c1varsarray->At(iTr1);
4457 Int_t nCascs2=c2array->GetEntries();
4458 for(Int_t iTr2=0; iTr2<nCascs2; iTr2++){
4459 TLorentzVector* casc2=(TLorentzVector*) c2array->At(iTr2);
4460 if(!casc2)
continue;
4461 TVector *cascvarsarray = (TVector*) c2varsarray->At(iTr2);
4477 Int_t nmcpart = mcArray->GetEntriesFast();
4479 Int_t mcevttype = 0;
4481 Bool_t sigmaevent = kFALSE;
4488 Int_t ncbarquark = 0;
4489 Double_t phi_c = -9999.;
4490 Double_t phi_cbar = -9999.;
4491 for(Int_t i=0;i<nmcpart;i++)
4493 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4494 if(TMath::Abs(mcpart->GetPdgCode())==4){
4495 if(fabs(mcpart->Y())<1.5){
4496 if(mcpart->GetPdgCode()==4){
4497 phi_c = mcpart->Phi();
4500 if(mcpart->GetPdgCode()==-4){
4501 phi_cbar = mcpart->Phi();
4506 }
else if(mcevttype==1){
4508 }
else if(mcevttype==2){
4510 }
else if(mcevttype==3){
4516 if(TMath::Abs(mcpart->GetPdgCode())==5){
4517 if(!mcpart->IsPhysicalPrimary())
continue;
4518 if(fabs(mcpart->Y())<1.5){
4521 }
else if(mcevttype==1){
4523 }
else if(mcevttype==2){
4525 }
else if(mcevttype==3){
4533 if((mcevttype==2)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4535 if((mcevttype==1)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4539 if(ncquark!=1)
return kFALSE;
4540 if(ncbarquark!=1)
return kFALSE;
4541 Double_t dphi = fabs(phi_c - phi_cbar);
4542 if(dphi>2*M_PI) dphi -= 2*M_PI;
4543 if(dphi>M_PI) dphi = 2*M_PI-dphi;
4553 for(Int_t i=0;i<nmcpart;i++)
4555 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4556 if(TMath::Abs(mcpart->GetPdgCode())==4132){
4557 Bool_t e_flag = kFALSE;
4558 Bool_t xi_flag = kFALSE;
4559 AliAODMCParticle *mcepart = 0;
4560 AliAODMCParticle *mccascpart = 0;
4561 for(Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4564 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4565 if(!mcdau)
continue;
4566 if(TMath::Abs(mcdau->GetPdgCode())==11){
4570 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4576 Int_t decaytype = -9999;
4577 if(e_flag && xi_flag) decaytype = 0;
4581 if(!e_flag&&xi_flag)
4583 if(e_flag&&!xi_flag)
4585 if(!e_flag&&!xi_flag)
4590 if(TMath::Abs(mcpart->GetPdgCode())==5132 || TMath::Abs(mcpart->GetPdgCode())==5232){
4591 Bool_t e_flag = kFALSE;
4592 Bool_t xic_flag = kFALSE;
4593 AliAODMCParticle *mcepart = 0;
4594 AliAODMCParticle *mcxicpart = 0;
4595 AliAODMCParticle *mccascpart = 0;
4596 for(Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4599 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4600 if(!mcdau)
continue;
4601 if(TMath::Abs(mcdau->GetPdgCode())==11){
4605 if(TMath::Abs(mcdau->GetPdgCode())==4132 || TMath::Abs(mcdau->GetPdgCode())==4232 ){
4611 Bool_t xi_flag = kFALSE;
4612 if(e_flag && xic_flag){
4613 for(Int_t idau=mcxicpart->GetFirstDaughter();idau<mcxicpart->GetLastDaughter()+1;idau++)
4616 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4617 if(!mcdau)
continue;
4618 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4626 Double_t contmc_withxic[3];
4627 contmc_withxic[0] = mcpart->Pt();
4628 contmc_withxic[1] = mcpart->Y();
4629 contmc_withxic[2] = mcxicpart->Y();
4630 if(fabs(mcxicpart->Y())<1.){
4636 Int_t decaytype = -9999;
4637 if(e_flag && xic_flag && xi_flag) decaytype = 10;
4640 if(TMath::Abs(mcpart->GetPdgCode())==11 && mcpart->GetStatus()==1){
4643 esdcuts->GetEtaRange(etamin,etamax);
4644 if(fabs(mcpart->Eta())<etamax){
4645 Bool_t gamma_flag = kFALSE;
4646 Int_t labmother = mcpart->GetMother();
4648 AliAODMCParticle *mcmother = (AliAODMCParticle*) mcArray->At(labmother);
4649 Int_t pdgmother = mcmother->GetPdgCode();
4650 if(TMath::Abs(pdgmother)==22) gamma_flag = kTRUE;
4656 if(TMath::Abs(mcpart->GetPdgCode())==3312){
4661 if((fabs(mcpart->Y())<rapmax) && (fabs(mcpart->Eta())<etamax)){
4667 if(TMath::Abs(mcpart->GetPdgCode())==111){
4668 if(fabs(mcpart->Y())<0.5){
4672 if(TMath::Abs(mcpart->GetPdgCode())==221){
4673 if(fabs(mcpart->Y())<0.5){
4681 for(Int_t i=0;i<nmcpart;i++)
4683 AliAODMCParticle *mcparte = (AliAODMCParticle*) mcArray->At(i);
4684 if(!mcparte)
continue;
4685 if(TMath::Abs(mcparte->GetPdgCode())!=11)
continue;
4686 if(mcparte->GetStatus()!=1)
continue;
4687 if(mcparte->Pt()<0.4)
continue;
4688 if(fabs(mcparte->Eta())>0.8)
continue;
4689 for(Int_t j=0;j<nmcpart;j++)
4691 AliAODMCParticle *mcpartv = (AliAODMCParticle*) mcArray->At(j);
4692 if(!mcpartv)
continue;
4693 if(TMath::Abs(mcpartv->GetPdgCode())!=3312)
continue;
4694 if(mcpartv->Pt()<0.4)
continue;
4695 if(fabs(mcpartv->Eta())>0.8)
continue;
4696 if(mcpartv->GetNDaughters()!=2)
continue;
4714 const char* nameoutput = GetOutputSlot(11)->GetContainer()->GetName();
4718 TString * fCandidateVariableNames =
new TString[
nVar];
4720 fCandidateVariableNames[ 0] =
"InvMassEleXi";
4721 fCandidateVariableNames[ 1] =
"EleXiPx";
4722 fCandidateVariableNames[ 2] =
"EleXiPy";
4723 fCandidateVariableNames[ 3] =
"EleXiPz";
4724 fCandidateVariableNames[ 4] =
"ElePdgCode";
4725 fCandidateVariableNames[ 5] =
"ElePx";
4726 fCandidateVariableNames[ 6] =
"ElePy";
4727 fCandidateVariableNames[ 7] =
"ElePz";
4728 fCandidateVariableNames[ 8] =
"XiPdgCode";
4729 fCandidateVariableNames[ 9] =
"XiPx";
4730 fCandidateVariableNames[10] =
"XiPy";
4731 fCandidateVariableNames[11] =
"XiPz";
4732 fCandidateVariableNames[12] =
"SameFlag";
4733 fCandidateVariableNames[13] =
"EleNGeneration";
4734 fCandidateVariableNames[14] =
"EleGen1PDG";
4735 fCandidateVariableNames[15] =
"EleGen2PDG";
4736 fCandidateVariableNames[16] =
"EleGen3PDG";
4737 fCandidateVariableNames[17] =
"EleGen4PDG";
4738 fCandidateVariableNames[18] =
"EleGen5PDG";
4739 fCandidateVariableNames[19] =
"EleGen6PDG";
4740 fCandidateVariableNames[20] =
"EleGen7PDG";
4741 fCandidateVariableNames[21] =
"EleGen8PDG";
4742 fCandidateVariableNames[22] =
"EleGen9PDG";
4743 fCandidateVariableNames[23] =
"EleGen10PDG";
4744 fCandidateVariableNames[24] =
"ElePrimPDG";
4745 fCandidateVariableNames[25] =
"XiNGeneration";
4746 fCandidateVariableNames[26] =
"XiGen1PDG";
4747 fCandidateVariableNames[27] =
"XiGen2PDG";
4748 fCandidateVariableNames[28] =
"XiGen3PDG";
4749 fCandidateVariableNames[29] =
"XiGen4PDG";
4750 fCandidateVariableNames[30] =
"XiGen5PDG";
4751 fCandidateVariableNames[31] =
"XiGen6PDG";
4752 fCandidateVariableNames[32] =
"XiGen7PDG";
4753 fCandidateVariableNames[33] =
"XiGen8PDG";
4754 fCandidateVariableNames[34] =
"XiGen9PDG";
4755 fCandidateVariableNames[35] =
"XiGen10PDG";
4756 fCandidateVariableNames[36] =
"XiPrimPDG";
4757 fCandidateVariableNames[37] =
"MatchedPDG";
4759 for (Int_t ivar=0; ivar<
nVar; ivar++) {
4771 for(Int_t i=0;i<38;i++){
4775 TLorentzVector vele, vxi, vexi;
4776 vele.SetXYZM(mcparte->Px(),mcparte->Py(),mcparte->Pz(),0.000510998928);
4777 vxi.SetXYZM(mcpartv->Px(),mcpartv->Py(),mcpartv->Pz(),1.32171);
4780 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
4781 Int_t pdgarray_xi[100], labelarray_xi[100], ngen_xi;
4785 Bool_t same_flag = kFALSE;
4786 Int_t matched_pdg = -999999;
4787 for(Int_t iemc=0;iemc<ngen_ele;iemc++){
4788 for(Int_t ivmc=0;ivmc<ngen_xi;ivmc++){
4789 if(labelarray_ele[iemc]==labelarray_xi[ivmc]){
4791 matched_pdg = pdgarray_ele[iemc];
4795 if(same_flag)
break;
4797 Int_t pdgprim_ele = pdgarray_ele[ngen_ele-1];
4798 Int_t pdgprim_xi = pdgarray_xi[ngen_xi-1];
4849 const char* nameoutput = GetOutputSlot(12)->GetContainer()->GetName();
4853 TString * fCandidateVariableNames =
new TString[
nVar];
4855 fCandidateVariableNames[0] =
"XiPt";
4856 fCandidateVariableNames[1] =
"ElePt";
4857 fCandidateVariableNames[2] =
"DeltaPhi";
4858 fCandidateVariableNames[3] =
"DeltaEta";
4859 fCandidateVariableNames[4] =
"V0ProperDecayLength";
4860 fCandidateVariableNames[5] =
"Eled0";
4861 fCandidateVariableNames[6] =
"FGMixMC";
4862 fCandidateVariableNames[7] =
"SignType";
4863 fCandidateVariableNames[8] =
"Convtype";
4864 fCandidateVariableNames[9] =
"MCType";
4865 fCandidateVariableNames[10] =
"Centrality";
4866 fCandidateVariableNames[11] =
"EleXiPt";
4867 fCandidateVariableNames[12] =
"EleXiMass";
4870 for (Int_t ivar=0; ivar<
nVar; ivar++) {
4883 for(Int_t i=0;i<100;i++){
4884 pdgarray[i] = -9999;
4885 labelarray[i] = -9999;
4889 AliAODMCParticle *mcprim = mcpart;
4890 while(mcprim->GetMother()>=0) {
4891 Int_t lab_prim=mcprim->GetMother();
4893 AliAODMCParticle *tmcprim = (AliAODMCParticle*)mcArray->At(lab_prim);
4897 if((TMath::Abs(tmcprim->GetPdgCode())<10) || (TMath::Abs(tmcprim->GetPdgCode())==21))
break;
4901 pdgarray[ngen] = mcprim->GetPdgCode();
4902 labelarray[ngen] = lab_prim;
4905 if(ngen == 100)
break;
4916 if(track->GetID()<0){
4923 printf(
"Warning: track ID too big for buffer: ID: %d, buffer %d\n"
4929 if(
fGTI[track->GetID()]){
4932 if( (!track->GetFilterMap()) &&
4933 (!track->GetTPCNcls()) )
4941 if(
fGTI[track->GetID()]->GetFilterMap() ||
4942 fGTI[track->GetID()]->GetTPCNcls() ){
4944 printf(
"Warning! global track info already there!");
4945 printf(
" TPCNcls track1 %u track2 %u",
4946 (
fGTI[track->GetID()])->GetTPCNcls(),track->GetTPCNcls());
4947 printf(
" FilterMap track1 %u track2 %u\n",
4948 (
fGTI[track->GetID()])->GetFilterMap(),track->GetFilterMap());
4960 (
fGTI[track->GetID()]) = track;
4961 (
fGTIndex[track->GetID()]) = index;
4977 if(abs(history[1])==411)
return 1;
4978 if(abs(history[1])==421)
return 1;
4979 if(abs(history[1])==431)
return 1;
4980 if(abs(history[1])==4122)
return 1;
4981 if(abs(history[1])==4132)
return 1;
4982 if(abs(history[1])==4232)
return 1;
4983 if(abs(history[1])==4332)
return 1;
4985 if(abs(history[1])==511)
return 2;
4986 if(abs(history[1])==521)
return 2;
4987 if(abs(history[1])==531)
return 2;
4988 if(abs(history[1])==5122)
return 2;
4989 if(abs(history[1])==5132)
return 2;
4990 if(abs(history[1])==5232)
return 2;
4991 if(abs(history[1])==5332)
return 2;
5000 for(Int_t ih=0;ih<10;ih++){
5001 if(abs(history[ih])==411)
return kTRUE;
5002 if(abs(history[ih])==421)
return kTRUE;
5003 if(abs(history[ih])==431)
return kTRUE;
5004 if(abs(history[ih])==4122)
return kTRUE;
5005 if(abs(history[ih])==4132)
return kTRUE;
5006 if(abs(history[ih])==4232)
return kTRUE;
5007 if(abs(history[ih])==4332)
return kTRUE;
5016 for(Int_t ih=0;ih<10;ih++){
5017 if(abs(history[ih])==511)
return kTRUE;
5018 if(abs(history[ih])==521)
return kTRUE;
5019 if(abs(history[ih])==531)
return kTRUE;
5020 if(abs(history[ih])==5122)
return kTRUE;
5021 if(abs(history[ih])==5132)
return kTRUE;
5022 if(abs(history[ih])==5232)
return kTRUE;
5023 if(abs(history[ih])==5332)
return kTRUE;
THnSparse * fHistoCorrelationVariablesvsXiPtMix
! THnSparse of Correlation variablesa (Mix)
Float_t fVtxZ
primary vertex
THnSparse * fHistoEleXiMassvsElePtWS2
! e-Xi mass spectra (wrong-sign)
AliAnalysisTaskSEXic2eleXifromAODtracks()
THnSparse * fHistoElePtvsEtaRS
! e spectra (right-sign)
THnSparse * fHistoCorrelationVariablesvsXiPtMC
! THnSparse of Correlation variablesa (MC)
Bool_t fWriteVariableTree
flag for event selected
TH2F * fHistoElectronQovPtvsPhi
! Electron phi distribution
THnSparse * fHistoXicMCS
! electron in mcArray
TH2F * fHistoLambdaPtvsDl
! Lambda proper life time distribution
Double_t fCentBins[100]
number of centrality bins
THnSparse * fHistoElePtvsXiPtMCGen
! e-Xi spectra efficiency denominator
THnSparse * fHistoXicMCGen2
! electron in mcArray
THnSparse * fHistoEleXiMassBFeeddownMCS1
! e-Xi mass spectra (Efficiency numerator)
Bool_t IsEventRejectedDueToNotRecoVertex() const
Bool_t SingleCascadeCuts(AliAODcascade *casc, Double_t *vert)
THnSparse * fHistoEleXiMassRSMixAway
! e-Xi mass spectra (right-sign)
Bool_t fMCDoPairAnalysis
MC eventtype to analyze 1: ccbar 2: bbbar.
Double_t dEtaSR125(Double_t *postrack1, Double_t *postrack2)
TH1F * fHistoBachPtMCGen
! Bachelor pT histogram (efficiency denominator)
TH2D * fHistoResponseEleXiPt
! Response function e-Xi pT <- XicPt
THnSparse * fHistoCorrelationVariablesvsElePtMC
! THnSparse of Correlation variablesa (MC)
THnSparse * fHistoElePtvsd0RS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoEleXiMassWSMix2
! e-Xi mass spectra (wrong-sign)
TH2F * fHistoElectronTPCPIDSelTOFEtaDep[8]
! TPC electron PID after TOF 3 sigma cut Eta dep
Float_t * fCorrelationVariables
! Correlation variables to be written to the tree
THnSparse * fHistoCorrelationVariablesvsElePt
! THnSparse of Correlation variablesa (FG)
TH2F * fHistoEleXiPtvsRapidityRS
! e-Xi pT vs y
void ResetPool(Int_t poolIndex)
THnSparse * fHistoEleXiMassWSSideAway
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassRSMix1
! e-Xi mass spectra (right-sign)
Bool_t fWriteMCVariableTree
flag to decide whether to write the candidate variables on a tree variables
Int_t MatchToMCCascade(AliAODcascade *theCascade, Int_t pdgabscasc, Int_t *pdgDgcasc, Int_t *pdgDgv0, TClonesArray *mcArray) const
Float_t * fCandidateCascVariables
! variables to be written to the tree
THnSparse * fHistoEleXiMassvsElePtRSSide1
! e-Xi mass-ept spectra (right-sign)
void GetProdCascEtaRange(Double_t &a, Double_t &b)
TH2D * fHistoResponseEleXiPtXib
! Response function Xi pT <- True ept
void DefineMCTreeVariables()
THnSparse * fHistoEleXiMassRSAway
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsEtaWS
! e spectra (wrong-sign)
TH2F * fHistoLambdaPtvsDR
! Lambda decay length distribution
void DefineMCEleTreeVariables()
Bool_t HaveBottomInHistory(Int_t *history)
THnSparse * fHistoEleXiMassRSMix2
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsXiPtRSMix
! e-Xi spectra (right-sign, mix)
THnSparse * fHistoEleXiMassMCS2
! e-Xi mass spectra (Efficiency numerator)
THnSparse * fHistoXicElectronMCGen1
! electron in mcArray
Bool_t fIsINT7
Central trigger event.
TH1F * fHistoPi0MCGen
! Number of electrons from pi0
TH2F * fHistoXiQovPtvsPhi
! Xi phi distribution
Bool_t fMixWithoutConversionFlag
flag for event mixing
void UnsetOwnPrimaryVtx()
TH2D * fHistodPhiSdEtaSElectronProtonR125RSMix
! dPhiS vs dEtaS R125 RS Mix
THnSparse * fHistoXicElectronMCGen
! electron in mcArray
THnSparse * fHistoCorrelationVariablesvsElePtMix
! THnSparse of Correlation variablesa (Mix)
Float_t * fCandidateMCVariables
! variables to be written to the tree
TH2D * fHistoResponseXiPtXib
! Response function Xi pT <- True ept
THnSparse * fHistoCharmElectronMCGen
! electron in mcArray (only from charmed baryon)
void SelectTrack(const AliVEvent *event, Int_t trkEntries, Int_t &nSeleTrks, Bool_t *seleFlags, TClonesArray *mcArray)
Bool_t fIsEMC7
INT7 trigger event.
THnSparse * fHistoElePtvsCutVarsRS[23]
! e pt- cut variables (Right-sign)
TH1F * fHistoBachPt
! Bachelor pT histogram
THnSparse * fHistoEleXiMassRSSideAway
! e-Xi mass spectra (right-sign)
THnSparse * fHistoXicElectronMCGen2
! electron in mcArray
void FillMCEleROOTObjects(AliAODMCParticle *mcepart, TClonesArray *mcArray)
TList * fOutputAll
! User Output slot 3 //analysis histograms
THnSparse * fHistoXibMCGen
! electron in mcArray
THnSparse * fHistoElePtvsd0MCS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoXicElectronMCS
! electron in mcArray
TH2F * fHistoLambdaPtvsDRMCS
! Lambda decay length distribution (mc)
THnSparse * fHistoEleXiMassvsElePtRS2
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsd0PromptMCS
! e pt-d0 spectra (right-sign)
TH2D * fHistodPhiSdEtaSElectronBachelorR125WSMix
! dPhiS vs dEtaS R125 WS Mix
THnSparse * fHistoElePtvsXiPtvsXicPtMCS
! e-Xi spectra efficiency numerator
THnSparse * fHistoEleXiMassWSSide
! e-Xi mass spectra (wrong-sign)
AliAODPidHF * GetPidCascPr() const
TTree * fMCCascVariablesTree
! tree of the candidate variables after track selection on output slot 4
const Float_t * GetCuts() const
void FillROOTObjects(AliAODRecoCascadeHF *elobj, AliAODcascade *casc, AliAODTrack *trk, AliAODTrack *trkpid, AliAODEvent *event, TClonesArray *mcArray)
THnSparse * fHistoEleXiMassWSMixAway
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassvsElePtMCGen
! e-Xi mass-ept spectra (Efficiency denominator)
THnSparse * fHistoElectronMCGen
! electron in mcArray (only from charmed baryon)
THnSparse * fHistoEleXiMassvsElePtRS
! e-Xi mass spectra (right-sign)
THnSparse * fHistoEleXiMassvsElePtMCS1
! e-Xi mass-ept spectra (Efficiency numerator)
TH2D * fHistodPhiSdEtaSElectronPionR125RSMix
! dPhiS vs dEtaS R125 RS Mix
THnSparse * fHistoEleXiMassRS
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsEtaWSMix
! e spectra (wrong-sign, mix)
TH1F * fHistoMCDeltaPhiccbar
! MC Event Type
Bool_t TagConversionsSameSign(AliAODTrack *etrk, Int_t *id2index, AliAODEvent *evt, Int_t ntrk, Double_t &minmass)
TH1F * fHistoMCEventType
! MC Event Type
THnSparse * fHistoEleXiMassvsElePtRSMix2
! e-Xi mass-ept spectra (right-sign)
TH2D * fHistodPhiSdEtaSElectronBachelorR125RS
! dPhiS vs dEtaS R125 RS
Int_t MatchToMC(AliAODRecoCascadeHF *elobj, TClonesArray *mcArray, Int_t *pdgarray_ele, Int_t *pdgarray_casc, Int_t *labelarray_ele, Int_t *labelarray_casc, Int_t &ngen_ele, Int_t &ngen_casc)
THnSparse * fHistoElePtvsXiPtWSMix
! e-Xi spectra (wrong-sign, mix)
TTree * fCascVariablesTree
! tree of the candidate variables after track selection on output slot 4
THnSparse * fHistoEleXiMassvsElePtWSMix2
! e-Xi mass-ept spectra (wrong-sign)
THnSparse * fHistoCorrelationVariablesvsXiPt
! THnSparse of Correlation variablesa (FG)
virtual void UserCreateOutputObjects()
Implementation of interface methods.
Float_t fTriggerCheck
Run Number.
THnSparse * fHistoXicElectronMCS2
! electron in mcArray
THnSparse * fHistoElectronEtaTotal
! Number of electrons from eta
THnSparse * fHistoElePtvsd0WS
! e pt-d0 spectra (wrong-sign)
Float_t * fCandidateEleVariables
! variables to be written to the tree
Bool_t TagConversions(AliAODTrack *etrk, Int_t *id2index, AliAODEvent *evt, Int_t ntrk, Double_t &minmass)
THnSparse * fHistoXibMCGenWithXic
! electron in mcArray
void DefineGeneralHistograms()
TTree * fMCEleVariablesTree
! tree of the candidate variables after track selection on output slot 4
void GetProdCascRapRange(Double_t &a, Double_t &b)
Double_t GetMaxVtxZ() const
THnSparse * fHistoElectronPi0Total
! Number of electrons from pi0
THnSparse * fHistoEleXiMassvsElePtWSSide
! e-Xi mass-ept spectra (wrong-sign)
TObjArray * fCascadeCutVarsArray2
array of RDHF cut information
TH1F * fHCentrality
! Histogram to check Centrality
void FillMCROOTObjects(AliAODMCParticle *part, AliAODMCParticle *mcepart, AliAODMCParticle *mcv0part, Int_t decaytype)
THnSparse * fHistoEleXiMassPromptMCS1
! e-Xi mass spectra (Efficiency numerator)
TH2F * fHistoElePtWS
! e spectra (wrong-sign)
THnSparse * fHistoElePtvsEtaMCGen
! e spectra efficiency denominator
THnSparse * fHistoEleXiMassMCGen
! e-Xi mass spectra (Efficiency denominator)
TH2F * fHistoElePtRS
! e spectra (right-sign)
AliAODPidHF * GetPidHF() const
THnSparse * fHistoElePtvsEtaMCS
! e spectra efficiency numerator
TTree * fMCVariablesTree
! tree of the candidate variables after track selection on output slot 4
TH2F * fHistoXiMassvsPtMCGen
! Xi mass vs pt histogram
THnSparse * fHistoEleXiMassWS
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoElePtvsXiPtMCS
! e-Xi spectra efficiency numerator
TH2F * fHistoElectronTOFPIDSelTPC
! TOF electron PID after TPC cut
THnSparse * fHistoElePtvsCutVarsWS[23]
! e pt- cut variables (Wrong-sign)
THnSparse * fHistoEleXiMassXibMCS2
! e-Xi mass spectra (Efficiency numerator)
TH2D * fHistodPhiSdEtaSElectronProtonR125WSMix
! dPhiS vs dEtaS R125 WS Mix
THnSparse * fHistoEleXiMassPromptMCS
! e-Xi mass spectra (Efficiency numerator)
TH1F * fHistoBachPtMCS
! Bachelor pT histogram (efficiency numerator)
void MakeAnalysis(AliAODEvent *aod, TClonesArray *mcArray)
AliAODVertex * PrimaryVertex(const TObjArray *trkArray, AliVEvent *event)
THnSparse * fHistoEleXiMassRSSide2
! e-Xi mass spectra (right-sign)
TH1F * fHistoMassConversionsSameSignMin
! electron-any mass
TH2F * fHistoLambdaPtvsDlMCS
! Lambda proper life time distribution (mc)