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"
100 fHNTrackletCorrvsZ(0),
102 fIsEventSelected(kFALSE),
103 fWriteVariableTree(kFALSE),
104 fWriteEachVariableTree(kFALSE),
105 fWriteMCVariableTree(kFALSE),
107 fEleVariablesTree(0),
108 fCascVariablesTree(0),
109 fSingleVariablesTree(0),
111 fMCEleVariablesTree(0),
112 fMCCascVariablesTree(0),
113 fMCGenPairVariablesTree(0),
114 fCorrelationVariablesTree(0),
115 fReconstructPrimVert(kFALSE),
121 fCandidateVariables(),
122 fCandidateEleVariables(),
123 fCandidateCascVariables(),
124 fCandidateSingleVariables(),
125 fCandidateMCVariables(),
126 fCandidateMCEleVariables(),
127 fCandidateMCCascVariables(),
128 fCandidateMCGenPairVariables(),
129 fCorrelationVariables(),
141 fUseCentralityV0M(kFALSE),
142 fUseCentralitySPDTracklet(kFALSE),
146 fMCDoPairAnalysis(kFALSE),
148 fHistoEleXiMassRS(0),
149 fHistoEleXiMassWS(0),
150 fHistoEleXiMassRSMix(0),
151 fHistoEleXiMassWSMix(0),
152 fHistoEleXiMassRSSide(0),
153 fHistoEleXiMassWSSide(0),
154 fHistoEleXiMassRS1(0),
155 fHistoEleXiMassWS1(0),
156 fHistoEleXiMassRSMix1(0),
157 fHistoEleXiMassWSMix1(0),
158 fHistoEleXiMassRSSide1(0),
159 fHistoEleXiMassWSSide1(0),
160 fHistoEleXiMassRS2(0),
161 fHistoEleXiMassWS2(0),
162 fHistoEleXiMassRSMix2(0),
163 fHistoEleXiMassWSMix2(0),
164 fHistoEleXiMassRSSide2(0),
165 fHistoEleXiMassWSSide2(0),
166 fHistoEleXiMassAway(0),
167 fHistoEleXiMassRSAway(0),
168 fHistoEleXiMassWSAway(0),
169 fHistoEleXiMassRSMixAway(0),
170 fHistoEleXiMassWSMixAway(0),
171 fHistoEleXiMassRSSideAway(0),
172 fHistoEleXiMassWSSideAway(0),
173 fHistoEleXiMassRS1Away(0),
174 fHistoEleXiMassWS1Away(0),
175 fHistoEleXiMassRSMix1Away(0),
176 fHistoEleXiMassWSMix1Away(0),
177 fHistoEleXiMassRSSide1Away(0),
178 fHistoEleXiMassWSSide1Away(0),
179 fHistoEleXiMassRS2Away(0),
180 fHistoEleXiMassWS2Away(0),
181 fHistoEleXiMassRSMix2Away(0),
182 fHistoEleXiMassWSMix2Away(0),
183 fHistoEleXiMassRSSide2Away(0),
184 fHistoEleXiMassWSSide2Away(0),
185 fHistoEleXiMassvsElePtRS(0),
186 fHistoEleXiMassvsElePtWS(0),
187 fHistoEleXiMassvsElePtRSMix(0),
188 fHistoEleXiMassvsElePtWSMix(0),
189 fHistoEleXiMassvsElePtRSSide(0),
190 fHistoEleXiMassvsElePtWSSide(0),
191 fHistoEleXiMassvsElePtRS1(0),
192 fHistoEleXiMassvsElePtWS1(0),
193 fHistoEleXiMassvsElePtRSMix1(0),
194 fHistoEleXiMassvsElePtWSMix1(0),
195 fHistoEleXiMassvsElePtRSSide1(0),
196 fHistoEleXiMassvsElePtWSSide1(0),
197 fHistoEleXiMassvsElePtRS2(0),
198 fHistoEleXiMassvsElePtWS2(0),
199 fHistoEleXiMassvsElePtRSMix2(0),
200 fHistoEleXiMassvsElePtWSMix2(0),
201 fHistoEleXiMassvsElePtRSSide2(0),
202 fHistoEleXiMassvsElePtWSSide2(0),
207 fHistoEleXiMassMCS(0),
208 fHistoEleXiMassMCS1(0),
209 fHistoEleXiMassMCS2(0),
210 fHistoEleXiMassXibMCS(0),
211 fHistoEleXiMassXibMCS1(0),
212 fHistoEleXiMassXibMCS2(0),
213 fHistoEleXiMassPromptMCS(0),
214 fHistoEleXiMassPromptMCS1(0),
215 fHistoEleXiMassPromptMCS2(0),
216 fHistoEleXiMassBFeeddownMCS(0),
217 fHistoEleXiMassBFeeddownMCS1(0),
218 fHistoEleXiMassBFeeddownMCS2(0),
219 fHistoEleXiMassMCGen(0),
220 fHistoEleXiMassvsElePtMCS(0),
221 fHistoEleXiMassvsElePtMCGen(0),
222 fHistoEleXiMassvsElePtMCS1(0),
223 fHistoEleXiMassvsElePtMCGen1(0),
224 fHistoEleXiMassvsElePtMCS2(0),
225 fHistoEleXiMassvsElePtMCGen2(0),
228 fHistoElePtvsEtaRS(0),
229 fHistoElePtvsEtaWS(0),
230 fHistoElePtvsEtaRSMix(0),
231 fHistoElePtvsEtaWSMix(0),
232 fHistoElePtvsEtaMCS(0),
233 fHistoElePtvsEtaMCGen(0),
234 fHistoElePtvsXiPtRS(0),
235 fHistoElePtvsXiPtWS(0),
236 fHistoElePtvsXiPtRSMix(0),
237 fHistoElePtvsXiPtWSMix(0),
238 fHistoElePtvsXiPtMCS(0),
239 fHistoElePtvsXiPtvsXicPtMCS(0),
240 fHistoElePtvsXiPtMCGen(0),
241 fHistoElePtvsXiPtvsXicPtMCGen(0),
242 fHistoElePtvsXiPtMCXicGen(0),
243 fHistoElePtvsd0RS(0),
244 fHistoElePtvsd0WS(0),
245 fHistoElePtvsd0RSMix(0),
246 fHistoElePtvsd0WSMix(0),
247 fHistoElePtvsd0MCS(0),
248 fHistoElePtvsd0PromptMCS(0),
249 fHistoElePtvsd0BFeeddownMCS(0),
252 fHistoBachPtMCGen(0),
255 fHistoXiMassvsPtMCS(0),
256 fHistoXiMassvsPtMCGen(0),
257 fHistoOmegaMassvsPt(0),
258 fHistoElectronTPCPID(0),
259 fHistoElectronTOFPID(0),
260 fHistoElectronTPCSelPID(0),
261 fHistoElectronTOFSelPID(0),
262 fHistoElectronTPCPIDSelTOF(0),
263 fHistoElectronTOFPIDSelTPC(0),
264 fHistoElectronTPCPIDSelTOFSmallEta(0),
265 fHistoElectronTPCPIDSelTOFLargeEta(0),
266 fHistoMassConversionsMin(0),
267 fHistoMassConversionsSameSignMin(0),
268 fHistoElectronQovPtvsPhi(0),
269 fHistoXiQovPtvsPhi(0),
277 fHistoXibMCGenWithXic(0),
279 fHistoXicElectronMCGen(0),
280 fHistoXicElectronMCGen1(0),
281 fHistoXicElectronMCGen2(0),
282 fHistoXicElectronMCS(0),
283 fHistoXicElectronMCS1(0),
284 fHistoXicElectronMCS2(0),
285 fHistoElectronMCGen(0),
286 fHistoBottomElectronMCGen(0),
287 fHistoCharmElectronMCGen(0),
289 fHistoLambdaPtvsDl(0),
290 fHistoLambdaPtvsDlSide(0),
291 fHistoLambdaPtvsDlMCS(0),
292 fHistoLambdaPtvsDR(0),
293 fHistoLambdaPtvsDRSide(0),
294 fHistoLambdaPtvsDRMCS(0),
295 fHistoEleXiPtvsRapidityRS(0),
296 fHistoEleXiPtvsRapidityWS(0),
297 fHistoEleXiPtvsRapidityMCS(0),
298 fHistoCorrelationVariablesvsEleXiPt(0),
299 fHistoCorrelationVariablesvsEleXiPtMix(0),
300 fHistoCorrelationVariablesvsEleXiPtMC(0),
301 fHistoCorrelationVariablesvsElePt(0),
302 fHistoCorrelationVariablesvsElePtMix(0),
303 fHistoCorrelationVariablesvsElePtMC(0),
304 fHistoCorrelationVariablesvsXiPt(0),
305 fHistoCorrelationVariablesvsXiPtMix(0),
306 fHistoCorrelationVariablesvsXiPtMC(0),
307 fHistoMassVariablesvsEleXiPt(0),
308 fHistoMassVariablesvsEleXiPtMix(0),
309 fHistoMassVariablesvsEleXiPtMC(0),
310 fHistoMassVariablesvsElePt(0),
311 fHistoMassVariablesvsElePtMix(0),
312 fHistoMassVariablesvsElePtMC(0),
313 fHistoMassVariablesvsXiPt(0),
314 fHistoMassVariablesvsXiPtMix(0),
315 fHistoMassVariablesvsXiPtMC(0),
316 fHistoResponseElePt(0),
317 fHistoResponseXiPt(0),
318 fHistoResponseEleXiPt(0),
319 fHistoResponseXiPtvsEleXiPt(0),
320 fHistoResponseXiPtXib(0),
321 fHistoResponseEleXiPtXib(0),
322 fHistoResponseMcGenXibPtvsXicPt(0),
324 fHistoElectronPi0Total(0),
325 fHistoElectronPi0Tag(0),
327 fHistoElectronEtaTotal(0),
328 fHistoElectronEtaTag(0),
330 fHistonEvtvsRunNumber(0),
331 fHistonElevsRunNumber(0),
332 fHistonXivsRunNumber(0),
333 fHistoMCEventType(0),
334 fHistoMCXic0Decays(0),
335 fHistoMCDeltaPhiccbar(0),
338 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
339 fHistodPhiSdEtaSElectronProtonR125RS(0),
340 fHistodPhiSdEtaSElectronProtonR125WS(0),
341 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
342 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
343 fHistodPhiSdEtaSElectronPionR125RS(0),
344 fHistodPhiSdEtaSElectronPionR125WS(0),
345 fHistodPhiSdEtaSElectronPionR125RSMix(0),
346 fHistodPhiSdEtaSElectronPionR125WSMix(0),
347 fHistodPhiSdEtaSElectronBachelorR125RS(0),
348 fHistodPhiSdEtaSElectronBachelorR125WS(0),
349 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
350 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
352 fMixWithoutConversionFlag(kFALSE),
353 fNumberOfEventsForMixing (5),
371 for(
Int_t i=0;i<23;i++){
376 for(
Int_t i=0;i<8;i++){
385 Bool_t writeVariableTree) :
396 fHNTrackletCorrvsZ(0),
398 fIsEventSelected(kFALSE),
399 fWriteVariableTree(writeVariableTree),
400 fWriteEachVariableTree(kFALSE),
401 fWriteMCVariableTree(kFALSE),
403 fEleVariablesTree(0),
404 fCascVariablesTree(0),
405 fSingleVariablesTree(0),
407 fMCEleVariablesTree(0),
408 fMCCascVariablesTree(0),
409 fMCGenPairVariablesTree(0),
410 fCorrelationVariablesTree(0),
411 fReconstructPrimVert(kFALSE),
417 fCandidateVariables(),
418 fCandidateEleVariables(),
419 fCandidateCascVariables(),
420 fCandidateSingleVariables(),
421 fCandidateMCVariables(),
422 fCandidateMCEleVariables(),
423 fCandidateMCCascVariables(),
424 fCandidateMCGenPairVariables(),
425 fCorrelationVariables(),
437 fUseCentralityV0M(kFALSE),
438 fUseCentralitySPDTracklet(kFALSE),
442 fMCDoPairAnalysis(kFALSE),
444 fHistoEleXiMassRS(0),
445 fHistoEleXiMassWS(0),
446 fHistoEleXiMassRSMix(0),
447 fHistoEleXiMassWSMix(0),
448 fHistoEleXiMassRSSide(0),
449 fHistoEleXiMassWSSide(0),
450 fHistoEleXiMassRS1(0),
451 fHistoEleXiMassWS1(0),
452 fHistoEleXiMassRSMix1(0),
453 fHistoEleXiMassWSMix1(0),
454 fHistoEleXiMassRSSide1(0),
455 fHistoEleXiMassWSSide1(0),
456 fHistoEleXiMassRS2(0),
457 fHistoEleXiMassWS2(0),
458 fHistoEleXiMassRSMix2(0),
459 fHistoEleXiMassWSMix2(0),
460 fHistoEleXiMassRSSide2(0),
461 fHistoEleXiMassWSSide2(0),
462 fHistoEleXiMassAway(0),
463 fHistoEleXiMassRSAway(0),
464 fHistoEleXiMassWSAway(0),
465 fHistoEleXiMassRSMixAway(0),
466 fHistoEleXiMassWSMixAway(0),
467 fHistoEleXiMassRSSideAway(0),
468 fHistoEleXiMassWSSideAway(0),
469 fHistoEleXiMassRS1Away(0),
470 fHistoEleXiMassWS1Away(0),
471 fHistoEleXiMassRSMix1Away(0),
472 fHistoEleXiMassWSMix1Away(0),
473 fHistoEleXiMassRSSide1Away(0),
474 fHistoEleXiMassWSSide1Away(0),
475 fHistoEleXiMassRS2Away(0),
476 fHistoEleXiMassWS2Away(0),
477 fHistoEleXiMassRSMix2Away(0),
478 fHistoEleXiMassWSMix2Away(0),
479 fHistoEleXiMassRSSide2Away(0),
480 fHistoEleXiMassWSSide2Away(0),
481 fHistoEleXiMassvsElePtRS(0),
482 fHistoEleXiMassvsElePtWS(0),
483 fHistoEleXiMassvsElePtRSMix(0),
484 fHistoEleXiMassvsElePtWSMix(0),
485 fHistoEleXiMassvsElePtRSSide(0),
486 fHistoEleXiMassvsElePtWSSide(0),
487 fHistoEleXiMassvsElePtRS1(0),
488 fHistoEleXiMassvsElePtWS1(0),
489 fHistoEleXiMassvsElePtRSMix1(0),
490 fHistoEleXiMassvsElePtWSMix1(0),
491 fHistoEleXiMassvsElePtRSSide1(0),
492 fHistoEleXiMassvsElePtWSSide1(0),
493 fHistoEleXiMassvsElePtRS2(0),
494 fHistoEleXiMassvsElePtWS2(0),
495 fHistoEleXiMassvsElePtRSMix2(0),
496 fHistoEleXiMassvsElePtWSMix2(0),
497 fHistoEleXiMassvsElePtRSSide2(0),
498 fHistoEleXiMassvsElePtWSSide2(0),
503 fHistoEleXiMassMCS(0),
504 fHistoEleXiMassMCS1(0),
505 fHistoEleXiMassMCS2(0),
506 fHistoEleXiMassXibMCS(0),
507 fHistoEleXiMassXibMCS1(0),
508 fHistoEleXiMassXibMCS2(0),
509 fHistoEleXiMassPromptMCS(0),
510 fHistoEleXiMassPromptMCS1(0),
511 fHistoEleXiMassPromptMCS2(0),
512 fHistoEleXiMassBFeeddownMCS(0),
513 fHistoEleXiMassBFeeddownMCS1(0),
514 fHistoEleXiMassBFeeddownMCS2(0),
515 fHistoEleXiMassMCGen(0),
516 fHistoEleXiMassvsElePtMCS(0),
517 fHistoEleXiMassvsElePtMCGen(0),
518 fHistoEleXiMassvsElePtMCS1(0),
519 fHistoEleXiMassvsElePtMCGen1(0),
520 fHistoEleXiMassvsElePtMCS2(0),
521 fHistoEleXiMassvsElePtMCGen2(0),
524 fHistoElePtvsEtaRS(0),
525 fHistoElePtvsEtaWS(0),
526 fHistoElePtvsEtaRSMix(0),
527 fHistoElePtvsEtaWSMix(0),
528 fHistoElePtvsEtaMCS(0),
529 fHistoElePtvsEtaMCGen(0),
530 fHistoElePtvsXiPtRS(0),
531 fHistoElePtvsXiPtWS(0),
532 fHistoElePtvsXiPtRSMix(0),
533 fHistoElePtvsXiPtWSMix(0),
534 fHistoElePtvsXiPtMCS(0),
535 fHistoElePtvsXiPtvsXicPtMCS(0),
536 fHistoElePtvsXiPtMCGen(0),
537 fHistoElePtvsXiPtvsXicPtMCGen(0),
538 fHistoElePtvsXiPtMCXicGen(0),
539 fHistoElePtvsd0RS(0),
540 fHistoElePtvsd0WS(0),
541 fHistoElePtvsd0RSMix(0),
542 fHistoElePtvsd0WSMix(0),
543 fHistoElePtvsd0MCS(0),
544 fHistoElePtvsd0PromptMCS(0),
545 fHistoElePtvsd0BFeeddownMCS(0),
548 fHistoBachPtMCGen(0),
551 fHistoXiMassvsPtMCS(0),
552 fHistoXiMassvsPtMCGen(0),
553 fHistoOmegaMassvsPt(0),
554 fHistoElectronTPCPID(0),
555 fHistoElectronTOFPID(0),
556 fHistoElectronTPCSelPID(0),
557 fHistoElectronTOFSelPID(0),
558 fHistoElectronTPCPIDSelTOF(0),
559 fHistoElectronTOFPIDSelTPC(0),
560 fHistoElectronTPCPIDSelTOFSmallEta(0),
561 fHistoElectronTPCPIDSelTOFLargeEta(0),
562 fHistoMassConversionsMin(0),
563 fHistoMassConversionsSameSignMin(0),
564 fHistoElectronQovPtvsPhi(0),
565 fHistoXiQovPtvsPhi(0),
573 fHistoXibMCGenWithXic(0),
575 fHistoXicElectronMCGen(0),
576 fHistoXicElectronMCGen1(0),
577 fHistoXicElectronMCGen2(0),
578 fHistoXicElectronMCS(0),
579 fHistoXicElectronMCS1(0),
580 fHistoXicElectronMCS2(0),
581 fHistoElectronMCGen(0),
582 fHistoBottomElectronMCGen(0),
583 fHistoCharmElectronMCGen(0),
585 fHistoLambdaPtvsDl(0),
586 fHistoLambdaPtvsDlSide(0),
587 fHistoLambdaPtvsDlMCS(0),
588 fHistoLambdaPtvsDR(0),
589 fHistoLambdaPtvsDRSide(0),
590 fHistoLambdaPtvsDRMCS(0),
591 fHistoEleXiPtvsRapidityRS(0),
592 fHistoEleXiPtvsRapidityWS(0),
593 fHistoEleXiPtvsRapidityMCS(0),
594 fHistoCorrelationVariablesvsEleXiPt(0),
595 fHistoCorrelationVariablesvsEleXiPtMix(0),
596 fHistoCorrelationVariablesvsEleXiPtMC(0),
597 fHistoCorrelationVariablesvsElePt(0),
598 fHistoCorrelationVariablesvsElePtMix(0),
599 fHistoCorrelationVariablesvsElePtMC(0),
600 fHistoCorrelationVariablesvsXiPt(0),
601 fHistoCorrelationVariablesvsXiPtMix(0),
602 fHistoCorrelationVariablesvsXiPtMC(0),
603 fHistoMassVariablesvsEleXiPt(0),
604 fHistoMassVariablesvsEleXiPtMix(0),
605 fHistoMassVariablesvsEleXiPtMC(0),
606 fHistoMassVariablesvsElePt(0),
607 fHistoMassVariablesvsElePtMix(0),
608 fHistoMassVariablesvsElePtMC(0),
609 fHistoMassVariablesvsXiPt(0),
610 fHistoMassVariablesvsXiPtMix(0),
611 fHistoMassVariablesvsXiPtMC(0),
612 fHistoResponseElePt(0),
613 fHistoResponseXiPt(0),
614 fHistoResponseEleXiPt(0),
615 fHistoResponseXiPtvsEleXiPt(0),
616 fHistoResponseXiPtXib(0),
617 fHistoResponseEleXiPtXib(0),
618 fHistoResponseMcGenXibPtvsXicPt(0),
620 fHistoElectronPi0Total(0),
621 fHistoElectronPi0Tag(0),
623 fHistoElectronEtaTotal(0),
624 fHistoElectronEtaTag(0),
626 fHistonEvtvsRunNumber(0),
627 fHistonElevsRunNumber(0),
628 fHistonXivsRunNumber(0),
629 fHistoMCEventType(0),
630 fHistoMCXic0Decays(0),
631 fHistoMCDeltaPhiccbar(0),
634 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
635 fHistodPhiSdEtaSElectronProtonR125RS(0),
636 fHistodPhiSdEtaSElectronProtonR125WS(0),
637 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
638 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
639 fHistodPhiSdEtaSElectronPionR125RS(0),
640 fHistodPhiSdEtaSElectronPionR125WS(0),
641 fHistodPhiSdEtaSElectronPionR125RSMix(0),
642 fHistodPhiSdEtaSElectronPionR125WSMix(0),
643 fHistodPhiSdEtaSElectronBachelorR125RS(0),
644 fHistodPhiSdEtaSElectronBachelorR125WS(0),
645 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
646 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
648 fMixWithoutConversionFlag(kFALSE),
649 fNumberOfEventsForMixing (5),
667 Info(
"AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Constructor");
669 for(
Int_t i=0;i<23;i++){
674 for(
Int_t i=0;i<8;i++){
679 DefineOutput(1,TList::Class());
680 DefineOutput(2,TList::Class());
681 DefineOutput(3,TList::Class());
682 DefineOutput(4,TTree::Class());
683 DefineOutput(5,TTree::Class());
684 DefineOutput(6,TTree::Class());
685 DefineOutput(7,TTree::Class());
686 DefineOutput(8,AliNormalizationCounter::Class());
687 DefineOutput(9,TTree::Class());
688 DefineOutput(10,TTree::Class());
689 DefineOutput(11,TTree::Class());
690 DefineOutput(12,TTree::Class());
698 Info(
"~AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Destructor");
808 if (fDebug > 1) AliInfo(
"Init");
827 AliError(
"NO EVENT FOUND!");
839 AliKFParticle::SetField(
fBzkG);
840 if (TMath::Abs(
fBzkG)<0.001) {
849 AliAODTracklets* tracklets=aodEvent->GetTracklets();
850 Int_t nTr=tracklets->GetNumberOfTracklets();
851 for(
Int_t iTr=0; iTr<nTr; iTr++){
852 Double_t theta=tracklets->GetTheta(iTr);
853 Double_t eta=-TMath::Log(TMath::Tan(theta/2.));
854 if(eta>-1.0 && eta<1.0) countTr++;
856 AliAODVertex *vtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
859 if(vtx1->GetNContributors()>0){
884 TClonesArray *mcArray = 0;
885 AliAODMCHeader *mcHeader=0;
888 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
890 AliError(
"Could not find Monte-Carlo in AOD");
896 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
898 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec: MC header branch not found!\n");
903 Double_t zMCVertex = mcHeader->GetVtxZ();
905 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
919 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
924 fVtx1->GetCovarianceMatrix(cov);
925 fV1 =
new AliESDVertex(pos,cov,100.,100,
fVtx1->GetName());
941 fIsMB=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kMB)==(AliVEvent::kMB);
942 fIsSemi=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kSemiCentral)==(AliVEvent::kSemiCentral);
943 fIsCent=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kCentral)==(AliVEvent::kCentral);
944 fIsINT7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kINT7)==(AliVEvent::kINT7);
945 fIsEMC7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kEMC7)==(AliVEvent::kEMC7);
959 AliCentrality *cent = aodEvent->GetCentrality();
960 fCentrality = cent->GetCentralityPercentile(
"V0M");
963 else if(countCorr>=1 && countCorr<=8)
fCentrality = 15.;
964 else if(countCorr>=9 && countCorr<=13)
fCentrality = 25.;
965 else if(countCorr>=14 && countCorr<=19)
fCentrality = 35.;
966 else if(countCorr>=20 && countCorr<=30)
fCentrality = 45.;
967 else if(countCorr>=31 && countCorr<=49)
fCentrality = 55.;
972 if(fCentrality<0.||fCentrality>100.-0.0000001) {
979 AliEventplane *pl=aodEvent->GetEventplane();
981 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec:no eventplane! v2 analysis without eventplane not possible!\n");
999 fQ = pl->GetQVector();
1001 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec: no Q vectors");
1011 Int_t runnumber_offset = 0;
1012 Int_t runnumber = aodEvent->GetRunNumber();
1013 if(runnumber<=131000&&runnumber>=114000){
1014 runnumber_offset = 114000;
1015 }
else if(runnumber<=196000&&runnumber>=195000){
1016 runnumber_offset = 195000;
1017 }
else if(runnumber<=170593&&runnumber>=167902){
1018 runnumber_offset = 167902;
1064 AliAnalysisTaskSE::Terminate();
1068 AliError(
"fOutput not available");
1074 AliError(
"fOutputAll not available");
1132 TString normName=
"NormalizationCounter";
1133 AliAnalysisDataContainer *cont = GetOutputSlot(8)->GetContainer();
1134 if(cont)normName=(
TString)cont->GetName();
1184 fPoolIndex=GetPoolIndex(fVtxZ,fCentrality,fEventPlane);
1185 Int_t nextRes( nextResVec[fPoolIndex] );
1186 while(!m_ReservoirE[fPoolIndex][nextRes].empty()){
1187 delete m_ReservoirE[fPoolIndex][nextRes].back();
1188 m_ReservoirE[fPoolIndex][nextRes].pop_back();
1190 while(!m_ReservoirL1[fPoolIndex][nextRes].empty()){
1191 delete m_ReservoirL1[fPoolIndex][nextRes].back();
1192 m_ReservoirL1[fPoolIndex][nextRes].pop_back();
1194 while(!m_ReservoirL2[fPoolIndex][nextRes].empty()){
1195 delete m_ReservoirL2[fPoolIndex][nextRes].back();
1196 m_ReservoirL2[fPoolIndex][nextRes].pop_back();
1198 while(!m_ReservoirVarsE[fPoolIndex][nextRes].empty()){
1199 delete m_ReservoirVarsE[fPoolIndex][nextRes].back();
1200 m_ReservoirVarsE[fPoolIndex][nextRes].pop_back();
1202 while(!m_ReservoirVarsL1[fPoolIndex][nextRes].empty()){
1203 delete m_ReservoirVarsL1[fPoolIndex][nextRes].back();
1204 m_ReservoirVarsL1[fPoolIndex][nextRes].pop_back();
1206 while(!m_ReservoirVarsL2[fPoolIndex][nextRes].empty()){
1207 delete m_ReservoirVarsL2[fPoolIndex][nextRes].back();
1208 m_ReservoirVarsL2[fPoolIndex][nextRes].pop_back();
1212 if(fAnalCuts->GetProdAODFilterBit()==7){
1213 ResetGlobalTrackReference();
1215 for (
Int_t iTrack=0;iTrack<aodEvent->GetNumberOfTracks();iTrack++){
1217 AliAODTrack *track =
dynamic_cast<AliAODTrack *
>(aodEvent->GetTrack(iTrack));
1218 if (!track)
continue;
1221 StoreGlobalTrackReference(track,iTrack);
1226 Int_t nCascs= aodEvent->GetNumberOfCascades();
1227 Int_t nTracks= aodEvent->GetNumberOfTracks();
1229 Bool_t seleTrkFlags[nTracks];
1231 SelectTrack(aodEvent,nTracks,nSeleTrks,seleTrkFlags,mcArray);
1233 Bool_t seleCascFlags[nCascs];
1235 SelectCascade(aodEvent,nCascs,nSeleCasc,seleCascFlags,mcArray);
1237 Int_t runnumber_offset = 0;
1238 Int_t runnumber = aodEvent->GetRunNumber();
1239 if(runnumber<=131000&&runnumber>=114000){
1240 runnumber_offset = 114000;
1241 }
else if(runnumber<=196000&&runnumber>=195000){
1242 runnumber_offset = 195000;
1243 }
else if(runnumber<=170593&&runnumber>=167902){
1244 runnumber_offset = 167902;
1246 fHistonElevsRunNumber->Fill(runnumber-runnumber_offset,nSeleTrks);
1247 fHistonXivsRunNumber->Fill(runnumber-runnumber_offset,nSeleCasc);
1249 if(nSeleTrks==0 || nSeleCasc==0)
return;
1254 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
1255 if(!seleTrkFlags[itrk])
continue;
1256 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1258 FillElectronROOTObjects(trk,aodEvent,mcArray);
1261 for (
Int_t icasc = 0; icasc<nCascs; icasc++) {
1262 if(!seleCascFlags[icasc])
continue;
1263 AliAODcascade *casc = aodEvent->GetCascade(icasc);
1266 FillCascROOTObjects(casc,aodEvent,mcArray);
1269 if(fWriteEachVariableTree)
1275 for (
Int_t icasc = 0; icasc<nCascs; icasc++) {
1276 if(!seleCascFlags[icasc])
continue;
1277 AliAODcascade *casc = aodEvent->GetCascade(icasc);
1280 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1281 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1282 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1287 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
1288 if(!seleTrkFlags[itrk])
continue;
1289 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1297 AliAODTrack *trkpid = 0;
1298 if(fAnalCuts->GetProdAODFilterBit()==7){
1299 trkpid = fGTI[-trk->GetID()-1];
1304 Int_t cpid = cptrack->GetID();
1305 Int_t cnid = cntrack->GetID();
1306 Int_t cbid = cbtrack->GetID();
1307 Int_t lpid = trkpid->GetID();
1308 if((cpid==lpid)||(cnid==lpid)||(cbid==lpid))
continue;
1310 AliAODVertex *secVert = ReconstructSecondaryVertex(casc,trk,aodEvent);
1311 if(!secVert)
continue;
1318 FillROOTObjects(exobj, casc,trk,trkpid,aodEvent,mcArray);
1320 exobj->GetSecondaryVtx()->RemoveDaughters();
1322 delete exobj;exobj=NULL;
1328 DoEventMixingWithPools(fPoolIndex);
1330 Int_t nextRes( nextResVec[fPoolIndex] );
1332 if( nextRes>=fNumberOfEventsForMixing ){
1334 reservoirsReady[fPoolIndex] = kTRUE;
1336 nextResVec[fPoolIndex] = nextRes;
1348 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
1354 fCandidateVariableNames[ 0]=
"Centrality";
1355 fCandidateVariableNames[ 1]=
"InvMassEleXi";
1356 fCandidateVariableNames[ 2]=
"EleXiPt";
1357 fCandidateVariableNames[ 3]=
"EleXiPx";
1358 fCandidateVariableNames[ 4]=
"EleXiPy";
1359 fCandidateVariableNames[ 5]=
"EleXiPz";
1360 fCandidateVariableNames[ 6]=
"ElePx";
1361 fCandidateVariableNames[ 7]=
"ElePy";
1362 fCandidateVariableNames[ 8]=
"ElePz";
1363 fCandidateVariableNames[ 9]=
"XiPx";
1364 fCandidateVariableNames[10]=
"XiPy";
1365 fCandidateVariableNames[11]=
"XiPz";
1366 fCandidateVariableNames[12]=
"XiCharge";
1367 fCandidateVariableNames[13]=
"MassXi";
1368 fCandidateVariableNames[14]=
"MassLambda";
1369 fCandidateVariableNames[15]=
"Eled0";
1370 fCandidateVariableNames[16]=
"Xid0";
1371 fCandidateVariableNames[17]=
"nSigmaTPCele";
1372 fCandidateVariableNames[18]=
"nSigmaTOFele";
1373 fCandidateVariableNames[19]=
"nSigmaTPCpr_etrk";
1374 fCandidateVariableNames[20]=
"nSigmaTOFpr_etrk";
1375 fCandidateVariableNames[21]=
"nSigmaTPCka_etrk";
1376 fCandidateVariableNames[22]=
"nSigmaTOFka_etrk";
1377 fCandidateVariableNames[23]=
"nSigmaTPCv0pr";
1378 fCandidateVariableNames[24]=
"nSigmaTOFv0pr";
1379 fCandidateVariableNames[25]=
"nSigmaTPCv0pi";
1380 fCandidateVariableNames[26]=
"nSigmaTOFv0pi";
1381 fCandidateVariableNames[27]=
"nSigmaTPCbachpi";
1382 fCandidateVariableNames[28]=
"nSigmaTOFbachpi";
1383 fCandidateVariableNames[29]=
"EleCharge";
1384 fCandidateVariableNames[30]=
"Mixing";
1385 fCandidateVariableNames[31]=
"DcaXiDaughters";
1386 fCandidateVariableNames[32]=
"DcaV0Daughters";
1387 fCandidateVariableNames[33]=
"DecayLengthXi";
1388 fCandidateVariableNames[34]=
"CosPointingAngleXi";
1389 fCandidateVariableNames[35]=
"DcaV0toPrimVertex";
1390 fCandidateVariableNames[36]=
"DcaPostoPrimVertex";
1391 fCandidateVariableNames[37]=
"DcaNegtoPrimVertex";
1392 fCandidateVariableNames[38]=
"DcaBachtoPrimVertex";
1393 fCandidateVariableNames[39]=
"DecayLengthV0";
1394 fCandidateVariableNames[40]=
"CosPointingAngleV0";
1396 fCandidateVariableNames[41]=
"mcpdgxic";
1397 fCandidateVariableNames[42]=
"mclabxic";
1398 fCandidateVariableNames[43]=
"mcxicpx";
1399 fCandidateVariableNames[44]=
"mcxicpy";
1400 fCandidateVariableNames[45]=
"mcxicpz";
1401 fCandidateVariableNames[46]=
"mcelepx";
1402 fCandidateVariableNames[47]=
"mcelepy";
1403 fCandidateVariableNames[48]=
"mcelepz";
1404 fCandidateVariableNames[49]=
"mccascpx";
1405 fCandidateVariableNames[50]=
"mccascpy";
1406 fCandidateVariableNames[51]=
"mccascpz";
1408 fCandidateVariableNames[52]=
"mcpdgele";
1409 fCandidateVariableNames[53]=
"mcpdgcasc";
1410 fCandidateVariableNames[54]=
"mcpdgmomele";
1411 fCandidateVariableNames[55]=
"mcpdgmomcasc";
1412 fCandidateVariableNames[56]=
"mcpdggrmomele";
1413 fCandidateVariableNames[57]=
"mcpdggrmomcasc";
1414 fCandidateVariableNames[58]=
"mcngenele";
1415 fCandidateVariableNames[59]=
"mcngencasc";
1417 fCandidateVariableNames[60]=
"nSigmaTPCpi_etrk";
1418 fCandidateVariableNames[61]=
"nSigmaTOFpi_etrk";
1420 fCandidateVariableNames[62]=
"V0PosPx";
1421 fCandidateVariableNames[63]=
"V0PosPy";
1422 fCandidateVariableNames[64]=
"V0PosPz";
1423 fCandidateVariableNames[65]=
"V0NegPx";
1424 fCandidateVariableNames[66]=
"V0NegPy";
1425 fCandidateVariableNames[67]=
"V0NegPz";
1426 fCandidateVariableNames[68]=
"V0VertX";
1427 fCandidateVariableNames[69]=
"V0VertY";
1428 fCandidateVariableNames[70]=
"V0VertZ";
1429 fCandidateVariableNames[71]=
"BachPx";
1430 fCandidateVariableNames[72]=
"BachPy";
1431 fCandidateVariableNames[73]=
"BachPz";
1432 fCandidateVariableNames[74]=
"XiVertX";
1433 fCandidateVariableNames[75]=
"XiVertY";
1434 fCandidateVariableNames[76]=
"XiVertZ";
1435 fCandidateVariableNames[77]=
"PrimVertX";
1436 fCandidateVariableNames[78]=
"PrimVertY";
1437 fCandidateVariableNames[79]=
"PrimVertZ";
1439 fCandidateVariableNames[80]=
"MassOmega";
1441 fCandidateVariableNames[81]=
"EleITSMatch";
1442 fCandidateVariableNames[82]=
"BachITSMatch";
1443 fCandidateVariableNames[83]=
"V0PosITSMatch";
1444 fCandidateVariableNames[84]=
"V0NegITSMatch";
1446 fCandidateVariableNames[85]=
"TPCNclsF";
1447 fCandidateVariableNames[86]=
"TPCNcls";
1448 fCandidateVariableNames[87]=
"TPCNclsS";
1449 fCandidateVariableNames[88]=
"IsXiPeakReagion";
1452 fCandidateVariableNames[89]=
"MagneticField";
1453 fCandidateVariableNames[90]=
"EvNumber";
1454 fCandidateVariableNames[91]=
"RunNumber";
1473 for(
Int_t i=0;i<92;i++){
1478 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1479 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1480 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1493 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
1494 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
1498 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
1499 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
1500 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
1506 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
1507 Double_t pxv_flip = pxv + lf * uxe;
1508 Double_t pyv_flip = pyv + lf * uye;
1509 Double_t pzv_flip = pzv + lf * uze;
1510 Double_t pxsum_flip = pxe + pxv_flip;
1511 Double_t pysum_flip = pye + pyv_flip;
1512 Double_t pzsum_flip = pze + pzv_flip;
1513 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
1514 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
1523 fVtx1->GetXYZ(posVtx);
1526 UInt_t pdgdg[2]={11,3312};
1540 if(casc->ChargeXi()<0)
1578 if(casc->ChargeXi()>0){
1613 AliAODMCParticle *mcxic = 0;
1614 AliAODMCParticle *mcele = 0;
1615 AliAODMCParticle *mccasc = 0;
1617 Int_t mcpdgele_array[100];
1618 Int_t mcpdgcasc_array[100];
1619 Int_t mclabelele_array[100];
1620 Int_t mclabelcasc_array[100];
1621 Int_t mcngen_ele = -9999;
1622 Int_t mcngen_casc = -9999;
1625 mclabxic =
MatchToMC(exobj,mcArray,mcpdgele_array, mcpdgcasc_array,mclabelele_array,mclabelcasc_array,mcngen_ele,mcngen_casc);
1628 mcxic = (AliAODMCParticle*) mcArray->At(mclabxic);
1629 if(mclabelele_array[0]>=0)
1630 mcele = (AliAODMCParticle*) mcArray->At(mclabelele_array[0]);
1631 if(mclabelcasc_array[0]>=0)
1632 mccasc = (AliAODMCParticle*) mcArray->At(mclabelcasc_array[0]);
1699 Double_t dphis_ele_pr, detas_ele_pr,dphis_ele_pi, detas_ele_pi, dphis_ele_bach, detas_ele_bach;
1700 dphis_ele_pr = 9999.;detas_ele_pr = 9999.;dphis_ele_pi = 9999.;detas_ele_pi = 9999.;dphis_ele_bach=9999.;detas_ele_bach=9999.;
1705 cont[0] = exobj->InvMass(2,pdgdg);
1706 cont[1] = exobj->Pt();
1707 cont[2] = exobj->Getd0Prong(0)*trk->Charge();
1712 cont_flip[0] = mexi_flip;
1713 cont_flip[1] = ptexi_flip;
1718 cont2[0] = exobj->InvMass(2,pdgdg);
1719 cont2[1] = trk->Pt();
1723 cont_eleptvseta[0] = trk->Pt();
1724 cont_eleptvseta[1] = trk->Eta();
1728 cont_eleptvsxipt[0] = trk->Pt();
1729 cont_eleptvsxipt[1] = sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY());
1733 cont_eleptvsd0[0] = trk->Pt();
1734 cont_eleptvsd0[1] = exobj->Getd0Prong(0)*trk->Charge();
1737 Double_t exobj_mass = exobj->InvMass(2,pdgdg);
1741 Double_t exobj_E = sqrt(exobj_mass*exobj_mass+exobj_px*exobj_px+exobj_py*exobj_py+exobj_pz*exobj_pz);
1742 Double_t exobj_rap = 0.5*log((exobj_E+exobj_pz)/(exobj_E-exobj_pz));
1749 if(trk->Charge()*casc->ChargeXi()<0){
1762 for(
Int_t ih=0;ih<23;ih++){
1764 cont_eleptvscutvars[0] = exobj->Pt();
1768 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1770 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1772 cont_eleptvscutvars[1] = nSigmaTPCele;
1774 cont_eleptvscutvars[1] = nSigmaTOFele;
1776 cont_eleptvscutvars[1] = trk->Eta();
1778 cont_eleptvscutvars[1] = trk->GetITSNcls();
1780 if(casc->ChargeXi()<0)
1781 cont_eleptvscutvars[1] = casc->MassLambda();
1783 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1785 cont_eleptvscutvars[1] = casc->MassXi();
1788 lPosV0[0] = casc->DecayVertexV0X();
1789 lPosV0[1] = casc->DecayVertexV0Y();
1790 lPosV0[2] = casc->DecayVertexV0Z();
1791 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1794 lPosXi[0] = casc->DecayVertexXiX();
1795 lPosXi[1] = casc->DecayVertexXiY();
1796 lPosXi[2] = casc->DecayVertexXiZ();
1797 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1799 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1801 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1803 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1805 if(casc->ChargeXi()<0.)
1806 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1808 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1810 if(casc->ChargeXi()>0.)
1811 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1813 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1815 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1817 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1819 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1821 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1823 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1825 cont_eleptvscutvars[1] = casc->Eta();
1827 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1835 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1837 cont_eleptvscutvars[1] = -9999.;
1845 Int_t pdgcode = mcxic->GetPdgCode();
1846 cont2[1] = mcele->Pt();
1847 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
1848 Int_t labmotherxic = mcxic->GetMother();
1849 Bool_t isbottomfd = kFALSE;
1852 AliAODMCParticle *motherxic = (AliAODMCParticle*)mcArray->At(labmotherxic);
1853 Int_t pdgmotherxic = motherxic->GetPdgCode();
1854 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){
1884 cont_xic[0] = mcxic->Pt();
1885 cont_xic[1] = mcxic->Y();
1892 cont_mcele[0] = mcele->Pt();
1893 cont_mcele[1] = mcele->Eta();
1900 fHistoResponseXiPt->Fill(mcxic->Pt(),sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2)));
1904 Double_t cont_eleptvsxiptvsxicpt[4];
1905 cont_eleptvsxiptvsxicpt[0] = cont_eleptvsxipt[0];
1906 cont_eleptvsxiptvsxicpt[1] = cont_eleptvsxipt[1];
1907 cont_eleptvsxiptvsxicpt[2] = mcxic->Pt();
1908 cont_eleptvsxiptvsxicpt[3] = cont_eleptvsxipt[2];
1917 for(
Int_t ih=0;ih<23;ih++){
1919 cont_eleptvscutvars[0] = exobj->Pt();
1923 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1925 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1927 cont_eleptvscutvars[1] = nSigmaTPCele;
1929 cont_eleptvscutvars[1] = nSigmaTOFele;
1931 cont_eleptvscutvars[1] = trk->Eta();
1933 cont_eleptvscutvars[1] = trk->GetITSNcls();
1935 if(casc->ChargeXi()<0)
1936 cont_eleptvscutvars[1] = casc->MassLambda();
1938 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1940 cont_eleptvscutvars[1] = casc->MassXi();
1943 lPosV0[0] = casc->DecayVertexV0X();
1944 lPosV0[1] = casc->DecayVertexV0Y();
1945 lPosV0[2] = casc->DecayVertexV0Z();
1946 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1949 lPosXi[0] = casc->DecayVertexXiX();
1950 lPosXi[1] = casc->DecayVertexXiY();
1951 lPosXi[2] = casc->DecayVertexXiZ();
1952 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1954 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1956 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1958 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1960 if(casc->ChargeXi()<0.)
1961 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1963 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1965 if(casc->ChargeXi()>0.)
1966 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1968 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1970 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1972 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1974 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1976 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1978 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1980 cont_eleptvscutvars[1] = casc->Eta();
1982 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1990 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1992 cont_eleptvscutvars[1] = -9999.;
2018 for(
Int_t ih=0;ih<23;ih++){
2020 cont_eleptvscutvars[0] = exobj->Pt();
2024 cont_eleptvscutvars[1] = trk->GetTPCNcls();
2026 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
2028 cont_eleptvscutvars[1] = nSigmaTPCele;
2030 cont_eleptvscutvars[1] = nSigmaTOFele;
2032 cont_eleptvscutvars[1] = trk->Eta();
2034 cont_eleptvscutvars[1] = trk->GetITSNcls();
2036 if(casc->ChargeXi()<0)
2037 cont_eleptvscutvars[1] = casc->MassLambda();
2039 cont_eleptvscutvars[1] = casc->MassAntiLambda();
2041 cont_eleptvscutvars[1] = casc->MassXi();
2044 lPosV0[0] = casc->DecayVertexV0X();
2045 lPosV0[1] = casc->DecayVertexV0Y();
2046 lPosV0[2] = casc->DecayVertexV0Z();
2047 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
2050 lPosXi[0] = casc->DecayVertexXiX();
2051 lPosXi[1] = casc->DecayVertexXiY();
2052 lPosXi[2] = casc->DecayVertexXiZ();
2053 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
2055 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
2057 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
2059 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
2061 if(casc->ChargeXi()<0.)
2062 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
2064 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
2066 if(casc->ChargeXi()>0.)
2067 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
2069 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
2071 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
2073 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
2075 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
2077 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
2079 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
2081 cont_eleptvscutvars[1] = casc->Eta();
2083 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
2091 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
2093 cont_eleptvscutvars[1] = -9999.;
2101 Int_t pdgcode = mcxic->GetPdgCode();
2103 cont_xib[0] = mcxic->Pt();
2104 cont_xib[1] = mcxic->Y();
2107 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
2117 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
2127 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
2137 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
2157 if( mexi_flip <10. && cosoa < 0. && fAnalCuts->IsPeakRegion(casc))
2159 if(trk->Charge()*casc->ChargeXi()<0){
2172 if(trk->Charge()*casc->ChargeXi()<0){
2190 if( mexi_flip< 10. && cosoa < 0. && fAnalCuts->IsSideBand(casc))
2192 if(trk->Charge()*casc->ChargeXi()<0){
2206 for(
Int_t iv=0;iv<14;iv++){
2210 for(
Int_t iv=0;iv<7;iv++){
2211 cont_cor_nd[iv] = -9999.;
2214 for(
Int_t iv=0;iv<8;iv++){
2215 cont_mass_nd[iv] = -9999.;
2225 if(trk->Charge()>0){
2228 }
else if(trk->Charge()<0){
2238 cont_cor_nd[0] = exobj->Pt();
2240 cont_cor_nd[2] = 1.;
2241 if(trk->Charge()>0){
2242 if(casc->ChargeXi()<0) cont_cor_nd[3] = 0;
2243 else cont_cor_nd[3] = 2;
2244 }
else if(trk->Charge()<0){
2245 if(casc->ChargeXi()<0) cont_cor_nd[3] = 3;
2246 else cont_cor_nd[3] = 1;
2254 Int_t pdgcode = mcxic->GetPdgCode();
2255 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
2259 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
2263 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
2267 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
2271 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
2306 if(exobj->InvMass(2,pdgdg)<2.5)
2308 cont_cor_nd[0] = trk->Pt();
2310 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2313 if(exobj->InvMass(2,pdgdg)<2.5)
2315 cont_cor_nd[0] = trk->Pt();
2317 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2322 cont_mass_nd[0] = exobj->InvMass(2,pdgdg);
2323 cont_mass_nd[1] = cont_cor_nd[0];
2324 cont_mass_nd[4] = cont_cor_nd[3];
2325 cont_mass_nd[5] = cont_cor_nd[4];
2326 cont_mass_nd[6] = cont_cor_nd[5];
2327 cont_mass_nd[7] = cont_cor_nd[6];
2331 if(mexi_flip < 10.&& cosoa < 0.) cont_mass_nd[2]=0;
2334 cont_cor_nd[0] = trk->Pt();
2336 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2340 cont_cor_nd[0] = trk->Pt();
2342 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2360 for(
Int_t i=0;i<90;i++){
2367 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
2368 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
2373 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
2374 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
2376 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
2382 Double_t mexi = sqrt(Esum*Esum-pxsum*pxsum-pysum*pysum-pzsum*pzsum);
2387 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
2388 Double_t pxv_flip = pxv + lf * uxe;
2389 Double_t pyv_flip = pyv + lf * uye;
2390 Double_t pzv_flip = pzv + lf * uze;
2391 Double_t pxsum_flip = pxe + pxv_flip;
2392 Double_t pysum_flip = pye + pyv_flip;
2393 Double_t pzsum_flip = pze + pzv_flip;
2394 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
2395 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
2398 fVtx1->GetXYZ(posVtx);
2401 UInt_t pdgdg[2]={11,3312};
2427 cont[1] = sqrt(pxsum*pxsum+pysum*pysum);
2432 cont_flip[0] = mexi_flip;
2433 cont_flip[1] = ptexi_flip;
2439 cont2[1] = sqrt(pxe*pxe+pye*pye);
2443 cont_eleptvseta[0] = trke->Pt();
2444 cont_eleptvseta[1] = trke->Eta();
2448 cont_eleptvsxipt[0] = trke->Pt();
2449 cont_eleptvsxipt[1] = casc->Pt();
2453 cont_eleptvsd0[0] = trke->Pt();
2454 cont_eleptvsd0[1] = 0.;
2457 Double_t xyzR125_ele[3], xyzR125_pr[3], xyzR125_pi[3], xyzR125_bach[3];
2458 xyzR125_ele[0] = (*elevars)[0];
2459 xyzR125_ele[1] = (*elevars)[1];
2460 xyzR125_ele[2] = (*elevars)[2];
2461 xyzR125_pr[0] = (*cascvars)[0];
2462 xyzR125_pr[1] = (*cascvars)[1];
2463 xyzR125_pr[2] = (*cascvars)[2];
2464 xyzR125_pi[0] = (*cascvars)[3];
2465 xyzR125_pi[1] = (*cascvars)[4];
2466 xyzR125_pi[2] = (*cascvars)[5];
2467 xyzR125_bach[0] = (*cascvars)[6];
2468 xyzR125_bach[1] = (*cascvars)[7];
2469 xyzR125_bach[2] = (*cascvars)[8];
2472 rdhfcutvars[0] = xyzR125_ele[0];
2473 rdhfcutvars[1] = xyzR125_ele[1];
2474 rdhfcutvars[2] = xyzR125_ele[2];
2475 rdhfcutvars[3] = xyzR125_pr[0];
2476 rdhfcutvars[4] = xyzR125_pr[1];
2477 rdhfcutvars[5] = xyzR125_pr[2];
2478 rdhfcutvars[6] = xyzR125_pi[0];
2479 rdhfcutvars[7] = xyzR125_pi[1];
2480 rdhfcutvars[8] = xyzR125_pi[2];
2481 rdhfcutvars[9] = xyzR125_bach[0];
2482 rdhfcutvars[10] = xyzR125_bach[1];
2483 rdhfcutvars[11] = xyzR125_bach[2];
2495 if(((
int)trke->T())*chargexi<0){
2531 if(mexi_flip < 10. && cosoa<0. && fAnalCuts->IsPeakRegion(casc))
2533 if(((
int)trke->T())*chargexi<0){
2547 for(
Int_t iv=0;iv<14;iv++){
2552 for(
Int_t iv=0;iv<7;iv++){
2553 cont_cor_nd[iv] = -9999.;
2556 for(
Int_t iv=0;iv<8;iv++){
2557 cont_mass_nd[iv] = -9999.;
2564 fCorrelationVariables[5] = (*elevars)[5];
2565 fCorrelationVariables[6] = 2;
2567 if(chargexi<0) fCorrelationVariables[7] = 0;
2568 else fCorrelationVariables[7] = 2;
2569 }
else if(trke->T()<0){
2570 if(chargexi<0) fCorrelationVariables[7] = 1;
2571 else fCorrelationVariables[7] = 3;
2573 fCorrelationVariables[8] = (*elevars)[6];
2574 fCorrelationVariables[9] = (*elevars)[7];
2576 fCorrelationVariables[11] = sqrt(pxsum*pxsum+pysum*pysum);
2577 fCorrelationVariables[12] = mexi;
2578 fCorrelationVariables[13] = cosoa;
2580 cont_cor_nd[0] = sqrt(pxsum*pxsum+pysum*pysum);
2581 cont_cor_nd[1] = TVector2::Phi_mpi_pi(casc->Phi()-trke->Phi());
2582 cont_cor_nd[2] = 1.;
2584 if(chargexi<0) cont_cor_nd[3] = 0;
2585 else cont_cor_nd[3] = 2;
2586 }
else if(trke->T()<0){
2587 if(chargexi<0) cont_cor_nd[3] = 3;
2588 else cont_cor_nd[3] = 1;
2590 cont_cor_nd[4] = fCorrelationVariables[8];
2592 if(fabs(fCorrelationVariables[9]-1013)<0.001) cont_cor_nd[5] = 7;
2593 if(fabs(fCorrelationVariables[9]-1016)<0.001) cont_cor_nd[5] = 8;
2594 if(fabs(fCorrelationVariables[9]-1019)<0.001) cont_cor_nd[5] = 9;
2604 cont_cor_nd[0] = trke->Pt();
2606 cont_cor_nd[0] = casc->Pt();
2610 cont_mass_nd[0] = mexi;
2611 cont_mass_nd[1] = cont_cor_nd[0];
2612 cont_mass_nd[4] = cont_cor_nd[3];
2613 cont_mass_nd[5] = cont_cor_nd[4];
2614 cont_mass_nd[6] = cont_cor_nd[5];
2615 cont_mass_nd[7] = cont_cor_nd[6];
2619 if(mexi_flip < 10.&& cosoa < 0.) cont_mass_nd[2]=0;
2621 cont_mass_nd[0] = trke->Pt();
2623 cont_mass_nd[0] = casc->Pt();
2636 const char* nameoutput = GetOutputSlot(11)->GetContainer()->GetName();
2642 fCandidateVariableNames[ 0]=
"Px";
2643 fCandidateVariableNames[ 1]=
"Py";
2644 fCandidateVariableNames[ 2]=
"Pz";
2645 fCandidateVariableNames[ 3]=
"Charge";
2646 fCandidateVariableNames[ 4]=
"XiMass";
2647 fCandidateVariableNames[ 5]=
"Bz";
2648 fCandidateVariableNames[ 6]=
"Centrality";
2649 fCandidateVariableNames[ 7]=
"PrimVertZ";
2650 fCandidateVariableNames[ 8]=
"EvNumber";
2651 fCandidateVariableNames[ 9]=
"RunNumber";
2652 fCandidateVariableNames[10]=
"EventPlane";
2653 fCandidateVariableNames[11]=
"Vars0";
2654 fCandidateVariableNames[12]=
"Vars1";
2655 fCandidateVariableNames[13]=
"Vars2";
2656 fCandidateVariableNames[14]=
"Vars3";
2657 fCandidateVariableNames[15]=
"Vars4";
2673 const char* nameoutput = GetOutputSlot(5)->GetContainer()->GetName();
2679 fCandidateVariableNames[ 0]=
"ElePx";
2680 fCandidateVariableNames[ 1]=
"ElePy";
2681 fCandidateVariableNames[ 2]=
"ElePz";
2682 fCandidateVariableNames[ 3]=
"TPCChi2overNDF";
2683 fCandidateVariableNames[ 4]=
"ITSNcls";
2684 fCandidateVariableNames[ 5]=
"TPCNcls";
2685 fCandidateVariableNames[ 6]=
"TPCNclsPID";
2686 fCandidateVariableNames[ 7]=
"TPCNclsRatio";
2687 fCandidateVariableNames[ 8]=
"d0R";
2688 fCandidateVariableNames[ 9]=
"d0Z";
2689 fCandidateVariableNames[10]=
"ITSClusterMap";
2690 fCandidateVariableNames[11]=
"nSigmaTPCele";
2691 fCandidateVariableNames[12]=
"nSigmaTOFele";
2692 fCandidateVariableNames[13]=
"nSigmaTPCpi";
2693 fCandidateVariableNames[14]=
"nSigmaTPCka";
2694 fCandidateVariableNames[15]=
"nSigmaTPCpr";
2695 fCandidateVariableNames[16]=
"EvNumber";
2696 fCandidateVariableNames[17]=
"EleCharge";
2697 fCandidateVariableNames[18]=
"ElePdgCode";
2698 fCandidateVariableNames[19]=
"EleMotherPdgCode";
2699 fCandidateVariableNames[20]=
"mcelepx";
2700 fCandidateVariableNames[21]=
"mcelepy";
2701 fCandidateVariableNames[22]=
"mcelepz";
2702 fCandidateVariableNames[23]=
"Centrality";
2703 fCandidateVariableNames[24]=
"PrimVertZ";
2704 fCandidateVariableNames[25]=
"RunNumber";
2721 AliAODTrack *trkpid = 0;
2723 trkpid =
fGTI[-trk->GetID()-1];
2732 trk->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0,covd0z0);
2742 Int_t mcetype = -9999;
2743 Int_t pdgEle = -9999;
2744 Int_t pdgEleMother = -9999;
2748 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
2749 for(
Int_t i=0;i<100;i++){
2750 pdgarray_ele[i]=-9999;
2751 labelarray_ele[i]=-9999;
2756 Int_t labEle = trk->GetLabel();
2757 if(labEle<0)
return;
2758 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
2760 pdgEle = mcetrk->GetPdgCode();
2761 if(abs(pdgEle)!=11)
return;
2762 mcepx = mcetrk->Px();
2763 mcepy = mcetrk->Py();
2764 mcepz = mcetrk->Pz();
2766 Int_t labEleMother = mcetrk->GetMother();
2767 if(labEleMother>-1){
2768 AliAODMCParticle *mcemothertrk = (AliAODMCParticle*)mcArray->At(labEleMother);
2770 pdgEleMother = mcemothertrk->GetPdgCode();
2777 Bool_t gamma_flag = kFALSE;
2778 Bool_t pi0_flag = kFALSE;
2779 Bool_t eta_flag = kFALSE;
2782 if(abs(pdgarray_ele[0])>400&&abs(pdgarray_ele[0])<440){
2785 if(abs(pdgarray_ele[0])>4000&&abs(pdgarray_ele[0])<4400){
2788 if(abs(pdgarray_ele[0])>500&&abs(pdgarray_ele[0])<540){
2791 if(abs(pdgarray_ele[0])>5000&&abs(pdgarray_ele[0])<5400){
2794 if(abs(pdgarray_ele[0])==22){
2800 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==111)){
2802 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
2803 pt_pi0 = mctrkm->Pt();
2805 if(abs(pdgarray_ele[0])==111){
2807 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
2808 pt_pi0 = mctrkm->Pt();
2810 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==221)){
2812 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
2813 pt_eta = mctrkm->Pt();
2815 if(abs(pdgarray_ele[0])==221){
2817 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
2818 pt_eta = mctrkm->Pt();
2823 cont_pi0[0] = trk->Pt();
2824 cont_pi0[1] = pt_pi0;
2832 cont_eta[0] = trk->Pt();
2833 cont_eta[1] = pt_eta;
2839 if(hfe_flag==0)
return;
2855 pv[0] =
fVtx1->GetX();
2856 pv[1] =
fVtx1->GetY();
2857 pv[2] =
fVtx1->GetZ();
2858 Double_t xyzR125[3] = {9999.,9999.,9999.};
2860 TVector *varvec =
new TVector(8);
2861 (*varvec)[0] = xyzR125[0];
2862 (*varvec)[1] = xyzR125[1];
2863 (*varvec)[2] = xyzR125[2];
2866 (*varvec)[5] = d0z0[0];
2867 (*varvec)[6] = (
Int_t)isconv + 2 * (
Int_t)isconv_like;
2868 (*varvec)[7] = mcetype;
2871 m_ReservoirE[
fPoolIndex][nextRes].push_back(
new TLorentzVector(trk->Px(),trk->Py(),trk->Pz(),trk->Charge()));
2878 for(
Int_t i=0;i<26;i++){
2881 for(
Int_t i=0;i<16;i++){
2969 const char* nameoutput = GetOutputSlot(6)->GetContainer()->GetName();
2975 fCandidateVariableNames[ 0]=
"Centrality";
2976 fCandidateVariableNames[ 1]=
"InvMassXi";
2977 fCandidateVariableNames[ 2]=
"XiPx";
2978 fCandidateVariableNames[ 3]=
"XiPy";
2979 fCandidateVariableNames[ 4]=
"XiPz";
2980 fCandidateVariableNames[ 5]=
"InvMassLambda";
2981 fCandidateVariableNames[ 6]=
"DcaXiDaughters";
2982 fCandidateVariableNames[ 7]=
"DcaV0Daughters";
2983 fCandidateVariableNames[ 8]=
"DecayLengthXi";
2984 fCandidateVariableNames[ 9]=
"CosPointingAngleXi";
2985 fCandidateVariableNames[10]=
"DcaV0toPrimVertex";
2986 fCandidateVariableNames[11]=
"DcaPostoPrimVertex";
2987 fCandidateVariableNames[12]=
"DcaNegtoPrimVertex";
2988 fCandidateVariableNames[13]=
"DcaBachtoPrimVertex";
2989 fCandidateVariableNames[14]=
"DecayLengthV0";
2990 fCandidateVariableNames[15]=
"CosPointingAngleV0";
2991 fCandidateVariableNames[16]=
"XiCharge";
2992 fCandidateVariableNames[17]=
"XiPdgCode";
2993 fCandidateVariableNames[18]=
"XiMotherPdgCode";
2994 fCandidateVariableNames[19]=
"mcxipx";
2995 fCandidateVariableNames[20]=
"mcxipy";
2996 fCandidateVariableNames[21]=
"mcxipz";
2997 fCandidateVariableNames[22]=
"labcasc";
2998 fCandidateVariableNames[23]=
"RunNumber";
2999 fCandidateVariableNames[24]=
"PrimVertZ";
3000 fCandidateVariableNames[25]=
"EvNumber";
3016 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
3017 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
3018 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
3019 if(!cptrack)
return;
3020 if(!cntrack)
return;
3021 if(!cbtrack)
return;
3023 fHistoXiMassvsPt->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3024 fHistoOmegaMassvsPt->Fill(casc->MassOmega(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3027 Double_t phi_alice = atan2(momxiy,momxix);
3028 if(phi_alice<0.) phi_alice += 2 * M_PI;
3031 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
3033 fVtx1->GetXYZ(posVtx);
3034 Double_t ptotlam = TMath::Sqrt(pow(casc->Px(),2)+pow(casc->Py(),2)+pow(casc->Pz(),2));
3035 Double_t dl = sqrt(pow(casc->DecayVertexV0X()-posVtx[0],2)+pow(casc->DecayVertexV0Y()-posVtx[1],2)+pow(casc->DecayVertexV0Z()-posVtx[2],2));
3036 Double_t v0propdl = dl*mlamPDG/ptotlam;
3046 Int_t xipdgcode = -9999;
3047 Int_t ximotherpdgcode = -9999;
3051 Int_t labcasc = -9999.;
3053 Int_t pdgDgcasc[2]={211,3122};
3054 Int_t pdgDgv0[2]={2212,211};
3056 if(labcasc<0)
return;
3058 fHistoXiMassvsPtMCS->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3060 AliAODMCParticle *mccasctrk = (AliAODMCParticle*)mcArray->At(labcasc);
3061 if(!mccasctrk)
return;
3066 Bool_t hfxi_flag = kFALSE;
3067 xipdgcode = mccasctrk->GetPdgCode();
3068 Int_t labcascmother = mccasctrk->GetMother();
3069 if(labcascmother>=0){
3070 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
3072 ximotherpdgcode = mothercasc->GetPdgCode();
3073 if(abs(ximotherpdgcode)>4000&&abs(ximotherpdgcode)<4400){
3078 if(!hfxi_flag)
return;
3079 mcxipx = mccasctrk->Px();
3080 mcxipy = mccasctrk->Py();
3081 mcxipz = mccasctrk->Pz();
3086 xyz[0]=casc->DecayVertexXiX();
3087 xyz[1]=casc->DecayVertexXiY();
3088 xyz[2]=casc->DecayVertexXiZ();
3089 pxpypz[0]=casc->MomXiX();
3090 pxpypz[1]=casc->MomXiY();
3091 pxpypz[2]=casc->MomXiZ();
3092 casc->GetCovarianceXYZPxPyPz(cv);
3093 sign=casc->ChargeXi();
3094 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3095 trackCasc->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig);
3096 Double_t momcasc_new[3]={-9999,-9999,-9999.};
3097 trackCasc->GetPxPyPz(momcasc_new);
3102 TLorentzVector *lv =
new TLorentzVector();
3103 lv->SetXYZM(momcasc_new[0],momcasc_new[1],momcasc_new[2],casc->MassXi());
3104 Double_t xyzR125pr[3]={9999.,9999.,9999.};
3105 Double_t xyzR125pi[3]={9999.,9999.,9999.};
3106 Double_t xyzR125bach[3]={9999.,9999.,9999.};
3107 if(casc->ChargeXi()>0){
3114 TVector *varvec =
new TVector(9);
3115 (*varvec)[0] = xyzR125pr[0];
3116 (*varvec)[1] = xyzR125pr[1];
3117 (*varvec)[2] = xyzR125pr[2];
3118 (*varvec)[3] = xyzR125pi[0];
3119 (*varvec)[4] = xyzR125pi[1];
3120 (*varvec)[5] = xyzR125pi[2];
3121 (*varvec)[6] = xyzR125bach[0];
3122 (*varvec)[7] = xyzR125bach[1];
3123 (*varvec)[8] = xyzR125bach[2];
3132 TVector *varvec =
new TVector(9);
3133 (*varvec)[0] = xyzR125pr[0];
3134 (*varvec)[1] = xyzR125pr[1];
3135 (*varvec)[2] = xyzR125pr[2];
3136 (*varvec)[3] = xyzR125pi[0];
3137 (*varvec)[4] = xyzR125pi[1];
3138 (*varvec)[5] = xyzR125pi[2];
3139 (*varvec)[6] = xyzR125bach[0];
3140 (*varvec)[7] = xyzR125bach[1];
3141 (*varvec)[8] = xyzR125bach[2];
3148 for(
Int_t i=0;i<26;i++){
3151 for(
Int_t i=0;i<16;i++){
3221 const char* nameoutput = GetOutputSlot(7)->GetContainer()->GetName();
3227 fCandidateVariableNames[ 0]=
"Centrality";
3228 fCandidateVariableNames[ 1]=
"DecayType";
3229 fCandidateVariableNames[ 2]=
"XicPx";
3230 fCandidateVariableNames[ 3]=
"XicPy";
3231 fCandidateVariableNames[ 4]=
"XicPz";
3232 fCandidateVariableNames[ 5]=
"ElePx";
3233 fCandidateVariableNames[ 6]=
"ElePy";
3234 fCandidateVariableNames[ 7]=
"ElePz";
3235 fCandidateVariableNames[ 8]=
"CascPx";
3236 fCandidateVariableNames[ 9]=
"CascPy";
3237 fCandidateVariableNames[10]=
"CascPz";
3238 fCandidateVariableNames[11]=
"PdgCode";
3239 fCandidateVariableNames[12]=
"ElePdgCode";
3240 fCandidateVariableNames[13]=
"CascPdgCode";
3241 fCandidateVariableNames[14]=
"RunNumber";
3242 fCandidateVariableNames[15]=
"EvNumber";
3256 if(!mcepart)
return;
3257 if(!mccascpart)
return;
3259 for(
Int_t i=0;i<14;i++){
3283 Double_t eE = sqrt(epx*epx+epy*epy+epz*epz+0.000511*0.000511);
3284 Double_t cascpx = mccascpart->Px();
3285 Double_t cascpy = mccascpart->Py();
3286 Double_t cascpz = mccascpart->Pz();
3287 Double_t cascE = sqrt(cascpx*cascpx+cascpy*cascpy+cascpz*cascpz+1.32171*1.32171);
3289 Double_t InvMassEleXi = sqrt(pow(eE+cascE,2)-pow(epx+cascpx,2)-pow(epy+cascpy,2)-pow(epz+cascpz,2));
3292 cont[0] = InvMassEleXi;
3293 cont[1] = mcpart->Pt();
3297 cont2[0] = InvMassEleXi;
3298 cont2[1] = mcepart->Pt();
3301 cont_eleptvseta[0] = mcepart->Pt();
3302 cont_eleptvseta[1] = mcepart->Eta();
3305 cont_eleptvsxipt[0] = mcepart->Pt();
3306 cont_eleptvsxipt[1] = mccascpart->Pt();
3308 Double_t cont_eleptvsxiptvsxicpt[4];
3309 cont_eleptvsxiptvsxicpt[0] = mcepart->Pt();
3310 cont_eleptvsxiptvsxicpt[1] = mccascpart->Pt();
3311 cont_eleptvsxiptvsxicpt[2] = mcpart->Pt();
3315 contmc[0] = mcpart->Pt();
3316 contmc[1] = mcpart->Y();
3319 contmcele[0] = mcepart->Pt();
3320 contmcele[1] = mcepart->Eta();
3326 esdcuts->GetEtaRange(etamin,etamax);
3336 if(fabs(mcepart->Eta())<etamax){
3340 if(InvMassEleXi<2.5){
3346 if(fabs(mcpart->Y())<0.7){
3347 if(InvMassEleXi<2.5){
3352 }
else if(decaytype==10){
3366 const char* nameoutput = GetOutputSlot(9)->GetContainer()->GetName();
3372 fCandidateVariableNames[ 0]=
"Centrality";
3373 fCandidateVariableNames[ 1]=
"ElePx";
3374 fCandidateVariableNames[ 2]=
"ElePy";
3375 fCandidateVariableNames[ 3]=
"ElePz";
3376 fCandidateVariableNames[ 4]=
"ElePdgCode";
3377 fCandidateVariableNames[ 5]=
"EleMotherPdgCode";
3378 fCandidateVariableNames[ 6]=
"RunNumber";
3379 fCandidateVariableNames[ 7]=
"EvNumber";
3392 if(!mcepart)
return;
3394 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
3401 contmc[0] = mcepart->Pt();
3402 contmc[1] = mcepart->Eta();
3405 if(semi_flag==1 && !ele_from_bottom){
3408 if(semi_flag==1 && ele_from_bottom){
3416 Bool_t hfe_flag = kFALSE;
3417 Int_t labemother = mcepart->GetMother();
3418 Int_t pdgmotherele = -9999;
3420 AliAODMCParticle *motherele = (AliAODMCParticle*)mcArray->At(labemother);
3421 pdgmotherele = motherele->GetPdgCode();
3422 if(abs(pdgmotherele)>4000&&abs(pdgmotherele)<4400){
3426 if(!hfe_flag)
return;
3430 for(
Int_t i=0;i<8;i++){
3454 const char* nameoutput = GetOutputSlot(10)->GetContainer()->GetName();
3460 fCandidateVariableNames[ 0]=
"Centrality";
3461 fCandidateVariableNames[ 1]=
"CascPx";
3462 fCandidateVariableNames[ 2]=
"CascPy";
3463 fCandidateVariableNames[ 3]=
"CascPz";
3464 fCandidateVariableNames[ 4]=
"CascPdgCode";
3465 fCandidateVariableNames[ 5]=
"CascMotherPdgCode";
3466 fCandidateVariableNames[ 6]=
"RunNumber";
3467 fCandidateVariableNames[ 7]=
"EvNumber";
3480 if(!mccascpart)
return;
3482 for(
Int_t i=0;i<8;i++){
3486 Bool_t hfxi_flag = kFALSE;
3487 Int_t labcascmother = mccascpart->GetMother();
3488 Int_t pdgmothercasc = -9999;
3489 if(labcascmother>=0){
3490 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
3492 pdgmothercasc = mothercasc->GetPdgCode();
3493 if(abs(pdgmothercasc)>4000&&abs(pdgmothercasc)<4400){
3498 if(!hfxi_flag)
return;
3501 contmc[0] = mccascpart->Pt();
3502 contmc[1] = mccascpart->Eta();
3526 fCEvents =
new TH1F(
"fCEvents",
"conter",18,-0.5,17.5);
3528 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3529 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3530 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3531 fCEvents->GetXaxis()->SetBinLabel(4,
"TriggerOK");
3532 fCEvents->GetXaxis()->SetBinLabel(5,
"IsEventSelected");
3533 fCEvents->GetXaxis()->SetBinLabel(6,
"CascadesHF exists");
3534 fCEvents->GetXaxis()->SetBinLabel(7,
"MCarray exists");
3535 fCEvents->GetXaxis()->SetBinLabel(8,
"MCheader exists");
3536 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3537 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3538 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3539 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3540 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3541 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3543 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3544 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3547 fCEvents->GetYaxis()->SetTitle(
"counts");
3549 fHTrigger =
new TH1F(
"fHTrigger",
"counter",18,-0.5,17.5);
3551 fHTrigger->GetXaxis()->SetBinLabel(1,
"X1");
3552 fHTrigger->GetXaxis()->SetBinLabel(2,
"kMB");
3553 fHTrigger->GetXaxis()->SetBinLabel(3,
"kSemiCentral");
3554 fHTrigger->GetXaxis()->SetBinLabel(4,
"kCentral");
3555 fHTrigger->GetXaxis()->SetBinLabel(5,
"kINT7");
3556 fHTrigger->GetXaxis()->SetBinLabel(6,
"kEMC7");
3558 fHTrigger->GetXaxis()->SetBinLabel(8,
"kMB|kSemiCentral|kCentral");
3559 fHTrigger->GetXaxis()->SetBinLabel(9,
"kINT7|kEMC7");
3560 fHTrigger->GetXaxis()->SetBinLabel(11,
"kMB&kSemiCentral");
3561 fHTrigger->GetXaxis()->SetBinLabel(12,
"kMB&kCentral");
3562 fHTrigger->GetXaxis()->SetBinLabel(13,
"kINT7&kEMC7");
3564 fHCentrality =
new TH1F(
"fHCentrality",
"conter",100,0.,100.);
3565 fHEventPlane =
new TH1F(
"fHEventPlane",
"conter",100,-3.14,3.14);
3566 fHNTrackletvsZ =
new TH2F(
"fHNTrackletvsZ",
"N_{tracklet} vs z",30,-15.,15.,120,-0.5,119.5);
3588 Int_t bins_base[4]= {22 ,100 , 100 ,10};
3589 Double_t xmin_base[4]={1.3,0 , -0.5 ,0.00};
3590 Double_t xmax_base[4]={5.7,20. , 0.5 ,100};
3592 fHistoEleXiMass =
new THnSparseF(
"fHistoEleXiMass",
"",4,bins_base,xmin_base,xmax_base);
3594 fHistoEleXiMassRS =
new THnSparseF(
"fHistoEleXiMassRS",
"",4,bins_base,xmin_base,xmax_base);
3596 fHistoEleXiMassWS =
new THnSparseF(
"fHistoEleXiMassWS",
"",4,bins_base,xmin_base,xmax_base);
3598 fHistoEleXiMassRSMix =
new THnSparseF(
"fHistoEleXiMassRSMix",
"",4,bins_base,xmin_base,xmax_base);
3600 fHistoEleXiMassWSMix =
new THnSparseF(
"fHistoEleXiMassWSMix",
"",4,bins_base,xmin_base,xmax_base);
3606 fHistoEleXiMassRS1 =
new THnSparseF(
"fHistoEleXiMassRS1",
"",4,bins_base,xmin_base,xmax_base);
3608 fHistoEleXiMassWS1 =
new THnSparseF(
"fHistoEleXiMassWS1",
"",4,bins_base,xmin_base,xmax_base);
3618 fHistoEleXiMassRS2 =
new THnSparseF(
"fHistoEleXiMassRS2",
"",4,bins_base,xmin_base,xmax_base);
3620 fHistoEleXiMassWS2 =
new THnSparseF(
"fHistoEleXiMassWS2",
"",4,bins_base,xmin_base,xmax_base);
3668 Int_t bins_base_elept[3]= {10 ,100 ,10};
3669 Double_t xmin_base_elept[3]={1.3,0 ,0.00};
3670 Double_t xmax_base_elept[3]={3.3,10. ,100};
3672 fHistoEleXiMassvsElePtRS =
new THnSparseF(
"fHistoEleXiMassvsElePtRS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3674 fHistoEleXiMassvsElePtWS =
new THnSparseF(
"fHistoEleXiMassvsElePtWS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3684 fHistoEleXiMassvsElePtRS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3686 fHistoEleXiMassvsElePtWS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3696 fHistoEleXiMassvsElePtRS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3698 fHistoEleXiMassvsElePtWS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3709 fHistoElePtRS=
new TH2F(
"fHistoElePtRS",
"Right-sign e pt",100,0.,10.,10,0.,100.);
3711 fHistoElePtWS=
new TH2F(
"fHistoElePtWS",
"Wrong-sign e pt",100,0.,10.,10,0.,100.);
3718 fHistoEleXiMassMCS =
new THnSparseF(
"fHistoEleXiMassMCS",
"",4,bins_base,xmin_base,xmax_base);
3720 fHistoEleXiMassMCS1 =
new THnSparseF(
"fHistoEleXiMassMCS1",
"",4,bins_base,xmin_base,xmax_base);
3722 fHistoEleXiMassMCS2 =
new THnSparseF(
"fHistoEleXiMassMCS2",
"",4,bins_base,xmin_base,xmax_base);
3742 fHistoEleXiMassMCGen =
new THnSparseF(
"fHistoEleXiMassMCGen",
"",4,bins_base,xmin_base,xmax_base);
3744 fHistoEleXiMassvsElePtMCS =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3748 fHistoEleXiMassvsElePtMCS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3752 fHistoEleXiMassvsElePtMCS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3761 Int_t bins_eleptvseta[3]= {50,20 ,10};
3762 Double_t xmin_eleptvseta[3]={0.,-1. ,0.0};
3763 Double_t xmax_eleptvseta[3]={5.,1. ,100};
3765 fHistoElePtvsEtaRS =
new THnSparseF(
"fHistoElePtvsEtaRS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3767 fHistoElePtvsEtaWS =
new THnSparseF(
"fHistoElePtvsEtaWS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3769 fHistoElePtvsEtaRSMix =
new THnSparseF(
"fHistoElePtvsEtaRSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3771 fHistoElePtvsEtaWSMix =
new THnSparseF(
"fHistoElePtvsEtaWSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3773 fHistoElePtvsEtaMCS =
new THnSparseF(
"fHistoElePtvsEtaMCS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3775 fHistoElePtvsEtaMCGen =
new THnSparseF(
"fHistoElePtvsEtaMCGen",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3778 Int_t bins_eleptvsxipt[3]= {50,20 ,10};
3779 Double_t xmin_eleptvsxipt[3]={0.,0. ,0.0};
3780 Double_t xmax_eleptvsxipt[3]={5.,5. ,100};
3782 fHistoElePtvsXiPtRS =
new THnSparseF(
"fHistoElePtvsXiPtRS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3784 fHistoElePtvsXiPtWS =
new THnSparseF(
"fHistoElePtvsXiPtWS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3786 fHistoElePtvsXiPtRSMix =
new THnSparseF(
"fHistoElePtvsXiPtRSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3788 fHistoElePtvsXiPtWSMix =
new THnSparseF(
"fHistoElePtvsXiPtWSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3790 fHistoElePtvsXiPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtMCS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3792 fHistoElePtvsXiPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtMCGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3794 fHistoElePtvsXiPtMCXicGen =
new THnSparseF(
"fHistoElePtvsXiPtMCXicGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3797 Int_t bins_eleptvsxiptvsxicpt[4]= {50,20,10,10};
3798 Double_t xmin_eleptvsxiptvsxicpt[4]={0.,0.,0.,0.0};
3799 Double_t xmax_eleptvsxiptvsxicpt[4]={5.,5.,10.,100};
3800 fHistoElePtvsXiPtvsXicPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCS",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3802 fHistoElePtvsXiPtvsXicPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCGen",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3805 Int_t bins_eleptvsd0[3]= {50 ,50 ,10};
3806 Double_t xmin_eleptvsd0[3]={0.,-0.2 ,0.0};
3807 Double_t xmax_eleptvsd0[3]={5.,0.2 ,100};
3809 fHistoElePtvsd0RS =
new THnSparseF(
"fHistoElePtvsd0RS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3811 fHistoElePtvsd0WS =
new THnSparseF(
"fHistoElePtvsd0WS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3813 fHistoElePtvsd0RSMix =
new THnSparseF(
"fHistoElePtvsd0RSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3815 fHistoElePtvsd0WSMix =
new THnSparseF(
"fHistoElePtvsd0WSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3817 fHistoElePtvsd0MCS =
new THnSparseF(
"fHistoElePtvsd0MCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3819 fHistoElePtvsd0PromptMCS =
new THnSparseF(
"fHistoElePtvsd0PromptMCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3827 fHistoBachPt =
new TH1F(
"fHistoBachPt",
"Bachelor p_{T}",100,0.0,5.0);
3829 fHistoBachPtMCS =
new TH1F(
"fHistoBachPtMCS",
"Bachelor p_{T}",100,0.0,5.0);
3833 fHistod0Bach =
new TH1F(
"fHistod0Bach",
"Bachelor d_{0}",100,-0.5,0.5);
3865 for(
Int_t i=0;i<8;i++){
3875 Int_t bins_xicmcgen[3]= {100 ,20 ,10};
3876 Double_t xmin_xicmcgen[3]={0.,-1.0 ,0.0};
3877 Double_t xmax_xicmcgen[3]={20.,1.0 ,100};
3878 fHistoXicMCGen =
new THnSparseF(
"fHistoXicMCGen",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3880 fHistoXicMCGen1 =
new THnSparseF(
"fHistoXicMCGen1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3882 fHistoXicMCGen2 =
new THnSparseF(
"fHistoXicMCGen2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3884 fHistoXicMCS =
new THnSparseF(
"fHistoXicMCS",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3886 fHistoXicMCS1 =
new THnSparseF(
"fHistoXicMCS1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3888 fHistoXicMCS2 =
new THnSparseF(
"fHistoXicMCS2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3891 Int_t bins_xibmcgen[3]= {100 ,20 ,10};
3892 Double_t xmin_xibmcgen[3]={0.,-1.0 ,0.0};
3893 Double_t xmax_xibmcgen[3]={50.,1.0 ,100};
3894 fHistoXibMCGen =
new THnSparseF(
"fHistoXibMCGen",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3896 fHistoXibMCS =
new THnSparseF(
"fHistoXibMCS",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3899 Int_t bins_xibmcgen_withxic[3]= {50 ,100 ,100};
3900 Double_t xmin_xibmcgen_withxic[3]={0.,-5.,-5.};
3901 Double_t xmax_xibmcgen_withxic[3]={50.,5.,5.};
3902 fHistoXibMCGenWithXic =
new THnSparseF(
"fHistoXibMCGenWithXic",
"",3,bins_xibmcgen_withxic,xmin_xibmcgen_withxic,xmax_xibmcgen_withxic);
3905 Int_t bins_elemcgen[3]= {100 ,20 ,10};
3906 Double_t xmin_elemcgen[3]={0.,-1.0 ,0.0};
3907 Double_t xmax_elemcgen[3]={10.,1.0 ,100};
3908 fHistoElectronMCGen =
new THnSparseF(
"fHistoElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3912 fHistoCharmElectronMCGen =
new THnSparseF(
"fHistoCharmElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3914 fHistoXicElectronMCGen =
new THnSparseF(
"fHistoXicElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3916 fHistoXicElectronMCGen1 =
new THnSparseF(
"fHistoXicElectronMCGen1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3918 fHistoXicElectronMCGen2 =
new THnSparseF(
"fHistoXicElectronMCGen2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3920 fHistoXicElectronMCS =
new THnSparseF(
"fHistoXicElectronMCS",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3922 fHistoXicElectronMCS1 =
new THnSparseF(
"fHistoXicElectronMCS1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3924 fHistoXicElectronMCS2 =
new THnSparseF(
"fHistoXicElectronMCS2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3927 Int_t bins_ximcgen[3]= {50 ,20 ,10};
3928 Double_t xmin_ximcgen[3]={0.,-1.0 ,0.0};
3929 Double_t xmax_ximcgen[3]={10.,1.0 ,100};
3930 fHistoXiMCGen =
new THnSparseF(
"fHistoXiMCGen",
"",3,bins_ximcgen,xmin_ximcgen,xmax_ximcgen);
4009 for(
Int_t ih=0;ih<23;ih++){
4010 Int_t bins_eleptvscutvars[3];
4014 bins_eleptvscutvars[0] = 20;
4015 xmin_eleptvscutvars[0] = 0.;
4016 xmax_eleptvscutvars[0] = 20.;
4017 bins_eleptvscutvars[2] = 10;
4018 xmin_eleptvscutvars[2] = 0.;
4019 xmax_eleptvscutvars[2] = 100.;
4023 bins_eleptvscutvars[1] = 40;
4024 xmin_eleptvscutvars[1] = 0.;
4025 xmax_eleptvscutvars[1] = 160.;
4026 }
else if(ih==2 || ih==3){
4028 bins_eleptvscutvars[1] = 20;
4029 xmin_eleptvscutvars[1] = -5.;
4030 xmax_eleptvscutvars[1] = 5.;
4033 bins_eleptvscutvars[1] = 30;
4034 xmin_eleptvscutvars[1] = -1.5;
4035 xmax_eleptvscutvars[1] = 1.5;
4038 bins_eleptvscutvars[1] = 7;
4039 xmin_eleptvscutvars[1] = -0.5;
4040 xmax_eleptvscutvars[1] = 6.5;
4043 bins_eleptvscutvars[1] = 50;
4044 xmin_eleptvscutvars[1] = 1.1156-0.03;
4045 xmax_eleptvscutvars[1] = 1.1156+0.03;
4048 bins_eleptvscutvars[1] = 50;
4049 xmin_eleptvscutvars[1] = 1.32-0.03;
4050 xmax_eleptvscutvars[1] = 1.32+0.03;
4051 }
else if(ih==8 || ih==9){
4053 bins_eleptvscutvars[1] = 20;
4054 xmin_eleptvscutvars[1] = 0.;
4055 xmax_eleptvscutvars[1] = 5.;
4056 }
else if(ih==10 || ih==11){
4058 bins_eleptvscutvars[1] = 20;
4059 xmin_eleptvscutvars[1] = 0.;
4060 xmax_eleptvscutvars[1] = 2.;
4061 }
else if(ih==12 || ih==13 || ih==14){
4063 bins_eleptvscutvars[1] = 20;
4064 xmin_eleptvscutvars[1] = 0.;
4065 xmax_eleptvscutvars[1] = 0.5;
4066 }
else if(ih==15 || ih==16){
4068 bins_eleptvscutvars[1] = 20;
4069 xmin_eleptvscutvars[1] = 0.95;
4070 xmax_eleptvscutvars[1] = 1.0;
4071 }
else if(ih==17 || ih==18 || ih==19){
4073 bins_eleptvscutvars[1] = 20;
4074 xmin_eleptvscutvars[1] = -5.;
4075 xmax_eleptvscutvars[1] = 5.;
4076 }
else if(ih==20 || ih==21){
4078 bins_eleptvscutvars[1] = 30;
4079 xmin_eleptvscutvars[1] = -1.5;
4080 xmax_eleptvscutvars[1] = 1.5;
4083 bins_eleptvscutvars[1] = 20;
4084 xmin_eleptvscutvars[1] = 0.;
4085 xmax_eleptvscutvars[1] = 3.141592/2;
4088 fHistoElePtvsCutVarsRS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsRS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4090 fHistoElePtvsCutVarsWS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsWS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4092 fHistoElePtvsCutVarsMCS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsMCS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4096 Int_t bins_eletag[3]= {20 ,40 ,10};
4097 Double_t xmin_eletag[3]={0.,0. ,0.0};
4098 Double_t xmax_eletag[3]={10.,20 ,100};
4099 fHistoElectronPi0Total =
new THnSparseF(
"fHistoElectronPi0Total",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4101 fHistoElectronPi0Tag =
new THnSparseF(
"fHistoElectronPi0Tag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4103 fHistoElectronEtaTotal =
new THnSparseF(
"fHistoElectronEtaTotal",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4105 fHistoElectronEtaTag =
new THnSparseF(
"fHistoElectronEtaTag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4120 Int_t bins_cor_nd[7]= {100 , 20, 20, 4, 3, 10, 10};
4121 Double_t xmin_cor_nd[7]={0.,-M_PI,0.,-0.5,-0.5,-0.5,0.};
4122 Double_t xmax_cor_nd[7]={20.,M_PI,40.,3.5,2.5,9.5,100.};
4123 Double_t xmax_cor_nd2[7]={10.,M_PI,40.,3.5,2.5,9.5,100.};
4142 Int_t bins_mass_nd[8]= {22,100 , 2, 2, 4, 3, 10, 10};
4143 Double_t xmin_mass_nd[8]={1.3,0.,-0.5,-0.5,-0.5,-0.5,-0.5,0.};
4144 Double_t xmax_mass_nd[8]={5.7,20.,1.5,1.5,3.5,2.5,9.5,100.};
4145 Double_t xmax_mass_nd2[8]={5.7,10.,1.5,1.5,3.5,2.5,9.5,100.};
4187 if(!casc)
return 0x0;
4188 if(!part)
return 0x0;
4189 if(!aod)
return 0x0;
4194 AliAODVertex *primVertexAOD;
4195 Bool_t unsetvtx = kFALSE;
4199 primVertexAOD =
fVtx1;
4204 primVertexAOD =
fVtx1;
4206 if(!primVertexAOD)
return 0x0;
4207 Double_t posprim[3]; primVertexAOD->GetXYZ(posprim);
4212 AliESDtrack *esdtrack =
new AliESDtrack((AliVTrack*)partpid);
4215 xyz[0]=casc->DecayVertexXiX();
4216 xyz[1]=casc->DecayVertexXiY();
4217 xyz[2]=casc->DecayVertexXiZ();
4218 pxpypz[0]=casc->MomXiX();
4219 pxpypz[1]=casc->MomXiY();
4220 pxpypz[2]=casc->MomXiZ();
4221 casc->GetCovarianceXYZPxPyPz(cv);
4222 sign=casc->ChargeXi();
4223 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
4226 Double_t dca = esdtrack->GetDCA(trackCasc,
fBzkG,xdummy,ydummy);
4233 Double_t d0z0bach[2],covd0z0bach[3];
4234 if(sqrt(pow(secVert->GetX(),2)+pow(secVert->GetY(),2))<1.){
4235 part->PropagateToDCA(secVert,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4236 trackCasc->PropagateToDCA(secVert,
fBzkG,kVeryBig);
4238 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4239 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig);
4241 Double_t momcasc_new[3]={-9999,-9999,-9999.};
4242 trackCasc->GetPxPyPz(momcasc_new);
4245 px[0] = part->Px(); py[0] = part->Py(); pz[0] = part->Pz();
4246 px[1] = momcasc_new[0]; py[1] = momcasc_new[1]; pz[1] = momcasc_new[2];
4253 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4255 d0err[0] = TMath::Sqrt(covd0z0bach[0]);
4257 Double_t d0z0casc[2],covd0z0casc[3];
4258 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0casc,covd0z0casc);
4260 d0err[1] = TMath::Sqrt(covd0z0casc[0]);
4269 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
4270 if(esdtrack)
delete esdtrack;
4271 if(trackCasc)
delete trackCasc;
4278 theCascade->GetSecondaryVtx()->AddDaughter(part);
4279 theCascade->GetSecondaryVtx()->AddDaughter(casc);
4280 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
4281 if(esdtrack)
delete esdtrack;
4282 if(trackCasc)
delete trackCasc;
4297 AliESDtrack *cptrk1 =
new AliESDtrack((AliVTrack*)trk);
4298 TrackArray->AddAt(cptrk1,0);
4300 AliESDtrack *cascptrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(0));
4301 TrackArray->AddAt(cascptrack,1);
4302 AliESDtrack *cascntrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(1));
4303 TrackArray->AddAt(cascntrack,2);
4304 AliESDtrack *cascbtrack =
new AliESDtrack((AliVTrack*)casc->GetDecayVertexXi()->GetDaughter(0));
4305 TrackArray->AddAt(cascbtrack,3);
4309 for(
Int_t i=0;i<4;i++)
4311 AliESDtrack *tesd = (AliESDtrack*)TrackArray->UncheckedAt(i);
4314 TrackArray->Clear();
4329 Bool_t fRecoPrimVtxSkippingTrks = kTRUE;
4330 Bool_t fRmTrksFromPrimVtx = kFALSE;
4332 AliESDVertex *vertexESD = 0;
4333 AliAODVertex *vertexAOD = 0;
4338 if(!fRecoPrimVtxSkippingTrks && !fRmTrksFromPrimVtx) {
4341 vertexESD =
new AliESDVertex(*
fV1);
4346 Int_t nTrks = trkArray->GetEntriesFast();
4347 AliVertexerTracks *vertexer =
new AliVertexerTracks(event->GetMagneticField());
4349 if(fRecoPrimVtxSkippingTrks) {
4352 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraint")) {
4354 event->GetDiamondCovXY(diamondcovxy);
4355 Double_t pos[3]={
event->GetDiamondX(),
event->GetDiamondY(),0.};
4356 Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
4357 AliESDVertex *diamond =
new AliESDVertex(pos,cov,1.,1);
4358 vertexer->SetVtxStart(diamond);
4359 delete diamond; diamond=NULL;
4360 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraintOnlyFitter"))
4361 vertexer->SetOnlyFitter();
4363 Int_t skipped[1000];
4364 Int_t nTrksToSkip=0,id;
4365 AliExternalTrackParam *t = 0;
4366 for(
Int_t i=0; i<nTrks; i++) {
4367 t = (AliExternalTrackParam*)trkArray->UncheckedAt(i);
4368 id = (
Int_t)t->GetID();
4370 skipped[nTrksToSkip++] = id;
4375 for(
Int_t j=0; j<
event->GetNumberOfTracks(); j++) {
4376 AliVTrack *vtrack = (AliVTrack*)event->GetTrack(j);
4377 if(!vtrack->GetCovarianceXYZPxPyPz(covtest)) {
4378 id = (
Int_t)vtrack->GetID();
4380 skipped[nTrksToSkip++] = id;
4383 for(
Int_t ijk=nTrksToSkip; ijk<1000; ijk++) skipped[ijk]=-1;
4385 vertexer->SetSkipTracks(nTrksToSkip,skipped);
4386 vertexESD = (AliESDVertex*)vertexer->FindPrimaryVertex(event);
4388 }
else if(fRmTrksFromPrimVtx && nTrks>0) {
4393 AliESDtrack *esdTrack = 0;
4395 for(
Int_t i=0; i<nTrks; i++) {
4396 t = (AliESDtrack*)trkArray->UncheckedAt(i);
4397 esdTrack =
new AliESDtrack(*t);
4398 rmArray.AddLast(esdTrack);
4399 if(esdTrack->GetID()>=0) {
4400 rmId[i]=(
UShort_t)esdTrack->GetID();
4405 Float_t diamondxy[2]={
static_cast<Float_t>(
event->GetDiamondX()),static_cast<Float_t>(event->GetDiamondY())};
4406 vertexESD = vertexer->RemoveTracksFromVertex(
fV1,&rmArray,rmId,diamondxy);
4407 delete [] rmId; rmId=NULL;
4412 delete vertexer; vertexer=NULL;
4413 if(!vertexESD)
return vertexAOD;
4414 if(vertexESD->GetNContributors()<=0) {
4416 delete vertexESD; vertexESD=NULL;
4425 vertexESD->GetXYZ(pos);
4426 vertexESD->GetCovMatrix(cov);
4427 chi2perNDF = vertexESD->GetChi2toNDF();
4428 delete vertexESD; vertexESD=NULL;
4430 vertexAOD =
new AliAODVertex(pos,cov,chi2perNDF);
4442 AliAODVertex *primVertexAOD;
4443 Bool_t unsetvtx = kFALSE;
4447 primVertexAOD =
fVtx1;
4452 primVertexAOD =
fVtx1;
4454 if(!primVertexAOD)
return 0x0;
4456 AliESDVertex * vertexESD =
new AliESDVertex(*
fV1);
4459 vertexESD->GetXYZ(pos);
4460 vertexESD->GetCovMatrix(cov);
4461 chi2perNDF = vertexESD->GetChi2toNDF();
4462 delete vertexESD; vertexESD=NULL;
4464 AliAODVertex *secVert =
new AliAODVertex(pos,cov,chi2perNDF);
4474 for(
Int_t i=0;i<100;i++){
4475 pdgarray_ele[i] = -9999;
4476 labelarray_ele[i] = -9999;
4477 pdgarray_casc[i] = -9999;
4478 labelarray_casc[i] = -9999;
4483 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(exobj->
GetBachelor());
4485 Int_t labEle = trk->GetLabel();
4486 if(labEle<0)
return -1;
4487 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
4488 if(!mcetrk)
return -1;
4489 labelarray_ele[0] = labEle;
4490 pdgarray_ele[0] = mcetrk->GetPdgCode();
4493 AliAODMCParticle *mcprimele=0;
4495 while(mcprimele->GetMother()>=0) {
4496 Int_t labprim_ele=mcprimele->GetMother();
4497 AliAODMCParticle *tmcprimele = (AliAODMCParticle*)mcArray->At(labprim_ele);
4502 mcprimele = tmcprimele;
4503 pdgarray_ele[ngen_ele] = mcprimele->GetPdgCode();
4504 labelarray_ele[ngen_ele] = labprim_ele;
4506 if(ngen_ele==100)
break;
4509 AliAODcascade *theCascade =
dynamic_cast<AliAODcascade*
>(exobj->
GetCascade());
4510 if(!theCascade)
return -1;
4512 Int_t pdgDgcasc[2]={211,3122};
4513 Int_t pdgDgv0[2]={2212,211};
4515 if(labcasc<0)
return -1;
4517 AliAODMCParticle *mccasc = (AliAODMCParticle*)mcArray->At(labcasc);
4518 if(!mccasc)
return -1;
4519 labelarray_casc[0] = labcasc;
4520 pdgarray_casc[0] = mccasc->GetPdgCode();
4523 AliAODMCParticle *mcprimcasc=0;
4524 mcprimcasc = mccasc;
4525 while(mcprimcasc->GetMother()>=0) {
4526 Int_t labprim_casc=mcprimcasc->GetMother();
4527 AliAODMCParticle *tmcprimcasc = (AliAODMCParticle*)mcArray->At(labprim_casc);
4532 mcprimcasc = tmcprimcasc;
4533 pdgarray_casc[ngen_casc] = mcprimcasc->GetPdgCode();
4534 labelarray_casc[ngen_casc] = labprim_casc;
4536 if(ngen_casc==100)
break;
4539 Bool_t same_flag = kFALSE;
4540 Int_t matchedlabel=-9999;
4541 for(
Int_t iemc=0;iemc<ngen_ele;iemc++){
4542 for(
Int_t ivmc=0;ivmc<ngen_casc;ivmc++){
4543 if(labelarray_ele[iemc]==labelarray_casc[ivmc]){
4545 matchedlabel = labelarray_ele[iemc];
4549 if(same_flag)
break;
4552 return matchedlabel;
4562 AliAODTrack *cptrack = (AliAODTrack*) theCascade->GetDaughter(0);
4563 if(!cptrack)
return -1;
4564 Int_t label_p = TMath::Abs(cptrack->GetLabel());
4565 if(label_p<0)
return -1;
4566 AliAODTrack *cntrack = (AliAODTrack*) theCascade->GetDaughter(1);
4567 if(!cntrack)
return -1;
4568 Int_t label_n = TMath::Abs(cntrack->GetLabel());
4569 if(label_n<0)
return -1;
4570 Int_t labv0 = theCascade->MatchToMC(pdgDgcasc[1],mcArray,2,pdgDgv0);
4571 if(labv0<0)
return -1;
4572 AliAODMCParticle *mcpartv0= (AliAODMCParticle*) mcArray->At(labv0);
4574 AliAODTrack *cbtrack = (AliAODTrack*) theCascade->GetDecayVertexXi()->GetDaughter(0);
4575 if(!cbtrack)
return -1;
4577 Int_t label_b = TMath::Abs(cbtrack->GetLabel());
4578 if(label_b<0)
return -1;
4580 AliAODMCParticle *mcpartb= (AliAODMCParticle*) mcArray->At(label_b);
4581 Int_t pdgb = TMath::Abs(mcpartb->GetPdgCode());
4582 if(pdgb!=pdgDgcasc[0])
return -1;
4584 AliAODMCParticle *mcmotherv0=mcpartv0;
4585 Bool_t isFromXiv0 = kFALSE;
4586 Int_t labxiv0 = mcmotherv0->GetMother();
4587 if(labxiv0<0)
return -1;
4588 mcmotherv0 = (AliAODMCParticle*) mcArray->At(labxiv0);
4590 Int_t pdg = TMath::Abs(mcmotherv0 ->GetPdgCode());
4591 if(pdg==pdgabscasc){
4595 if(!isFromXiv0)
return -1;
4597 AliAODMCParticle *mcmotherb=mcpartb;
4598 Bool_t isFromXib = kFALSE;
4599 Int_t labxib = mcmotherb->GetMother();
4600 if(labxib<0)
return -1;
4601 mcmotherb = (AliAODMCParticle*) mcArray->At(labxib);
4603 Int_t pdg = TMath::Abs(mcmotherb ->GetPdgCode());
4604 if(pdg==pdgabscasc){
4608 if(!isFromXib)
return -1;
4610 if(labxiv0!=labxib)
return -1;
4622 if(trkEntries==0)
return;
4625 for(
Int_t i=0; i<trkEntries; i++) {
4626 seleFlags[i] = kFALSE;
4629 track = (AliVTrack*)event->GetTrack(i);
4633 if(!track->GetCovarianceXYZPxPyPz(covtest))
continue;
4637 AliAODTrack *aodt = (AliAODTrack*)track;
4642 if(!aodt->TestFilterBit(BIT(filterbit)))
continue;
4644 if(!aodt->TestFilterMask(BIT(filterbit)))
continue;
4648 AliAODTrack *aodtpid = 0;
4650 aodtpid =
fGTI[-aodt->GetID()-1];
4665 if(fabs(nsigma_tofele)<3.){
4668 if(fabs(eleeta)<0.6)
4670 if(fabs(eleeta)>0.6 && fabs(eleeta)<0.8)
4672 if(eleeta>-0.8 && eleeta<-0.6){
4674 }
else if(eleeta>-0.6&&eleeta<-0.4){
4676 }
else if(eleeta>-0.4&&eleeta<-0.2){
4678 }
else if(eleeta>-0.2&&eleeta<0.0){
4680 }
else if(eleeta>0.0&&eleeta<0.2){
4682 }
else if(eleeta>0.2&&eleeta<0.4){
4684 }
else if(eleeta>0.4&&eleeta<0.6){
4686 }
else if(eleeta>0.6&&eleeta<0.8){
4690 if(nsigma_tpcele>-0.5&&nsigma_tpcele<3.){
4710 fVtx1->GetXYZ(primVtx);
4713 for(
Int_t icasc=0;icasc<nCascs;icasc++)
4715 seleCascFlags[icasc] = kFALSE;
4716 AliAODcascade *casc = ((
AliAODEvent*)event)->GetCascade(icasc);
4720 seleCascFlags[icasc] = kTRUE;
4732 if(theBinZ<0 || theBinZ>=
fNzVtxBins)
return -1;
4734 if(theBinM<0 || theBinM>=
fNCentBins)
return -1;
4737 if(theBinR<0 || theBinR>=
fNRPBins)
return -1;
4752 for(
Int_t j=0;j<KiddiePool;j++){
4768 int nEle = mixTypeE.size();
4769 int nCasc = mixTypeL.size();
4770 for(
Int_t ie=0;ie<nEle;ie++){
4771 TLorentzVector* trke=mixTypeE[ie];
4773 TVector *elevars = mixTypeEVars[ie];
4774 for(
Int_t iv=0;iv<nCasc;iv++){
4775 TLorentzVector* casc=mixTypeL[iv];
4776 TVector *cascvars = mixTypeLVars[iv];
4790 Int_t nmcpart = mcArray->GetEntriesFast();
4792 Int_t mcevttype = 0;
4794 Bool_t sigmaevent = kFALSE;
4801 Int_t ncbarquark = 0;
4804 for(
Int_t i=0;i<nmcpart;i++)
4806 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4807 if(TMath::Abs(mcpart->GetPdgCode())==4){
4808 if(fabs(mcpart->Y())<1.5){
4809 if(mcpart->GetPdgCode()==4){
4810 phi_c = mcpart->Phi();
4813 if(mcpart->GetPdgCode()==-4){
4814 phi_cbar = mcpart->Phi();
4819 }
else if(mcevttype==1){
4821 }
else if(mcevttype==2){
4823 }
else if(mcevttype==3){
4829 if(TMath::Abs(mcpart->GetPdgCode())==5){
4830 if(!mcpart->IsPhysicalPrimary())
continue;
4831 if(fabs(mcpart->Y())<1.5){
4834 }
else if(mcevttype==1){
4836 }
else if(mcevttype==2){
4838 }
else if(mcevttype==3){
4846 if((mcevttype==2)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4848 if((mcevttype==1)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4852 if(ncquark!=1)
return kFALSE;
4853 if(ncbarquark!=1)
return kFALSE;
4854 Double_t dphi = fabs(phi_c - phi_cbar);
4855 if(dphi>2*M_PI) dphi -= 2*M_PI;
4856 if(dphi>M_PI) dphi = 2*M_PI-dphi;
4866 for(
Int_t i=0;i<nmcpart;i++)
4868 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4869 if(TMath::Abs(mcpart->GetPdgCode())==4132){
4872 AliAODMCParticle *mcepart = 0;
4873 AliAODMCParticle *mccascpart = 0;
4874 for(
Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4877 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4878 if(!mcdau)
continue;
4879 if(TMath::Abs(mcdau->GetPdgCode())==11){
4883 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4889 Int_t decaytype = -9999;
4890 if(e_flag && xi_flag) decaytype = 0;
4894 if(!e_flag&&xi_flag)
4896 if(e_flag&&!xi_flag)
4898 if(!e_flag&&!xi_flag)
4903 if(TMath::Abs(mcpart->GetPdgCode())==5132 || TMath::Abs(mcpart->GetPdgCode())==5232){
4905 Bool_t xic_flag = kFALSE;
4906 AliAODMCParticle *mcepart = 0;
4907 AliAODMCParticle *mcxicpart = 0;
4908 AliAODMCParticle *mccascpart = 0;
4909 for(
Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4912 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4913 if(!mcdau)
continue;
4914 if(TMath::Abs(mcdau->GetPdgCode())==11){
4918 if(TMath::Abs(mcdau->GetPdgCode())==4132 || TMath::Abs(mcdau->GetPdgCode())==4232 ){
4925 if(e_flag && xic_flag){
4926 for(
Int_t idau=mcxicpart->GetFirstDaughter();idau<mcxicpart->GetLastDaughter()+1;idau++)
4929 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4930 if(!mcdau)
continue;
4931 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4940 contmc_withxic[0] = mcpart->Pt();
4941 contmc_withxic[1] = mcpart->Y();
4942 contmc_withxic[2] = mcxicpart->Y();
4943 if(fabs(mcxicpart->Y())<1.){
4949 Int_t decaytype = -9999;
4950 if(e_flag && xic_flag && xi_flag) decaytype = 10;
4953 if(TMath::Abs(mcpart->GetPdgCode())==11 && mcpart->GetStatus()==1){
4956 esdcuts->GetEtaRange(etamin,etamax);
4957 if(fabs(mcpart->Eta())<etamax){
4958 Bool_t gamma_flag = kFALSE;
4959 Int_t labmother = mcpart->GetMother();
4961 AliAODMCParticle *mcmother = (AliAODMCParticle*) mcArray->At(labmother);
4962 Int_t pdgmother = mcmother->GetPdgCode();
4963 if(TMath::Abs(pdgmother)==22) gamma_flag = kTRUE;
4969 if(TMath::Abs(mcpart->GetPdgCode())==3312){
4974 if((fabs(mcpart->Y())<rapmax) && (fabs(mcpart->Eta())<etamax)){
4980 if(TMath::Abs(mcpart->GetPdgCode())==111){
4981 if(fabs(mcpart->Y())<0.5){
4985 if(TMath::Abs(mcpart->GetPdgCode())==221){
4986 if(fabs(mcpart->Y())<0.5){
4994 for(
Int_t i=0;i<nmcpart;i++)
4996 AliAODMCParticle *mcparte = (AliAODMCParticle*) mcArray->At(i);
4997 if(!mcparte)
continue;
4998 if(TMath::Abs(mcparte->GetPdgCode())!=11)
continue;
4999 if(mcparte->GetStatus()!=1)
continue;
5000 if(mcparte->Pt()<0.4)
continue;
5001 if(fabs(mcparte->Eta())>0.8)
continue;
5002 for(
Int_t j=0;j<nmcpart;j++)
5004 AliAODMCParticle *mcpartv = (AliAODMCParticle*) mcArray->At(j);
5005 if(!mcpartv)
continue;
5006 if(TMath::Abs(mcpartv->GetPdgCode())!=3312)
continue;
5007 if(mcpartv->Pt()<0.4)
continue;
5008 if(fabs(mcpartv->Eta())>0.8)
continue;
5009 if(mcpartv->GetNDaughters()!=2)
continue;
5027 const char* nameoutput = GetOutputSlot(11)->GetContainer()->GetName();
5033 fCandidateVariableNames[ 0] =
"InvMassEleXi";
5034 fCandidateVariableNames[ 1] =
"EleXiPx";
5035 fCandidateVariableNames[ 2] =
"EleXiPy";
5036 fCandidateVariableNames[ 3] =
"EleXiPz";
5037 fCandidateVariableNames[ 4] =
"ElePdgCode";
5038 fCandidateVariableNames[ 5] =
"ElePx";
5039 fCandidateVariableNames[ 6] =
"ElePy";
5040 fCandidateVariableNames[ 7] =
"ElePz";
5041 fCandidateVariableNames[ 8] =
"XiPdgCode";
5042 fCandidateVariableNames[ 9] =
"XiPx";
5043 fCandidateVariableNames[10] =
"XiPy";
5044 fCandidateVariableNames[11] =
"XiPz";
5045 fCandidateVariableNames[12] =
"SameFlag";
5046 fCandidateVariableNames[13] =
"EleNGeneration";
5047 fCandidateVariableNames[14] =
"EleGen1PDG";
5048 fCandidateVariableNames[15] =
"EleGen2PDG";
5049 fCandidateVariableNames[16] =
"EleGen3PDG";
5050 fCandidateVariableNames[17] =
"EleGen4PDG";
5051 fCandidateVariableNames[18] =
"EleGen5PDG";
5052 fCandidateVariableNames[19] =
"EleGen6PDG";
5053 fCandidateVariableNames[20] =
"EleGen7PDG";
5054 fCandidateVariableNames[21] =
"EleGen8PDG";
5055 fCandidateVariableNames[22] =
"EleGen9PDG";
5056 fCandidateVariableNames[23] =
"EleGen10PDG";
5057 fCandidateVariableNames[24] =
"ElePrimPDG";
5058 fCandidateVariableNames[25] =
"XiNGeneration";
5059 fCandidateVariableNames[26] =
"XiGen1PDG";
5060 fCandidateVariableNames[27] =
"XiGen2PDG";
5061 fCandidateVariableNames[28] =
"XiGen3PDG";
5062 fCandidateVariableNames[29] =
"XiGen4PDG";
5063 fCandidateVariableNames[30] =
"XiGen5PDG";
5064 fCandidateVariableNames[31] =
"XiGen6PDG";
5065 fCandidateVariableNames[32] =
"XiGen7PDG";
5066 fCandidateVariableNames[33] =
"XiGen8PDG";
5067 fCandidateVariableNames[34] =
"XiGen9PDG";
5068 fCandidateVariableNames[35] =
"XiGen10PDG";
5069 fCandidateVariableNames[36] =
"XiPrimPDG";
5070 fCandidateVariableNames[37] =
"MatchedPDG";
5084 for(
Int_t i=0;i<38;i++){
5088 TLorentzVector vele, vxi, vexi;
5089 vele.SetXYZM(mcparte->Px(),mcparte->Py(),mcparte->Pz(),0.000510998928);
5090 vxi.SetXYZM(mcpartv->Px(),mcpartv->Py(),mcpartv->Pz(),1.32171);
5093 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
5094 Int_t pdgarray_xi[100], labelarray_xi[100], ngen_xi;
5098 Bool_t same_flag = kFALSE;
5099 Int_t matched_pdg = -999999;
5100 for(
Int_t iemc=0;iemc<ngen_ele;iemc++){
5101 for(
Int_t ivmc=0;ivmc<ngen_xi;ivmc++){
5102 if(labelarray_ele[iemc]==labelarray_xi[ivmc]){
5104 matched_pdg = pdgarray_ele[iemc];
5108 if(same_flag)
break;
5110 Int_t pdgprim_ele = pdgarray_ele[ngen_ele-1];
5111 Int_t pdgprim_xi = pdgarray_xi[ngen_xi-1];
5162 const char* nameoutput = GetOutputSlot(12)->GetContainer()->GetName();