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),
332 fHistonEvtvsRunNumber(0),
333 fHistonElevsRunNumber(0),
334 fHistonXivsRunNumber(0),
335 fHistoMCEventType(0),
336 fHistoMCXic0Decays(0),
337 fHistoMCDeltaPhiccbar(0),
340 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
341 fHistodPhiSdEtaSElectronProtonR125RS(0),
342 fHistodPhiSdEtaSElectronProtonR125WS(0),
343 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
344 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
345 fHistodPhiSdEtaSElectronPionR125RS(0),
346 fHistodPhiSdEtaSElectronPionR125WS(0),
347 fHistodPhiSdEtaSElectronPionR125RSMix(0),
348 fHistodPhiSdEtaSElectronPionR125WSMix(0),
349 fHistodPhiSdEtaSElectronBachelorR125RS(0),
350 fHistodPhiSdEtaSElectronBachelorR125WS(0),
351 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
352 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
354 fMixWithoutConversionFlag(kFALSE),
355 fNumberOfEventsForMixing (5),
373 for(
Int_t i=0;i<23;i++){
378 for(
Int_t i=0;i<8;i++){
387 Bool_t writeVariableTree) :
398 fHNTrackletCorrvsZ(0),
400 fIsEventSelected(kFALSE),
401 fWriteVariableTree(writeVariableTree),
402 fWriteEachVariableTree(kFALSE),
403 fWriteMCVariableTree(kFALSE),
405 fEleVariablesTree(0),
406 fCascVariablesTree(0),
407 fSingleVariablesTree(0),
409 fMCEleVariablesTree(0),
410 fMCCascVariablesTree(0),
411 fMCGenPairVariablesTree(0),
412 fCorrelationVariablesTree(0),
413 fReconstructPrimVert(kFALSE),
419 fCandidateVariables(),
420 fCandidateEleVariables(),
421 fCandidateCascVariables(),
422 fCandidateSingleVariables(),
423 fCandidateMCVariables(),
424 fCandidateMCEleVariables(),
425 fCandidateMCCascVariables(),
426 fCandidateMCGenPairVariables(),
427 fCorrelationVariables(),
439 fUseCentralityV0M(kFALSE),
440 fUseCentralitySPDTracklet(kFALSE),
444 fMCDoPairAnalysis(kFALSE),
446 fHistoEleXiMassRS(0),
447 fHistoEleXiMassWS(0),
448 fHistoEleXiMassRSMix(0),
449 fHistoEleXiMassWSMix(0),
450 fHistoEleXiMassRSSide(0),
451 fHistoEleXiMassWSSide(0),
452 fHistoEleXiMassRS1(0),
453 fHistoEleXiMassWS1(0),
454 fHistoEleXiMassRSMix1(0),
455 fHistoEleXiMassWSMix1(0),
456 fHistoEleXiMassRSSide1(0),
457 fHistoEleXiMassWSSide1(0),
458 fHistoEleXiMassRS2(0),
459 fHistoEleXiMassWS2(0),
460 fHistoEleXiMassRSMix2(0),
461 fHistoEleXiMassWSMix2(0),
462 fHistoEleXiMassRSSide2(0),
463 fHistoEleXiMassWSSide2(0),
464 fHistoEleXiMassAway(0),
465 fHistoEleXiMassRSAway(0),
466 fHistoEleXiMassWSAway(0),
467 fHistoEleXiMassRSMixAway(0),
468 fHistoEleXiMassWSMixAway(0),
469 fHistoEleXiMassRSSideAway(0),
470 fHistoEleXiMassWSSideAway(0),
471 fHistoEleXiMassRS1Away(0),
472 fHistoEleXiMassWS1Away(0),
473 fHistoEleXiMassRSMix1Away(0),
474 fHistoEleXiMassWSMix1Away(0),
475 fHistoEleXiMassRSSide1Away(0),
476 fHistoEleXiMassWSSide1Away(0),
477 fHistoEleXiMassRS2Away(0),
478 fHistoEleXiMassWS2Away(0),
479 fHistoEleXiMassRSMix2Away(0),
480 fHistoEleXiMassWSMix2Away(0),
481 fHistoEleXiMassRSSide2Away(0),
482 fHistoEleXiMassWSSide2Away(0),
483 fHistoEleXiMassvsElePtRS(0),
484 fHistoEleXiMassvsElePtWS(0),
485 fHistoEleXiMassvsElePtRSMix(0),
486 fHistoEleXiMassvsElePtWSMix(0),
487 fHistoEleXiMassvsElePtRSSide(0),
488 fHistoEleXiMassvsElePtWSSide(0),
489 fHistoEleXiMassvsElePtRS1(0),
490 fHistoEleXiMassvsElePtWS1(0),
491 fHistoEleXiMassvsElePtRSMix1(0),
492 fHistoEleXiMassvsElePtWSMix1(0),
493 fHistoEleXiMassvsElePtRSSide1(0),
494 fHistoEleXiMassvsElePtWSSide1(0),
495 fHistoEleXiMassvsElePtRS2(0),
496 fHistoEleXiMassvsElePtWS2(0),
497 fHistoEleXiMassvsElePtRSMix2(0),
498 fHistoEleXiMassvsElePtWSMix2(0),
499 fHistoEleXiMassvsElePtRSSide2(0),
500 fHistoEleXiMassvsElePtWSSide2(0),
505 fHistoEleXiMassMCS(0),
506 fHistoEleXiMassMCS1(0),
507 fHistoEleXiMassMCS2(0),
508 fHistoEleXiMassXibMCS(0),
509 fHistoEleXiMassXibMCS1(0),
510 fHistoEleXiMassXibMCS2(0),
511 fHistoEleXiMassPromptMCS(0),
512 fHistoEleXiMassPromptMCS1(0),
513 fHistoEleXiMassPromptMCS2(0),
514 fHistoEleXiMassBFeeddownMCS(0),
515 fHistoEleXiMassBFeeddownMCS1(0),
516 fHistoEleXiMassBFeeddownMCS2(0),
517 fHistoEleXiMassMCGen(0),
518 fHistoEleXiMassvsElePtMCS(0),
519 fHistoEleXiMassvsElePtMCGen(0),
520 fHistoEleXiMassvsElePtMCS1(0),
521 fHistoEleXiMassvsElePtMCGen1(0),
522 fHistoEleXiMassvsElePtMCS2(0),
523 fHistoEleXiMassvsElePtMCGen2(0),
526 fHistoElePtvsEtaRS(0),
527 fHistoElePtvsEtaWS(0),
528 fHistoElePtvsEtaRSMix(0),
529 fHistoElePtvsEtaWSMix(0),
530 fHistoElePtvsEtaMCS(0),
531 fHistoElePtvsEtaMCGen(0),
532 fHistoElePtvsXiPtRS(0),
533 fHistoElePtvsXiPtWS(0),
534 fHistoElePtvsXiPtRSMix(0),
535 fHistoElePtvsXiPtWSMix(0),
536 fHistoElePtvsXiPtMCS(0),
537 fHistoElePtvsXiPtvsXicPtMCS(0),
538 fHistoElePtvsXiPtMCGen(0),
539 fHistoElePtvsXiPtvsXicPtMCGen(0),
540 fHistoElePtvsXiPtMCXicGen(0),
541 fHistoElePtvsd0RS(0),
542 fHistoElePtvsd0WS(0),
543 fHistoElePtvsd0RSMix(0),
544 fHistoElePtvsd0WSMix(0),
545 fHistoElePtvsd0MCS(0),
546 fHistoElePtvsd0PromptMCS(0),
547 fHistoElePtvsd0BFeeddownMCS(0),
550 fHistoBachPtMCGen(0),
553 fHistoXiMassvsPtMCS(0),
554 fHistoXiMassvsPtMCGen(0),
555 fHistoOmegaMassvsPt(0),
556 fHistoElectronTPCPID(0),
557 fHistoElectronTOFPID(0),
558 fHistoElectronTPCSelPID(0),
559 fHistoElectronTOFSelPID(0),
560 fHistoElectronTPCPIDSelTOF(0),
561 fHistoElectronTOFPIDSelTPC(0),
562 fHistoElectronTPCPIDSelTOFSmallEta(0),
563 fHistoElectronTPCPIDSelTOFLargeEta(0),
564 fHistoMassConversionsMin(0),
565 fHistoMassConversionsSameSignMin(0),
566 fHistoElectronQovPtvsPhi(0),
567 fHistoXiQovPtvsPhi(0),
575 fHistoXibMCGenWithXic(0),
577 fHistoXicElectronMCGen(0),
578 fHistoXicElectronMCGen1(0),
579 fHistoXicElectronMCGen2(0),
580 fHistoXicElectronMCS(0),
581 fHistoXicElectronMCS1(0),
582 fHistoXicElectronMCS2(0),
583 fHistoElectronMCGen(0),
584 fHistoBottomElectronMCGen(0),
585 fHistoCharmElectronMCGen(0),
587 fHistoLambdaPtvsDl(0),
588 fHistoLambdaPtvsDlSide(0),
589 fHistoLambdaPtvsDlMCS(0),
590 fHistoLambdaPtvsDR(0),
591 fHistoLambdaPtvsDRSide(0),
592 fHistoLambdaPtvsDRMCS(0),
593 fHistoEleXiPtvsRapidityRS(0),
594 fHistoEleXiPtvsRapidityWS(0),
595 fHistoEleXiPtvsRapidityMCS(0),
596 fHistoCorrelationVariablesvsEleXiPt(0),
597 fHistoCorrelationVariablesvsEleXiPtMix(0),
598 fHistoCorrelationVariablesvsEleXiPtMC(0),
599 fHistoCorrelationVariablesvsElePt(0),
600 fHistoCorrelationVariablesvsElePtMix(0),
601 fHistoCorrelationVariablesvsElePtMC(0),
602 fHistoCorrelationVariablesvsXiPt(0),
603 fHistoCorrelationVariablesvsXiPtMix(0),
604 fHistoCorrelationVariablesvsXiPtMC(0),
605 fHistoMassVariablesvsEleXiPt(0),
606 fHistoMassVariablesvsEleXiPtMix(0),
607 fHistoMassVariablesvsEleXiPtMC(0),
608 fHistoMassVariablesvsElePt(0),
609 fHistoMassVariablesvsElePtMix(0),
610 fHistoMassVariablesvsElePtMC(0),
611 fHistoMassVariablesvsXiPt(0),
612 fHistoMassVariablesvsXiPtMix(0),
613 fHistoMassVariablesvsXiPtMC(0),
614 fHistoResponseElePt(0),
615 fHistoResponseXiPt(0),
616 fHistoResponseEleXiPt(0),
617 fHistoResponseXiPtvsEleXiPt(0),
618 fHistoResponseXiPtXib(0),
619 fHistoResponseEleXiPtXib(0),
620 fHistoResponseMcGenXibPtvsXicPt(0),
622 fHistoElectronPi0Total(0),
623 fHistoElectronPi0Tag(0),
625 fHistoElectronEtaTotal(0),
626 fHistoElectronEtaTag(0),
630 fHistonEvtvsRunNumber(0),
631 fHistonElevsRunNumber(0),
632 fHistonXivsRunNumber(0),
633 fHistoMCEventType(0),
634 fHistoMCXic0Decays(0),
635 fHistoMCDeltaPhiccbar(0),
638 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
639 fHistodPhiSdEtaSElectronProtonR125RS(0),
640 fHistodPhiSdEtaSElectronProtonR125WS(0),
641 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
642 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
643 fHistodPhiSdEtaSElectronPionR125RS(0),
644 fHistodPhiSdEtaSElectronPionR125WS(0),
645 fHistodPhiSdEtaSElectronPionR125RSMix(0),
646 fHistodPhiSdEtaSElectronPionR125WSMix(0),
647 fHistodPhiSdEtaSElectronBachelorR125RS(0),
648 fHistodPhiSdEtaSElectronBachelorR125WS(0),
649 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
650 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
652 fMixWithoutConversionFlag(kFALSE),
653 fNumberOfEventsForMixing (5),
671 Info(
"AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Constructor");
673 for(
Int_t i=0;i<23;i++){
678 for(
Int_t i=0;i<8;i++){
683 DefineOutput(1,TList::Class());
684 DefineOutput(2,TList::Class());
685 DefineOutput(3,TList::Class());
686 DefineOutput(4,TTree::Class());
687 DefineOutput(5,TTree::Class());
688 DefineOutput(6,TTree::Class());
689 DefineOutput(7,TTree::Class());
690 DefineOutput(8,AliNormalizationCounter::Class());
691 DefineOutput(9,TTree::Class());
692 DefineOutput(10,TTree::Class());
693 DefineOutput(11,TTree::Class());
694 DefineOutput(12,TTree::Class());
702 Info(
"~AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Destructor");
812 if (fDebug > 1) AliInfo(
"Init");
831 AliError(
"NO EVENT FOUND!");
843 AliKFParticle::SetField(
fBzkG);
844 if (TMath::Abs(
fBzkG)<0.001) {
853 AliAODTracklets* tracklets=aodEvent->GetTracklets();
854 Int_t nTr=tracklets->GetNumberOfTracklets();
855 for(
Int_t iTr=0; iTr<nTr; iTr++){
856 Double_t theta=tracklets->GetTheta(iTr);
857 Double_t eta=-TMath::Log(TMath::Tan(theta/2.));
858 if(eta>-1.0 && eta<1.0) countTr++;
860 AliAODVertex *vtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
863 if(vtx1->GetNContributors()>0){
888 TClonesArray *mcArray = 0;
889 AliAODMCHeader *mcHeader=0;
892 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
894 AliError(
"Could not find Monte-Carlo in AOD");
900 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
902 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec: MC header branch not found!\n");
907 Double_t zMCVertex = mcHeader->GetVtxZ();
909 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
923 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
928 fVtx1->GetCovarianceMatrix(cov);
929 fV1 =
new AliESDVertex(pos,cov,100.,100,
fVtx1->GetName());
945 fIsMB=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kMB)==(AliVEvent::kMB);
946 fIsSemi=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kSemiCentral)==(AliVEvent::kSemiCentral);
947 fIsCent=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kCentral)==(AliVEvent::kCentral);
948 fIsINT7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kINT7)==(AliVEvent::kINT7);
949 fIsEMC7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kEMC7)==(AliVEvent::kEMC7);
963 AliCentrality *cent = aodEvent->GetCentrality();
964 fCentrality = cent->GetCentralityPercentile(
"V0M");
967 else if(countCorr>=1 && countCorr<=8)
fCentrality = 15.;
968 else if(countCorr>=9 && countCorr<=13)
fCentrality = 25.;
969 else if(countCorr>=14 && countCorr<=19)
fCentrality = 35.;
970 else if(countCorr>=20 && countCorr<=30)
fCentrality = 45.;
971 else if(countCorr>=31 && countCorr<=49)
fCentrality = 55.;
976 if(fCentrality<0.||fCentrality>100.-0.0000001) {
983 AliEventplane *pl=aodEvent->GetEventplane();
985 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec:no eventplane! v2 analysis without eventplane not possible!\n");
1003 fQ = pl->GetQVector();
1005 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec: no Q vectors");
1015 Int_t runnumber_offset = 0;
1016 Int_t runnumber = aodEvent->GetRunNumber();
1017 if(runnumber<=131000&&runnumber>=114000){
1018 runnumber_offset = 114000;
1019 }
else if(runnumber<=196000&&runnumber>=195000){
1020 runnumber_offset = 195000;
1021 }
else if(runnumber<=170593&&runnumber>=167902){
1022 runnumber_offset = 167902;
1023 }
else if(runnumber<=246994&&runnumber>=244824){
1024 runnumber_offset = 244824;
1069 AliAnalysisTaskSE::Terminate();
1073 AliError(
"fOutput not available");
1079 AliError(
"fOutputAll not available");
1137 TString normName=
"NormalizationCounter";
1138 AliAnalysisDataContainer *cont = GetOutputSlot(8)->GetContainer();
1139 if(cont)normName=(
TString)cont->GetName();
1189 fPoolIndex=GetPoolIndex(fVtxZ,fCentrality,fEventPlane);
1190 Int_t nextRes( nextResVec[fPoolIndex] );
1191 while(!m_ReservoirE[fPoolIndex][nextRes].empty()){
1192 delete m_ReservoirE[fPoolIndex][nextRes].back();
1193 m_ReservoirE[fPoolIndex][nextRes].pop_back();
1195 while(!m_ReservoirL1[fPoolIndex][nextRes].empty()){
1196 delete m_ReservoirL1[fPoolIndex][nextRes].back();
1197 m_ReservoirL1[fPoolIndex][nextRes].pop_back();
1199 while(!m_ReservoirL2[fPoolIndex][nextRes].empty()){
1200 delete m_ReservoirL2[fPoolIndex][nextRes].back();
1201 m_ReservoirL2[fPoolIndex][nextRes].pop_back();
1203 while(!m_ReservoirVarsE[fPoolIndex][nextRes].empty()){
1204 delete m_ReservoirVarsE[fPoolIndex][nextRes].back();
1205 m_ReservoirVarsE[fPoolIndex][nextRes].pop_back();
1207 while(!m_ReservoirVarsL1[fPoolIndex][nextRes].empty()){
1208 delete m_ReservoirVarsL1[fPoolIndex][nextRes].back();
1209 m_ReservoirVarsL1[fPoolIndex][nextRes].pop_back();
1211 while(!m_ReservoirVarsL2[fPoolIndex][nextRes].empty()){
1212 delete m_ReservoirVarsL2[fPoolIndex][nextRes].back();
1213 m_ReservoirVarsL2[fPoolIndex][nextRes].pop_back();
1217 if(fAnalCuts->GetProdAODFilterBit()==7){
1218 ResetGlobalTrackReference();
1220 for (
Int_t iTrack=0;iTrack<aodEvent->GetNumberOfTracks();iTrack++){
1222 AliAODTrack *track =
dynamic_cast<AliAODTrack *
>(aodEvent->GetTrack(iTrack));
1223 if (!track)
continue;
1226 StoreGlobalTrackReference(track,iTrack);
1231 Int_t nCascs= aodEvent->GetNumberOfCascades();
1232 Int_t nTracks= aodEvent->GetNumberOfTracks();
1234 Bool_t seleTrkFlags[nTracks];
1236 SelectTrack(aodEvent,nTracks,nSeleTrks,seleTrkFlags,mcArray);
1238 Bool_t seleCascFlags[nCascs];
1240 SelectCascade(aodEvent,nCascs,nSeleCasc,seleCascFlags,mcArray);
1242 Int_t runnumber_offset = 0;
1243 Int_t runnumber = aodEvent->GetRunNumber();
1244 if(runnumber<=131000&&runnumber>=114000){
1245 runnumber_offset = 114000;
1246 }
else if(runnumber<=196000&&runnumber>=195000){
1247 runnumber_offset = 195000;
1248 }
else if(runnumber<=170593&&runnumber>=167902){
1249 runnumber_offset = 167902;
1250 }
else if(runnumber<=246994&&runnumber>=244824){
1251 runnumber_offset = 244824;
1253 fHistonElevsRunNumber->Fill(runnumber-runnumber_offset,nSeleTrks);
1254 fHistonXivsRunNumber->Fill(runnumber-runnumber_offset,nSeleCasc);
1256 if(nSeleTrks==0 || nSeleCasc==0)
return;
1261 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
1262 if(!seleTrkFlags[itrk])
continue;
1263 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1265 FillElectronROOTObjects(trk,aodEvent,mcArray);
1268 for (
Int_t icasc = 0; icasc<nCascs; icasc++) {
1269 if(!seleCascFlags[icasc])
continue;
1270 AliAODcascade *casc = aodEvent->GetCascade(icasc);
1273 FillCascROOTObjects(casc,aodEvent,mcArray);
1276 if(fWriteEachVariableTree)
1282 for (
Int_t icasc = 0; icasc<nCascs; icasc++) {
1283 if(!seleCascFlags[icasc])
continue;
1284 AliAODcascade *casc = aodEvent->GetCascade(icasc);
1287 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1288 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1289 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1294 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
1295 if(!seleTrkFlags[itrk])
continue;
1296 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1304 AliAODTrack *trkpid = 0;
1305 if(fAnalCuts->GetProdAODFilterBit()==7){
1306 trkpid = fGTI[-trk->GetID()-1];
1311 Int_t cpid = cptrack->GetID();
1312 Int_t cnid = cntrack->GetID();
1313 Int_t cbid = cbtrack->GetID();
1314 Int_t lpid = trkpid->GetID();
1315 if((cpid==lpid)||(cnid==lpid)||(cbid==lpid))
continue;
1317 AliAODVertex *secVert = ReconstructSecondaryVertex(casc,trk,aodEvent);
1318 if(!secVert)
continue;
1325 FillROOTObjects(exobj, casc,trk,trkpid,aodEvent,mcArray);
1327 exobj->GetSecondaryVtx()->RemoveDaughters();
1329 delete exobj;exobj=NULL;
1335 DoEventMixingWithPools(fPoolIndex);
1337 Int_t nextRes( nextResVec[fPoolIndex] );
1339 if( nextRes>=fNumberOfEventsForMixing ){
1341 reservoirsReady[fPoolIndex] = kTRUE;
1343 nextResVec[fPoolIndex] = nextRes;
1355 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
1361 fCandidateVariableNames[ 0]=
"Centrality";
1362 fCandidateVariableNames[ 1]=
"InvMassEleXi";
1363 fCandidateVariableNames[ 2]=
"EleXiPt";
1364 fCandidateVariableNames[ 3]=
"EleXiPx";
1365 fCandidateVariableNames[ 4]=
"EleXiPy";
1366 fCandidateVariableNames[ 5]=
"EleXiPz";
1367 fCandidateVariableNames[ 6]=
"ElePx";
1368 fCandidateVariableNames[ 7]=
"ElePy";
1369 fCandidateVariableNames[ 8]=
"ElePz";
1370 fCandidateVariableNames[ 9]=
"XiPx";
1371 fCandidateVariableNames[10]=
"XiPy";
1372 fCandidateVariableNames[11]=
"XiPz";
1373 fCandidateVariableNames[12]=
"XiCharge";
1374 fCandidateVariableNames[13]=
"MassXi";
1375 fCandidateVariableNames[14]=
"MassLambda";
1376 fCandidateVariableNames[15]=
"Eled0";
1377 fCandidateVariableNames[16]=
"Xid0";
1378 fCandidateVariableNames[17]=
"nSigmaTPCele";
1379 fCandidateVariableNames[18]=
"nSigmaTOFele";
1380 fCandidateVariableNames[19]=
"nSigmaTPCpr_etrk";
1381 fCandidateVariableNames[20]=
"nSigmaTOFpr_etrk";
1382 fCandidateVariableNames[21]=
"nSigmaTPCka_etrk";
1383 fCandidateVariableNames[22]=
"nSigmaTOFka_etrk";
1384 fCandidateVariableNames[23]=
"nSigmaTPCv0pr";
1385 fCandidateVariableNames[24]=
"nSigmaTOFv0pr";
1386 fCandidateVariableNames[25]=
"nSigmaTPCv0pi";
1387 fCandidateVariableNames[26]=
"nSigmaTOFv0pi";
1388 fCandidateVariableNames[27]=
"nSigmaTPCbachpi";
1389 fCandidateVariableNames[28]=
"nSigmaTOFbachpi";
1390 fCandidateVariableNames[29]=
"EleCharge";
1391 fCandidateVariableNames[30]=
"Mixing";
1392 fCandidateVariableNames[31]=
"DcaXiDaughters";
1393 fCandidateVariableNames[32]=
"DcaV0Daughters";
1394 fCandidateVariableNames[33]=
"DecayLengthXi";
1395 fCandidateVariableNames[34]=
"CosPointingAngleXi";
1396 fCandidateVariableNames[35]=
"DcaV0toPrimVertex";
1397 fCandidateVariableNames[36]=
"DcaPostoPrimVertex";
1398 fCandidateVariableNames[37]=
"DcaNegtoPrimVertex";
1399 fCandidateVariableNames[38]=
"DcaBachtoPrimVertex";
1400 fCandidateVariableNames[39]=
"DecayLengthV0";
1401 fCandidateVariableNames[40]=
"CosPointingAngleV0";
1403 fCandidateVariableNames[41]=
"mcpdgxic";
1404 fCandidateVariableNames[42]=
"mclabxic";
1405 fCandidateVariableNames[43]=
"mcxicpx";
1406 fCandidateVariableNames[44]=
"mcxicpy";
1407 fCandidateVariableNames[45]=
"mcxicpz";
1408 fCandidateVariableNames[46]=
"mcelepx";
1409 fCandidateVariableNames[47]=
"mcelepy";
1410 fCandidateVariableNames[48]=
"mcelepz";
1411 fCandidateVariableNames[49]=
"mccascpx";
1412 fCandidateVariableNames[50]=
"mccascpy";
1413 fCandidateVariableNames[51]=
"mccascpz";
1415 fCandidateVariableNames[52]=
"mcpdgele";
1416 fCandidateVariableNames[53]=
"mcpdgcasc";
1417 fCandidateVariableNames[54]=
"mcpdgmomele";
1418 fCandidateVariableNames[55]=
"mcpdgmomcasc";
1419 fCandidateVariableNames[56]=
"mcpdggrmomele";
1420 fCandidateVariableNames[57]=
"mcpdggrmomcasc";
1421 fCandidateVariableNames[58]=
"mcngenele";
1422 fCandidateVariableNames[59]=
"mcngencasc";
1424 fCandidateVariableNames[60]=
"nSigmaTPCpi_etrk";
1425 fCandidateVariableNames[61]=
"nSigmaTOFpi_etrk";
1427 fCandidateVariableNames[62]=
"V0PosPx";
1428 fCandidateVariableNames[63]=
"V0PosPy";
1429 fCandidateVariableNames[64]=
"V0PosPz";
1430 fCandidateVariableNames[65]=
"V0NegPx";
1431 fCandidateVariableNames[66]=
"V0NegPy";
1432 fCandidateVariableNames[67]=
"V0NegPz";
1433 fCandidateVariableNames[68]=
"V0VertX";
1434 fCandidateVariableNames[69]=
"V0VertY";
1435 fCandidateVariableNames[70]=
"V0VertZ";
1436 fCandidateVariableNames[71]=
"BachPx";
1437 fCandidateVariableNames[72]=
"BachPy";
1438 fCandidateVariableNames[73]=
"BachPz";
1439 fCandidateVariableNames[74]=
"XiVertX";
1440 fCandidateVariableNames[75]=
"XiVertY";
1441 fCandidateVariableNames[76]=
"XiVertZ";
1442 fCandidateVariableNames[77]=
"PrimVertX";
1443 fCandidateVariableNames[78]=
"PrimVertY";
1444 fCandidateVariableNames[79]=
"PrimVertZ";
1446 fCandidateVariableNames[80]=
"MassOmega";
1448 fCandidateVariableNames[81]=
"EleITSMatch";
1449 fCandidateVariableNames[82]=
"BachITSMatch";
1450 fCandidateVariableNames[83]=
"V0PosITSMatch";
1451 fCandidateVariableNames[84]=
"V0NegITSMatch";
1453 fCandidateVariableNames[85]=
"TPCNclsF";
1454 fCandidateVariableNames[86]=
"TPCNcls";
1455 fCandidateVariableNames[87]=
"TPCNclsS";
1456 fCandidateVariableNames[88]=
"IsXiPeakReagion";
1459 fCandidateVariableNames[89]=
"MagneticField";
1460 fCandidateVariableNames[90]=
"EvNumber";
1461 fCandidateVariableNames[91]=
"RunNumber";
1480 for(
Int_t i=0;i<92;i++){
1485 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1486 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1487 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1500 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
1501 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
1505 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
1506 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
1507 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
1513 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
1514 Double_t pxv_flip = pxv + lf * uxe;
1515 Double_t pyv_flip = pyv + lf * uye;
1516 Double_t pzv_flip = pzv + lf * uze;
1517 Double_t pxsum_flip = pxe + pxv_flip;
1518 Double_t pysum_flip = pye + pyv_flip;
1519 Double_t pzsum_flip = pze + pzv_flip;
1520 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
1521 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
1530 fVtx1->GetXYZ(posVtx);
1533 UInt_t pdgdg[2]={11,3312};
1547 if(casc->ChargeXi()<0)
1585 if(casc->ChargeXi()>0){
1620 AliAODMCParticle *mcxic = 0;
1621 AliAODMCParticle *mcele = 0;
1622 AliAODMCParticle *mccasc = 0;
1624 Int_t mcpdgele_array[100];
1625 Int_t mcpdgcasc_array[100];
1626 Int_t mclabelele_array[100];
1627 Int_t mclabelcasc_array[100];
1628 Int_t mcngen_ele = -9999;
1629 Int_t mcngen_casc = -9999;
1632 mclabxic =
MatchToMC(exobj,mcArray,mcpdgele_array, mcpdgcasc_array,mclabelele_array,mclabelcasc_array,mcngen_ele,mcngen_casc);
1635 mcxic = (AliAODMCParticle*) mcArray->At(mclabxic);
1636 if(mclabelele_array[0]>=0)
1637 mcele = (AliAODMCParticle*) mcArray->At(mclabelele_array[0]);
1638 if(mclabelcasc_array[0]>=0)
1639 mccasc = (AliAODMCParticle*) mcArray->At(mclabelcasc_array[0]);
1706 Double_t dphis_ele_pr, detas_ele_pr,dphis_ele_pi, detas_ele_pi, dphis_ele_bach, detas_ele_bach;
1707 dphis_ele_pr = 9999.;detas_ele_pr = 9999.;dphis_ele_pi = 9999.;detas_ele_pi = 9999.;dphis_ele_bach=9999.;detas_ele_bach=9999.;
1712 cont[0] = exobj->InvMass(2,pdgdg);
1713 cont[1] = exobj->Pt();
1714 cont[2] = exobj->Getd0Prong(0)*trk->Charge();
1719 cont_flip[0] = mexi_flip;
1720 cont_flip[1] = ptexi_flip;
1725 cont2[0] = exobj->InvMass(2,pdgdg);
1726 cont2[1] = trk->Pt();
1730 cont_eleptvseta[0] = trk->Pt();
1731 cont_eleptvseta[1] = trk->Eta();
1735 cont_eleptvsxipt[0] = trk->Pt();
1736 cont_eleptvsxipt[1] = sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY());
1740 cont_eleptvsd0[0] = trk->Pt();
1741 cont_eleptvsd0[1] = exobj->Getd0Prong(0)*trk->Charge();
1744 Double_t exobj_mass = exobj->InvMass(2,pdgdg);
1748 Double_t exobj_E = sqrt(exobj_mass*exobj_mass+exobj_px*exobj_px+exobj_py*exobj_py+exobj_pz*exobj_pz);
1749 Double_t exobj_rap = 0.5*log((exobj_E+exobj_pz)/(exobj_E-exobj_pz));
1756 if(trk->Charge()*casc->ChargeXi()<0){
1769 for(
Int_t ih=0;ih<23;ih++){
1771 cont_eleptvscutvars[0] = exobj->Pt();
1775 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1777 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1779 cont_eleptvscutvars[1] = nSigmaTPCele;
1781 cont_eleptvscutvars[1] = nSigmaTOFele;
1783 cont_eleptvscutvars[1] = trk->Eta();
1785 cont_eleptvscutvars[1] = trk->GetITSNcls();
1787 if(casc->ChargeXi()<0)
1788 cont_eleptvscutvars[1] = casc->MassLambda();
1790 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1792 cont_eleptvscutvars[1] = casc->MassXi();
1795 lPosV0[0] = casc->DecayVertexV0X();
1796 lPosV0[1] = casc->DecayVertexV0Y();
1797 lPosV0[2] = casc->DecayVertexV0Z();
1798 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1801 lPosXi[0] = casc->DecayVertexXiX();
1802 lPosXi[1] = casc->DecayVertexXiY();
1803 lPosXi[2] = casc->DecayVertexXiZ();
1804 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1806 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1808 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1810 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1812 if(casc->ChargeXi()<0.)
1813 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1815 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1817 if(casc->ChargeXi()>0.)
1818 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1820 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1822 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1824 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1826 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1828 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1830 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1832 cont_eleptvscutvars[1] = casc->Eta();
1834 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1842 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1844 cont_eleptvscutvars[1] = -9999.;
1852 Int_t pdgcode = mcxic->GetPdgCode();
1853 cont2[1] = mcele->Pt();
1854 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
1855 Int_t labmotherxic = mcxic->GetMother();
1856 Bool_t isbottomfd = kFALSE;
1859 AliAODMCParticle *motherxic = (AliAODMCParticle*)mcArray->At(labmotherxic);
1860 Int_t pdgmotherxic = motherxic->GetPdgCode();
1861 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){
1891 cont_xic[0] = mcxic->Pt();
1892 cont_xic[1] = mcxic->Y();
1899 cont_mcele[0] = mcele->Pt();
1900 cont_mcele[1] = mcele->Eta();
1907 fHistoResponseXiPt->Fill(mcxic->Pt(),sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2)));
1911 Double_t cont_eleptvsxiptvsxicpt[4];
1912 cont_eleptvsxiptvsxicpt[0] = cont_eleptvsxipt[0];
1913 cont_eleptvsxiptvsxicpt[1] = cont_eleptvsxipt[1];
1914 cont_eleptvsxiptvsxicpt[2] = mcxic->Pt();
1915 cont_eleptvsxiptvsxicpt[3] = cont_eleptvsxipt[2];
1924 for(
Int_t ih=0;ih<23;ih++){
1926 cont_eleptvscutvars[0] = exobj->Pt();
1930 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1932 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1934 cont_eleptvscutvars[1] = nSigmaTPCele;
1936 cont_eleptvscutvars[1] = nSigmaTOFele;
1938 cont_eleptvscutvars[1] = trk->Eta();
1940 cont_eleptvscutvars[1] = trk->GetITSNcls();
1942 if(casc->ChargeXi()<0)
1943 cont_eleptvscutvars[1] = casc->MassLambda();
1945 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1947 cont_eleptvscutvars[1] = casc->MassXi();
1950 lPosV0[0] = casc->DecayVertexV0X();
1951 lPosV0[1] = casc->DecayVertexV0Y();
1952 lPosV0[2] = casc->DecayVertexV0Z();
1953 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1956 lPosXi[0] = casc->DecayVertexXiX();
1957 lPosXi[1] = casc->DecayVertexXiY();
1958 lPosXi[2] = casc->DecayVertexXiZ();
1959 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1961 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1963 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1965 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1967 if(casc->ChargeXi()<0.)
1968 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1970 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1972 if(casc->ChargeXi()>0.)
1973 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1975 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1977 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1979 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1981 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1983 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1985 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1987 cont_eleptvscutvars[1] = casc->Eta();
1989 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1997 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1999 cont_eleptvscutvars[1] = -9999.;
2025 for(
Int_t ih=0;ih<23;ih++){
2027 cont_eleptvscutvars[0] = exobj->Pt();
2031 cont_eleptvscutvars[1] = trk->GetTPCNcls();
2033 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
2035 cont_eleptvscutvars[1] = nSigmaTPCele;
2037 cont_eleptvscutvars[1] = nSigmaTOFele;
2039 cont_eleptvscutvars[1] = trk->Eta();
2041 cont_eleptvscutvars[1] = trk->GetITSNcls();
2043 if(casc->ChargeXi()<0)
2044 cont_eleptvscutvars[1] = casc->MassLambda();
2046 cont_eleptvscutvars[1] = casc->MassAntiLambda();
2048 cont_eleptvscutvars[1] = casc->MassXi();
2051 lPosV0[0] = casc->DecayVertexV0X();
2052 lPosV0[1] = casc->DecayVertexV0Y();
2053 lPosV0[2] = casc->DecayVertexV0Z();
2054 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
2057 lPosXi[0] = casc->DecayVertexXiX();
2058 lPosXi[1] = casc->DecayVertexXiY();
2059 lPosXi[2] = casc->DecayVertexXiZ();
2060 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
2062 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
2064 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
2066 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
2068 if(casc->ChargeXi()<0.)
2069 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
2071 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
2073 if(casc->ChargeXi()>0.)
2074 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
2076 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
2078 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
2080 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
2082 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
2084 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
2086 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
2088 cont_eleptvscutvars[1] = casc->Eta();
2090 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
2098 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
2100 cont_eleptvscutvars[1] = -9999.;
2108 Int_t pdgcode = mcxic->GetPdgCode();
2110 cont_xib[0] = mcxic->Pt();
2111 cont_xib[1] = mcxic->Y();
2114 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
2124 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
2134 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
2144 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
2164 if( mexi_flip <10. && cosoa < 0. && fAnalCuts->IsPeakRegion(casc))
2166 if(trk->Charge()*casc->ChargeXi()<0){
2179 if(trk->Charge()*casc->ChargeXi()<0){
2197 if( mexi_flip< 10. && cosoa < 0. && fAnalCuts->IsSideBand(casc))
2199 if(trk->Charge()*casc->ChargeXi()<0){
2213 for(
Int_t iv=0;iv<15;iv++){
2217 for(
Int_t iv=0;iv<7;iv++){
2218 cont_cor_nd[iv] = -9999.;
2221 for(
Int_t iv=0;iv<8;iv++){
2222 cont_mass_nd[iv] = -9999.;
2232 if(trk->Charge()>0){
2235 }
else if(trk->Charge()<0){
2245 cont_cor_nd[0] = exobj->Pt();
2247 cont_cor_nd[2] = 1.;
2248 if(trk->Charge()>0){
2249 if(casc->ChargeXi()<0) cont_cor_nd[3] = 0;
2250 else cont_cor_nd[3] = 2;
2251 }
else if(trk->Charge()<0){
2252 if(casc->ChargeXi()<0) cont_cor_nd[3] = 3;
2253 else cont_cor_nd[3] = 1;
2261 Int_t pdgcode = mcxic->GetPdgCode();
2262 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
2266 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
2270 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
2274 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
2278 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
2324 cont_cor_nd[0] = trk->Pt();
2326 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2331 cont_cor_nd[0] = trk->Pt();
2333 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2338 cont_mass_nd[0] = exobj->InvMass(2,pdgdg);
2339 cont_mass_nd[1] = cont_cor_nd[0];
2340 cont_mass_nd[4] = cont_cor_nd[3];
2341 cont_mass_nd[5] = cont_cor_nd[4];
2342 cont_mass_nd[6] = cont_cor_nd[5];
2343 cont_mass_nd[7] = cont_cor_nd[6];
2347 if(mexi_flip < 10.&& cosoa < 0.) cont_mass_nd[2]=0;
2350 cont_cor_nd[0] = trk->Pt();
2352 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2356 cont_cor_nd[0] = trk->Pt();
2358 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2376 for(
Int_t i=0;i<90;i++){
2383 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
2384 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
2389 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
2390 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
2392 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
2398 Double_t mexi = sqrt(Esum*Esum-pxsum*pxsum-pysum*pysum-pzsum*pzsum);
2403 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
2404 Double_t pxv_flip = pxv + lf * uxe;
2405 Double_t pyv_flip = pyv + lf * uye;
2406 Double_t pzv_flip = pzv + lf * uze;
2407 Double_t pxsum_flip = pxe + pxv_flip;
2408 Double_t pysum_flip = pye + pyv_flip;
2409 Double_t pzsum_flip = pze + pzv_flip;
2410 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
2411 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
2414 fVtx1->GetXYZ(posVtx);
2417 UInt_t pdgdg[2]={11,3312};
2443 cont[1] = sqrt(pxsum*pxsum+pysum*pysum);
2448 cont_flip[0] = mexi_flip;
2449 cont_flip[1] = ptexi_flip;
2455 cont2[1] = sqrt(pxe*pxe+pye*pye);
2459 cont_eleptvseta[0] = trke->Pt();
2460 cont_eleptvseta[1] = trke->Eta();
2464 cont_eleptvsxipt[0] = trke->Pt();
2465 cont_eleptvsxipt[1] = casc->Pt();
2469 cont_eleptvsd0[0] = trke->Pt();
2470 cont_eleptvsd0[1] = 0.;
2473 Double_t xyzR125_ele[3], xyzR125_pr[3], xyzR125_pi[3], xyzR125_bach[3];
2474 xyzR125_ele[0] = (*elevars)[0];
2475 xyzR125_ele[1] = (*elevars)[1];
2476 xyzR125_ele[2] = (*elevars)[2];
2477 xyzR125_pr[0] = (*cascvars)[0];
2478 xyzR125_pr[1] = (*cascvars)[1];
2479 xyzR125_pr[2] = (*cascvars)[2];
2480 xyzR125_pi[0] = (*cascvars)[3];
2481 xyzR125_pi[1] = (*cascvars)[4];
2482 xyzR125_pi[2] = (*cascvars)[5];
2483 xyzR125_bach[0] = (*cascvars)[6];
2484 xyzR125_bach[1] = (*cascvars)[7];
2485 xyzR125_bach[2] = (*cascvars)[8];
2488 rdhfcutvars[0] = xyzR125_ele[0];
2489 rdhfcutvars[1] = xyzR125_ele[1];
2490 rdhfcutvars[2] = xyzR125_ele[2];
2491 rdhfcutvars[3] = xyzR125_pr[0];
2492 rdhfcutvars[4] = xyzR125_pr[1];
2493 rdhfcutvars[5] = xyzR125_pr[2];
2494 rdhfcutvars[6] = xyzR125_pi[0];
2495 rdhfcutvars[7] = xyzR125_pi[1];
2496 rdhfcutvars[8] = xyzR125_pi[2];
2497 rdhfcutvars[9] = xyzR125_bach[0];
2498 rdhfcutvars[10] = xyzR125_bach[1];
2499 rdhfcutvars[11] = xyzR125_bach[2];
2511 if(((
int)trke->T())*chargexi<0){
2547 if(mexi_flip < 10. && cosoa<0. && fAnalCuts->IsPeakRegion(casc))
2549 if(((
int)trke->T())*chargexi<0){
2563 for(
Int_t iv=0;iv<15;iv++){
2568 for(
Int_t iv=0;iv<7;iv++){
2569 cont_cor_nd[iv] = -9999.;
2572 for(
Int_t iv=0;iv<8;iv++){
2573 cont_mass_nd[iv] = -9999.;
2580 fCorrelationVariables[5] = (*elevars)[5];
2581 fCorrelationVariables[6] = 2;
2583 if(chargexi<0) fCorrelationVariables[7] = 0;
2584 else fCorrelationVariables[7] = 2;
2585 }
else if(trke->T()<0){
2586 if(chargexi<0) fCorrelationVariables[7] = 1;
2587 else fCorrelationVariables[7] = 3;
2589 fCorrelationVariables[8] = (*elevars)[6];
2590 fCorrelationVariables[9] = (*elevars)[7];
2592 fCorrelationVariables[11] = sqrt(pxsum*pxsum+pysum*pysum);
2593 fCorrelationVariables[12] = mexi;
2594 fCorrelationVariables[13] = cosoa;
2596 cont_cor_nd[0] = sqrt(pxsum*pxsum+pysum*pysum);
2597 cont_cor_nd[1] = TVector2::Phi_mpi_pi(casc->Phi()-trke->Phi());
2598 cont_cor_nd[2] = 1.;
2600 if(chargexi<0) cont_cor_nd[3] = 0;
2601 else cont_cor_nd[3] = 2;
2602 }
else if(trke->T()<0){
2603 if(chargexi<0) cont_cor_nd[3] = 3;
2604 else cont_cor_nd[3] = 1;
2606 cont_cor_nd[4] = fCorrelationVariables[8];
2608 if(fabs(fCorrelationVariables[9]-1013)<0.001) cont_cor_nd[5] = 7;
2609 if(fabs(fCorrelationVariables[9]-1016)<0.001) cont_cor_nd[5] = 8;
2610 if(fabs(fCorrelationVariables[9]-1019)<0.001) cont_cor_nd[5] = 9;
2618 if(mexi<fAnalCuts->GetEleXiMassMax())
2620 cont_cor_nd[0] = trke->Pt();
2622 cont_cor_nd[0] = casc->Pt();
2626 cont_mass_nd[0] = mexi;
2627 cont_mass_nd[1] = cont_cor_nd[0];
2628 cont_mass_nd[4] = cont_cor_nd[3];
2629 cont_mass_nd[5] = cont_cor_nd[4];
2630 cont_mass_nd[6] = cont_cor_nd[5];
2631 cont_mass_nd[7] = cont_cor_nd[6];
2635 if(mexi_flip < 10.&& cosoa < 0.) cont_mass_nd[2]=0;
2637 cont_mass_nd[0] = trke->Pt();
2639 cont_mass_nd[0] = casc->Pt();
2652 const char* nameoutput = GetOutputSlot(11)->GetContainer()->GetName();
2658 fCandidateVariableNames[ 0]=
"Px";
2659 fCandidateVariableNames[ 1]=
"Py";
2660 fCandidateVariableNames[ 2]=
"Pz";
2661 fCandidateVariableNames[ 3]=
"Charge";
2662 fCandidateVariableNames[ 4]=
"XiMass";
2663 fCandidateVariableNames[ 5]=
"Bz";
2664 fCandidateVariableNames[ 6]=
"Centrality";
2665 fCandidateVariableNames[ 7]=
"PrimVertZ";
2666 fCandidateVariableNames[ 8]=
"EvNumber";
2667 fCandidateVariableNames[ 9]=
"RunNumber";
2668 fCandidateVariableNames[10]=
"EventPlane";
2669 fCandidateVariableNames[11]=
"Vars0";
2670 fCandidateVariableNames[12]=
"Vars1";
2671 fCandidateVariableNames[13]=
"Vars2";
2672 fCandidateVariableNames[14]=
"Vars3";
2673 fCandidateVariableNames[15]=
"Vars4";
2689 const char* nameoutput = GetOutputSlot(5)->GetContainer()->GetName();
2695 fCandidateVariableNames[ 0]=
"ElePx";
2696 fCandidateVariableNames[ 1]=
"ElePy";
2697 fCandidateVariableNames[ 2]=
"ElePz";
2698 fCandidateVariableNames[ 3]=
"TPCChi2overNDF";
2699 fCandidateVariableNames[ 4]=
"ITSNcls";
2700 fCandidateVariableNames[ 5]=
"TPCNcls";
2701 fCandidateVariableNames[ 6]=
"TPCNclsPID";
2702 fCandidateVariableNames[ 7]=
"TPCNclsRatio";
2703 fCandidateVariableNames[ 8]=
"d0R";
2704 fCandidateVariableNames[ 9]=
"d0Z";
2705 fCandidateVariableNames[10]=
"ITSClusterMap";
2706 fCandidateVariableNames[11]=
"nSigmaTPCele";
2707 fCandidateVariableNames[12]=
"nSigmaTOFele";
2708 fCandidateVariableNames[13]=
"nSigmaTPCpi";
2709 fCandidateVariableNames[14]=
"nSigmaTPCka";
2710 fCandidateVariableNames[15]=
"nSigmaTPCpr";
2711 fCandidateVariableNames[16]=
"EvNumber";
2712 fCandidateVariableNames[17]=
"EleCharge";
2713 fCandidateVariableNames[18]=
"ElePdgCode";
2714 fCandidateVariableNames[19]=
"EleMotherPdgCode";
2715 fCandidateVariableNames[20]=
"mcelepx";
2716 fCandidateVariableNames[21]=
"mcelepy";
2717 fCandidateVariableNames[22]=
"mcelepz";
2718 fCandidateVariableNames[23]=
"Centrality";
2719 fCandidateVariableNames[24]=
"PrimVertZ";
2720 fCandidateVariableNames[25]=
"RunNumber";
2737 AliAODTrack *trkpid = 0;
2739 trkpid =
fGTI[-trk->GetID()-1];
2748 trk->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0,covd0z0);
2758 Int_t mcetype = -9999;
2759 Int_t pdgEle = -9999;
2760 Int_t pdgEleMother = -9999;
2764 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
2765 for(
Int_t i=0;i<100;i++){
2766 pdgarray_ele[i]=-9999;
2767 labelarray_ele[i]=-9999;
2772 Int_t labEle = trk->GetLabel();
2773 if(labEle<0)
return;
2774 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
2776 pdgEle = mcetrk->GetPdgCode();
2777 if(abs(pdgEle)!=11)
return;
2778 mcepx = mcetrk->Px();
2779 mcepy = mcetrk->Py();
2780 mcepz = mcetrk->Pz();
2782 Int_t labEleMother = mcetrk->GetMother();
2783 if(labEleMother>-1){
2784 AliAODMCParticle *mcemothertrk = (AliAODMCParticle*)mcArray->At(labEleMother);
2786 pdgEleMother = mcemothertrk->GetPdgCode();
2793 Bool_t gamma_flag = kFALSE;
2794 Bool_t pi0_flag = kFALSE;
2795 Bool_t eta_flag = kFALSE;
2798 if(abs(pdgarray_ele[0])>400&&abs(pdgarray_ele[0])<440){
2801 if(abs(pdgarray_ele[0])>4000&&abs(pdgarray_ele[0])<4400){
2804 if(abs(pdgarray_ele[0])>500&&abs(pdgarray_ele[0])<540){
2807 if(abs(pdgarray_ele[0])>5000&&abs(pdgarray_ele[0])<5400){
2810 if(abs(pdgarray_ele[0])==22){
2816 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==111)){
2818 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
2819 pt_pi0 = mctrkm->Pt();
2821 if(abs(pdgarray_ele[0])==111){
2823 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
2824 pt_pi0 = mctrkm->Pt();
2826 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==221)){
2828 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
2829 pt_eta = mctrkm->Pt();
2831 if(abs(pdgarray_ele[0])==221){
2833 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
2834 pt_eta = mctrkm->Pt();
2839 cont_pi0[0] = trk->Pt();
2840 cont_pi0[1] = pt_pi0;
2848 cont_eta[0] = trk->Pt();
2849 cont_eta[1] = pt_eta;
2855 if(hfe_flag==0)
return;
2871 pv[0] =
fVtx1->GetX();
2872 pv[1] =
fVtx1->GetY();
2873 pv[2] =
fVtx1->GetZ();
2874 Double_t xyzR125[3] = {9999.,9999.,9999.};
2876 TVector *varvec =
new TVector(8);
2877 (*varvec)[0] = xyzR125[0];
2878 (*varvec)[1] = xyzR125[1];
2879 (*varvec)[2] = xyzR125[2];
2882 (*varvec)[5] = d0z0[0];
2883 (*varvec)[6] = (
Int_t)isconv + 2 * (
Int_t)isconv_like;
2884 (*varvec)[7] = mcetype;
2887 m_ReservoirE[
fPoolIndex][nextRes].push_back(
new TLorentzVector(trk->Px(),trk->Py(),trk->Pz(),trk->Charge()));
2894 for(
Int_t i=0;i<26;i++){
2897 for(
Int_t i=0;i<16;i++){
2985 const char* nameoutput = GetOutputSlot(6)->GetContainer()->GetName();
2991 fCandidateVariableNames[ 0]=
"Centrality";
2992 fCandidateVariableNames[ 1]=
"InvMassXi";
2993 fCandidateVariableNames[ 2]=
"XiPx";
2994 fCandidateVariableNames[ 3]=
"XiPy";
2995 fCandidateVariableNames[ 4]=
"XiPz";
2996 fCandidateVariableNames[ 5]=
"InvMassLambda";
2997 fCandidateVariableNames[ 6]=
"DcaXiDaughters";
2998 fCandidateVariableNames[ 7]=
"DcaV0Daughters";
2999 fCandidateVariableNames[ 8]=
"DecayLengthXi";
3000 fCandidateVariableNames[ 9]=
"CosPointingAngleXi";
3001 fCandidateVariableNames[10]=
"DcaV0toPrimVertex";
3002 fCandidateVariableNames[11]=
"DcaPostoPrimVertex";
3003 fCandidateVariableNames[12]=
"DcaNegtoPrimVertex";
3004 fCandidateVariableNames[13]=
"DcaBachtoPrimVertex";
3005 fCandidateVariableNames[14]=
"DecayLengthV0";
3006 fCandidateVariableNames[15]=
"CosPointingAngleV0";
3007 fCandidateVariableNames[16]=
"XiCharge";
3008 fCandidateVariableNames[17]=
"XiPdgCode";
3009 fCandidateVariableNames[18]=
"XiMotherPdgCode";
3010 fCandidateVariableNames[19]=
"mcxipx";
3011 fCandidateVariableNames[20]=
"mcxipy";
3012 fCandidateVariableNames[21]=
"mcxipz";
3013 fCandidateVariableNames[22]=
"labcasc";
3014 fCandidateVariableNames[23]=
"RunNumber";
3015 fCandidateVariableNames[24]=
"PrimVertZ";
3016 fCandidateVariableNames[25]=
"EvNumber";
3032 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
3033 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
3034 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
3035 if(!cptrack)
return;
3036 if(!cntrack)
return;
3037 if(!cbtrack)
return;
3039 fHistoXiMassvsPt->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3040 fHistoOmegaMassvsPt->Fill(casc->MassOmega(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3043 Double_t phi_alice = atan2(momxiy,momxix);
3044 if(phi_alice<0.) phi_alice += 2 * M_PI;
3047 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
3049 fVtx1->GetXYZ(posVtx);
3050 Double_t ptotlam = TMath::Sqrt(pow(casc->Px(),2)+pow(casc->Py(),2)+pow(casc->Pz(),2));
3051 Double_t dl = sqrt(pow(casc->DecayVertexV0X()-posVtx[0],2)+pow(casc->DecayVertexV0Y()-posVtx[1],2)+pow(casc->DecayVertexV0Z()-posVtx[2],2));
3052 Double_t v0propdl = dl*mlamPDG/ptotlam;
3062 Int_t xipdgcode = -9999;
3063 Int_t ximotherpdgcode = -9999;
3067 Int_t labcasc = -9999.;
3069 Int_t pdgDgcasc[2]={211,3122};
3070 Int_t pdgDgv0[2]={2212,211};
3072 if(labcasc<0)
return;
3074 fHistoXiMassvsPtMCS->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3076 AliAODMCParticle *mccasctrk = (AliAODMCParticle*)mcArray->At(labcasc);
3077 if(!mccasctrk)
return;
3082 Bool_t hfxi_flag = kFALSE;
3083 xipdgcode = mccasctrk->GetPdgCode();
3084 Int_t labcascmother = mccasctrk->GetMother();
3085 if(labcascmother>=0){
3086 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
3088 ximotherpdgcode = mothercasc->GetPdgCode();
3089 if(abs(ximotherpdgcode)>4000&&abs(ximotherpdgcode)<4400){
3094 if(!hfxi_flag)
return;
3095 mcxipx = mccasctrk->Px();
3096 mcxipy = mccasctrk->Py();
3097 mcxipz = mccasctrk->Pz();
3102 xyz[0]=casc->DecayVertexXiX();
3103 xyz[1]=casc->DecayVertexXiY();
3104 xyz[2]=casc->DecayVertexXiZ();
3105 pxpypz[0]=casc->MomXiX();
3106 pxpypz[1]=casc->MomXiY();
3107 pxpypz[2]=casc->MomXiZ();
3108 casc->GetCovarianceXYZPxPyPz(cv);
3109 sign=casc->ChargeXi();
3110 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3111 trackCasc->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig);
3112 Double_t momcasc_new[3]={-9999,-9999,-9999.};
3113 trackCasc->GetPxPyPz(momcasc_new);
3118 TLorentzVector *lv =
new TLorentzVector();
3119 lv->SetXYZM(momcasc_new[0],momcasc_new[1],momcasc_new[2],casc->MassXi());
3120 Double_t xyzR125pr[3]={9999.,9999.,9999.};
3121 Double_t xyzR125pi[3]={9999.,9999.,9999.};
3122 Double_t xyzR125bach[3]={9999.,9999.,9999.};
3123 if(casc->ChargeXi()>0){
3130 TVector *varvec =
new TVector(9);
3131 (*varvec)[0] = xyzR125pr[0];
3132 (*varvec)[1] = xyzR125pr[1];
3133 (*varvec)[2] = xyzR125pr[2];
3134 (*varvec)[3] = xyzR125pi[0];
3135 (*varvec)[4] = xyzR125pi[1];
3136 (*varvec)[5] = xyzR125pi[2];
3137 (*varvec)[6] = xyzR125bach[0];
3138 (*varvec)[7] = xyzR125bach[1];
3139 (*varvec)[8] = xyzR125bach[2];
3148 TVector *varvec =
new TVector(9);
3149 (*varvec)[0] = xyzR125pr[0];
3150 (*varvec)[1] = xyzR125pr[1];
3151 (*varvec)[2] = xyzR125pr[2];
3152 (*varvec)[3] = xyzR125pi[0];
3153 (*varvec)[4] = xyzR125pi[1];
3154 (*varvec)[5] = xyzR125pi[2];
3155 (*varvec)[6] = xyzR125bach[0];
3156 (*varvec)[7] = xyzR125bach[1];
3157 (*varvec)[8] = xyzR125bach[2];
3164 for(
Int_t i=0;i<26;i++){
3167 for(
Int_t i=0;i<16;i++){
3237 const char* nameoutput = GetOutputSlot(7)->GetContainer()->GetName();
3243 fCandidateVariableNames[ 0]=
"Centrality";
3244 fCandidateVariableNames[ 1]=
"DecayType";
3245 fCandidateVariableNames[ 2]=
"XicPx";
3246 fCandidateVariableNames[ 3]=
"XicPy";
3247 fCandidateVariableNames[ 4]=
"XicPz";
3248 fCandidateVariableNames[ 5]=
"ElePx";
3249 fCandidateVariableNames[ 6]=
"ElePy";
3250 fCandidateVariableNames[ 7]=
"ElePz";
3251 fCandidateVariableNames[ 8]=
"CascPx";
3252 fCandidateVariableNames[ 9]=
"CascPy";
3253 fCandidateVariableNames[10]=
"CascPz";
3254 fCandidateVariableNames[11]=
"PdgCode";
3255 fCandidateVariableNames[12]=
"ElePdgCode";
3256 fCandidateVariableNames[13]=
"CascPdgCode";
3257 fCandidateVariableNames[14]=
"RunNumber";
3258 fCandidateVariableNames[15]=
"EvNumber";
3272 if(!mcepart)
return;
3273 if(!mccascpart)
return;
3275 for(
Int_t i=0;i<14;i++){
3299 Double_t eE = sqrt(epx*epx+epy*epy+epz*epz+0.000511*0.000511);
3300 Double_t cascpx = mccascpart->Px();
3301 Double_t cascpy = mccascpart->Py();
3302 Double_t cascpz = mccascpart->Pz();
3303 Double_t cascE = sqrt(cascpx*cascpx+cascpy*cascpy+cascpz*cascpz+1.32171*1.32171);
3305 Double_t InvMassEleXi = sqrt(pow(eE+cascE,2)-pow(epx+cascpx,2)-pow(epy+cascpy,2)-pow(epz+cascpz,2));
3308 cont[0] = InvMassEleXi;
3309 cont[1] = mcpart->Pt();
3313 cont2[0] = InvMassEleXi;
3314 cont2[1] = mcepart->Pt();
3317 cont_eleptvseta[0] = mcepart->Pt();
3318 cont_eleptvseta[1] = mcepart->Eta();
3321 cont_eleptvsxipt[0] = mcepart->Pt();
3322 cont_eleptvsxipt[1] = mccascpart->Pt();
3324 Double_t cont_eleptvsxiptvsxicpt[4];
3325 cont_eleptvsxiptvsxicpt[0] = mcepart->Pt();
3326 cont_eleptvsxiptvsxicpt[1] = mccascpart->Pt();
3327 cont_eleptvsxiptvsxicpt[2] = mcpart->Pt();
3331 contmc[0] = mcpart->Pt();
3332 contmc[1] = mcpart->Y();
3335 contmcele[0] = mcepart->Pt();
3336 contmcele[1] = mcepart->Eta();
3342 esdcuts->GetEtaRange(etamin,etamax);
3352 if(fabs(mcepart->Eta())<etamax){
3356 if(InvMassEleXi<fAnalCuts->GetEleXiMassMax()){
3362 if(fabs(mcpart->Y())<0.7){
3363 if(InvMassEleXi<fAnalCuts->GetEleXiMassMax()){
3368 }
else if(decaytype==10){
3382 const char* nameoutput = GetOutputSlot(9)->GetContainer()->GetName();
3388 fCandidateVariableNames[ 0]=
"Centrality";
3389 fCandidateVariableNames[ 1]=
"ElePx";
3390 fCandidateVariableNames[ 2]=
"ElePy";
3391 fCandidateVariableNames[ 3]=
"ElePz";
3392 fCandidateVariableNames[ 4]=
"ElePdgCode";
3393 fCandidateVariableNames[ 5]=
"EleMotherPdgCode";
3394 fCandidateVariableNames[ 6]=
"RunNumber";
3395 fCandidateVariableNames[ 7]=
"EvNumber";
3408 if(!mcepart)
return;
3410 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
3417 contmc[0] = mcepart->Pt();
3418 contmc[1] = mcepart->Eta();
3421 if(semi_flag==1 && !ele_from_bottom){
3424 if(semi_flag==1 && ele_from_bottom){
3432 Bool_t hfe_flag = kFALSE;
3433 Int_t labemother = mcepart->GetMother();
3434 Int_t pdgmotherele = -9999;
3436 AliAODMCParticle *motherele = (AliAODMCParticle*)mcArray->At(labemother);
3437 pdgmotherele = motherele->GetPdgCode();
3438 if(abs(pdgmotherele)>4000&&abs(pdgmotherele)<4400){
3442 if(!hfe_flag)
return;
3446 for(
Int_t i=0;i<8;i++){
3470 const char* nameoutput = GetOutputSlot(10)->GetContainer()->GetName();
3476 fCandidateVariableNames[ 0]=
"Centrality";
3477 fCandidateVariableNames[ 1]=
"CascPx";
3478 fCandidateVariableNames[ 2]=
"CascPy";
3479 fCandidateVariableNames[ 3]=
"CascPz";
3480 fCandidateVariableNames[ 4]=
"CascPdgCode";
3481 fCandidateVariableNames[ 5]=
"CascMotherPdgCode";
3482 fCandidateVariableNames[ 6]=
"RunNumber";
3483 fCandidateVariableNames[ 7]=
"EvNumber";
3496 if(!mccascpart)
return;
3498 for(
Int_t i=0;i<8;i++){
3502 Bool_t hfxi_flag = kFALSE;
3503 Int_t labcascmother = mccascpart->GetMother();
3504 Int_t pdgmothercasc = -9999;
3505 if(labcascmother>=0){
3506 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
3508 pdgmothercasc = mothercasc->GetPdgCode();
3509 if(abs(pdgmothercasc)>4000&&abs(pdgmothercasc)<4400){
3514 if(!hfxi_flag)
return;
3517 contmc[0] = mccascpart->Pt();
3518 contmc[1] = mccascpart->Eta();
3542 fCEvents =
new TH1F(
"fCEvents",
"conter",18,-0.5,17.5);
3544 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3545 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3546 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3547 fCEvents->GetXaxis()->SetBinLabel(4,
"TriggerOK");
3548 fCEvents->GetXaxis()->SetBinLabel(5,
"IsEventSelected");
3549 fCEvents->GetXaxis()->SetBinLabel(6,
"CascadesHF exists");
3550 fCEvents->GetXaxis()->SetBinLabel(7,
"MCarray exists");
3551 fCEvents->GetXaxis()->SetBinLabel(8,
"MCheader exists");
3552 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3553 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3554 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3555 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3556 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3557 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3559 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3560 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3563 fCEvents->GetYaxis()->SetTitle(
"counts");
3565 fHTrigger =
new TH1F(
"fHTrigger",
"counter",18,-0.5,17.5);
3567 fHTrigger->GetXaxis()->SetBinLabel(1,
"X1");
3568 fHTrigger->GetXaxis()->SetBinLabel(2,
"kMB");
3569 fHTrigger->GetXaxis()->SetBinLabel(3,
"kSemiCentral");
3570 fHTrigger->GetXaxis()->SetBinLabel(4,
"kCentral");
3571 fHTrigger->GetXaxis()->SetBinLabel(5,
"kINT7");
3572 fHTrigger->GetXaxis()->SetBinLabel(6,
"kEMC7");
3574 fHTrigger->GetXaxis()->SetBinLabel(8,
"kMB|kSemiCentral|kCentral");
3575 fHTrigger->GetXaxis()->SetBinLabel(9,
"kINT7|kEMC7");
3576 fHTrigger->GetXaxis()->SetBinLabel(11,
"kMB&kSemiCentral");
3577 fHTrigger->GetXaxis()->SetBinLabel(12,
"kMB&kCentral");
3578 fHTrigger->GetXaxis()->SetBinLabel(13,
"kINT7&kEMC7");
3580 fHCentrality =
new TH1F(
"fHCentrality",
"conter",100,0.,100.);
3581 fHEventPlane =
new TH1F(
"fHEventPlane",
"conter",100,-3.14,3.14);
3582 fHNTrackletvsZ =
new TH2F(
"fHNTrackletvsZ",
"N_{tracklet} vs z",30,-15.,15.,120,-0.5,119.5);
3604 Int_t bins_base[4]= {22 ,100 , 100 ,10};
3605 Double_t xmin_base[4]={1.3,0 , -0.5 ,0.00};
3606 Double_t xmax_base[4]={5.7,20. , 0.5 ,100};
3608 fHistoEleXiMass =
new THnSparseF(
"fHistoEleXiMass",
"",4,bins_base,xmin_base,xmax_base);
3610 fHistoEleXiMassRS =
new THnSparseF(
"fHistoEleXiMassRS",
"",4,bins_base,xmin_base,xmax_base);
3612 fHistoEleXiMassWS =
new THnSparseF(
"fHistoEleXiMassWS",
"",4,bins_base,xmin_base,xmax_base);
3614 fHistoEleXiMassRSMix =
new THnSparseF(
"fHistoEleXiMassRSMix",
"",4,bins_base,xmin_base,xmax_base);
3616 fHistoEleXiMassWSMix =
new THnSparseF(
"fHistoEleXiMassWSMix",
"",4,bins_base,xmin_base,xmax_base);
3622 fHistoEleXiMassRS1 =
new THnSparseF(
"fHistoEleXiMassRS1",
"",4,bins_base,xmin_base,xmax_base);
3624 fHistoEleXiMassWS1 =
new THnSparseF(
"fHistoEleXiMassWS1",
"",4,bins_base,xmin_base,xmax_base);
3634 fHistoEleXiMassRS2 =
new THnSparseF(
"fHistoEleXiMassRS2",
"",4,bins_base,xmin_base,xmax_base);
3636 fHistoEleXiMassWS2 =
new THnSparseF(
"fHistoEleXiMassWS2",
"",4,bins_base,xmin_base,xmax_base);
3684 Int_t bins_base_elept[3]= {10 ,100 ,10};
3685 Double_t xmin_base_elept[3]={1.3,0 ,0.00};
3686 Double_t xmax_base_elept[3]={3.3,10. ,100};
3688 fHistoEleXiMassvsElePtRS =
new THnSparseF(
"fHistoEleXiMassvsElePtRS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3690 fHistoEleXiMassvsElePtWS =
new THnSparseF(
"fHistoEleXiMassvsElePtWS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3700 fHistoEleXiMassvsElePtRS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3702 fHistoEleXiMassvsElePtWS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3712 fHistoEleXiMassvsElePtRS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3714 fHistoEleXiMassvsElePtWS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3725 fHistoElePtRS=
new TH2F(
"fHistoElePtRS",
"Right-sign e pt",100,0.,10.,10,0.,100.);
3727 fHistoElePtWS=
new TH2F(
"fHistoElePtWS",
"Wrong-sign e pt",100,0.,10.,10,0.,100.);
3734 fHistoEleXiMassMCS =
new THnSparseF(
"fHistoEleXiMassMCS",
"",4,bins_base,xmin_base,xmax_base);
3736 fHistoEleXiMassMCS1 =
new THnSparseF(
"fHistoEleXiMassMCS1",
"",4,bins_base,xmin_base,xmax_base);
3738 fHistoEleXiMassMCS2 =
new THnSparseF(
"fHistoEleXiMassMCS2",
"",4,bins_base,xmin_base,xmax_base);
3758 fHistoEleXiMassMCGen =
new THnSparseF(
"fHistoEleXiMassMCGen",
"",4,bins_base,xmin_base,xmax_base);
3760 fHistoEleXiMassvsElePtMCS =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3764 fHistoEleXiMassvsElePtMCS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3768 fHistoEleXiMassvsElePtMCS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3777 Int_t bins_eleptvseta[3]= {50,20 ,10};
3778 Double_t xmin_eleptvseta[3]={0.,-1. ,0.0};
3779 Double_t xmax_eleptvseta[3]={5.,1. ,100};
3781 fHistoElePtvsEtaRS =
new THnSparseF(
"fHistoElePtvsEtaRS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3783 fHistoElePtvsEtaWS =
new THnSparseF(
"fHistoElePtvsEtaWS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3785 fHistoElePtvsEtaRSMix =
new THnSparseF(
"fHistoElePtvsEtaRSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3787 fHistoElePtvsEtaWSMix =
new THnSparseF(
"fHistoElePtvsEtaWSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3789 fHistoElePtvsEtaMCS =
new THnSparseF(
"fHistoElePtvsEtaMCS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3791 fHistoElePtvsEtaMCGen =
new THnSparseF(
"fHistoElePtvsEtaMCGen",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3794 Int_t bins_eleptvsxipt[3]= {50,20 ,10};
3795 Double_t xmin_eleptvsxipt[3]={0.,0. ,0.0};
3796 Double_t xmax_eleptvsxipt[3]={5.,5. ,100};
3798 fHistoElePtvsXiPtRS =
new THnSparseF(
"fHistoElePtvsXiPtRS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3800 fHistoElePtvsXiPtWS =
new THnSparseF(
"fHistoElePtvsXiPtWS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3802 fHistoElePtvsXiPtRSMix =
new THnSparseF(
"fHistoElePtvsXiPtRSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3804 fHistoElePtvsXiPtWSMix =
new THnSparseF(
"fHistoElePtvsXiPtWSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3806 fHistoElePtvsXiPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtMCS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3808 fHistoElePtvsXiPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtMCGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3810 fHistoElePtvsXiPtMCXicGen =
new THnSparseF(
"fHistoElePtvsXiPtMCXicGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3813 Int_t bins_eleptvsxiptvsxicpt[4]= {50,20,10,10};
3814 Double_t xmin_eleptvsxiptvsxicpt[4]={0.,0.,0.,0.0};
3815 Double_t xmax_eleptvsxiptvsxicpt[4]={5.,5.,10.,100};
3816 fHistoElePtvsXiPtvsXicPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCS",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3818 fHistoElePtvsXiPtvsXicPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCGen",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3821 Int_t bins_eleptvsd0[3]= {50 ,50 ,10};
3822 Double_t xmin_eleptvsd0[3]={0.,-0.2 ,0.0};
3823 Double_t xmax_eleptvsd0[3]={5.,0.2 ,100};
3825 fHistoElePtvsd0RS =
new THnSparseF(
"fHistoElePtvsd0RS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3827 fHistoElePtvsd0WS =
new THnSparseF(
"fHistoElePtvsd0WS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3829 fHistoElePtvsd0RSMix =
new THnSparseF(
"fHistoElePtvsd0RSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3831 fHistoElePtvsd0WSMix =
new THnSparseF(
"fHistoElePtvsd0WSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3833 fHistoElePtvsd0MCS =
new THnSparseF(
"fHistoElePtvsd0MCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3835 fHistoElePtvsd0PromptMCS =
new THnSparseF(
"fHistoElePtvsd0PromptMCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3843 fHistoBachPt =
new TH1F(
"fHistoBachPt",
"Bachelor p_{T}",100,0.0,5.0);
3845 fHistoBachPtMCS =
new TH1F(
"fHistoBachPtMCS",
"Bachelor p_{T}",100,0.0,5.0);
3849 fHistod0Bach =
new TH1F(
"fHistod0Bach",
"Bachelor d_{0}",100,-0.5,0.5);
3881 for(
Int_t i=0;i<8;i++){
3891 Int_t bins_xicmcgen[3]= {100 ,20 ,10};
3892 Double_t xmin_xicmcgen[3]={0.,-1.0 ,0.0};
3893 Double_t xmax_xicmcgen[3]={20.,1.0 ,100};
3894 fHistoXicMCGen =
new THnSparseF(
"fHistoXicMCGen",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3896 fHistoXicMCGen1 =
new THnSparseF(
"fHistoXicMCGen1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3898 fHistoXicMCGen2 =
new THnSparseF(
"fHistoXicMCGen2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3900 fHistoXicMCS =
new THnSparseF(
"fHistoXicMCS",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3902 fHistoXicMCS1 =
new THnSparseF(
"fHistoXicMCS1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3904 fHistoXicMCS2 =
new THnSparseF(
"fHistoXicMCS2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3907 Int_t bins_xibmcgen[3]= {100 ,20 ,10};
3908 Double_t xmin_xibmcgen[3]={0.,-1.0 ,0.0};
3909 Double_t xmax_xibmcgen[3]={50.,1.0 ,100};
3910 fHistoXibMCGen =
new THnSparseF(
"fHistoXibMCGen",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3912 fHistoXibMCS =
new THnSparseF(
"fHistoXibMCS",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3915 Int_t bins_xibmcgen_withxic[3]= {50 ,100 ,100};
3916 Double_t xmin_xibmcgen_withxic[3]={0.,-5.,-5.};
3917 Double_t xmax_xibmcgen_withxic[3]={50.,5.,5.};
3918 fHistoXibMCGenWithXic =
new THnSparseF(
"fHistoXibMCGenWithXic",
"",3,bins_xibmcgen_withxic,xmin_xibmcgen_withxic,xmax_xibmcgen_withxic);
3921 Int_t bins_elemcgen[3]= {100 ,20 ,10};
3922 Double_t xmin_elemcgen[3]={0.,-1.0 ,0.0};
3923 Double_t xmax_elemcgen[3]={10.,1.0 ,100};
3924 fHistoElectronMCGen =
new THnSparseF(
"fHistoElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3928 fHistoCharmElectronMCGen =
new THnSparseF(
"fHistoCharmElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3930 fHistoXicElectronMCGen =
new THnSparseF(
"fHistoXicElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3932 fHistoXicElectronMCGen1 =
new THnSparseF(
"fHistoXicElectronMCGen1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3934 fHistoXicElectronMCGen2 =
new THnSparseF(
"fHistoXicElectronMCGen2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3936 fHistoXicElectronMCS =
new THnSparseF(
"fHistoXicElectronMCS",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3938 fHistoXicElectronMCS1 =
new THnSparseF(
"fHistoXicElectronMCS1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3940 fHistoXicElectronMCS2 =
new THnSparseF(
"fHistoXicElectronMCS2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3943 Int_t bins_ximcgen[3]= {50 ,20 ,10};
3944 Double_t xmin_ximcgen[3]={0.,-1.0 ,0.0};
3945 Double_t xmax_ximcgen[3]={10.,1.0 ,100};
3946 fHistoXiMCGen =
new THnSparseF(
"fHistoXiMCGen",
"",3,bins_ximcgen,xmin_ximcgen,xmax_ximcgen);
4025 for(
Int_t ih=0;ih<23;ih++){
4026 Int_t bins_eleptvscutvars[3];
4030 bins_eleptvscutvars[0] = 20;
4031 xmin_eleptvscutvars[0] = 0.;
4032 xmax_eleptvscutvars[0] = 20.;
4033 bins_eleptvscutvars[2] = 10;
4034 xmin_eleptvscutvars[2] = 0.;
4035 xmax_eleptvscutvars[2] = 100.;
4039 bins_eleptvscutvars[1] = 40;
4040 xmin_eleptvscutvars[1] = 0.;
4041 xmax_eleptvscutvars[1] = 160.;
4042 }
else if(ih==2 || ih==3){
4044 bins_eleptvscutvars[1] = 20;
4045 xmin_eleptvscutvars[1] = -5.;
4046 xmax_eleptvscutvars[1] = 5.;
4049 bins_eleptvscutvars[1] = 30;
4050 xmin_eleptvscutvars[1] = -1.5;
4051 xmax_eleptvscutvars[1] = 1.5;
4054 bins_eleptvscutvars[1] = 7;
4055 xmin_eleptvscutvars[1] = -0.5;
4056 xmax_eleptvscutvars[1] = 6.5;
4059 bins_eleptvscutvars[1] = 50;
4060 xmin_eleptvscutvars[1] = 1.1156-0.03;
4061 xmax_eleptvscutvars[1] = 1.1156+0.03;
4064 bins_eleptvscutvars[1] = 50;
4065 xmin_eleptvscutvars[1] = 1.32-0.03;
4066 xmax_eleptvscutvars[1] = 1.32+0.03;
4067 }
else if(ih==8 || ih==9){
4069 bins_eleptvscutvars[1] = 20;
4070 xmin_eleptvscutvars[1] = 0.;
4071 xmax_eleptvscutvars[1] = 5.;
4072 }
else if(ih==10 || ih==11){
4074 bins_eleptvscutvars[1] = 20;
4075 xmin_eleptvscutvars[1] = 0.;
4076 xmax_eleptvscutvars[1] = 2.;
4077 }
else if(ih==12 || ih==13 || ih==14){
4079 bins_eleptvscutvars[1] = 20;
4080 xmin_eleptvscutvars[1] = 0.;
4081 xmax_eleptvscutvars[1] = 0.5;
4082 }
else if(ih==15 || ih==16){
4084 bins_eleptvscutvars[1] = 20;
4085 xmin_eleptvscutvars[1] = 0.95;
4086 xmax_eleptvscutvars[1] = 1.0;
4087 }
else if(ih==17 || ih==18 || ih==19){
4089 bins_eleptvscutvars[1] = 20;
4090 xmin_eleptvscutvars[1] = -5.;
4091 xmax_eleptvscutvars[1] = 5.;
4092 }
else if(ih==20 || ih==21){
4094 bins_eleptvscutvars[1] = 30;
4095 xmin_eleptvscutvars[1] = -1.5;
4096 xmax_eleptvscutvars[1] = 1.5;
4099 bins_eleptvscutvars[1] = 20;
4100 xmin_eleptvscutvars[1] = 0.;
4101 xmax_eleptvscutvars[1] = 3.141592/2;
4104 fHistoElePtvsCutVarsRS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsRS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4106 fHistoElePtvsCutVarsWS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsWS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4108 fHistoElePtvsCutVarsMCS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsMCS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4112 Int_t bins_eletag[3]= {20 ,40 ,10};
4113 Double_t xmin_eletag[3]={0.,0. ,0.0};
4114 Double_t xmax_eletag[3]={10.,20 ,100};
4115 fHistoElectronPi0Total =
new THnSparseF(
"fHistoElectronPi0Total",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4117 fHistoElectronPi0Tag =
new THnSparseF(
"fHistoElectronPi0Tag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4119 fHistoElectronEtaTotal =
new THnSparseF(
"fHistoElectronEtaTotal",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4121 fHistoElectronEtaTag =
new THnSparseF(
"fHistoElectronEtaTag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4140 Int_t bins_cor_nd[7]= {100 , 20, 20, 4, 3, 10, 10};
4141 Double_t xmin_cor_nd[7]={0.,-M_PI,0.,-0.5,-0.5,-0.5,0.};
4142 Double_t xmax_cor_nd[7]={20.,M_PI,40.,3.5,2.5,9.5,100.};
4143 Double_t xmax_cor_nd2[7]={10.,M_PI,40.,3.5,2.5,9.5,100.};
4162 Int_t bins_mass_nd[8]= {22,100 , 2, 2, 4, 3, 10, 10};
4163 Double_t xmin_mass_nd[8]={1.3,0.,-0.5,-0.5,-0.5,-0.5,-0.5,0.};
4164 Double_t xmax_mass_nd[8]={5.7,20.,1.5,1.5,3.5,2.5,9.5,100.};
4165 Double_t xmax_mass_nd2[8]={5.7,10.,1.5,1.5,3.5,2.5,9.5,100.};
4207 if(!casc)
return 0x0;
4208 if(!part)
return 0x0;
4209 if(!aod)
return 0x0;
4214 AliAODVertex *primVertexAOD;
4215 Bool_t unsetvtx = kFALSE;
4219 primVertexAOD =
fVtx1;
4224 primVertexAOD =
fVtx1;
4226 if(!primVertexAOD)
return 0x0;
4227 Double_t posprim[3]; primVertexAOD->GetXYZ(posprim);
4232 AliESDtrack *esdtrack =
new AliESDtrack((AliVTrack*)partpid);
4235 xyz[0]=casc->DecayVertexXiX();
4236 xyz[1]=casc->DecayVertexXiY();
4237 xyz[2]=casc->DecayVertexXiZ();
4238 pxpypz[0]=casc->MomXiX();
4239 pxpypz[1]=casc->MomXiY();
4240 pxpypz[2]=casc->MomXiZ();
4241 casc->GetCovarianceXYZPxPyPz(cv);
4242 sign=casc->ChargeXi();
4243 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
4246 Double_t dca = esdtrack->GetDCA(trackCasc,
fBzkG,xdummy,ydummy);
4253 Double_t d0z0bach[2],covd0z0bach[3];
4254 if(sqrt(pow(secVert->GetX(),2)+pow(secVert->GetY(),2))<1.){
4255 part->PropagateToDCA(secVert,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4256 trackCasc->PropagateToDCA(secVert,
fBzkG,kVeryBig);
4258 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4259 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig);
4261 Double_t momcasc_new[3]={-9999,-9999,-9999.};
4262 trackCasc->GetPxPyPz(momcasc_new);
4265 px[0] = part->Px(); py[0] = part->Py(); pz[0] = part->Pz();
4266 px[1] = momcasc_new[0]; py[1] = momcasc_new[1]; pz[1] = momcasc_new[2];
4273 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4275 d0err[0] = TMath::Sqrt(covd0z0bach[0]);
4277 Double_t d0z0casc[2],covd0z0casc[3];
4278 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0casc,covd0z0casc);
4280 d0err[1] = TMath::Sqrt(covd0z0casc[0]);
4289 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
4290 if(esdtrack)
delete esdtrack;
4291 if(trackCasc)
delete trackCasc;
4298 theCascade->GetSecondaryVtx()->AddDaughter(part);
4299 theCascade->GetSecondaryVtx()->AddDaughter(casc);
4300 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
4301 if(esdtrack)
delete esdtrack;
4302 if(trackCasc)
delete trackCasc;
4317 AliESDtrack *cptrk1 =
new AliESDtrack((AliVTrack*)trk);
4318 TrackArray->AddAt(cptrk1,0);
4320 AliESDtrack *cascptrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(0));
4321 TrackArray->AddAt(cascptrack,1);
4322 AliESDtrack *cascntrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(1));
4323 TrackArray->AddAt(cascntrack,2);
4324 AliESDtrack *cascbtrack =
new AliESDtrack((AliVTrack*)casc->GetDecayVertexXi()->GetDaughter(0));
4325 TrackArray->AddAt(cascbtrack,3);
4329 for(
Int_t i=0;i<4;i++)
4331 AliESDtrack *tesd = (AliESDtrack*)TrackArray->UncheckedAt(i);
4334 TrackArray->Clear();
4349 Bool_t fRecoPrimVtxSkippingTrks = kTRUE;
4350 Bool_t fRmTrksFromPrimVtx = kFALSE;
4352 AliESDVertex *vertexESD = 0;
4353 AliAODVertex *vertexAOD = 0;
4358 if(!fRecoPrimVtxSkippingTrks && !fRmTrksFromPrimVtx) {
4361 vertexESD =
new AliESDVertex(*
fV1);
4366 Int_t nTrks = trkArray->GetEntriesFast();
4367 AliVertexerTracks *vertexer =
new AliVertexerTracks(event->GetMagneticField());
4369 if(fRecoPrimVtxSkippingTrks) {
4372 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraint")) {
4374 event->GetDiamondCovXY(diamondcovxy);
4375 Double_t pos[3]={
event->GetDiamondX(),
event->GetDiamondY(),0.};
4376 Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
4377 AliESDVertex *diamond =
new AliESDVertex(pos,cov,1.,1);
4378 vertexer->SetVtxStart(diamond);
4379 delete diamond; diamond=NULL;
4380 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraintOnlyFitter"))
4381 vertexer->SetOnlyFitter();
4383 Int_t skipped[1000];
4384 Int_t nTrksToSkip=0,id;
4385 AliExternalTrackParam *t = 0;
4386 for(
Int_t i=0; i<nTrks; i++) {
4387 t = (AliExternalTrackParam*)trkArray->UncheckedAt(i);
4388 id = (
Int_t)t->GetID();
4390 skipped[nTrksToSkip++] = id;
4395 for(
Int_t j=0; j<
event->GetNumberOfTracks(); j++) {
4396 AliVTrack *vtrack = (AliVTrack*)event->GetTrack(j);
4397 if(!vtrack->GetCovarianceXYZPxPyPz(covtest)) {
4398 id = (
Int_t)vtrack->GetID();
4400 skipped[nTrksToSkip++] = id;
4403 for(
Int_t ijk=nTrksToSkip; ijk<1000; ijk++) skipped[ijk]=-1;
4405 vertexer->SetSkipTracks(nTrksToSkip,skipped);
4406 vertexESD = (AliESDVertex*)vertexer->FindPrimaryVertex(event);
4408 }
else if(fRmTrksFromPrimVtx && nTrks>0) {
4413 AliESDtrack *esdTrack = 0;
4415 for(
Int_t i=0; i<nTrks; i++) {
4416 t = (AliESDtrack*)trkArray->UncheckedAt(i);
4417 esdTrack =
new AliESDtrack(*t);
4418 rmArray.AddLast(esdTrack);
4419 if(esdTrack->GetID()>=0) {
4420 rmId[i]=(
UShort_t)esdTrack->GetID();
4425 Float_t diamondxy[2]={
static_cast<Float_t>(
event->GetDiamondX()),static_cast<Float_t>(event->GetDiamondY())};
4426 vertexESD = vertexer->RemoveTracksFromVertex(
fV1,&rmArray,rmId,diamondxy);
4427 delete [] rmId; rmId=NULL;
4432 delete vertexer; vertexer=NULL;
4433 if(!vertexESD)
return vertexAOD;
4434 if(vertexESD->GetNContributors()<=0) {
4436 delete vertexESD; vertexESD=NULL;
4445 vertexESD->GetXYZ(pos);
4446 vertexESD->GetCovMatrix(cov);
4447 chi2perNDF = vertexESD->GetChi2toNDF();
4448 delete vertexESD; vertexESD=NULL;
4450 vertexAOD =
new AliAODVertex(pos,cov,chi2perNDF);
4462 AliAODVertex *primVertexAOD;
4463 Bool_t unsetvtx = kFALSE;
4467 primVertexAOD =
fVtx1;
4472 primVertexAOD =
fVtx1;
4474 if(!primVertexAOD)
return 0x0;
4476 AliESDVertex * vertexESD =
new AliESDVertex(*
fV1);
4479 vertexESD->GetXYZ(pos);
4480 vertexESD->GetCovMatrix(cov);
4481 chi2perNDF = vertexESD->GetChi2toNDF();
4482 delete vertexESD; vertexESD=NULL;
4484 AliAODVertex *secVert =
new AliAODVertex(pos,cov,chi2perNDF);
4494 for(
Int_t i=0;i<100;i++){
4495 pdgarray_ele[i] = -9999;
4496 labelarray_ele[i] = -9999;
4497 pdgarray_casc[i] = -9999;
4498 labelarray_casc[i] = -9999;
4503 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(exobj->
GetBachelor());
4505 Int_t labEle = trk->GetLabel();
4506 if(labEle<0)
return -1;
4507 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
4508 if(!mcetrk)
return -1;
4509 labelarray_ele[0] = labEle;
4510 pdgarray_ele[0] = mcetrk->GetPdgCode();
4513 AliAODMCParticle *mcprimele=0;
4515 while(mcprimele->GetMother()>=0) {
4516 Int_t labprim_ele=mcprimele->GetMother();
4517 AliAODMCParticle *tmcprimele = (AliAODMCParticle*)mcArray->At(labprim_ele);
4522 mcprimele = tmcprimele;
4523 pdgarray_ele[ngen_ele] = mcprimele->GetPdgCode();
4524 labelarray_ele[ngen_ele] = labprim_ele;
4526 if(ngen_ele==100)
break;
4529 AliAODcascade *theCascade =
dynamic_cast<AliAODcascade*
>(exobj->
GetCascade());
4530 if(!theCascade)
return -1;
4532 Int_t pdgDgcasc[2]={211,3122};
4533 Int_t pdgDgv0[2]={2212,211};
4535 if(labcasc<0)
return -1;
4537 AliAODMCParticle *mccasc = (AliAODMCParticle*)mcArray->At(labcasc);
4538 if(!mccasc)
return -1;
4539 labelarray_casc[0] = labcasc;
4540 pdgarray_casc[0] = mccasc->GetPdgCode();
4543 AliAODMCParticle *mcprimcasc=0;
4544 mcprimcasc = mccasc;
4545 while(mcprimcasc->GetMother()>=0) {
4546 Int_t labprim_casc=mcprimcasc->GetMother();
4547 AliAODMCParticle *tmcprimcasc = (AliAODMCParticle*)mcArray->At(labprim_casc);
4552 mcprimcasc = tmcprimcasc;
4553 pdgarray_casc[ngen_casc] = mcprimcasc->GetPdgCode();
4554 labelarray_casc[ngen_casc] = labprim_casc;
4556 if(ngen_casc==100)
break;
4559 Bool_t same_flag = kFALSE;
4560 Int_t matchedlabel=-9999;
4561 for(
Int_t iemc=0;iemc<ngen_ele;iemc++){
4562 for(
Int_t ivmc=0;ivmc<ngen_casc;ivmc++){
4563 if(labelarray_ele[iemc]==labelarray_casc[ivmc]){
4565 matchedlabel = labelarray_ele[iemc];
4569 if(same_flag)
break;
4572 return matchedlabel;
4582 AliAODTrack *cptrack = (AliAODTrack*) theCascade->GetDaughter(0);
4583 if(!cptrack)
return -1;
4584 Int_t label_p = TMath::Abs(cptrack->GetLabel());
4585 if(label_p<0)
return -1;
4586 AliAODTrack *cntrack = (AliAODTrack*) theCascade->GetDaughter(1);
4587 if(!cntrack)
return -1;
4588 Int_t label_n = TMath::Abs(cntrack->GetLabel());
4589 if(label_n<0)
return -1;
4590 Int_t labv0 = theCascade->MatchToMC(pdgDgcasc[1],mcArray,2,pdgDgv0);
4591 if(labv0<0)
return -1;
4592 AliAODMCParticle *mcpartv0= (AliAODMCParticle*) mcArray->At(labv0);
4594 AliAODTrack *cbtrack = (AliAODTrack*) theCascade->GetDecayVertexXi()->GetDaughter(0);
4595 if(!cbtrack)
return -1;
4597 Int_t label_b = TMath::Abs(cbtrack->GetLabel());
4598 if(label_b<0)
return -1;
4600 AliAODMCParticle *mcpartb= (AliAODMCParticle*) mcArray->At(label_b);
4601 Int_t pdgb = TMath::Abs(mcpartb->GetPdgCode());
4602 if(pdgb!=pdgDgcasc[0])
return -1;
4604 AliAODMCParticle *mcmotherv0=mcpartv0;
4605 Bool_t isFromXiv0 = kFALSE;
4606 Int_t labxiv0 = mcmotherv0->GetMother();
4607 if(labxiv0<0)
return -1;
4608 mcmotherv0 = (AliAODMCParticle*) mcArray->At(labxiv0);
4610 Int_t pdg = TMath::Abs(mcmotherv0 ->GetPdgCode());
4611 if(pdg==pdgabscasc){
4615 if(!isFromXiv0)
return -1;
4617 AliAODMCParticle *mcmotherb=mcpartb;
4618 Bool_t isFromXib = kFALSE;
4619 Int_t labxib = mcmotherb->GetMother();
4620 if(labxib<0)
return -1;
4621 mcmotherb = (AliAODMCParticle*) mcArray->At(labxib);
4623 Int_t pdg = TMath::Abs(mcmotherb ->GetPdgCode());
4624 if(pdg==pdgabscasc){
4628 if(!isFromXib)
return -1;
4630 if(labxiv0!=labxib)
return -1;
4642 if(trkEntries==0)
return;
4645 for(
Int_t i=0; i<trkEntries; i++) {
4646 seleFlags[i] = kFALSE;
4649 track = (AliVTrack*)event->GetTrack(i);
4653 if(!track->GetCovarianceXYZPxPyPz(covtest))
continue;
4657 AliAODTrack *aodt = (AliAODTrack*)track;
4662 if(!aodt->TestFilterBit(BIT(filterbit)))
continue;
4664 if(!aodt->TestFilterMask(BIT(filterbit)))
continue;
4668 AliAODTrack *aodtpid = 0;
4670 aodtpid =
fGTI[-aodt->GetID()-1];
4685 if(fabs(nsigma_tofele)<3.){
4688 if(fabs(eleeta)<0.6)
4690 if(fabs(eleeta)>0.6 && fabs(eleeta)<0.8)
4692 if(eleeta>-0.8 && eleeta<-0.6){
4694 }
else if(eleeta>-0.6&&eleeta<-0.4){
4696 }
else if(eleeta>-0.4&&eleeta<-0.2){
4698 }
else if(eleeta>-0.2&&eleeta<0.0){
4700 }
else if(eleeta>0.0&&eleeta<0.2){
4702 }
else if(eleeta>0.2&&eleeta<0.4){
4704 }
else if(eleeta>0.4&&eleeta<0.6){
4706 }
else if(eleeta>0.6&&eleeta<0.8){
4710 if(nsigma_tpcele>-0.5&&nsigma_tpcele<3.){
4730 fVtx1->GetXYZ(primVtx);
4733 for(
Int_t icasc=0;icasc<nCascs;icasc++)
4735 seleCascFlags[icasc] = kFALSE;
4736 AliAODcascade *casc = ((
AliAODEvent*)event)->GetCascade(icasc);
4740 seleCascFlags[icasc] = kTRUE;
4752 if(theBinZ<0 || theBinZ>=
fNzVtxBins)
return -1;
4754 if(theBinM<0 || theBinM>=
fNCentBins)
return -1;
4757 if(theBinR<0 || theBinR>=
fNRPBins)
return -1;
4772 for(
Int_t j=0;j<KiddiePool;j++){
4788 int nEle = mixTypeE.size();
4789 int nCasc = mixTypeL.size();
4790 for(
Int_t ie=0;ie<nEle;ie++){
4791 TLorentzVector* trke=mixTypeE[ie];
4793 TVector *elevars = mixTypeEVars[ie];
4794 for(
Int_t iv=0;iv<nCasc;iv++){
4795 TLorentzVector* casc=mixTypeL[iv];
4796 TVector *cascvars = mixTypeLVars[iv];
4810 Int_t nmcpart = mcArray->GetEntriesFast();
4812 Int_t mcevttype = 0;
4814 Bool_t sigmaevent = kFALSE;
4821 Int_t ncbarquark = 0;
4824 for(
Int_t i=0;i<nmcpart;i++)
4826 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4827 if(TMath::Abs(mcpart->GetPdgCode())==4){
4828 if(fabs(mcpart->Y())<1.5){
4829 if(mcpart->GetPdgCode()==4){
4830 phi_c = mcpart->Phi();
4833 if(mcpart->GetPdgCode()==-4){
4834 phi_cbar = mcpart->Phi();
4839 }
else if(mcevttype==1){
4841 }
else if(mcevttype==2){
4843 }
else if(mcevttype==3){
4849 if(TMath::Abs(mcpart->GetPdgCode())==5){
4850 if(!mcpart->IsPhysicalPrimary())
continue;
4851 if(fabs(mcpart->Y())<1.5){
4854 }
else if(mcevttype==1){
4856 }
else if(mcevttype==2){
4858 }
else if(mcevttype==3){
4866 if((mcevttype==2)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4868 if((mcevttype==1)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4872 if(ncquark!=1)
return kFALSE;
4873 if(ncbarquark!=1)
return kFALSE;
4874 Double_t dphi = fabs(phi_c - phi_cbar);
4875 if(dphi>2*M_PI) dphi -= 2*M_PI;
4876 if(dphi>M_PI) dphi = 2*M_PI-dphi;
4886 for(
Int_t i=0;i<nmcpart;i++)
4888 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4889 if(TMath::Abs(mcpart->GetPdgCode())==4132){
4892 AliAODMCParticle *mcepart = 0;
4893 AliAODMCParticle *mccascpart = 0;
4894 for(
Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4897 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4898 if(!mcdau)
continue;
4899 if(TMath::Abs(mcdau->GetPdgCode())==11){
4903 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4909 Int_t decaytype = -9999;
4910 if(e_flag && xi_flag) decaytype = 0;
4914 if(!e_flag&&xi_flag)
4916 if(e_flag&&!xi_flag)
4918 if(!e_flag&&!xi_flag)
4923 if(TMath::Abs(mcpart->GetPdgCode())==5132 || TMath::Abs(mcpart->GetPdgCode())==5232){
4925 Bool_t xic_flag = kFALSE;
4926 AliAODMCParticle *mcepart = 0;
4927 AliAODMCParticle *mcxicpart = 0;
4928 AliAODMCParticle *mccascpart = 0;
4929 for(
Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4932 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4933 if(!mcdau)
continue;
4934 if(TMath::Abs(mcdau->GetPdgCode())==11){
4938 if(TMath::Abs(mcdau->GetPdgCode())==4132 || TMath::Abs(mcdau->GetPdgCode())==4232 ){
4945 if(e_flag && xic_flag){
4946 for(
Int_t idau=mcxicpart->GetFirstDaughter();idau<mcxicpart->GetLastDaughter()+1;idau++)
4949 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4950 if(!mcdau)
continue;
4951 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4960 contmc_withxic[0] = mcpart->Pt();
4961 contmc_withxic[1] = mcpart->Y();
4962 contmc_withxic[2] = mcxicpart->Y();
4963 if(fabs(mcxicpart->Y())<1.){
4969 Int_t decaytype = -9999;
4970 if(e_flag && xic_flag && xi_flag) decaytype = 10;
4973 if(TMath::Abs(mcpart->GetPdgCode())==11 && mcpart->GetStatus()==1){
4976 esdcuts->GetEtaRange(etamin,etamax);
4977 if(fabs(mcpart->Eta())<etamax){
4978 Bool_t gamma_flag = kFALSE;
4979 Int_t labmother = mcpart->GetMother();
4981 AliAODMCParticle *mcmother = (AliAODMCParticle*) mcArray->At(labmother);
4982 Int_t pdgmother = mcmother->GetPdgCode();
4983 if(TMath::Abs(pdgmother)==22) gamma_flag = kTRUE;
4989 if(TMath::Abs(mcpart->GetPdgCode())==3312){
4994 if((fabs(mcpart->Y())<rapmax) && (fabs(mcpart->Eta())<etamax)){
5000 if(TMath::Abs(mcpart->GetPdgCode())==111){
5001 if(fabs(mcpart->Y())<0.5){
5005 if(TMath::Abs(mcpart->GetPdgCode())==221){
5006 if(fabs(mcpart->Y())<0.5){
5010 if(TMath::Abs(mcpart->GetPdgCode())==321){
5011 if(fabs(mcpart->Y())<0.5){
5015 if(TMath::Abs(mcpart->GetPdgCode())==421){
5016 if(fabs(mcpart->Y())<0.5){
5024 for(
Int_t i=0;i<nmcpart;i++)
5026 AliAODMCParticle *mcparte = (AliAODMCParticle*) mcArray->At(i);
5027 if(!mcparte)
continue;
5028 if(TMath::Abs(mcparte->GetPdgCode())!=11)
continue;
5029 if(mcparte->GetStatus()!=1)
continue;
5030 if(mcparte->Pt()<0.4)
continue;
5031 if(fabs(mcparte->Eta())>0.8)
continue;
5032 for(
Int_t j=0;j<nmcpart;j++)
5034 AliAODMCParticle *mcpartv = (AliAODMCParticle*) mcArray->At(j);
5035 if(!mcpartv)
continue;
5036 if(TMath::Abs(mcpartv->GetPdgCode())!=3312)
continue;
5037 if(mcpartv->Pt()<0.4)
continue;
5038 if(fabs(mcpartv->Eta())>0.8)
continue;
5039 if(mcpartv->GetNDaughters()!=2)
continue;
5057 const char* nameoutput = GetOutputSlot(11)->GetContainer()->GetName();
5063 fCandidateVariableNames[ 0] =
"InvMassEleXi";
5064 fCandidateVariableNames[ 1] =
"EleXiPx";
5065 fCandidateVariableNames[ 2] =
"EleXiPy";
5066 fCandidateVariableNames[ 3] =
"EleXiPz";
5067 fCandidateVariableNames[ 4] =
"ElePdgCode";
5068 fCandidateVariableNames[ 5] =
"ElePx";
5069 fCandidateVariableNames[ 6] =
"ElePy";
5070 fCandidateVariableNames[ 7] =
"ElePz";
5071 fCandidateVariableNames[ 8] =
"XiPdgCode";
5072 fCandidateVariableNames[ 9] =
"XiPx";
5073 fCandidateVariableNames[10] =
"XiPy";
5074 fCandidateVariableNames[11] =
"XiPz";
5075 fCandidateVariableNames[12] =
"SameFlag";
5076 fCandidateVariableNames[13] =
"EleNGeneration";
5077 fCandidateVariableNames[14] =
"EleGen1PDG";
5078 fCandidateVariableNames[15] =
"EleGen2PDG";
5079 fCandidateVariableNames[16] =
"EleGen3PDG";
5080 fCandidateVariableNames[17] =
"EleGen4PDG";
5081 fCandidateVariableNames[18] =
"EleGen5PDG";
5082 fCandidateVariableNames[19] =
"EleGen6PDG";
5083 fCandidateVariableNames[20] =
"EleGen7PDG";
5084 fCandidateVariableNames[21] =
"EleGen8PDG";
5085 fCandidateVariableNames[22] =
"EleGen9PDG";
5086 fCandidateVariableNames[23] =
"EleGen10PDG";
5087 fCandidateVariableNames[24] =
"ElePrimPDG";
5088 fCandidateVariableNames[25] =
"XiNGeneration";
5089 fCandidateVariableNames[26] =
"XiGen1PDG";
5090 fCandidateVariableNames[27] =
"XiGen2PDG";
5091 fCandidateVariableNames[28] =
"XiGen3PDG";
5092 fCandidateVariableNames[29] =
"XiGen4PDG";
5093 fCandidateVariableNames[30] =
"XiGen5PDG";
5094 fCandidateVariableNames[31] =
"XiGen6PDG";
5095 fCandidateVariableNames[32] =
"XiGen7PDG";
5096 fCandidateVariableNames[33] =
"XiGen8PDG";
5097 fCandidateVariableNames[34] =
"XiGen9PDG";
5098 fCandidateVariableNames[35] =
"XiGen10PDG";
5099 fCandidateVariableNames[36] =
"XiPrimPDG";
5100 fCandidateVariableNames[37] =
"MatchedPDG";
5114 for(
Int_t i=0;i<38;i++){
5118 TLorentzVector vele, vxi, vexi;
5119 vele.SetXYZM(mcparte->Px(),mcparte->Py(),mcparte->Pz(),0.000510998928);
5120 vxi.SetXYZM(mcpartv->Px(),mcpartv->Py(),mcpartv->Pz(),1.32171);
5123 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
5124 Int_t pdgarray_xi[100], labelarray_xi[100], ngen_xi;
5128 Bool_t same_flag = kFALSE;
5129 Int_t matched_pdg = -999999;
5130 for(
Int_t iemc=0;iemc<ngen_ele;iemc++){
5131 for(
Int_t ivmc=0;ivmc<ngen_xi;ivmc++){
5132 if(labelarray_ele[iemc]==labelarray_xi[ivmc]){
5134 matched_pdg = pdgarray_ele[iemc];
5138 if(same_flag)
break;
5140 Int_t pdgprim_ele = pdgarray_ele[ngen_ele-1];
5141 Int_t pdgprim_xi = pdgarray_xi[ngen_xi-1];