Skip to content

Commit 105bd85

Browse files
authored
[PWGCF] FemtoUniverse : Adding randomness in mixing for SH (AliceO2Group#8289)
1 parent 661e4ba commit 105bd85

File tree

1 file changed

+30
-7
lines changed

1 file changed

+30
-7
lines changed

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackSpherHarMultKtExtended.cxx

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
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

Comments
 (0)