1515// / \author Pritam Chakraborty, WUT Warsaw, [email protected] 1616
1717#include < vector>
18+ #include < string>
1819#include " TRandom2.h"
1920#include " Framework/AnalysisTask.h"
2021#include " Framework/runDataProcessing.h"
@@ -215,6 +216,8 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
215216 HistogramRegistry SameMultRegistryMM{" SameMultRegistryMM" , {}, OutputObjHandlingPolicy::AnalysisObject, true , true };
216217 HistogramRegistry MixedMultRegistryMM{" MixedMultRegistryMM" , {}, OutputObjHandlingPolicy::AnalysisObject, true , true };
217218
219+ TRandom2* randgen;
220+
218221 // PID for protons
219222 bool IsProtonNSigma (float mom, float nsigmaTPCPr, float nsigmaTOFPr) // previous version from: https://github.com/alisw/AliPhysics/blob/master/PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoMJTrackCut.cxx
220223 {
@@ -500,12 +503,11 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
500503 }
501504
502505 float kT = FemtoUniverseMath::getkT (p1, mass1, p2, mass2);
503- TRandom2* randgen = new TRandom2 (0 );
504506 double rand;
507+ rand = randgen->Rndm ();
505508
506509 switch (ContType) {
507510 case 2 : {
508- rand = randgen->Rndm ();
509511 if (rand > 0.5 ) {
510512 sameEventMultContPP.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::same, 2 , multCol, kT , ConfIsIden);
511513 } else if (rand <= 0.5 ) {
@@ -515,7 +517,6 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
515517 }
516518
517519 case 3 : {
518- rand = randgen->Rndm ();
519520 if (rand > 0.5 ) {
520521 sameEventMultContMM.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::same, 2 , multCol, kT , ConfIsIden);
521522 } else if (rand <= 0.5 ) {
@@ -526,7 +527,6 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
526527 default :
527528 break ;
528529 }
529- delete randgen;
530530 }
531531 }
532532 }
@@ -543,6 +543,7 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
543543 auto thegroupPartsTwo = partsTwo->sliceByCached (aod::femtouniverseparticle::fdCollisionId, col.globalIndex (), cache);
544544
545545 bool fillQA = true ;
546+ randgen = new TRandom2 (0 );
546547
547548 if (cfgProcessPM) {
548549 doSameEvent<false >(thegroupPartsOne, thegroupPartsTwo, parts, col.magField (), col.multV0M (), 1 , fillQA);
@@ -555,6 +556,7 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
555556 if (cfgProcessMM) {
556557 doSameEvent<false >(thegroupPartsTwo, thegroupPartsTwo, parts, col.magField (), col.multV0M (), 3 , fillQA);
557558 }
559+ delete randgen;
558560 }
559561 PROCESS_SWITCH (femtoUniversePairTaskTrackTrackSpherHarMultKtExtended, processSameEvent, " Enable processing same event" , true );
560562
@@ -604,19 +606,37 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
604606 }
605607
606608 float kT = FemtoUniverseMath::getkT (p1, mass1, p2, mass2);
609+ double rand;
610+ rand = randgen->Rndm ();
611+
607612 switch (ContType) {
608613 case 1 : {
609- mixedEventMultCont.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
614+ if (rand > 0.5 ) {
615+ mixedEventMultCont.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
616+ } else {
617+ mixedEventMultCont.fill_mult_NumDen (p2, p1, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
618+ }
610619 break ;
611620 }
621+
612622 case 2 : {
613- mixedEventMultContPP.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
623+ if (rand > 0.5 ) {
624+ mixedEventMultContPP.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
625+ } else {
626+ mixedEventMultContPP.fill_mult_NumDen (p2, p1, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
627+ }
614628 break ;
615629 }
630+
616631 case 3 : {
617- mixedEventMultContMM.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
632+ if (rand > 0.5 ) {
633+ mixedEventMultContMM.fill_mult_NumDen (p1, p2, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
634+ } else {
635+ mixedEventMultContMM.fill_mult_NumDen (p2, p1, femtoUniverseSHContainer::EventType::mixed, 2 , multCol, kT , ConfIsIden);
636+ }
618637 break ;
619638 }
639+
620640 default :
621641 break ;
622642 }
@@ -629,6 +649,8 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
629649 void processMixedEvent (FilteredFDCollisions& cols,
630650 FilteredFemtoFullParticles& parts)
631651 {
652+ randgen = new TRandom2 (0 );
653+
632654 for (auto & [collision1, collision2] : soa::selfCombinations (colBinning, ConfNEventsMix, -1 , cols, cols)) {
633655
634656 const int multiplicityCol = collision1.multV0M ();
@@ -657,6 +679,7 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
657679 doMixedEvent<false >(groupPartsOne, groupPartsTwo, parts, magFieldTesla1, multiplicityCol, 3 );
658680 }
659681 }
682+ delete randgen;
660683 }
661684
662685 // / process function for to fill covariance histograms
0 commit comments