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>
45 #include "AliMCEvent.h"
46 #include "AliAnalysisManager.h"
47 #include "AliAODMCHeader.h"
48 #include "AliAODHandler.h"
50 #include "AliExternalTrackParam.h"
51 #include "AliAODVertex.h"
52 #include "AliESDVertex.h"
53 #include "AliAODRecoDecay.h"
56 #include "AliESDtrack.h"
57 #include "AliAODTrack.h"
59 #include "AliAODcascade.h"
60 #include "AliAODMCParticle.h"
61 #include "AliAnalysisTaskSE.h"
63 #include "AliPIDResponse.h"
64 #include "AliPIDCombined.h"
65 #include "AliTOFPIDResponse.h"
67 #include "AliInputEventHandler.h"
68 #include "AliESDtrackCuts.h"
69 #include "AliNeutralTrackParam.h"
70 #include "AliKFParticle.h"
71 #include "AliKFVertex.h"
72 #include "AliExternalTrackParam.h"
73 #include "AliESDtrack.h"
74 #include "AliCentrality.h"
75 #include "AliVertexerTracks.h"
76 #include "AliEventPoolManager.h"
99 fHNTrackletCorrvsZ(0),
101 fIsEventSelected(kFALSE),
102 fWriteVariableTree(kFALSE),
103 fWriteEachVariableTree(kFALSE),
104 fWriteMCVariableTree(kFALSE),
106 fEleVariablesTree(0),
107 fCascVariablesTree(0),
108 fSingleVariablesTree(0),
110 fMCEleVariablesTree(0),
111 fMCCascVariablesTree(0),
112 fMCGenPairVariablesTree(0),
113 fCorrelationVariablesTree(0),
114 fReconstructPrimVert(kFALSE),
120 fCandidateVariables(),
121 fCandidateEleVariables(),
122 fCandidateCascVariables(),
123 fCandidateSingleVariables(),
124 fCandidateMCVariables(),
125 fCandidateMCEleVariables(),
126 fCandidateMCCascVariables(),
127 fCandidateMCGenPairVariables(),
128 fCorrelationVariables(),
140 fUseCentralityV0M(kFALSE),
141 fUseCentralitySPDTracklet(kFALSE),
145 fMCDoPairAnalysis(kFALSE),
147 fHistoEleXiMassRS(0),
148 fHistoEleXiMassWS(0),
149 fHistoEleXiMassRSMix(0),
150 fHistoEleXiMassWSMix(0),
151 fHistoEleXiMassRSSide(0),
152 fHistoEleXiMassWSSide(0),
153 fHistoEleXiMassRS1(0),
154 fHistoEleXiMassWS1(0),
155 fHistoEleXiMassRSMix1(0),
156 fHistoEleXiMassWSMix1(0),
157 fHistoEleXiMassRSSide1(0),
158 fHistoEleXiMassWSSide1(0),
159 fHistoEleXiMassRS2(0),
160 fHistoEleXiMassWS2(0),
161 fHistoEleXiMassRSMix2(0),
162 fHistoEleXiMassWSMix2(0),
163 fHistoEleXiMassRSSide2(0),
164 fHistoEleXiMassWSSide2(0),
165 fHistoEleXiMassAway(0),
166 fHistoEleXiMassRSAway(0),
167 fHistoEleXiMassWSAway(0),
168 fHistoEleXiMassRSMixAway(0),
169 fHistoEleXiMassWSMixAway(0),
170 fHistoEleXiMassRSSideAway(0),
171 fHistoEleXiMassWSSideAway(0),
172 fHistoEleXiMassRS1Away(0),
173 fHistoEleXiMassWS1Away(0),
174 fHistoEleXiMassRSMix1Away(0),
175 fHistoEleXiMassWSMix1Away(0),
176 fHistoEleXiMassRSSide1Away(0),
177 fHistoEleXiMassWSSide1Away(0),
178 fHistoEleXiMassRS2Away(0),
179 fHistoEleXiMassWS2Away(0),
180 fHistoEleXiMassRSMix2Away(0),
181 fHistoEleXiMassWSMix2Away(0),
182 fHistoEleXiMassRSSide2Away(0),
183 fHistoEleXiMassWSSide2Away(0),
184 fHistoEleXiMassvsElePtRS(0),
185 fHistoEleXiMassvsElePtWS(0),
186 fHistoEleXiMassvsElePtRSMix(0),
187 fHistoEleXiMassvsElePtWSMix(0),
188 fHistoEleXiMassvsElePtRSSide(0),
189 fHistoEleXiMassvsElePtWSSide(0),
190 fHistoEleXiMassvsElePtRS1(0),
191 fHistoEleXiMassvsElePtWS1(0),
192 fHistoEleXiMassvsElePtRSMix1(0),
193 fHistoEleXiMassvsElePtWSMix1(0),
194 fHistoEleXiMassvsElePtRSSide1(0),
195 fHistoEleXiMassvsElePtWSSide1(0),
196 fHistoEleXiMassvsElePtRS2(0),
197 fHistoEleXiMassvsElePtWS2(0),
198 fHistoEleXiMassvsElePtRSMix2(0),
199 fHistoEleXiMassvsElePtWSMix2(0),
200 fHistoEleXiMassvsElePtRSSide2(0),
201 fHistoEleXiMassvsElePtWSSide2(0),
206 fHistoEleXiMassMCS(0),
207 fHistoEleXiMassMCS1(0),
208 fHistoEleXiMassMCS2(0),
209 fHistoEleXiMassXibMCS(0),
210 fHistoEleXiMassXibMCS1(0),
211 fHistoEleXiMassXibMCS2(0),
212 fHistoEleXiMassPromptMCS(0),
213 fHistoEleXiMassPromptMCS1(0),
214 fHistoEleXiMassPromptMCS2(0),
215 fHistoEleXiMassBFeeddownMCS(0),
216 fHistoEleXiMassBFeeddownMCS1(0),
217 fHistoEleXiMassBFeeddownMCS2(0),
218 fHistoEleXiMassMCGen(0),
219 fHistoEleXiMassvsElePtMCS(0),
220 fHistoEleXiMassvsElePtMCGen(0),
221 fHistoEleXiMassvsElePtMCS1(0),
222 fHistoEleXiMassvsElePtMCGen1(0),
223 fHistoEleXiMassvsElePtMCS2(0),
224 fHistoEleXiMassvsElePtMCGen2(0),
227 fHistoElePtvsEtaRS(0),
228 fHistoElePtvsEtaWS(0),
229 fHistoElePtvsEtaRSMix(0),
230 fHistoElePtvsEtaWSMix(0),
231 fHistoElePtvsEtaMCS(0),
232 fHistoElePtvsEtaMCGen(0),
233 fHistoElePtvsXiPtRS(0),
234 fHistoElePtvsXiPtWS(0),
235 fHistoElePtvsXiPtRSMix(0),
236 fHistoElePtvsXiPtWSMix(0),
237 fHistoElePtvsXiPtMCS(0),
238 fHistoElePtvsXiPtvsXicPtMCS(0),
239 fHistoElePtvsXiPtMCGen(0),
240 fHistoElePtvsXiPtvsXicPtMCGen(0),
241 fHistoElePtvsXiPtMCXicGen(0),
242 fHistoElePtvsd0RS(0),
243 fHistoElePtvsd0WS(0),
244 fHistoElePtvsd0RSMix(0),
245 fHistoElePtvsd0WSMix(0),
246 fHistoElePtvsd0MCS(0),
247 fHistoElePtvsd0PromptMCS(0),
248 fHistoElePtvsd0BFeeddownMCS(0),
251 fHistoBachPtMCGen(0),
254 fHistoXiMassvsPtMCS(0),
255 fHistoXiMassvsPtMCGen(0),
256 fHistoOmegaMassvsPt(0),
257 fHistoElectronTPCPID(0),
258 fHistoElectronTOFPID(0),
259 fHistoElectronTPCSelPID(0),
260 fHistoElectronTOFSelPID(0),
261 fHistoElectronTPCPIDSelTOF(0),
262 fHistoElectronTOFPIDSelTPC(0),
263 fHistoElectronTPCPIDSelTOFSmallEta(0),
264 fHistoElectronTPCPIDSelTOFLargeEta(0),
265 fHistoMassConversionsMin(0),
266 fHistoMassConversionsSameSignMin(0),
267 fHistoElectronQovPtvsPhi(0),
268 fHistoXiQovPtvsPhi(0),
276 fHistoXibMCGenWithXic(0),
278 fHistoXicElectronMCGen(0),
279 fHistoXicElectronMCGen1(0),
280 fHistoXicElectronMCGen2(0),
281 fHistoXicElectronMCS(0),
282 fHistoXicElectronMCS1(0),
283 fHistoXicElectronMCS2(0),
284 fHistoElectronMCGen(0),
285 fHistoBottomElectronMCGen(0),
286 fHistoCharmElectronMCGen(0),
288 fHistoLambdaPtvsDl(0),
289 fHistoLambdaPtvsDlSide(0),
290 fHistoLambdaPtvsDlMCS(0),
291 fHistoLambdaPtvsDR(0),
292 fHistoLambdaPtvsDRSide(0),
293 fHistoLambdaPtvsDRMCS(0),
294 fHistoEleXiPtvsRapidityRS(0),
295 fHistoEleXiPtvsRapidityWS(0),
296 fHistoEleXiPtvsRapidityMCS(0),
297 fHistoCorrelationVariablesvsEleXiPt(0),
298 fHistoCorrelationVariablesvsEleXiPtMix(0),
299 fHistoCorrelationVariablesvsEleXiPtMC(0),
300 fHistoCorrelationVariablesvsElePt(0),
301 fHistoCorrelationVariablesvsElePtMix(0),
302 fHistoCorrelationVariablesvsElePtMC(0),
303 fHistoCorrelationVariablesvsXiPt(0),
304 fHistoCorrelationVariablesvsXiPtMix(0),
305 fHistoCorrelationVariablesvsXiPtMC(0),
306 fHistoMassVariablesvsEleXiPt(0),
307 fHistoMassVariablesvsEleXiPtMix(0),
308 fHistoMassVariablesvsEleXiPtMC(0),
309 fHistoMassVariablesvsElePt(0),
310 fHistoMassVariablesvsElePtMix(0),
311 fHistoMassVariablesvsElePtMC(0),
312 fHistoMassVariablesvsXiPt(0),
313 fHistoMassVariablesvsXiPtMix(0),
314 fHistoMassVariablesvsXiPtMC(0),
315 fHistoResponseElePt(0),
316 fHistoResponseXiPt(0),
317 fHistoResponseEleXiPt(0),
318 fHistoResponseXiPtvsEleXiPt(0),
319 fHistoResponseXiPtXib(0),
320 fHistoResponseEleXiPtXib(0),
321 fHistoResponseMcGenXibPtvsXicPt(0),
323 fHistoElectronPi0Total(0),
324 fHistoElectronPi0Tag(0),
326 fHistoElectronEtaTotal(0),
327 fHistoElectronEtaTag(0),
331 fHistonEvtvsRunNumber(0),
332 fHistonElevsRunNumber(0),
333 fHistonXivsRunNumber(0),
334 fHistoMCEventType(0),
335 fHistoMCXic0Decays(0),
336 fHistoMCDeltaPhiccbar(0),
339 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
340 fHistodPhiSdEtaSElectronProtonR125RS(0),
341 fHistodPhiSdEtaSElectronProtonR125WS(0),
342 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
343 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
344 fHistodPhiSdEtaSElectronPionR125RS(0),
345 fHistodPhiSdEtaSElectronPionR125WS(0),
346 fHistodPhiSdEtaSElectronPionR125RSMix(0),
347 fHistodPhiSdEtaSElectronPionR125WSMix(0),
348 fHistodPhiSdEtaSElectronBachelorR125RS(0),
349 fHistodPhiSdEtaSElectronBachelorR125WS(0),
350 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
351 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
353 fMixWithoutConversionFlag(kFALSE),
354 fNumberOfEventsForMixing (5),
372 for(
Int_t i=0;i<23;i++){
377 for(
Int_t i=0;i<8;i++){
386 Bool_t writeVariableTree) :
397 fHNTrackletCorrvsZ(0),
399 fIsEventSelected(kFALSE),
400 fWriteVariableTree(writeVariableTree),
401 fWriteEachVariableTree(kFALSE),
402 fWriteMCVariableTree(kFALSE),
404 fEleVariablesTree(0),
405 fCascVariablesTree(0),
406 fSingleVariablesTree(0),
408 fMCEleVariablesTree(0),
409 fMCCascVariablesTree(0),
410 fMCGenPairVariablesTree(0),
411 fCorrelationVariablesTree(0),
412 fReconstructPrimVert(kFALSE),
418 fCandidateVariables(),
419 fCandidateEleVariables(),
420 fCandidateCascVariables(),
421 fCandidateSingleVariables(),
422 fCandidateMCVariables(),
423 fCandidateMCEleVariables(),
424 fCandidateMCCascVariables(),
425 fCandidateMCGenPairVariables(),
426 fCorrelationVariables(),
438 fUseCentralityV0M(kFALSE),
439 fUseCentralitySPDTracklet(kFALSE),
443 fMCDoPairAnalysis(kFALSE),
445 fHistoEleXiMassRS(0),
446 fHistoEleXiMassWS(0),
447 fHistoEleXiMassRSMix(0),
448 fHistoEleXiMassWSMix(0),
449 fHistoEleXiMassRSSide(0),
450 fHistoEleXiMassWSSide(0),
451 fHistoEleXiMassRS1(0),
452 fHistoEleXiMassWS1(0),
453 fHistoEleXiMassRSMix1(0),
454 fHistoEleXiMassWSMix1(0),
455 fHistoEleXiMassRSSide1(0),
456 fHistoEleXiMassWSSide1(0),
457 fHistoEleXiMassRS2(0),
458 fHistoEleXiMassWS2(0),
459 fHistoEleXiMassRSMix2(0),
460 fHistoEleXiMassWSMix2(0),
461 fHistoEleXiMassRSSide2(0),
462 fHistoEleXiMassWSSide2(0),
463 fHistoEleXiMassAway(0),
464 fHistoEleXiMassRSAway(0),
465 fHistoEleXiMassWSAway(0),
466 fHistoEleXiMassRSMixAway(0),
467 fHistoEleXiMassWSMixAway(0),
468 fHistoEleXiMassRSSideAway(0),
469 fHistoEleXiMassWSSideAway(0),
470 fHistoEleXiMassRS1Away(0),
471 fHistoEleXiMassWS1Away(0),
472 fHistoEleXiMassRSMix1Away(0),
473 fHistoEleXiMassWSMix1Away(0),
474 fHistoEleXiMassRSSide1Away(0),
475 fHistoEleXiMassWSSide1Away(0),
476 fHistoEleXiMassRS2Away(0),
477 fHistoEleXiMassWS2Away(0),
478 fHistoEleXiMassRSMix2Away(0),
479 fHistoEleXiMassWSMix2Away(0),
480 fHistoEleXiMassRSSide2Away(0),
481 fHistoEleXiMassWSSide2Away(0),
482 fHistoEleXiMassvsElePtRS(0),
483 fHistoEleXiMassvsElePtWS(0),
484 fHistoEleXiMassvsElePtRSMix(0),
485 fHistoEleXiMassvsElePtWSMix(0),
486 fHistoEleXiMassvsElePtRSSide(0),
487 fHistoEleXiMassvsElePtWSSide(0),
488 fHistoEleXiMassvsElePtRS1(0),
489 fHistoEleXiMassvsElePtWS1(0),
490 fHistoEleXiMassvsElePtRSMix1(0),
491 fHistoEleXiMassvsElePtWSMix1(0),
492 fHistoEleXiMassvsElePtRSSide1(0),
493 fHistoEleXiMassvsElePtWSSide1(0),
494 fHistoEleXiMassvsElePtRS2(0),
495 fHistoEleXiMassvsElePtWS2(0),
496 fHistoEleXiMassvsElePtRSMix2(0),
497 fHistoEleXiMassvsElePtWSMix2(0),
498 fHistoEleXiMassvsElePtRSSide2(0),
499 fHistoEleXiMassvsElePtWSSide2(0),
504 fHistoEleXiMassMCS(0),
505 fHistoEleXiMassMCS1(0),
506 fHistoEleXiMassMCS2(0),
507 fHistoEleXiMassXibMCS(0),
508 fHistoEleXiMassXibMCS1(0),
509 fHistoEleXiMassXibMCS2(0),
510 fHistoEleXiMassPromptMCS(0),
511 fHistoEleXiMassPromptMCS1(0),
512 fHistoEleXiMassPromptMCS2(0),
513 fHistoEleXiMassBFeeddownMCS(0),
514 fHistoEleXiMassBFeeddownMCS1(0),
515 fHistoEleXiMassBFeeddownMCS2(0),
516 fHistoEleXiMassMCGen(0),
517 fHistoEleXiMassvsElePtMCS(0),
518 fHistoEleXiMassvsElePtMCGen(0),
519 fHistoEleXiMassvsElePtMCS1(0),
520 fHistoEleXiMassvsElePtMCGen1(0),
521 fHistoEleXiMassvsElePtMCS2(0),
522 fHistoEleXiMassvsElePtMCGen2(0),
525 fHistoElePtvsEtaRS(0),
526 fHistoElePtvsEtaWS(0),
527 fHistoElePtvsEtaRSMix(0),
528 fHistoElePtvsEtaWSMix(0),
529 fHistoElePtvsEtaMCS(0),
530 fHistoElePtvsEtaMCGen(0),
531 fHistoElePtvsXiPtRS(0),
532 fHistoElePtvsXiPtWS(0),
533 fHistoElePtvsXiPtRSMix(0),
534 fHistoElePtvsXiPtWSMix(0),
535 fHistoElePtvsXiPtMCS(0),
536 fHistoElePtvsXiPtvsXicPtMCS(0),
537 fHistoElePtvsXiPtMCGen(0),
538 fHistoElePtvsXiPtvsXicPtMCGen(0),
539 fHistoElePtvsXiPtMCXicGen(0),
540 fHistoElePtvsd0RS(0),
541 fHistoElePtvsd0WS(0),
542 fHistoElePtvsd0RSMix(0),
543 fHistoElePtvsd0WSMix(0),
544 fHistoElePtvsd0MCS(0),
545 fHistoElePtvsd0PromptMCS(0),
546 fHistoElePtvsd0BFeeddownMCS(0),
549 fHistoBachPtMCGen(0),
552 fHistoXiMassvsPtMCS(0),
553 fHistoXiMassvsPtMCGen(0),
554 fHistoOmegaMassvsPt(0),
555 fHistoElectronTPCPID(0),
556 fHistoElectronTOFPID(0),
557 fHistoElectronTPCSelPID(0),
558 fHistoElectronTOFSelPID(0),
559 fHistoElectronTPCPIDSelTOF(0),
560 fHistoElectronTOFPIDSelTPC(0),
561 fHistoElectronTPCPIDSelTOFSmallEta(0),
562 fHistoElectronTPCPIDSelTOFLargeEta(0),
563 fHistoMassConversionsMin(0),
564 fHistoMassConversionsSameSignMin(0),
565 fHistoElectronQovPtvsPhi(0),
566 fHistoXiQovPtvsPhi(0),
574 fHistoXibMCGenWithXic(0),
576 fHistoXicElectronMCGen(0),
577 fHistoXicElectronMCGen1(0),
578 fHistoXicElectronMCGen2(0),
579 fHistoXicElectronMCS(0),
580 fHistoXicElectronMCS1(0),
581 fHistoXicElectronMCS2(0),
582 fHistoElectronMCGen(0),
583 fHistoBottomElectronMCGen(0),
584 fHistoCharmElectronMCGen(0),
586 fHistoLambdaPtvsDl(0),
587 fHistoLambdaPtvsDlSide(0),
588 fHistoLambdaPtvsDlMCS(0),
589 fHistoLambdaPtvsDR(0),
590 fHistoLambdaPtvsDRSide(0),
591 fHistoLambdaPtvsDRMCS(0),
592 fHistoEleXiPtvsRapidityRS(0),
593 fHistoEleXiPtvsRapidityWS(0),
594 fHistoEleXiPtvsRapidityMCS(0),
595 fHistoCorrelationVariablesvsEleXiPt(0),
596 fHistoCorrelationVariablesvsEleXiPtMix(0),
597 fHistoCorrelationVariablesvsEleXiPtMC(0),
598 fHistoCorrelationVariablesvsElePt(0),
599 fHistoCorrelationVariablesvsElePtMix(0),
600 fHistoCorrelationVariablesvsElePtMC(0),
601 fHistoCorrelationVariablesvsXiPt(0),
602 fHistoCorrelationVariablesvsXiPtMix(0),
603 fHistoCorrelationVariablesvsXiPtMC(0),
604 fHistoMassVariablesvsEleXiPt(0),
605 fHistoMassVariablesvsEleXiPtMix(0),
606 fHistoMassVariablesvsEleXiPtMC(0),
607 fHistoMassVariablesvsElePt(0),
608 fHistoMassVariablesvsElePtMix(0),
609 fHistoMassVariablesvsElePtMC(0),
610 fHistoMassVariablesvsXiPt(0),
611 fHistoMassVariablesvsXiPtMix(0),
612 fHistoMassVariablesvsXiPtMC(0),
613 fHistoResponseElePt(0),
614 fHistoResponseXiPt(0),
615 fHistoResponseEleXiPt(0),
616 fHistoResponseXiPtvsEleXiPt(0),
617 fHistoResponseXiPtXib(0),
618 fHistoResponseEleXiPtXib(0),
619 fHistoResponseMcGenXibPtvsXicPt(0),
621 fHistoElectronPi0Total(0),
622 fHistoElectronPi0Tag(0),
624 fHistoElectronEtaTotal(0),
625 fHistoElectronEtaTag(0),
629 fHistonEvtvsRunNumber(0),
630 fHistonElevsRunNumber(0),
631 fHistonXivsRunNumber(0),
632 fHistoMCEventType(0),
633 fHistoMCXic0Decays(0),
634 fHistoMCDeltaPhiccbar(0),
637 fGTI(0),fGTIndex(0), fTrackBuffSize(19000),
638 fHistodPhiSdEtaSElectronProtonR125RS(0),
639 fHistodPhiSdEtaSElectronProtonR125WS(0),
640 fHistodPhiSdEtaSElectronProtonR125RSMix(0),
641 fHistodPhiSdEtaSElectronProtonR125WSMix(0),
642 fHistodPhiSdEtaSElectronPionR125RS(0),
643 fHistodPhiSdEtaSElectronPionR125WS(0),
644 fHistodPhiSdEtaSElectronPionR125RSMix(0),
645 fHistodPhiSdEtaSElectronPionR125WSMix(0),
646 fHistodPhiSdEtaSElectronBachelorR125RS(0),
647 fHistodPhiSdEtaSElectronBachelorR125WS(0),
648 fHistodPhiSdEtaSElectronBachelorR125RSMix(0),
649 fHistodPhiSdEtaSElectronBachelorR125WSMix(0),
651 fMixWithoutConversionFlag(kFALSE),
652 fNumberOfEventsForMixing (5),
670 Info(
"AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Constructor");
672 for(
Int_t i=0;i<23;i++){
677 for(
Int_t i=0;i<8;i++){
682 DefineOutput(1,TList::Class());
683 DefineOutput(2,TList::Class());
684 DefineOutput(3,TList::Class());
685 DefineOutput(4,TTree::Class());
686 DefineOutput(5,TTree::Class());
687 DefineOutput(6,TTree::Class());
688 DefineOutput(7,TTree::Class());
689 DefineOutput(8,AliNormalizationCounter::Class());
690 DefineOutput(9,TTree::Class());
691 DefineOutput(10,TTree::Class());
692 DefineOutput(11,TTree::Class());
693 DefineOutput(12,TTree::Class());
701 Info(
"~AliAnalysisTaskSEXic2eleXifromAODtracks",
"Calling Destructor");
811 if (fDebug > 1) AliInfo(
"Init");
830 AliError(
"NO EVENT FOUND!");
842 AliKFParticle::SetField(
fBzkG);
843 if (TMath::Abs(
fBzkG)<0.001) {
852 AliAODTracklets* tracklets=aodEvent->GetTracklets();
853 Int_t nTr=tracklets->GetNumberOfTracklets();
854 for(
Int_t iTr=0; iTr<nTr; iTr++){
855 Double_t theta=tracklets->GetTheta(iTr);
856 Double_t eta=-TMath::Log(TMath::Tan(theta/2.));
857 if(eta>-1.0 && eta<1.0) countTr++;
859 AliAODVertex *vtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
862 if(vtx1->GetNContributors()>0){
887 TClonesArray *mcArray = 0;
888 AliAODMCHeader *mcHeader=0;
891 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
893 AliError(
"Could not find Monte-Carlo in AOD");
899 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
901 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec: MC header branch not found!\n");
906 Double_t zMCVertex = mcHeader->GetVtxZ();
908 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
922 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
927 fVtx1->GetCovarianceMatrix(cov);
928 fV1 =
new AliESDVertex(pos,cov,100.,100,
fVtx1->GetName());
944 fIsMB=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kMB)==(AliVEvent::kMB);
945 fIsSemi=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kSemiCentral)==(AliVEvent::kSemiCentral);
946 fIsCent=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kCentral)==(AliVEvent::kCentral);
947 fIsINT7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kINT7)==(AliVEvent::kINT7);
948 fIsEMC7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kEMC7)==(AliVEvent::kEMC7);
962 AliCentrality *cent = aodEvent->GetCentrality();
963 fCentrality = cent->GetCentralityPercentile(
"V0M");
966 else if(countCorr>=1 && countCorr<=8)
fCentrality = 15.;
967 else if(countCorr>=9 && countCorr<=13)
fCentrality = 25.;
968 else if(countCorr>=14 && countCorr<=19)
fCentrality = 35.;
969 else if(countCorr>=20 && countCorr<=30)
fCentrality = 45.;
970 else if(countCorr>=31 && countCorr<=49)
fCentrality = 55.;
975 if(fCentrality<0.||fCentrality>100.-0.0000001) {
982 AliEventplane *pl=aodEvent->GetEventplane();
984 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec:no eventplane! v2 analysis without eventplane not possible!\n");
1002 fQ = pl->GetQVector();
1004 AliError(
"AliAnalysisTaskSEXic2eleXifromAODtracks::UserExec: no Q vectors");
1014 Int_t runnumber_offset = 0;
1015 Int_t runnumber = aodEvent->GetRunNumber();
1016 if(runnumber<=131000&&runnumber>=114000){
1017 runnumber_offset = 114000;
1018 }
else if(runnumber<=196000&&runnumber>=195000){
1019 runnumber_offset = 195000;
1020 }
else if(runnumber<=170593&&runnumber>=167902){
1021 runnumber_offset = 167902;
1022 }
else if(runnumber<=246994&&runnumber>=244824){
1023 runnumber_offset = 244824;
1068 AliAnalysisTaskSE::Terminate();
1072 AliError(
"fOutput not available");
1078 AliError(
"fOutputAll not available");
1136 TString normName=
"NormalizationCounter";
1137 AliAnalysisDataContainer *cont = GetOutputSlot(8)->GetContainer();
1138 if(cont)normName=(
TString)cont->GetName();
1188 fPoolIndex=GetPoolIndex(fVtxZ,fCentrality,fEventPlane);
1189 Int_t nextRes( nextResVec[fPoolIndex] );
1190 while(!m_ReservoirE[fPoolIndex][nextRes].empty()){
1191 delete m_ReservoirE[fPoolIndex][nextRes].back();
1192 m_ReservoirE[fPoolIndex][nextRes].pop_back();
1194 while(!m_ReservoirL1[fPoolIndex][nextRes].empty()){
1195 delete m_ReservoirL1[fPoolIndex][nextRes].back();
1196 m_ReservoirL1[fPoolIndex][nextRes].pop_back();
1198 while(!m_ReservoirL2[fPoolIndex][nextRes].empty()){
1199 delete m_ReservoirL2[fPoolIndex][nextRes].back();
1200 m_ReservoirL2[fPoolIndex][nextRes].pop_back();
1202 while(!m_ReservoirVarsE[fPoolIndex][nextRes].empty()){
1203 delete m_ReservoirVarsE[fPoolIndex][nextRes].back();
1204 m_ReservoirVarsE[fPoolIndex][nextRes].pop_back();
1206 while(!m_ReservoirVarsL1[fPoolIndex][nextRes].empty()){
1207 delete m_ReservoirVarsL1[fPoolIndex][nextRes].back();
1208 m_ReservoirVarsL1[fPoolIndex][nextRes].pop_back();
1210 while(!m_ReservoirVarsL2[fPoolIndex][nextRes].empty()){
1211 delete m_ReservoirVarsL2[fPoolIndex][nextRes].back();
1212 m_ReservoirVarsL2[fPoolIndex][nextRes].pop_back();
1216 if(fAnalCuts->GetProdAODFilterBit()==7){
1217 ResetGlobalTrackReference();
1219 for (
Int_t iTrack=0;iTrack<aodEvent->GetNumberOfTracks();iTrack++){
1221 AliAODTrack *track =
dynamic_cast<AliAODTrack *
>(aodEvent->GetTrack(iTrack));
1222 if (!track)
continue;
1225 StoreGlobalTrackReference(track,iTrack);
1230 Int_t nCascs= aodEvent->GetNumberOfCascades();
1231 Int_t nTracks= aodEvent->GetNumberOfTracks();
1233 Bool_t seleTrkFlags[nTracks];
1235 SelectTrack(aodEvent,nTracks,nSeleTrks,seleTrkFlags,mcArray);
1237 Bool_t seleCascFlags[nCascs];
1239 SelectCascade(aodEvent,nCascs,nSeleCasc,seleCascFlags,mcArray);
1241 Int_t runnumber_offset = 0;
1242 Int_t runnumber = aodEvent->GetRunNumber();
1243 if(runnumber<=131000&&runnumber>=114000){
1244 runnumber_offset = 114000;
1245 }
else if(runnumber<=196000&&runnumber>=195000){
1246 runnumber_offset = 195000;
1247 }
else if(runnumber<=170593&&runnumber>=167902){
1248 runnumber_offset = 167902;
1249 }
else if(runnumber<=246994&&runnumber>=244824){
1250 runnumber_offset = 244824;
1252 fHistonElevsRunNumber->Fill(runnumber-runnumber_offset,nSeleTrks);
1253 fHistonXivsRunNumber->Fill(runnumber-runnumber_offset,nSeleCasc);
1260 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
1261 if(!seleTrkFlags[itrk])
continue;
1262 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1264 FillElectronROOTObjects(trk,aodEvent,mcArray);
1267 for (
Int_t icasc = 0; icasc<nCascs; icasc++) {
1268 if(!seleCascFlags[icasc])
continue;
1269 AliAODcascade *casc = aodEvent->GetCascade(icasc);
1272 FillCascROOTObjects(casc,aodEvent,mcArray);
1275 if(fWriteEachVariableTree)
1281 for (
Int_t icasc = 0; icasc<nCascs; icasc++) {
1282 if(!seleCascFlags[icasc])
continue;
1283 AliAODcascade *casc = aodEvent->GetCascade(icasc);
1286 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1287 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1288 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1293 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
1294 if(!seleTrkFlags[itrk])
continue;
1295 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1303 AliAODTrack *trkpid = 0;
1304 if(fAnalCuts->GetProdAODFilterBit()==7){
1305 trkpid = fGTI[-trk->GetID()-1];
1310 Int_t cpid = cptrack->GetID();
1311 Int_t cnid = cntrack->GetID();
1312 Int_t cbid = cbtrack->GetID();
1313 Int_t lpid = trkpid->GetID();
1314 if((cpid==lpid)||(cnid==lpid)||(cbid==lpid))
continue;
1316 AliAODVertex *secVert = ReconstructSecondaryVertex(casc,trk,aodEvent);
1317 if(!secVert)
continue;
1324 FillROOTObjects(exobj, casc,trk,trkpid,aodEvent,mcArray);
1326 exobj->GetSecondaryVtx()->RemoveDaughters();
1328 delete exobj;exobj=NULL;
1334 DoEventMixingWithPools(fPoolIndex);
1336 Int_t nextRes( nextResVec[fPoolIndex] );
1338 if( nextRes>=fNumberOfEventsForMixing ){
1340 reservoirsReady[fPoolIndex] = kTRUE;
1342 nextResVec[fPoolIndex] = nextRes;
1354 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
1360 fCandidateVariableNames[ 0]=
"Centrality";
1361 fCandidateVariableNames[ 1]=
"InvMassEleXi";
1362 fCandidateVariableNames[ 2]=
"EleXiPt";
1363 fCandidateVariableNames[ 3]=
"EleXiPx";
1364 fCandidateVariableNames[ 4]=
"EleXiPy";
1365 fCandidateVariableNames[ 5]=
"EleXiPz";
1366 fCandidateVariableNames[ 6]=
"ElePx";
1367 fCandidateVariableNames[ 7]=
"ElePy";
1368 fCandidateVariableNames[ 8]=
"ElePz";
1369 fCandidateVariableNames[ 9]=
"XiPx";
1370 fCandidateVariableNames[10]=
"XiPy";
1371 fCandidateVariableNames[11]=
"XiPz";
1372 fCandidateVariableNames[12]=
"XiCharge";
1373 fCandidateVariableNames[13]=
"MassXi";
1374 fCandidateVariableNames[14]=
"MassLambda";
1375 fCandidateVariableNames[15]=
"Eled0";
1376 fCandidateVariableNames[16]=
"Xid0";
1377 fCandidateVariableNames[17]=
"nSigmaTPCele";
1378 fCandidateVariableNames[18]=
"nSigmaTOFele";
1379 fCandidateVariableNames[19]=
"nSigmaTPCpr_etrk";
1380 fCandidateVariableNames[20]=
"nSigmaTOFpr_etrk";
1381 fCandidateVariableNames[21]=
"nSigmaTPCka_etrk";
1382 fCandidateVariableNames[22]=
"nSigmaTOFka_etrk";
1383 fCandidateVariableNames[23]=
"nSigmaTPCv0pr";
1384 fCandidateVariableNames[24]=
"nSigmaTOFv0pr";
1385 fCandidateVariableNames[25]=
"nSigmaTPCv0pi";
1386 fCandidateVariableNames[26]=
"nSigmaTOFv0pi";
1387 fCandidateVariableNames[27]=
"nSigmaTPCbachpi";
1388 fCandidateVariableNames[28]=
"nSigmaTOFbachpi";
1389 fCandidateVariableNames[29]=
"EleCharge";
1390 fCandidateVariableNames[30]=
"Mixing";
1391 fCandidateVariableNames[31]=
"DcaXiDaughters";
1392 fCandidateVariableNames[32]=
"DcaV0Daughters";
1393 fCandidateVariableNames[33]=
"DecayLengthXi";
1394 fCandidateVariableNames[34]=
"CosPointingAngleXi";
1395 fCandidateVariableNames[35]=
"DcaV0toPrimVertex";
1396 fCandidateVariableNames[36]=
"DcaPostoPrimVertex";
1397 fCandidateVariableNames[37]=
"DcaNegtoPrimVertex";
1398 fCandidateVariableNames[38]=
"DcaBachtoPrimVertex";
1399 fCandidateVariableNames[39]=
"DecayLengthV0";
1400 fCandidateVariableNames[40]=
"CosPointingAngleV0";
1402 fCandidateVariableNames[41]=
"mcpdgxic";
1403 fCandidateVariableNames[42]=
"mclabxic";
1404 fCandidateVariableNames[43]=
"mcxicpx";
1405 fCandidateVariableNames[44]=
"mcxicpy";
1406 fCandidateVariableNames[45]=
"mcxicpz";
1407 fCandidateVariableNames[46]=
"mcelepx";
1408 fCandidateVariableNames[47]=
"mcelepy";
1409 fCandidateVariableNames[48]=
"mcelepz";
1410 fCandidateVariableNames[49]=
"mccascpx";
1411 fCandidateVariableNames[50]=
"mccascpy";
1412 fCandidateVariableNames[51]=
"mccascpz";
1414 fCandidateVariableNames[52]=
"mcpdgele";
1415 fCandidateVariableNames[53]=
"mcpdgcasc";
1416 fCandidateVariableNames[54]=
"mcpdgmomele";
1417 fCandidateVariableNames[55]=
"mcpdgmomcasc";
1418 fCandidateVariableNames[56]=
"mcpdggrmomele";
1419 fCandidateVariableNames[57]=
"mcpdggrmomcasc";
1420 fCandidateVariableNames[58]=
"mcngenele";
1421 fCandidateVariableNames[59]=
"mcngencasc";
1423 fCandidateVariableNames[60]=
"nSigmaTPCpi_etrk";
1424 fCandidateVariableNames[61]=
"nSigmaTOFpi_etrk";
1426 fCandidateVariableNames[62]=
"V0PosPx";
1427 fCandidateVariableNames[63]=
"V0PosPy";
1428 fCandidateVariableNames[64]=
"V0PosPz";
1429 fCandidateVariableNames[65]=
"V0NegPx";
1430 fCandidateVariableNames[66]=
"V0NegPy";
1431 fCandidateVariableNames[67]=
"V0NegPz";
1432 fCandidateVariableNames[68]=
"V0VertX";
1433 fCandidateVariableNames[69]=
"V0VertY";
1434 fCandidateVariableNames[70]=
"V0VertZ";
1435 fCandidateVariableNames[71]=
"BachPx";
1436 fCandidateVariableNames[72]=
"BachPy";
1437 fCandidateVariableNames[73]=
"BachPz";
1438 fCandidateVariableNames[74]=
"XiVertX";
1439 fCandidateVariableNames[75]=
"XiVertY";
1440 fCandidateVariableNames[76]=
"XiVertZ";
1441 fCandidateVariableNames[77]=
"PrimVertX";
1442 fCandidateVariableNames[78]=
"PrimVertY";
1443 fCandidateVariableNames[79]=
"PrimVertZ";
1445 fCandidateVariableNames[80]=
"MassOmega";
1447 fCandidateVariableNames[81]=
"EleITSMatch";
1448 fCandidateVariableNames[82]=
"BachITSMatch";
1449 fCandidateVariableNames[83]=
"V0PosITSMatch";
1450 fCandidateVariableNames[84]=
"V0NegITSMatch";
1452 fCandidateVariableNames[85]=
"TPCNclsF";
1453 fCandidateVariableNames[86]=
"TPCNcls";
1454 fCandidateVariableNames[87]=
"TPCNclsS";
1455 fCandidateVariableNames[88]=
"IsXiPeakReagion";
1458 fCandidateVariableNames[89]=
"MagneticField";
1459 fCandidateVariableNames[90]=
"EvNumber";
1460 fCandidateVariableNames[91]=
"RunNumber";
1479 for(
Int_t i=0;i<92;i++){
1484 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
1485 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
1486 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
1499 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
1500 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
1504 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
1505 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
1506 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
1512 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
1513 Double_t pxv_flip = pxv + lf * uxe;
1514 Double_t pyv_flip = pyv + lf * uye;
1515 Double_t pzv_flip = pzv + lf * uze;
1516 Double_t pxsum_flip = pxe + pxv_flip;
1517 Double_t pysum_flip = pye + pyv_flip;
1518 Double_t pzsum_flip = pze + pzv_flip;
1519 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
1520 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
1529 fVtx1->GetXYZ(posVtx);
1532 UInt_t pdgdg[2]={11,3312};
1546 if(casc->ChargeXi()<0)
1584 if(casc->ChargeXi()>0){
1619 AliAODMCParticle *mcxic = 0;
1620 AliAODMCParticle *mcele = 0;
1621 AliAODMCParticle *mccasc = 0;
1623 Int_t mcpdgele_array[100];
1624 Int_t mcpdgcasc_array[100];
1625 Int_t mclabelele_array[100];
1626 Int_t mclabelcasc_array[100];
1627 Int_t mcngen_ele = -9999;
1628 Int_t mcngen_casc = -9999;
1631 mclabxic =
MatchToMC(exobj,mcArray,mcpdgele_array, mcpdgcasc_array,mclabelele_array,mclabelcasc_array,mcngen_ele,mcngen_casc);
1634 mcxic = (AliAODMCParticle*) mcArray->At(mclabxic);
1635 if(mclabelele_array[0]>=0)
1636 mcele = (AliAODMCParticle*) mcArray->At(mclabelele_array[0]);
1637 if(mclabelcasc_array[0]>=0)
1638 mccasc = (AliAODMCParticle*) mcArray->At(mclabelcasc_array[0]);
1705 Double_t dphis_ele_pr, detas_ele_pr,dphis_ele_pi, detas_ele_pi, dphis_ele_bach, detas_ele_bach;
1706 dphis_ele_pr = 9999.;detas_ele_pr = 9999.;dphis_ele_pi = 9999.;detas_ele_pi = 9999.;dphis_ele_bach=9999.;detas_ele_bach=9999.;
1711 cont[0] = exobj->InvMass(2,pdgdg);
1712 cont[1] = exobj->Pt();
1713 cont[2] = exobj->Getd0Prong(0)*trk->Charge();
1718 cont_flip[0] = mexi_flip;
1719 cont_flip[1] = ptexi_flip;
1724 cont2[0] = exobj->InvMass(2,pdgdg);
1725 cont2[1] = trk->Pt();
1729 cont_eleptvseta[0] = trk->Pt();
1730 cont_eleptvseta[1] = trk->Eta();
1734 cont_eleptvsxipt[0] = trk->Pt();
1735 cont_eleptvsxipt[1] = sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY());
1739 cont_eleptvsd0[0] = trk->Pt();
1740 cont_eleptvsd0[1] = exobj->Getd0Prong(0)*trk->Charge();
1743 Double_t exobj_mass = exobj->InvMass(2,pdgdg);
1747 Double_t exobj_E = sqrt(exobj_mass*exobj_mass+exobj_px*exobj_px+exobj_py*exobj_py+exobj_pz*exobj_pz);
1748 Double_t exobj_rap = 0.5*log((exobj_E+exobj_pz)/(exobj_E-exobj_pz));
1755 if(trk->Charge()*casc->ChargeXi()<0){
1768 for(
Int_t ih=0;ih<23;ih++){
1770 cont_eleptvscutvars[0] = exobj->Pt();
1774 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1776 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1778 cont_eleptvscutvars[1] = nSigmaTPCele;
1780 cont_eleptvscutvars[1] = nSigmaTOFele;
1782 cont_eleptvscutvars[1] = trk->Eta();
1784 cont_eleptvscutvars[1] = trk->GetITSNcls();
1786 if(casc->ChargeXi()<0)
1787 cont_eleptvscutvars[1] = casc->MassLambda();
1789 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1791 cont_eleptvscutvars[1] = casc->MassXi();
1794 lPosV0[0] = casc->DecayVertexV0X();
1795 lPosV0[1] = casc->DecayVertexV0Y();
1796 lPosV0[2] = casc->DecayVertexV0Z();
1797 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1800 lPosXi[0] = casc->DecayVertexXiX();
1801 lPosXi[1] = casc->DecayVertexXiY();
1802 lPosXi[2] = casc->DecayVertexXiZ();
1803 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1805 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1807 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1809 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1811 if(casc->ChargeXi()<0.)
1812 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1814 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1816 if(casc->ChargeXi()>0.)
1817 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1819 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1821 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1823 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1825 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1827 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1829 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1831 cont_eleptvscutvars[1] = casc->Eta();
1833 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1841 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1843 cont_eleptvscutvars[1] = -9999.;
1851 Int_t pdgcode = mcxic->GetPdgCode();
1852 cont2[1] = mcele->Pt();
1853 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
1854 Int_t labmotherxic = mcxic->GetMother();
1855 Bool_t isbottomfd = kFALSE;
1858 AliAODMCParticle *motherxic = (AliAODMCParticle*)mcArray->At(labmotherxic);
1859 Int_t pdgmotherxic = motherxic->GetPdgCode();
1860 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){
1890 cont_xic[0] = mcxic->Pt();
1891 cont_xic[1] = mcxic->Y();
1898 cont_mcele[0] = mcele->Pt();
1899 cont_mcele[1] = mcele->Eta();
1906 fHistoResponseXiPt->Fill(mcxic->Pt(),sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2)));
1910 Double_t cont_eleptvsxiptvsxicpt[4];
1911 cont_eleptvsxiptvsxicpt[0] = cont_eleptvsxipt[0];
1912 cont_eleptvsxiptvsxicpt[1] = cont_eleptvsxipt[1];
1913 cont_eleptvsxiptvsxicpt[2] = mcxic->Pt();
1914 cont_eleptvsxiptvsxicpt[3] = cont_eleptvsxipt[2];
1923 for(
Int_t ih=0;ih<23;ih++){
1925 cont_eleptvscutvars[0] = exobj->Pt();
1929 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1931 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1933 cont_eleptvscutvars[1] = nSigmaTPCele;
1935 cont_eleptvscutvars[1] = nSigmaTOFele;
1937 cont_eleptvscutvars[1] = trk->Eta();
1939 cont_eleptvscutvars[1] = trk->GetITSNcls();
1941 if(casc->ChargeXi()<0)
1942 cont_eleptvscutvars[1] = casc->MassLambda();
1944 cont_eleptvscutvars[1] = casc->MassAntiLambda();
1946 cont_eleptvscutvars[1] = casc->MassXi();
1949 lPosV0[0] = casc->DecayVertexV0X();
1950 lPosV0[1] = casc->DecayVertexV0Y();
1951 lPosV0[2] = casc->DecayVertexV0Z();
1952 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1955 lPosXi[0] = casc->DecayVertexXiX();
1956 lPosXi[1] = casc->DecayVertexXiY();
1957 lPosXi[2] = casc->DecayVertexXiZ();
1958 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
1960 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
1962 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
1964 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
1966 if(casc->ChargeXi()<0.)
1967 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1969 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1971 if(casc->ChargeXi()>0.)
1972 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
1974 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
1976 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
1978 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
1980 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1982 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1984 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
1986 cont_eleptvscutvars[1] = casc->Eta();
1988 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
1996 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
1998 cont_eleptvscutvars[1] = -9999.;
2024 for(
Int_t ih=0;ih<23;ih++){
2026 cont_eleptvscutvars[0] = exobj->Pt();
2030 cont_eleptvscutvars[1] = trk->GetTPCNcls();
2032 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
2034 cont_eleptvscutvars[1] = nSigmaTPCele;
2036 cont_eleptvscutvars[1] = nSigmaTOFele;
2038 cont_eleptvscutvars[1] = trk->Eta();
2040 cont_eleptvscutvars[1] = trk->GetITSNcls();
2042 if(casc->ChargeXi()<0)
2043 cont_eleptvscutvars[1] = casc->MassLambda();
2045 cont_eleptvscutvars[1] = casc->MassAntiLambda();
2047 cont_eleptvscutvars[1] = casc->MassXi();
2050 lPosV0[0] = casc->DecayVertexV0X();
2051 lPosV0[1] = casc->DecayVertexV0Y();
2052 lPosV0[2] = casc->DecayVertexV0Z();
2053 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
2056 lPosXi[0] = casc->DecayVertexXiX();
2057 lPosXi[1] = casc->DecayVertexXiY();
2058 lPosXi[2] = casc->DecayVertexXiZ();
2059 cont_eleptvscutvars[1] = TMath::Sqrt(lPosXi[0]*lPosXi[0]+lPosXi[1]*lPosXi[1]);
2061 cont_eleptvscutvars[1] = casc->DcaV0Daughters();
2063 cont_eleptvscutvars[1] = casc->DcaXiDaughters();
2065 cont_eleptvscutvars[1] = casc->DcaBachToPrimVertex();
2067 if(casc->ChargeXi()<0.)
2068 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
2070 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
2072 if(casc->ChargeXi()>0.)
2073 cont_eleptvscutvars[1] = casc->DcaPosToPrimVertex();
2075 cont_eleptvscutvars[1] = casc->DcaNegToPrimVertex();
2077 cont_eleptvscutvars[1] = casc->CosPointingAngle(casc->GetDecayVertexXi());
2079 cont_eleptvscutvars[1] = casc->CosPointingAngleXi(posVtx[0],posVtx[1],posVtx[2]);
2081 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
2083 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
2085 cont_eleptvscutvars[1] = nSigmaTPCbachpi;
2087 cont_eleptvscutvars[1] = casc->Eta();
2089 cont_eleptvscutvars[1] = 0.5*TMath::Log((sqrt(casc->Ptot2Xi())+casc->MomXiZ())/(sqrt(casc->Ptot2Xi())-casc->MomXiZ()));
2097 cont_eleptvscutvars[1] = acos((xipx*epx+xipy*epy+xipz*epz)/sqrt(xipx*xipx+xipy*xipy+xipz*xipz)/sqrt(epx*epx+epy*epy+epz*epz));
2099 cont_eleptvscutvars[1] = -9999.;
2107 Int_t pdgcode = mcxic->GetPdgCode();
2109 cont_xib[0] = mcxic->Pt();
2110 cont_xib[1] = mcxic->Y();
2113 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
2123 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
2133 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
2143 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
2163 if( mexi_flip <10. && cosoa < 0. && fAnalCuts->IsPeakRegion(casc))
2165 if(trk->Charge()*casc->ChargeXi()<0){
2178 if(trk->Charge()*casc->ChargeXi()<0){
2196 if( mexi_flip< 10. && cosoa < 0. && fAnalCuts->IsSideBand(casc))
2198 if(trk->Charge()*casc->ChargeXi()<0){
2212 for(
Int_t iv=0;iv<15;iv++){
2216 for(
Int_t iv=0;iv<7;iv++){
2217 cont_cor_nd[iv] = -9999.;
2220 for(
Int_t iv=0;iv<8;iv++){
2221 cont_mass_nd[iv] = -9999.;
2231 if(trk->Charge()>0){
2234 }
else if(trk->Charge()<0){
2244 cont_cor_nd[0] = exobj->Pt();
2246 cont_cor_nd[2] = 1.;
2247 if(trk->Charge()>0){
2248 if(casc->ChargeXi()<0) cont_cor_nd[3] = 0;
2249 else cont_cor_nd[3] = 2;
2250 }
else if(trk->Charge()<0){
2251 if(casc->ChargeXi()<0) cont_cor_nd[3] = 3;
2252 else cont_cor_nd[3] = 1;
2260 Int_t pdgcode = mcxic->GetPdgCode();
2261 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgcasc_array[1])==4132){
2265 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5132){
2269 if(abs(pdgcode)==5132 && abs(mcpdgele_array[1])==5132 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5132){
2273 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4132 && abs(mcpdgcasc_array[2])==5232){
2277 if(abs(pdgcode)==5232 && abs(mcpdgele_array[1])==5232 && abs(mcpdgcasc_array[1])==4232 && abs(mcpdgcasc_array[2])==5232){
2323 cont_cor_nd[0] = trk->Pt();
2325 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2330 cont_cor_nd[0] = trk->Pt();
2332 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2337 cont_mass_nd[0] = exobj->InvMass(2,pdgdg);
2338 cont_mass_nd[1] = cont_cor_nd[0];
2339 cont_mass_nd[4] = cont_cor_nd[3];
2340 cont_mass_nd[5] = cont_cor_nd[4];
2341 cont_mass_nd[6] = cont_cor_nd[5];
2342 cont_mass_nd[7] = cont_cor_nd[6];
2346 if(mexi_flip < 10.&& cosoa < 0.) cont_mass_nd[2]=0;
2349 cont_cor_nd[0] = trk->Pt();
2351 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2355 cont_cor_nd[0] = trk->Pt();
2357 cont_cor_nd[0] = sqrt(pow(casc->MomXiX(),2)+pow(casc->MomXiY(),2));
2375 for(
Int_t i=0;i<90;i++){
2382 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
2383 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
2388 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
2389 Double_t Ev = sqrt(momv*momv+1.32171*1.32171);
2391 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
2397 Double_t mexi = sqrt(Esum*Esum-pxsum*pxsum-pysum*pysum-pzsum*pzsum);
2402 Double_t lf = -2.*(pxv*uxe+pyv*uye+pzv*uze);
2403 Double_t pxv_flip = pxv + lf * uxe;
2404 Double_t pyv_flip = pyv + lf * uye;
2405 Double_t pzv_flip = pzv + lf * uze;
2406 Double_t pxsum_flip = pxe + pxv_flip;
2407 Double_t pysum_flip = pye + pyv_flip;
2408 Double_t pzsum_flip = pze + pzv_flip;
2409 Double_t mexi_flip = sqrt(Esum*Esum-pxsum_flip*pxsum_flip-pysum_flip*pysum_flip-pzsum_flip*pzsum_flip);
2410 Double_t ptexi_flip = sqrt(pxsum_flip*pxsum_flip+pysum_flip*pysum_flip);
2413 fVtx1->GetXYZ(posVtx);
2416 UInt_t pdgdg[2]={11,3312};
2442 cont[1] = sqrt(pxsum*pxsum+pysum*pysum);
2447 cont_flip[0] = mexi_flip;
2448 cont_flip[1] = ptexi_flip;
2454 cont2[1] = sqrt(pxe*pxe+pye*pye);
2458 cont_eleptvseta[0] = trke->Pt();
2459 cont_eleptvseta[1] = trke->Eta();
2463 cont_eleptvsxipt[0] = trke->Pt();
2464 cont_eleptvsxipt[1] = casc->Pt();
2468 cont_eleptvsd0[0] = trke->Pt();
2469 cont_eleptvsd0[1] = 0.;
2472 Double_t xyzR125_ele[3], xyzR125_pr[3], xyzR125_pi[3], xyzR125_bach[3];
2473 xyzR125_ele[0] = (*elevars)[0];
2474 xyzR125_ele[1] = (*elevars)[1];
2475 xyzR125_ele[2] = (*elevars)[2];
2476 xyzR125_pr[0] = (*cascvars)[0];
2477 xyzR125_pr[1] = (*cascvars)[1];
2478 xyzR125_pr[2] = (*cascvars)[2];
2479 xyzR125_pi[0] = (*cascvars)[3];
2480 xyzR125_pi[1] = (*cascvars)[4];
2481 xyzR125_pi[2] = (*cascvars)[5];
2482 xyzR125_bach[0] = (*cascvars)[6];
2483 xyzR125_bach[1] = (*cascvars)[7];
2484 xyzR125_bach[2] = (*cascvars)[8];
2487 rdhfcutvars[0] = xyzR125_ele[0];
2488 rdhfcutvars[1] = xyzR125_ele[1];
2489 rdhfcutvars[2] = xyzR125_ele[2];
2490 rdhfcutvars[3] = xyzR125_pr[0];
2491 rdhfcutvars[4] = xyzR125_pr[1];
2492 rdhfcutvars[5] = xyzR125_pr[2];
2493 rdhfcutvars[6] = xyzR125_pi[0];
2494 rdhfcutvars[7] = xyzR125_pi[1];
2495 rdhfcutvars[8] = xyzR125_pi[2];
2496 rdhfcutvars[9] = xyzR125_bach[0];
2497 rdhfcutvars[10] = xyzR125_bach[1];
2498 rdhfcutvars[11] = xyzR125_bach[2];
2510 if(((
int)trke->T())*chargexi<0){
2546 if(mexi_flip < 10. && cosoa<0. && fAnalCuts->IsPeakRegion(casc))
2548 if(((
int)trke->T())*chargexi<0){
2562 for(
Int_t iv=0;iv<15;iv++){
2567 for(
Int_t iv=0;iv<7;iv++){
2568 cont_cor_nd[iv] = -9999.;
2571 for(
Int_t iv=0;iv<8;iv++){
2572 cont_mass_nd[iv] = -9999.;
2579 fCorrelationVariables[5] = (*elevars)[5];
2580 fCorrelationVariables[6] = 2;
2582 if(chargexi<0) fCorrelationVariables[7] = 0;
2583 else fCorrelationVariables[7] = 2;
2584 }
else if(trke->T()<0){
2585 if(chargexi<0) fCorrelationVariables[7] = 1;
2586 else fCorrelationVariables[7] = 3;
2588 fCorrelationVariables[8] = (*elevars)[6];
2589 fCorrelationVariables[9] = (*elevars)[7];
2591 fCorrelationVariables[11] = sqrt(pxsum*pxsum+pysum*pysum);
2592 fCorrelationVariables[12] = mexi;
2593 fCorrelationVariables[13] = cosoa;
2595 cont_cor_nd[0] = sqrt(pxsum*pxsum+pysum*pysum);
2596 cont_cor_nd[1] = TVector2::Phi_mpi_pi(casc->Phi()-trke->Phi());
2597 cont_cor_nd[2] = 1.;
2599 if(chargexi<0) cont_cor_nd[3] = 0;
2600 else cont_cor_nd[3] = 2;
2601 }
else if(trke->T()<0){
2602 if(chargexi<0) cont_cor_nd[3] = 3;
2603 else cont_cor_nd[3] = 1;
2605 cont_cor_nd[4] = fCorrelationVariables[8];
2607 if(fabs(fCorrelationVariables[9]-1013)<0.001) cont_cor_nd[5] = 7;
2608 if(fabs(fCorrelationVariables[9]-1016)<0.001) cont_cor_nd[5] = 8;
2609 if(fabs(fCorrelationVariables[9]-1019)<0.001) cont_cor_nd[5] = 9;
2617 if(mexi<fAnalCuts->GetEleXiMassMax())
2619 cont_cor_nd[0] = trke->Pt();
2621 cont_cor_nd[0] = casc->Pt();
2625 cont_mass_nd[0] = mexi;
2626 cont_mass_nd[1] = cont_cor_nd[0];
2627 cont_mass_nd[4] = cont_cor_nd[3];
2628 cont_mass_nd[5] = cont_cor_nd[4];
2629 cont_mass_nd[6] = cont_cor_nd[5];
2630 cont_mass_nd[7] = cont_cor_nd[6];
2634 if(mexi_flip < 10.&& cosoa < 0.) cont_mass_nd[2]=0;
2636 cont_mass_nd[0] = trke->Pt();
2638 cont_mass_nd[0] = casc->Pt();
2651 const char* nameoutput = GetOutputSlot(11)->GetContainer()->GetName();
2657 fCandidateVariableNames[ 0]=
"Px";
2658 fCandidateVariableNames[ 1]=
"Py";
2659 fCandidateVariableNames[ 2]=
"Pz";
2660 fCandidateVariableNames[ 3]=
"Charge";
2661 fCandidateVariableNames[ 4]=
"XiMass";
2662 fCandidateVariableNames[ 5]=
"Bz";
2663 fCandidateVariableNames[ 6]=
"Centrality";
2664 fCandidateVariableNames[ 7]=
"PrimVertZ";
2665 fCandidateVariableNames[ 8]=
"EvNumber";
2666 fCandidateVariableNames[ 9]=
"RunNumber";
2667 fCandidateVariableNames[10]=
"EventPlane";
2668 fCandidateVariableNames[11]=
"Vars0";
2669 fCandidateVariableNames[12]=
"Vars1";
2670 fCandidateVariableNames[13]=
"Vars2";
2671 fCandidateVariableNames[14]=
"Vars3";
2672 fCandidateVariableNames[15]=
"Vars4";
2688 const char* nameoutput = GetOutputSlot(5)->GetContainer()->GetName();
2694 fCandidateVariableNames[ 0]=
"ElePx";
2695 fCandidateVariableNames[ 1]=
"ElePy";
2696 fCandidateVariableNames[ 2]=
"ElePz";
2697 fCandidateVariableNames[ 3]=
"TPCChi2overNDF";
2698 fCandidateVariableNames[ 4]=
"ITSNcls";
2699 fCandidateVariableNames[ 5]=
"TPCNcls";
2700 fCandidateVariableNames[ 6]=
"TPCNclsPID";
2701 fCandidateVariableNames[ 7]=
"TPCNclsRatio";
2702 fCandidateVariableNames[ 8]=
"d0R";
2703 fCandidateVariableNames[ 9]=
"d0Z";
2704 fCandidateVariableNames[10]=
"ITSClusterMap";
2705 fCandidateVariableNames[11]=
"nSigmaTPCele";
2706 fCandidateVariableNames[12]=
"nSigmaTOFele";
2707 fCandidateVariableNames[13]=
"nSigmaTPCpi";
2708 fCandidateVariableNames[14]=
"nSigmaTPCka";
2709 fCandidateVariableNames[15]=
"nSigmaTPCpr";
2710 fCandidateVariableNames[16]=
"EvNumber";
2711 fCandidateVariableNames[17]=
"EleCharge";
2712 fCandidateVariableNames[18]=
"ElePdgCode";
2713 fCandidateVariableNames[19]=
"EleMotherPdgCode";
2714 fCandidateVariableNames[20]=
"mcelepx";
2715 fCandidateVariableNames[21]=
"mcelepy";
2716 fCandidateVariableNames[22]=
"mcelepz";
2717 fCandidateVariableNames[23]=
"Centrality";
2718 fCandidateVariableNames[24]=
"PrimVertZ";
2719 fCandidateVariableNames[25]=
"RunNumber";
2736 AliAODTrack *trkpid = 0;
2738 trkpid =
fGTI[-trk->GetID()-1];
2747 trk->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0,covd0z0);
2757 Int_t mcetype = -9999;
2758 Int_t pdgEle = -9999;
2759 Int_t pdgEleMother = -9999;
2763 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
2764 for(
Int_t i=0;i<100;i++){
2765 pdgarray_ele[i]=-9999;
2766 labelarray_ele[i]=-9999;
2771 Int_t labEle = trk->GetLabel();
2772 if(labEle<0)
return;
2773 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
2775 pdgEle = mcetrk->GetPdgCode();
2776 if(abs(pdgEle)!=11)
return;
2777 mcepx = mcetrk->Px();
2778 mcepy = mcetrk->Py();
2779 mcepz = mcetrk->Pz();
2781 Int_t labEleMother = mcetrk->GetMother();
2782 if(labEleMother>-1){
2783 AliAODMCParticle *mcemothertrk = (AliAODMCParticle*)mcArray->At(labEleMother);
2785 pdgEleMother = mcemothertrk->GetPdgCode();
2792 Bool_t gamma_flag = kFALSE;
2793 Bool_t pi0_flag = kFALSE;
2794 Bool_t eta_flag = kFALSE;
2797 if(abs(pdgarray_ele[0])>400&&abs(pdgarray_ele[0])<440){
2800 if(abs(pdgarray_ele[0])>4000&&abs(pdgarray_ele[0])<4400){
2803 if(abs(pdgarray_ele[0])>500&&abs(pdgarray_ele[0])<540){
2806 if(abs(pdgarray_ele[0])>5000&&abs(pdgarray_ele[0])<5400){
2809 if(abs(pdgarray_ele[0])==22){
2815 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==111)){
2817 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
2818 pt_pi0 = mctrkm->Pt();
2820 if(abs(pdgarray_ele[0])==111){
2822 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
2823 pt_pi0 = mctrkm->Pt();
2825 if((abs(pdgarray_ele[0])==22) && (abs(pdgarray_ele[1])==221)){
2827 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[1]);
2828 pt_eta = mctrkm->Pt();
2830 if(abs(pdgarray_ele[0])==221){
2832 AliAODMCParticle *mctrkm = (AliAODMCParticle*)mcArray->At(labelarray_ele[0]);
2833 pt_eta = mctrkm->Pt();
2838 cont_pi0[0] = trk->Pt();
2839 cont_pi0[1] = pt_pi0;
2847 cont_eta[0] = trk->Pt();
2848 cont_eta[1] = pt_eta;
2854 if(hfe_flag==0)
return;
2870 pv[0] =
fVtx1->GetX();
2871 pv[1] =
fVtx1->GetY();
2872 pv[2] =
fVtx1->GetZ();
2873 Double_t xyzR125[3] = {9999.,9999.,9999.};
2875 TVector *varvec =
new TVector(8);
2876 (*varvec)[0] = xyzR125[0];
2877 (*varvec)[1] = xyzR125[1];
2878 (*varvec)[2] = xyzR125[2];
2881 (*varvec)[5] = d0z0[0];
2882 (*varvec)[6] = (
Int_t)isconv + 2 * (
Int_t)isconv_like;
2883 (*varvec)[7] = mcetype;
2886 m_ReservoirE[
fPoolIndex][nextRes].push_back(
new TLorentzVector(trk->Px(),trk->Py(),trk->Pz(),trk->Charge()));
2893 for(
Int_t i=0;i<26;i++){
2896 for(
Int_t i=0;i<16;i++){
2984 const char* nameoutput = GetOutputSlot(6)->GetContainer()->GetName();
2990 fCandidateVariableNames[ 0]=
"Centrality";
2991 fCandidateVariableNames[ 1]=
"InvMassXi";
2992 fCandidateVariableNames[ 2]=
"XiPx";
2993 fCandidateVariableNames[ 3]=
"XiPy";
2994 fCandidateVariableNames[ 4]=
"XiPz";
2995 fCandidateVariableNames[ 5]=
"InvMassLambda";
2996 fCandidateVariableNames[ 6]=
"DcaXiDaughters";
2997 fCandidateVariableNames[ 7]=
"DcaV0Daughters";
2998 fCandidateVariableNames[ 8]=
"DecayLengthXi";
2999 fCandidateVariableNames[ 9]=
"CosPointingAngleXi";
3000 fCandidateVariableNames[10]=
"DcaV0toPrimVertex";
3001 fCandidateVariableNames[11]=
"DcaPostoPrimVertex";
3002 fCandidateVariableNames[12]=
"DcaNegtoPrimVertex";
3003 fCandidateVariableNames[13]=
"DcaBachtoPrimVertex";
3004 fCandidateVariableNames[14]=
"DecayLengthV0";
3005 fCandidateVariableNames[15]=
"CosPointingAngleV0";
3006 fCandidateVariableNames[16]=
"XiCharge";
3007 fCandidateVariableNames[17]=
"XiPdgCode";
3008 fCandidateVariableNames[18]=
"XiMotherPdgCode";
3009 fCandidateVariableNames[19]=
"mcxipx";
3010 fCandidateVariableNames[20]=
"mcxipy";
3011 fCandidateVariableNames[21]=
"mcxipz";
3012 fCandidateVariableNames[22]=
"labcasc";
3013 fCandidateVariableNames[23]=
"RunNumber";
3014 fCandidateVariableNames[24]=
"PrimVertZ";
3015 fCandidateVariableNames[25]=
"EvNumber";
3031 AliAODTrack *cptrack = (AliAODTrack*)(casc->GetDaughter(0));
3032 AliAODTrack *cntrack = (AliAODTrack*)(casc->GetDaughter(1));
3033 AliAODTrack *cbtrack = (AliAODTrack*)(casc->GetDecayVertexXi()->GetDaughter(0));
3034 if(!cptrack)
return;
3035 if(!cntrack)
return;
3036 if(!cbtrack)
return;
3038 fHistoXiMassvsPt->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3039 fHistoOmegaMassvsPt->Fill(casc->MassOmega(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3042 Double_t phi_alice = atan2(momxiy,momxix);
3043 if(phi_alice<0.) phi_alice += 2 * M_PI;
3046 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
3048 fVtx1->GetXYZ(posVtx);
3049 Double_t ptotlam = TMath::Sqrt(pow(casc->Px(),2)+pow(casc->Py(),2)+pow(casc->Pz(),2));
3050 Double_t dl = sqrt(pow(casc->DecayVertexV0X()-posVtx[0],2)+pow(casc->DecayVertexV0Y()-posVtx[1],2)+pow(casc->DecayVertexV0Z()-posVtx[2],2));
3051 Double_t v0propdl = dl*mlamPDG/ptotlam;
3061 Int_t xipdgcode = -9999;
3062 Int_t ximotherpdgcode = -9999;
3066 Int_t labcasc = -9999.;
3068 Int_t pdgDgcasc[2]={211,3122};
3069 Int_t pdgDgv0[2]={2212,211};
3071 if(labcasc<0)
return;
3073 fHistoXiMassvsPtMCS->Fill(casc->MassXi(),sqrt(casc->MomXiX()*casc->MomXiX()+casc->MomXiY()*casc->MomXiY()));
3075 AliAODMCParticle *mccasctrk = (AliAODMCParticle*)mcArray->At(labcasc);
3076 if(!mccasctrk)
return;
3081 Bool_t hfxi_flag = kFALSE;
3082 xipdgcode = mccasctrk->GetPdgCode();
3083 Int_t labcascmother = mccasctrk->GetMother();
3084 if(labcascmother>=0){
3085 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
3087 ximotherpdgcode = mothercasc->GetPdgCode();
3088 if(abs(ximotherpdgcode)>4000&&abs(ximotherpdgcode)<4400){
3093 if(!hfxi_flag)
return;
3094 mcxipx = mccasctrk->Px();
3095 mcxipy = mccasctrk->Py();
3096 mcxipz = mccasctrk->Pz();
3101 xyz[0]=casc->DecayVertexXiX();
3102 xyz[1]=casc->DecayVertexXiY();
3103 xyz[2]=casc->DecayVertexXiZ();
3104 pxpypz[0]=casc->MomXiX();
3105 pxpypz[1]=casc->MomXiY();
3106 pxpypz[2]=casc->MomXiZ();
3107 casc->GetCovarianceXYZPxPyPz(cv);
3108 sign=casc->ChargeXi();
3109 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3110 trackCasc->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig);
3111 Double_t momcasc_new[3]={-9999,-9999,-9999.};
3112 trackCasc->GetPxPyPz(momcasc_new);
3117 TLorentzVector *lv =
new TLorentzVector();
3118 lv->SetXYZM(momcasc_new[0],momcasc_new[1],momcasc_new[2],casc->MassXi());
3119 Double_t xyzR125pr[3]={9999.,9999.,9999.};
3120 Double_t xyzR125pi[3]={9999.,9999.,9999.};
3121 Double_t xyzR125bach[3]={9999.,9999.,9999.};
3122 if(casc->ChargeXi()>0){
3129 TVector *varvec =
new TVector(9);
3130 (*varvec)[0] = xyzR125pr[0];
3131 (*varvec)[1] = xyzR125pr[1];
3132 (*varvec)[2] = xyzR125pr[2];
3133 (*varvec)[3] = xyzR125pi[0];
3134 (*varvec)[4] = xyzR125pi[1];
3135 (*varvec)[5] = xyzR125pi[2];
3136 (*varvec)[6] = xyzR125bach[0];
3137 (*varvec)[7] = xyzR125bach[1];
3138 (*varvec)[8] = xyzR125bach[2];
3147 TVector *varvec =
new TVector(9);
3148 (*varvec)[0] = xyzR125pr[0];
3149 (*varvec)[1] = xyzR125pr[1];
3150 (*varvec)[2] = xyzR125pr[2];
3151 (*varvec)[3] = xyzR125pi[0];
3152 (*varvec)[4] = xyzR125pi[1];
3153 (*varvec)[5] = xyzR125pi[2];
3154 (*varvec)[6] = xyzR125bach[0];
3155 (*varvec)[7] = xyzR125bach[1];
3156 (*varvec)[8] = xyzR125bach[2];
3163 for(
Int_t i=0;i<26;i++){
3166 for(
Int_t i=0;i<16;i++){
3236 const char* nameoutput = GetOutputSlot(7)->GetContainer()->GetName();
3242 fCandidateVariableNames[ 0]=
"Centrality";
3243 fCandidateVariableNames[ 1]=
"DecayType";
3244 fCandidateVariableNames[ 2]=
"XicPx";
3245 fCandidateVariableNames[ 3]=
"XicPy";
3246 fCandidateVariableNames[ 4]=
"XicPz";
3247 fCandidateVariableNames[ 5]=
"ElePx";
3248 fCandidateVariableNames[ 6]=
"ElePy";
3249 fCandidateVariableNames[ 7]=
"ElePz";
3250 fCandidateVariableNames[ 8]=
"CascPx";
3251 fCandidateVariableNames[ 9]=
"CascPy";
3252 fCandidateVariableNames[10]=
"CascPz";
3253 fCandidateVariableNames[11]=
"PdgCode";
3254 fCandidateVariableNames[12]=
"ElePdgCode";
3255 fCandidateVariableNames[13]=
"CascPdgCode";
3256 fCandidateVariableNames[14]=
"RunNumber";
3257 fCandidateVariableNames[15]=
"EvNumber";
3271 if(!mcepart)
return;
3272 if(!mccascpart)
return;
3274 for(
Int_t i=0;i<14;i++){
3298 Double_t eE = sqrt(epx*epx+epy*epy+epz*epz+0.000511*0.000511);
3299 Double_t cascpx = mccascpart->Px();
3300 Double_t cascpy = mccascpart->Py();
3301 Double_t cascpz = mccascpart->Pz();
3302 Double_t cascE = sqrt(cascpx*cascpx+cascpy*cascpy+cascpz*cascpz+1.32171*1.32171);
3304 Double_t InvMassEleXi = sqrt(pow(eE+cascE,2)-pow(epx+cascpx,2)-pow(epy+cascpy,2)-pow(epz+cascpz,2));
3307 cont[0] = InvMassEleXi;
3308 cont[1] = mcpart->Pt();
3312 cont2[0] = InvMassEleXi;
3313 cont2[1] = mcepart->Pt();
3316 cont_eleptvseta[0] = mcepart->Pt();
3317 cont_eleptvseta[1] = mcepart->Eta();
3320 cont_eleptvsxipt[0] = mcepart->Pt();
3321 cont_eleptvsxipt[1] = mccascpart->Pt();
3323 Double_t cont_eleptvsxiptvsxicpt[4];
3324 cont_eleptvsxiptvsxicpt[0] = mcepart->Pt();
3325 cont_eleptvsxiptvsxicpt[1] = mccascpart->Pt();
3326 cont_eleptvsxiptvsxicpt[2] = mcpart->Pt();
3330 contmc[0] = mcpart->Pt();
3331 contmc[1] = mcpart->Y();
3334 contmcele[0] = mcepart->Pt();
3335 contmcele[1] = mcepart->Eta();
3341 esdcuts->GetEtaRange(etamin,etamax);
3351 if(fabs(mcepart->Eta())<etamax){
3355 if(InvMassEleXi<fAnalCuts->GetEleXiMassMax()){
3361 if(fabs(mcpart->Y())<0.7){
3362 if(InvMassEleXi<fAnalCuts->GetEleXiMassMax()){
3367 }
else if(decaytype==10){
3381 const char* nameoutput = GetOutputSlot(9)->GetContainer()->GetName();
3387 fCandidateVariableNames[ 0]=
"Centrality";
3388 fCandidateVariableNames[ 1]=
"ElePx";
3389 fCandidateVariableNames[ 2]=
"ElePy";
3390 fCandidateVariableNames[ 3]=
"ElePz";
3391 fCandidateVariableNames[ 4]=
"ElePdgCode";
3392 fCandidateVariableNames[ 5]=
"EleMotherPdgCode";
3393 fCandidateVariableNames[ 6]=
"RunNumber";
3394 fCandidateVariableNames[ 7]=
"EvNumber";
3407 if(!mcepart)
return;
3409 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
3416 contmc[0] = mcepart->Pt();
3417 contmc[1] = mcepart->Eta();
3420 if(semi_flag==1 && !ele_from_bottom){
3423 if(semi_flag==1 && ele_from_bottom){
3431 Bool_t hfe_flag = kFALSE;
3432 Int_t labemother = mcepart->GetMother();
3433 Int_t pdgmotherele = -9999;
3435 AliAODMCParticle *motherele = (AliAODMCParticle*)mcArray->At(labemother);
3436 pdgmotherele = motherele->GetPdgCode();
3437 if(abs(pdgmotherele)>4000&&abs(pdgmotherele)<4400){
3441 if(!hfe_flag)
return;
3445 for(
Int_t i=0;i<8;i++){
3469 const char* nameoutput = GetOutputSlot(10)->GetContainer()->GetName();
3475 fCandidateVariableNames[ 0]=
"Centrality";
3476 fCandidateVariableNames[ 1]=
"CascPx";
3477 fCandidateVariableNames[ 2]=
"CascPy";
3478 fCandidateVariableNames[ 3]=
"CascPz";
3479 fCandidateVariableNames[ 4]=
"CascPdgCode";
3480 fCandidateVariableNames[ 5]=
"CascMotherPdgCode";
3481 fCandidateVariableNames[ 6]=
"RunNumber";
3482 fCandidateVariableNames[ 7]=
"EvNumber";
3495 if(!mccascpart)
return;
3497 for(
Int_t i=0;i<8;i++){
3501 Bool_t hfxi_flag = kFALSE;
3502 Int_t labcascmother = mccascpart->GetMother();
3503 Int_t pdgmothercasc = -9999;
3504 if(labcascmother>=0){
3505 AliAODMCParticle *mothercasc = (AliAODMCParticle*)mcArray->At(labcascmother);
3507 pdgmothercasc = mothercasc->GetPdgCode();
3508 if(abs(pdgmothercasc)>4000&&abs(pdgmothercasc)<4400){
3513 if(!hfxi_flag)
return;
3516 contmc[0] = mccascpart->Pt();
3517 contmc[1] = mccascpart->Eta();
3541 fCEvents =
new TH1F(
"fCEvents",
"conter",18,-0.5,17.5);
3543 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3544 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3545 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3546 fCEvents->GetXaxis()->SetBinLabel(4,
"TriggerOK");
3547 fCEvents->GetXaxis()->SetBinLabel(5,
"IsEventSelected");
3548 fCEvents->GetXaxis()->SetBinLabel(6,
"CascadesHF exists");
3549 fCEvents->GetXaxis()->SetBinLabel(7,
"MCarray exists");
3550 fCEvents->GetXaxis()->SetBinLabel(8,
"MCheader exists");
3551 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3552 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3553 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3554 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3555 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3556 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3558 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3559 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3562 fCEvents->GetYaxis()->SetTitle(
"counts");
3564 fHTrigger =
new TH1F(
"fHTrigger",
"counter",18,-0.5,17.5);
3566 fHTrigger->GetXaxis()->SetBinLabel(1,
"X1");
3567 fHTrigger->GetXaxis()->SetBinLabel(2,
"kMB");
3568 fHTrigger->GetXaxis()->SetBinLabel(3,
"kSemiCentral");
3569 fHTrigger->GetXaxis()->SetBinLabel(4,
"kCentral");
3570 fHTrigger->GetXaxis()->SetBinLabel(5,
"kINT7");
3571 fHTrigger->GetXaxis()->SetBinLabel(6,
"kEMC7");
3573 fHTrigger->GetXaxis()->SetBinLabel(8,
"kMB|kSemiCentral|kCentral");
3574 fHTrigger->GetXaxis()->SetBinLabel(9,
"kINT7|kEMC7");
3575 fHTrigger->GetXaxis()->SetBinLabel(11,
"kMB&kSemiCentral");
3576 fHTrigger->GetXaxis()->SetBinLabel(12,
"kMB&kCentral");
3577 fHTrigger->GetXaxis()->SetBinLabel(13,
"kINT7&kEMC7");
3579 fHCentrality =
new TH1F(
"fHCentrality",
"conter",100,0.,100.);
3580 fHEventPlane =
new TH1F(
"fHEventPlane",
"conter",100,-3.14,3.14);
3581 fHNTrackletvsZ =
new TH2F(
"fHNTrackletvsZ",
"N_{tracklet} vs z",30,-15.,15.,120,-0.5,119.5);
3603 Int_t bins_base[4]= {22 ,100 , 100 ,10};
3604 Double_t xmin_base[4]={1.3,0 , -0.5 ,0.00};
3605 Double_t xmax_base[4]={5.7,20. , 0.5 ,100};
3607 fHistoEleXiMass =
new THnSparseF(
"fHistoEleXiMass",
"",4,bins_base,xmin_base,xmax_base);
3609 fHistoEleXiMassRS =
new THnSparseF(
"fHistoEleXiMassRS",
"",4,bins_base,xmin_base,xmax_base);
3611 fHistoEleXiMassWS =
new THnSparseF(
"fHistoEleXiMassWS",
"",4,bins_base,xmin_base,xmax_base);
3613 fHistoEleXiMassRSMix =
new THnSparseF(
"fHistoEleXiMassRSMix",
"",4,bins_base,xmin_base,xmax_base);
3615 fHistoEleXiMassWSMix =
new THnSparseF(
"fHistoEleXiMassWSMix",
"",4,bins_base,xmin_base,xmax_base);
3621 fHistoEleXiMassRS1 =
new THnSparseF(
"fHistoEleXiMassRS1",
"",4,bins_base,xmin_base,xmax_base);
3623 fHistoEleXiMassWS1 =
new THnSparseF(
"fHistoEleXiMassWS1",
"",4,bins_base,xmin_base,xmax_base);
3633 fHistoEleXiMassRS2 =
new THnSparseF(
"fHistoEleXiMassRS2",
"",4,bins_base,xmin_base,xmax_base);
3635 fHistoEleXiMassWS2 =
new THnSparseF(
"fHistoEleXiMassWS2",
"",4,bins_base,xmin_base,xmax_base);
3683 Int_t bins_base_elept[3]= {10 ,100 ,10};
3684 Double_t xmin_base_elept[3]={1.3,0 ,0.00};
3685 Double_t xmax_base_elept[3]={3.3,10. ,100};
3687 fHistoEleXiMassvsElePtRS =
new THnSparseF(
"fHistoEleXiMassvsElePtRS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3689 fHistoEleXiMassvsElePtWS =
new THnSparseF(
"fHistoEleXiMassvsElePtWS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3699 fHistoEleXiMassvsElePtRS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3701 fHistoEleXiMassvsElePtWS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3711 fHistoEleXiMassvsElePtRS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtRS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3713 fHistoEleXiMassvsElePtWS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtWS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3724 fHistoElePtRS=
new TH2F(
"fHistoElePtRS",
"Right-sign e pt",100,0.,10.,10,0.,100.);
3726 fHistoElePtWS=
new TH2F(
"fHistoElePtWS",
"Wrong-sign e pt",100,0.,10.,10,0.,100.);
3733 fHistoEleXiMassMCS =
new THnSparseF(
"fHistoEleXiMassMCS",
"",4,bins_base,xmin_base,xmax_base);
3735 fHistoEleXiMassMCS1 =
new THnSparseF(
"fHistoEleXiMassMCS1",
"",4,bins_base,xmin_base,xmax_base);
3737 fHistoEleXiMassMCS2 =
new THnSparseF(
"fHistoEleXiMassMCS2",
"",4,bins_base,xmin_base,xmax_base);
3757 fHistoEleXiMassMCGen =
new THnSparseF(
"fHistoEleXiMassMCGen",
"",4,bins_base,xmin_base,xmax_base);
3759 fHistoEleXiMassvsElePtMCS =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3763 fHistoEleXiMassvsElePtMCS1 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS1",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3767 fHistoEleXiMassvsElePtMCS2 =
new THnSparseF(
"fHistoEleXiMassvsElePtMCS2",
"",3,bins_base_elept,xmin_base_elept,xmax_base_elept);
3776 Int_t bins_eleptvseta[3]= {50,20 ,10};
3777 Double_t xmin_eleptvseta[3]={0.,-1. ,0.0};
3778 Double_t xmax_eleptvseta[3]={5.,1. ,100};
3780 fHistoElePtvsEtaRS =
new THnSparseF(
"fHistoElePtvsEtaRS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3782 fHistoElePtvsEtaWS =
new THnSparseF(
"fHistoElePtvsEtaWS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3784 fHistoElePtvsEtaRSMix =
new THnSparseF(
"fHistoElePtvsEtaRSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3786 fHistoElePtvsEtaWSMix =
new THnSparseF(
"fHistoElePtvsEtaWSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3788 fHistoElePtvsEtaMCS =
new THnSparseF(
"fHistoElePtvsEtaMCS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3790 fHistoElePtvsEtaMCGen =
new THnSparseF(
"fHistoElePtvsEtaMCGen",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3793 Int_t bins_eleptvsxipt[3]= {50,20 ,10};
3794 Double_t xmin_eleptvsxipt[3]={0.,0. ,0.0};
3795 Double_t xmax_eleptvsxipt[3]={5.,5. ,100};
3797 fHistoElePtvsXiPtRS =
new THnSparseF(
"fHistoElePtvsXiPtRS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3799 fHistoElePtvsXiPtWS =
new THnSparseF(
"fHistoElePtvsXiPtWS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3801 fHistoElePtvsXiPtRSMix =
new THnSparseF(
"fHistoElePtvsXiPtRSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3803 fHistoElePtvsXiPtWSMix =
new THnSparseF(
"fHistoElePtvsXiPtWSMix",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3805 fHistoElePtvsXiPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtMCS",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3807 fHistoElePtvsXiPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtMCGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3809 fHistoElePtvsXiPtMCXicGen =
new THnSparseF(
"fHistoElePtvsXiPtMCXicGen",
"",3,bins_eleptvsxipt,xmin_eleptvsxipt,xmax_eleptvsxipt);
3812 Int_t bins_eleptvsxiptvsxicpt[4]= {50,20,10,10};
3813 Double_t xmin_eleptvsxiptvsxicpt[4]={0.,0.,0.,0.0};
3814 Double_t xmax_eleptvsxiptvsxicpt[4]={5.,5.,10.,100};
3815 fHistoElePtvsXiPtvsXicPtMCS =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCS",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3817 fHistoElePtvsXiPtvsXicPtMCGen =
new THnSparseF(
"fHistoElePtvsXiPtvsXicPtMCGen",
"",4,bins_eleptvsxiptvsxicpt,xmin_eleptvsxiptvsxicpt,xmax_eleptvsxiptvsxicpt);
3820 Int_t bins_eleptvsd0[3]= {50 ,50 ,10};
3821 Double_t xmin_eleptvsd0[3]={0.,-0.2 ,0.0};
3822 Double_t xmax_eleptvsd0[3]={5.,0.2 ,100};
3824 fHistoElePtvsd0RS =
new THnSparseF(
"fHistoElePtvsd0RS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3826 fHistoElePtvsd0WS =
new THnSparseF(
"fHistoElePtvsd0WS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3828 fHistoElePtvsd0RSMix =
new THnSparseF(
"fHistoElePtvsd0RSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3830 fHistoElePtvsd0WSMix =
new THnSparseF(
"fHistoElePtvsd0WSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3832 fHistoElePtvsd0MCS =
new THnSparseF(
"fHistoElePtvsd0MCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3834 fHistoElePtvsd0PromptMCS =
new THnSparseF(
"fHistoElePtvsd0PromptMCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3842 fHistoBachPt =
new TH1F(
"fHistoBachPt",
"Bachelor p_{T}",100,0.0,5.0);
3844 fHistoBachPtMCS =
new TH1F(
"fHistoBachPtMCS",
"Bachelor p_{T}",100,0.0,5.0);
3848 fHistod0Bach =
new TH1F(
"fHistod0Bach",
"Bachelor d_{0}",100,-0.5,0.5);
3880 for(
Int_t i=0;i<8;i++){
3890 Int_t bins_xicmcgen[3]= {100 ,20 ,10};
3891 Double_t xmin_xicmcgen[3]={0.,-1.0 ,0.0};
3892 Double_t xmax_xicmcgen[3]={20.,1.0 ,100};
3893 fHistoXicMCGen =
new THnSparseF(
"fHistoXicMCGen",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3895 fHistoXicMCGen1 =
new THnSparseF(
"fHistoXicMCGen1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3897 fHistoXicMCGen2 =
new THnSparseF(
"fHistoXicMCGen2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3899 fHistoXicMCS =
new THnSparseF(
"fHistoXicMCS",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3901 fHistoXicMCS1 =
new THnSparseF(
"fHistoXicMCS1",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3903 fHistoXicMCS2 =
new THnSparseF(
"fHistoXicMCS2",
"",3,bins_xicmcgen,xmin_xicmcgen,xmax_xicmcgen);
3906 Int_t bins_xibmcgen[3]= {100 ,20 ,10};
3907 Double_t xmin_xibmcgen[3]={0.,-1.0 ,0.0};
3908 Double_t xmax_xibmcgen[3]={50.,1.0 ,100};
3909 fHistoXibMCGen =
new THnSparseF(
"fHistoXibMCGen",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3911 fHistoXibMCS =
new THnSparseF(
"fHistoXibMCS",
"",3,bins_xibmcgen,xmin_xibmcgen,xmax_xibmcgen);
3914 Int_t bins_xibmcgen_withxic[3]= {50 ,100 ,100};
3915 Double_t xmin_xibmcgen_withxic[3]={0.,-5.,-5.};
3916 Double_t xmax_xibmcgen_withxic[3]={50.,5.,5.};
3917 fHistoXibMCGenWithXic =
new THnSparseF(
"fHistoXibMCGenWithXic",
"",3,bins_xibmcgen_withxic,xmin_xibmcgen_withxic,xmax_xibmcgen_withxic);
3920 Int_t bins_elemcgen[3]= {100 ,20 ,10};
3921 Double_t xmin_elemcgen[3]={0.,-1.0 ,0.0};
3922 Double_t xmax_elemcgen[3]={10.,1.0 ,100};
3923 fHistoElectronMCGen =
new THnSparseF(
"fHistoElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3927 fHistoCharmElectronMCGen =
new THnSparseF(
"fHistoCharmElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3929 fHistoXicElectronMCGen =
new THnSparseF(
"fHistoXicElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3931 fHistoXicElectronMCGen1 =
new THnSparseF(
"fHistoXicElectronMCGen1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3933 fHistoXicElectronMCGen2 =
new THnSparseF(
"fHistoXicElectronMCGen2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3935 fHistoXicElectronMCS =
new THnSparseF(
"fHistoXicElectronMCS",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3937 fHistoXicElectronMCS1 =
new THnSparseF(
"fHistoXicElectronMCS1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3939 fHistoXicElectronMCS2 =
new THnSparseF(
"fHistoXicElectronMCS2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3942 Int_t bins_ximcgen[3]= {50 ,20 ,10};
3943 Double_t xmin_ximcgen[3]={0.,-1.0 ,0.0};
3944 Double_t xmax_ximcgen[3]={10.,1.0 ,100};
3945 fHistoXiMCGen =
new THnSparseF(
"fHistoXiMCGen",
"",3,bins_ximcgen,xmin_ximcgen,xmax_ximcgen);
4024 for(
Int_t ih=0;ih<23;ih++){
4025 Int_t bins_eleptvscutvars[3];
4029 bins_eleptvscutvars[0] = 20;
4030 xmin_eleptvscutvars[0] = 0.;
4031 xmax_eleptvscutvars[0] = 20.;
4032 bins_eleptvscutvars[2] = 10;
4033 xmin_eleptvscutvars[2] = 0.;
4034 xmax_eleptvscutvars[2] = 100.;
4038 bins_eleptvscutvars[1] = 40;
4039 xmin_eleptvscutvars[1] = 0.;
4040 xmax_eleptvscutvars[1] = 160.;
4041 }
else if(ih==2 || ih==3){
4043 bins_eleptvscutvars[1] = 20;
4044 xmin_eleptvscutvars[1] = -5.;
4045 xmax_eleptvscutvars[1] = 5.;
4048 bins_eleptvscutvars[1] = 30;
4049 xmin_eleptvscutvars[1] = -1.5;
4050 xmax_eleptvscutvars[1] = 1.5;
4053 bins_eleptvscutvars[1] = 7;
4054 xmin_eleptvscutvars[1] = -0.5;
4055 xmax_eleptvscutvars[1] = 6.5;
4058 bins_eleptvscutvars[1] = 50;
4059 xmin_eleptvscutvars[1] = 1.1156-0.03;
4060 xmax_eleptvscutvars[1] = 1.1156+0.03;
4063 bins_eleptvscutvars[1] = 50;
4064 xmin_eleptvscutvars[1] = 1.32-0.03;
4065 xmax_eleptvscutvars[1] = 1.32+0.03;
4066 }
else if(ih==8 || ih==9){
4068 bins_eleptvscutvars[1] = 20;
4069 xmin_eleptvscutvars[1] = 0.;
4070 xmax_eleptvscutvars[1] = 5.;
4071 }
else if(ih==10 || ih==11){
4073 bins_eleptvscutvars[1] = 20;
4074 xmin_eleptvscutvars[1] = 0.;
4075 xmax_eleptvscutvars[1] = 2.;
4076 }
else if(ih==12 || ih==13 || ih==14){
4078 bins_eleptvscutvars[1] = 20;
4079 xmin_eleptvscutvars[1] = 0.;
4080 xmax_eleptvscutvars[1] = 0.5;
4081 }
else if(ih==15 || ih==16){
4083 bins_eleptvscutvars[1] = 20;
4084 xmin_eleptvscutvars[1] = 0.95;
4085 xmax_eleptvscutvars[1] = 1.0;
4086 }
else if(ih==17 || ih==18 || ih==19){
4088 bins_eleptvscutvars[1] = 20;
4089 xmin_eleptvscutvars[1] = -5.;
4090 xmax_eleptvscutvars[1] = 5.;
4091 }
else if(ih==20 || ih==21){
4093 bins_eleptvscutvars[1] = 30;
4094 xmin_eleptvscutvars[1] = -1.5;
4095 xmax_eleptvscutvars[1] = 1.5;
4098 bins_eleptvscutvars[1] = 20;
4099 xmin_eleptvscutvars[1] = 0.;
4100 xmax_eleptvscutvars[1] = 3.141592/2;
4103 fHistoElePtvsCutVarsRS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsRS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4105 fHistoElePtvsCutVarsWS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsWS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4107 fHistoElePtvsCutVarsMCS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsMCS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
4111 Int_t bins_eletag[3]= {20 ,40 ,10};
4112 Double_t xmin_eletag[3]={0.,0. ,0.0};
4113 Double_t xmax_eletag[3]={10.,20 ,100};
4114 fHistoElectronPi0Total =
new THnSparseF(
"fHistoElectronPi0Total",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4116 fHistoElectronPi0Tag =
new THnSparseF(
"fHistoElectronPi0Tag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4118 fHistoElectronEtaTotal =
new THnSparseF(
"fHistoElectronEtaTotal",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4120 fHistoElectronEtaTag =
new THnSparseF(
"fHistoElectronEtaTag",
"",3,bins_eletag,xmin_eletag,xmax_eletag);
4139 Int_t bins_cor_nd[7]= {100 , 20, 20, 4, 3, 10, 10};
4140 Double_t xmin_cor_nd[7]={0.,-M_PI,0.,-0.5,-0.5,-0.5,0.};
4141 Double_t xmax_cor_nd[7]={20.,M_PI,40.,3.5,2.5,9.5,100.};
4142 Double_t xmax_cor_nd2[7]={10.,M_PI,40.,3.5,2.5,9.5,100.};
4161 Int_t bins_mass_nd[8]= {22,100 , 2, 2, 4, 3, 10, 10};
4162 Double_t xmin_mass_nd[8]={1.3,0.,-0.5,-0.5,-0.5,-0.5,-0.5,0.};
4163 Double_t xmax_mass_nd[8]={5.7,20.,1.5,1.5,3.5,2.5,9.5,100.};
4164 Double_t xmax_mass_nd2[8]={5.7,10.,1.5,1.5,3.5,2.5,9.5,100.};
4206 if(!casc)
return 0x0;
4207 if(!part)
return 0x0;
4208 if(!aod)
return 0x0;
4213 AliAODVertex *primVertexAOD;
4214 Bool_t unsetvtx = kFALSE;
4218 primVertexAOD =
fVtx1;
4223 primVertexAOD =
fVtx1;
4225 if(!primVertexAOD)
return 0x0;
4226 Double_t posprim[3]; primVertexAOD->GetXYZ(posprim);
4231 AliESDtrack *esdtrack =
new AliESDtrack((AliVTrack*)partpid);
4234 xyz[0]=casc->DecayVertexXiX();
4235 xyz[1]=casc->DecayVertexXiY();
4236 xyz[2]=casc->DecayVertexXiZ();
4237 pxpypz[0]=casc->MomXiX();
4238 pxpypz[1]=casc->MomXiY();
4239 pxpypz[2]=casc->MomXiZ();
4240 casc->GetCovarianceXYZPxPyPz(cv);
4241 sign=casc->ChargeXi();
4242 AliExternalTrackParam *trackCasc =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
4245 Double_t dca = esdtrack->GetDCA(trackCasc,
fBzkG,xdummy,ydummy);
4252 Double_t d0z0bach[2],covd0z0bach[3];
4253 if(sqrt(pow(secVert->GetX(),2)+pow(secVert->GetY(),2))<1.){
4254 part->PropagateToDCA(secVert,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4255 trackCasc->PropagateToDCA(secVert,
fBzkG,kVeryBig);
4257 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4258 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig);
4260 Double_t momcasc_new[3]={-9999,-9999,-9999.};
4261 trackCasc->GetPxPyPz(momcasc_new);
4264 px[0] = part->Px(); py[0] = part->Py(); pz[0] = part->Pz();
4265 px[1] = momcasc_new[0]; py[1] = momcasc_new[1]; pz[1] = momcasc_new[2];
4272 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
4274 d0err[0] = TMath::Sqrt(covd0z0bach[0]);
4276 Double_t d0z0casc[2],covd0z0casc[3];
4277 trackCasc->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0casc,covd0z0casc);
4279 d0err[1] = TMath::Sqrt(covd0z0casc[0]);
4288 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
4289 if(esdtrack)
delete esdtrack;
4290 if(trackCasc)
delete trackCasc;
4297 theCascade->GetSecondaryVtx()->AddDaughter(part);
4298 theCascade->GetSecondaryVtx()->AddDaughter(casc);
4299 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
4300 if(esdtrack)
delete esdtrack;
4301 if(trackCasc)
delete trackCasc;
4316 AliESDtrack *cptrk1 =
new AliESDtrack((AliVTrack*)trk);
4317 TrackArray->AddAt(cptrk1,0);
4319 AliESDtrack *cascptrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(0));
4320 TrackArray->AddAt(cascptrack,1);
4321 AliESDtrack *cascntrack =
new AliESDtrack((AliVTrack*)casc->GetDaughter(1));
4322 TrackArray->AddAt(cascntrack,2);
4323 AliESDtrack *cascbtrack =
new AliESDtrack((AliVTrack*)casc->GetDecayVertexXi()->GetDaughter(0));
4324 TrackArray->AddAt(cascbtrack,3);
4328 for(
Int_t i=0;i<4;i++)
4330 AliESDtrack *tesd = (AliESDtrack*)TrackArray->UncheckedAt(i);
4333 TrackArray->Clear();
4348 Bool_t fRecoPrimVtxSkippingTrks = kTRUE;
4349 Bool_t fRmTrksFromPrimVtx = kFALSE;
4351 AliESDVertex *vertexESD = 0;
4352 AliAODVertex *vertexAOD = 0;
4357 if(!fRecoPrimVtxSkippingTrks && !fRmTrksFromPrimVtx) {
4360 vertexESD =
new AliESDVertex(*
fV1);
4365 Int_t nTrks = trkArray->GetEntriesFast();
4366 AliVertexerTracks *vertexer =
new AliVertexerTracks(event->GetMagneticField());
4368 if(fRecoPrimVtxSkippingTrks) {
4371 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraint")) {
4373 event->GetDiamondCovXY(diamondcovxy);
4374 Double_t pos[3]={
event->GetDiamondX(),
event->GetDiamondY(),0.};
4375 Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
4376 AliESDVertex *diamond =
new AliESDVertex(pos,cov,1.,1);
4377 vertexer->SetVtxStart(diamond);
4378 delete diamond; diamond=NULL;
4379 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraintOnlyFitter"))
4380 vertexer->SetOnlyFitter();
4382 Int_t skipped[1000];
4383 Int_t nTrksToSkip=0,id;
4384 AliExternalTrackParam *t = 0;
4385 for(
Int_t i=0; i<nTrks; i++) {
4386 t = (AliExternalTrackParam*)trkArray->UncheckedAt(i);
4387 id = (
Int_t)t->GetID();
4389 skipped[nTrksToSkip++] = id;
4394 for(
Int_t j=0; j<
event->GetNumberOfTracks(); j++) {
4395 AliVTrack *vtrack = (AliVTrack*)event->GetTrack(j);
4396 if(!vtrack->GetCovarianceXYZPxPyPz(covtest)) {
4397 id = (
Int_t)vtrack->GetID();
4399 skipped[nTrksToSkip++] = id;
4402 for(
Int_t ijk=nTrksToSkip; ijk<1000; ijk++) skipped[ijk]=-1;
4404 vertexer->SetSkipTracks(nTrksToSkip,skipped);
4405 vertexESD = (AliESDVertex*)vertexer->FindPrimaryVertex(event);
4407 }
else if(fRmTrksFromPrimVtx && nTrks>0) {
4412 AliESDtrack *esdTrack = 0;
4414 for(
Int_t i=0; i<nTrks; i++) {
4415 t = (AliESDtrack*)trkArray->UncheckedAt(i);
4416 esdTrack =
new AliESDtrack(*t);
4417 rmArray.AddLast(esdTrack);
4418 if(esdTrack->GetID()>=0) {
4419 rmId[i]=(
UShort_t)esdTrack->GetID();
4424 Float_t diamondxy[2]={
static_cast<Float_t>(
event->GetDiamondX()),static_cast<Float_t>(event->GetDiamondY())};
4425 vertexESD = vertexer->RemoveTracksFromVertex(
fV1,&rmArray,rmId,diamondxy);
4426 delete [] rmId; rmId=NULL;
4431 delete vertexer; vertexer=NULL;
4432 if(!vertexESD)
return vertexAOD;
4433 if(vertexESD->GetNContributors()<=0) {
4435 delete vertexESD; vertexESD=NULL;
4444 vertexESD->GetXYZ(pos);
4445 vertexESD->GetCovMatrix(cov);
4446 chi2perNDF = vertexESD->GetChi2toNDF();
4447 delete vertexESD; vertexESD=NULL;
4449 vertexAOD =
new AliAODVertex(pos,cov,chi2perNDF);
4461 AliAODVertex *primVertexAOD;
4462 Bool_t unsetvtx = kFALSE;
4466 primVertexAOD =
fVtx1;
4471 primVertexAOD =
fVtx1;
4473 if(!primVertexAOD)
return 0x0;
4475 AliESDVertex * vertexESD =
new AliESDVertex(*
fV1);
4478 vertexESD->GetXYZ(pos);
4479 vertexESD->GetCovMatrix(cov);
4480 chi2perNDF = vertexESD->GetChi2toNDF();
4481 delete vertexESD; vertexESD=NULL;
4483 AliAODVertex *secVert =
new AliAODVertex(pos,cov,chi2perNDF);
4493 for(
Int_t i=0;i<100;i++){
4494 pdgarray_ele[i] = -9999;
4495 labelarray_ele[i] = -9999;
4496 pdgarray_casc[i] = -9999;
4497 labelarray_casc[i] = -9999;
4502 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(exobj->
GetBachelor());
4504 Int_t labEle = trk->GetLabel();
4505 if(labEle<0)
return -1;
4506 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
4507 if(!mcetrk)
return -1;
4508 labelarray_ele[0] = labEle;
4509 pdgarray_ele[0] = mcetrk->GetPdgCode();
4512 AliAODMCParticle *mcprimele=0;
4514 while(mcprimele->GetMother()>=0) {
4515 Int_t labprim_ele=mcprimele->GetMother();
4516 AliAODMCParticle *tmcprimele = (AliAODMCParticle*)mcArray->At(labprim_ele);
4521 mcprimele = tmcprimele;
4522 pdgarray_ele[ngen_ele] = mcprimele->GetPdgCode();
4523 labelarray_ele[ngen_ele] = labprim_ele;
4525 if(ngen_ele==100)
break;
4528 AliAODcascade *theCascade =
dynamic_cast<AliAODcascade*
>(exobj->
GetCascade());
4529 if(!theCascade)
return -1;
4531 Int_t pdgDgcasc[2]={211,3122};
4532 Int_t pdgDgv0[2]={2212,211};
4534 if(labcasc<0)
return -1;
4536 AliAODMCParticle *mccasc = (AliAODMCParticle*)mcArray->At(labcasc);
4537 if(!mccasc)
return -1;
4538 labelarray_casc[0] = labcasc;
4539 pdgarray_casc[0] = mccasc->GetPdgCode();
4542 AliAODMCParticle *mcprimcasc=0;
4543 mcprimcasc = mccasc;
4544 while(mcprimcasc->GetMother()>=0) {
4545 Int_t labprim_casc=mcprimcasc->GetMother();
4546 AliAODMCParticle *tmcprimcasc = (AliAODMCParticle*)mcArray->At(labprim_casc);
4551 mcprimcasc = tmcprimcasc;
4552 pdgarray_casc[ngen_casc] = mcprimcasc->GetPdgCode();
4553 labelarray_casc[ngen_casc] = labprim_casc;
4555 if(ngen_casc==100)
break;
4558 Bool_t same_flag = kFALSE;
4559 Int_t matchedlabel=-9999;
4560 for(
Int_t iemc=0;iemc<ngen_ele;iemc++){
4561 for(
Int_t ivmc=0;ivmc<ngen_casc;ivmc++){
4562 if(labelarray_ele[iemc]==labelarray_casc[ivmc]){
4564 matchedlabel = labelarray_ele[iemc];
4568 if(same_flag)
break;
4571 return matchedlabel;
4581 AliAODTrack *cptrack = (AliAODTrack*) theCascade->GetDaughter(0);
4582 if(!cptrack)
return -1;
4583 Int_t label_p = TMath::Abs(cptrack->GetLabel());
4584 if(label_p<0)
return -1;
4585 AliAODTrack *cntrack = (AliAODTrack*) theCascade->GetDaughter(1);
4586 if(!cntrack)
return -1;
4587 Int_t label_n = TMath::Abs(cntrack->GetLabel());
4588 if(label_n<0)
return -1;
4589 Int_t labv0 = theCascade->MatchToMC(pdgDgcasc[1],mcArray,2,pdgDgv0);
4590 if(labv0<0)
return -1;
4591 AliAODMCParticle *mcpartv0= (AliAODMCParticle*) mcArray->At(labv0);
4593 AliAODTrack *cbtrack = (AliAODTrack*) theCascade->GetDecayVertexXi()->GetDaughter(0);
4594 if(!cbtrack)
return -1;
4596 Int_t label_b = TMath::Abs(cbtrack->GetLabel());
4597 if(label_b<0)
return -1;
4599 AliAODMCParticle *mcpartb= (AliAODMCParticle*) mcArray->At(label_b);
4600 Int_t pdgb = TMath::Abs(mcpartb->GetPdgCode());
4601 if(pdgb!=pdgDgcasc[0])
return -1;
4603 AliAODMCParticle *mcmotherv0=mcpartv0;
4604 Bool_t isFromXiv0 = kFALSE;
4605 Int_t labxiv0 = mcmotherv0->GetMother();
4606 if(labxiv0<0)
return -1;
4607 mcmotherv0 = (AliAODMCParticle*) mcArray->At(labxiv0);
4609 Int_t pdg = TMath::Abs(mcmotherv0 ->GetPdgCode());
4610 if(pdg==pdgabscasc){
4614 if(!isFromXiv0)
return -1;
4616 AliAODMCParticle *mcmotherb=mcpartb;
4617 Bool_t isFromXib = kFALSE;
4618 Int_t labxib = mcmotherb->GetMother();
4619 if(labxib<0)
return -1;
4620 mcmotherb = (AliAODMCParticle*) mcArray->At(labxib);
4622 Int_t pdg = TMath::Abs(mcmotherb ->GetPdgCode());
4623 if(pdg==pdgabscasc){
4627 if(!isFromXib)
return -1;
4629 if(labxiv0!=labxib)
return -1;
4641 if(trkEntries==0)
return;
4644 for(
Int_t i=0; i<trkEntries; i++) {
4645 seleFlags[i] = kFALSE;
4648 track = (AliVTrack*)event->GetTrack(i);
4652 if(!track->GetCovarianceXYZPxPyPz(covtest))
continue;
4656 AliAODTrack *aodt = (AliAODTrack*)track;
4661 if(!aodt->TestFilterBit(BIT(filterbit)))
continue;
4663 if(!aodt->TestFilterMask(BIT(filterbit)))
continue;
4667 AliAODTrack *aodtpid = 0;
4669 aodtpid =
fGTI[-aodt->GetID()-1];
4684 if(fabs(nsigma_tofele)<3.){
4687 if(fabs(eleeta)<0.6)
4689 if(fabs(eleeta)>0.6 && fabs(eleeta)<0.8)
4691 if(eleeta>-0.8 && eleeta<-0.6){
4693 }
else if(eleeta>-0.6&&eleeta<-0.4){
4695 }
else if(eleeta>-0.4&&eleeta<-0.2){
4697 }
else if(eleeta>-0.2&&eleeta<0.0){
4699 }
else if(eleeta>0.0&&eleeta<0.2){
4701 }
else if(eleeta>0.2&&eleeta<0.4){
4703 }
else if(eleeta>0.4&&eleeta<0.6){
4705 }
else if(eleeta>0.6&&eleeta<0.8){
4709 if(nsigma_tpcele>-0.5&&nsigma_tpcele<3.){
4729 fVtx1->GetXYZ(primVtx);
4732 for(
Int_t icasc=0;icasc<nCascs;icasc++)
4734 seleCascFlags[icasc] = kFALSE;
4735 AliAODcascade *casc = ((
AliAODEvent*)event)->GetCascade(icasc);
4739 seleCascFlags[icasc] = kTRUE;
4751 if(theBinZ<0 || theBinZ>=
fNzVtxBins)
return -1;
4753 if(theBinM<0 || theBinM>=
fNCentBins)
return -1;
4756 if(theBinR<0 || theBinR>=
fNRPBins)
return -1;
4771 for(
Int_t j=0;j<KiddiePool;j++){
4787 int nEle = mixTypeE.size();
4788 int nCasc = mixTypeL.size();
4789 for(
Int_t ie=0;ie<nEle;ie++){
4790 TLorentzVector* trke=mixTypeE[ie];
4792 TVector *elevars = mixTypeEVars[ie];
4793 for(
Int_t iv=0;iv<nCasc;iv++){
4794 TLorentzVector* casc=mixTypeL[iv];
4795 TVector *cascvars = mixTypeLVars[iv];
4809 Int_t nmcpart = mcArray->GetEntriesFast();
4811 Int_t mcevttype = 0;
4813 Bool_t sigmaevent = kFALSE;
4820 Int_t ncbarquark = 0;
4823 for(
Int_t i=0;i<nmcpart;i++)
4825 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4826 if(TMath::Abs(mcpart->GetPdgCode())==4){
4827 if(fabs(mcpart->Y())<1.5){
4828 if(mcpart->GetPdgCode()==4){
4829 phi_c = mcpart->Phi();
4832 if(mcpart->GetPdgCode()==-4){
4833 phi_cbar = mcpart->Phi();
4838 }
else if(mcevttype==1){
4840 }
else if(mcevttype==2){
4842 }
else if(mcevttype==3){
4848 if(TMath::Abs(mcpart->GetPdgCode())==5){
4849 if(!mcpart->IsPhysicalPrimary())
continue;
4850 if(fabs(mcpart->Y())<1.5){
4853 }
else if(mcevttype==1){
4855 }
else if(mcevttype==2){
4857 }
else if(mcevttype==3){
4865 if((mcevttype==2)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4867 if((mcevttype==1)||(mcevttype==0)||(mcevttype==3))
return kFALSE;
4871 if(ncquark!=1)
return kFALSE;
4872 if(ncbarquark!=1)
return kFALSE;
4873 Double_t dphi = fabs(phi_c - phi_cbar);
4874 if(dphi>2*M_PI) dphi -= 2*M_PI;
4875 if(dphi>M_PI) dphi = 2*M_PI-dphi;
4885 for(
Int_t i=0;i<nmcpart;i++)
4887 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4888 if(TMath::Abs(mcpart->GetPdgCode())==4132){
4891 AliAODMCParticle *mcepart = 0;
4892 AliAODMCParticle *mccascpart = 0;
4893 for(
Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4896 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4897 if(!mcdau)
continue;
4898 if(TMath::Abs(mcdau->GetPdgCode())==11){
4902 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4908 Int_t decaytype = -9999;
4909 if(e_flag && xi_flag) decaytype = 0;
4913 if(!e_flag&&xi_flag)
4915 if(e_flag&&!xi_flag)
4917 if(!e_flag&&!xi_flag)
4922 if(TMath::Abs(mcpart->GetPdgCode())==5132 || TMath::Abs(mcpart->GetPdgCode())==5232){
4924 Bool_t xic_flag = kFALSE;
4925 AliAODMCParticle *mcepart = 0;
4926 AliAODMCParticle *mcxicpart = 0;
4927 AliAODMCParticle *mccascpart = 0;
4928 for(
Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4931 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4932 if(!mcdau)
continue;
4933 if(TMath::Abs(mcdau->GetPdgCode())==11){
4937 if(TMath::Abs(mcdau->GetPdgCode())==4132 || TMath::Abs(mcdau->GetPdgCode())==4232 ){
4944 if(e_flag && xic_flag){
4945 for(
Int_t idau=mcxicpart->GetFirstDaughter();idau<mcxicpart->GetLastDaughter()+1;idau++)
4948 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4949 if(!mcdau)
continue;
4950 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4959 contmc_withxic[0] = mcpart->Pt();
4960 contmc_withxic[1] = mcpart->Y();
4961 contmc_withxic[2] = mcxicpart->Y();
4962 if(fabs(mcxicpart->Y())<1.){
4968 Int_t decaytype = -9999;
4969 if(e_flag && xic_flag && xi_flag) decaytype = 10;
4972 if(TMath::Abs(mcpart->GetPdgCode())==11 && mcpart->GetStatus()==1){
4975 esdcuts->GetEtaRange(etamin,etamax);
4976 if(fabs(mcpart->Eta())<etamax){
4977 Bool_t gamma_flag = kFALSE;
4978 Int_t labmother = mcpart->GetMother();
4980 AliAODMCParticle *mcmother = (AliAODMCParticle*) mcArray->At(labmother);
4981 Int_t pdgmother = mcmother->GetPdgCode();
4982 if(TMath::Abs(pdgmother)==22) gamma_flag = kTRUE;
4988 if(TMath::Abs(mcpart->GetPdgCode())==3312){
4993 if((fabs(mcpart->Y())<rapmax) && (fabs(mcpart->Eta())<etamax)){
4999 if(TMath::Abs(mcpart->GetPdgCode())==111){
5000 if(fabs(mcpart->Y())<0.5){
5004 if(TMath::Abs(mcpart->GetPdgCode())==221){
5005 if(fabs(mcpart->Y())<0.5){
5009 if(TMath::Abs(mcpart->GetPdgCode())==321){
5010 if(fabs(mcpart->Y())<0.5){
5014 if(TMath::Abs(mcpart->GetPdgCode())==421){
5015 if(fabs(mcpart->Y())<0.5){
5023 for(
Int_t i=0;i<nmcpart;i++)
5025 AliAODMCParticle *mcparte = (AliAODMCParticle*) mcArray->At(i);
5026 if(!mcparte)
continue;
5027 if(TMath::Abs(mcparte->GetPdgCode())!=11)
continue;
5028 if(mcparte->GetStatus()!=1)
continue;
5029 if(mcparte->Pt()<0.4)
continue;
5030 if(fabs(mcparte->Eta())>0.8)
continue;
5031 for(
Int_t j=0;j<nmcpart;j++)
5033 AliAODMCParticle *mcpartv = (AliAODMCParticle*) mcArray->At(j);
5034 if(!mcpartv)
continue;
5035 if(TMath::Abs(mcpartv->GetPdgCode())!=3312)
continue;
5036 if(mcpartv->Pt()<0.4)
continue;
5037 if(fabs(mcpartv->Eta())>0.8)
continue;
5038 if(mcpartv->GetNDaughters()!=2)
continue;
5056 const char* nameoutput = GetOutputSlot(11)->GetContainer()->GetName();
5062 fCandidateVariableNames[ 0] =
"InvMassEleXi";
5063 fCandidateVariableNames[ 1] =
"EleXiPx";
5064 fCandidateVariableNames[ 2] =
"EleXiPy";
5065 fCandidateVariableNames[ 3] =
"EleXiPz";
5066 fCandidateVariableNames[ 4] =
"ElePdgCode";
5067 fCandidateVariableNames[ 5] =
"ElePx";
5068 fCandidateVariableNames[ 6] =
"ElePy";
5069 fCandidateVariableNames[ 7] =
"ElePz";
5070 fCandidateVariableNames[ 8] =
"XiPdgCode";
5071 fCandidateVariableNames[ 9] =
"XiPx";
5072 fCandidateVariableNames[10] =
"XiPy";
5073 fCandidateVariableNames[11] =
"XiPz";
5074 fCandidateVariableNames[12] =
"SameFlag";
5075 fCandidateVariableNames[13] =
"EleNGeneration";
5076 fCandidateVariableNames[14] =
"EleGen1PDG";
5077 fCandidateVariableNames[15] =
"EleGen2PDG";
5078 fCandidateVariableNames[16] =
"EleGen3PDG";
5079 fCandidateVariableNames[17] =
"EleGen4PDG";
5080 fCandidateVariableNames[18] =
"EleGen5PDG";
5081 fCandidateVariableNames[19] =
"EleGen6PDG";
5082 fCandidateVariableNames[20] =
"EleGen7PDG";
5083 fCandidateVariableNames[21] =
"EleGen8PDG";
5084 fCandidateVariableNames[22] =
"EleGen9PDG";
5085 fCandidateVariableNames[23] =
"EleGen10PDG";
5086 fCandidateVariableNames[24] =
"ElePrimPDG";
5087 fCandidateVariableNames[25] =
"XiNGeneration";
5088 fCandidateVariableNames[26] =
"XiGen1PDG";
5089 fCandidateVariableNames[27] =
"XiGen2PDG";
5090 fCandidateVariableNames[28] =
"XiGen3PDG";
5091 fCandidateVariableNames[29] =
"XiGen4PDG";
5092 fCandidateVariableNames[30] =
"XiGen5PDG";
5093 fCandidateVariableNames[31] =
"XiGen6PDG";
5094 fCandidateVariableNames[32] =
"XiGen7PDG";
5095 fCandidateVariableNames[33] =
"XiGen8PDG";
5096 fCandidateVariableNames[34] =
"XiGen9PDG";
5097 fCandidateVariableNames[35] =
"XiGen10PDG";
5098 fCandidateVariableNames[36] =
"XiPrimPDG";
5099 fCandidateVariableNames[37] =
"MatchedPDG";
5113 for(
Int_t i=0;i<38;i++){
5117 TLorentzVector vele, vxi, vexi;
5118 vele.SetXYZM(mcparte->Px(),mcparte->Py(),mcparte->Pz(),0.000510998928);
5119 vxi.SetXYZM(mcpartv->Px(),mcpartv->Py(),mcpartv->Pz(),1.32171);
5122 Int_t pdgarray_ele[100], labelarray_ele[100], ngen_ele;
5123 Int_t pdgarray_xi[100], labelarray_xi[100], ngen_xi;
5127 Bool_t same_flag = kFALSE;
5128 Int_t matched_pdg = -999999;
5129 for(
Int_t iemc=0;iemc<ngen_ele;iemc++){
5130 for(
Int_t ivmc=0;ivmc<ngen_xi;ivmc++){
5131 if(labelarray_ele[iemc]==labelarray_xi[ivmc]){
5133 matched_pdg = pdgarray_ele[iemc];
5137 if(same_flag)
break;
5139 Int_t pdgprim_ele = pdgarray_ele[ngen_ele-1];
5140 Int_t pdgprim_xi = pdgarray_xi[ngen_xi-1];