Skip to content

Commit b6af14b

Browse files
authored
[PWGCF] Fix triplet event mixing (#16748)
1 parent db1b7c4 commit b6af14b

6 files changed

Lines changed: 382 additions & 160 deletions

PWGCF/Femto/Core/tripletBuilder.h

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ class TripletTrackTrackTrackBuilder
6565
TripletTrackTrackTrackBuilder() = default;
6666
~TripletTrackTrackTrackBuilder() = default;
6767

68-
template <modes::Mode mode,
68+
template <modes::Mode modeSe,
69+
modes::Mode modeMe,
6970
typename T1,
7071
typename T2,
7172
typename T3,
@@ -104,15 +105,15 @@ class TripletTrackTrackTrackBuilder
104105
LOG(fatal) << "Option Track 1&2 are identical and Option Track 1&2&3 are identical is activated. Breaking...";
105106
}
106107

107-
mColHistManager.template init<mode>(registry, colHistSpec, confCollisionBinning);
108-
mTripletHistManagerSe.template init<mode>(registry, pairHistSpec, confTripletBinning, confTripletCuts);
109-
mTripletHistManagerMe.template init<mode>(registry, pairHistSpec, confTripletBinning, confTripletCuts);
108+
mColHistManager.template init<modeSe>(registry, colHistSpec, confCollisionBinning);
109+
mTripletHistManagerSe.template init<modeSe>(registry, pairHistSpec, confTripletBinning, confTripletCuts, confMixing);
110+
mTripletHistManagerMe.template init<modeMe>(registry, pairHistSpec, confTripletBinning, confTripletCuts, confMixing);
110111

111-
mTc.template init<mode>(confTripletCuts);
112+
mTc.template init<modeSe>(confTripletCuts);
112113

113114
if (mTrack1Track2Track3AreSameSpecies) {
114115
// Track1 & Track2 & Track3 are the same particle species
115-
mTrackHistManager1.template init<mode>(registry, trackHistSpec1, confTrackSelection1);
116+
mTrackHistManager1.template init<modeSe>(registry, trackHistSpec1, confTrackSelection1);
116117

117118
mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value);
118119
mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value);
@@ -123,8 +124,8 @@ class TripletTrackTrackTrackBuilder
123124
mCtrMe.init(registry, cprHistSpec, confCtr, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value);
124125
} else if (mTrack1Track2AreSameSpecies) {
125126
// Track1 & Track2 & are the same particle species and track 3 is something else
126-
mTrackHistManager1.template init<mode>(registry, trackHistSpec1, confTrackSelection1);
127-
mTrackHistManager3.template init<mode>(registry, trackHistSpec3, confTrackSelection3);
127+
mTrackHistManager1.template init<modeSe>(registry, trackHistSpec1, confTrackSelection1);
128+
mTrackHistManager3.template init<modeSe>(registry, trackHistSpec3, confTrackSelection3);
128129

129130
mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confTrackSelection3.pdgCodeAbs.value);
130131
mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, confTrackSelection3.chargeAbs.value);
@@ -135,9 +136,9 @@ class TripletTrackTrackTrackBuilder
135136
mCtrMe.init(registry, cprHistSpec, confCtr, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, confTrackSelection3.chargeAbs.value);
136137
} else {
137138
// all three tracks are different
138-
mTrackHistManager1.template init<mode>(registry, trackHistSpec1, confTrackSelection1);
139-
mTrackHistManager2.template init<mode>(registry, trackHistSpec2, confTrackSelection2);
140-
mTrackHistManager3.template init<mode>(registry, trackHistSpec3, confTrackSelection3);
139+
mTrackHistManager1.template init<modeSe>(registry, trackHistSpec1, confTrackSelection1);
140+
mTrackHistManager2.template init<modeSe>(registry, trackHistSpec2, confTrackSelection2);
141+
mTrackHistManager3.template init<modeSe>(registry, trackHistSpec3, confTrackSelection3);
141142

142143
mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection2.pdgCodeAbs.value, confTrackSelection3.pdgCodeAbs.value);
143144
mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection2.chargeAbs.value, confTrackSelection3.chargeAbs.value);
@@ -389,7 +390,8 @@ class TripletTrackTrackV0Builder
389390
TripletTrackTrackV0Builder() = default;
390391
~TripletTrackTrackV0Builder() = default;
391392

392-
template <modes::Mode mode,
393+
template <modes::Mode modeSe,
394+
modes::Mode modeMe,
393395
typename T1,
394396
typename T2,
395397
typename T3,
@@ -427,16 +429,16 @@ class TripletTrackTrackV0Builder
427429
// check if correlate the same tracks or not
428430
mTrack1Track2AreSameSpecies = confMixing.particle12AreSameSpecies.value;
429431

430-
mColHistManager.template init<mode>(registry, colHistSpec, confCollisionBinning);
431-
mTripletHistManagerSe.template init<mode>(registry, tripletHistSpec, confTripletBinning, confTripletCuts);
432-
mTripletHistManagerMe.template init<mode>(registry, tripletHistSpec, confTripletBinning, confTripletCuts);
432+
mColHistManager.template init<modeSe>(registry, colHistSpec, confCollisionBinning);
433+
mTripletHistManagerSe.template init<modeSe>(registry, tripletHistSpec, confTripletBinning, confTripletCuts, confMixing);
434+
mTripletHistManagerMe.template init<modeMe>(registry, tripletHistSpec, confTripletBinning, confTripletCuts, confMixing);
433435

434-
mTc.template init<mode>(confTripletCuts);
436+
mTc.template init<modeSe>(confTripletCuts);
435437

436438
if (mTrack1Track2AreSameSpecies) {
437439
// Track1 & Track2 & are the same particle species and track 3 is something else
438-
mTrackHistManager1.template init<mode>(registry, trackHistSpec1, confTrackSelection1);
439-
mV0HistManager.template init<mode>(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec);
440+
mTrackHistManager1.template init<modeSe>(registry, trackHistSpec1, confTrackSelection1);
441+
mV0HistManager.template init<modeSe>(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec);
440442

441443
mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confV0Selection.pdgCodeAbs.value);
442444
mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value, 1);
@@ -447,9 +449,9 @@ class TripletTrackTrackV0Builder
447449
mCtrMe.init(registry, ctrHistSpec, confCtr, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value);
448450
} else {
449451
// all three tracks are different
450-
mTrackHistManager1.template init<mode>(registry, trackHistSpec1, confTrackSelection1);
451-
mTrackHistManager2.template init<mode>(registry, trackHistSpec2, confTrackSelection2);
452-
mV0HistManager.template init<mode>(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec);
452+
mTrackHistManager1.template init<modeSe>(registry, trackHistSpec1, confTrackSelection1);
453+
mTrackHistManager2.template init<modeSe>(registry, trackHistSpec2, confTrackSelection2);
454+
mV0HistManager.template init<modeSe>(registry, v0histSpec, confV0Selection, posDauhistSpec, negDauhistSpec);
453455

454456
mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection2.pdgCodeAbs.value, confV0Selection.pdgCodeAbs.value);
455457
mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection2.chargeAbs.value, 1);
@@ -650,7 +652,8 @@ class TripletTrackTrackCascadeBuilder
650652
TripletTrackTrackCascadeBuilder() = default;
651653
~TripletTrackTrackCascadeBuilder() = default;
652654

653-
template <modes::Mode mode,
655+
template <modes::Mode modeSe,
656+
modes::Mode modeMe,
654657
typename T1,
655658
typename T2,
656659
typename T3,
@@ -702,15 +705,15 @@ class TripletTrackTrackCascadeBuilder
702705
{
703706
// check if correlate the same tracks or not
704707
mTrack1Track2AreSameSpecies = confMixing.particle12AreSameSpecies.value;
705-
mColHistManager.template init<mode>(registry, colHistSpec, confCollisionBinning);
706-
mTripletHistManagerSe.template init<mode>(registry, tripletHistSpec, confTripletBinning, confTripletCuts);
707-
mTripletHistManagerMe.template init<mode>(registry, tripletHistSpec, confTripletBinning, confTripletCuts);
708+
mColHistManager.template init<modeSe>(registry, colHistSpec, confCollisionBinning);
709+
mTripletHistManagerSe.template init<modeSe>(registry, tripletHistSpec, confTripletBinning, confTripletCuts, confMixing);
710+
mTripletHistManagerMe.template init<modeMe>(registry, tripletHistSpec, confTripletBinning, confTripletCuts, confMixing);
708711

709-
mTc.template init<mode>(confTripletCuts);
712+
mTc.template init<modeSe>(confTripletCuts);
710713
if (mTrack1Track2AreSameSpecies) {
711714
// Track1 & Track2 & are the same particle species and track 3 is something else
712-
mTrackHistManager1.template init<mode>(registry, trackHistSpec1, confTrackSelection1);
713-
mCascadeHistManager.template init<mode>(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec);
715+
mTrackHistManager1.template init<modeSe>(registry, trackHistSpec1, confTrackSelection1);
716+
mCascadeHistManager.template init<modeSe>(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec);
714717
mTrackCleaner.init(confTrackCleaner);
715718
mCascadeCleaner.init(confCascadeCleaner);
716719
mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection1.pdgCodeAbs.value, confCascadeSelection.pdgCodeAbs.value);
@@ -721,9 +724,9 @@ class TripletTrackTrackCascadeBuilder
721724
mCtrMe.init(registry, ctrHistSpec, cprHistSpecBachelor, cprHistSpecV0Daughter, confCtr, confCprBachelor, confCprV0Daughter, confTrackSelection1.chargeAbs.value, confTrackSelection1.chargeAbs.value);
722725
} else {
723726
// all three tracks are different
724-
mTrackHistManager1.template init<mode>(registry, trackHistSpec1, confTrackSelection1);
725-
mTrackHistManager2.template init<mode>(registry, trackHistSpec2, confTrackSelection2);
726-
mCascadeHistManager.template init<mode>(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec);
727+
mTrackHistManager1.template init<modeSe>(registry, trackHistSpec1, confTrackSelection1);
728+
mTrackHistManager2.template init<modeSe>(registry, trackHistSpec2, confTrackSelection2);
729+
mCascadeHistManager.template init<modeSe>(registry, cascadeHistSpec, confCascadeSelection, bachelorHistSpec, posDauHistSpec, negDauHistSpec);
727730

728731
mTripletHistManagerSe.setMass(confTrackSelection1.pdgCodeAbs.value, confTrackSelection2.pdgCodeAbs.value, confCascadeSelection.pdgCodeAbs.value);
729732
mTripletHistManagerSe.setCharge(confTrackSelection1.chargeAbs.value, confTrackSelection2.chargeAbs.value, 1);

0 commit comments

Comments
 (0)