Skip to content

Commit 38d52cb

Browse files
committed
Fix hardcoded pion mass in SH task, add filling only primary MC pairs
1 parent 0bba10f commit 38d52cb

3 files changed

Lines changed: 22 additions & 20 deletions

File tree

PWGCF/FemtoUniverse/Core/FemtoUniverseFemtoContainer.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,10 @@ class FemtoUniverseFemtoContainer
205205
/// \param part2 Particle two
206206
/// \param mult Multiplicity of the event
207207
template <bool isMC, typename T>
208-
void setPair(T const& part1, T const& part2, const int mult, bool use3dplots)
208+
void setPair(T const& part1, T const& part2, const int mult, bool use3dplots, bool onlyPrimaryMC = false)
209209
{
210210
float femtoObs, femtoObsMC;
211+
211212
// Calculate femto observable and the mT with reconstructed information
212213
if constexpr (kFemtoObs == femto_universe_femto_container::Observable::kstar) {
213214
femtoObs = FemtoUniverseMath::getkstar(part1, kMassOne, part2, kMassTwo);
@@ -226,8 +227,10 @@ class FemtoUniverseFemtoContainer
226227
const float mTMC = FemtoUniverseMath::getmT(part1.fdMCParticle(), kMassOne, part2.fdMCParticle(), kMassTwo);
227228

228229
if (std::abs(part1.fdMCParticle().pdgMCTruth()) == std::abs(kPDGOne) && std::abs(part2.fdMCParticle().pdgMCTruth()) == std::abs(kPDGTwo)) { // Note: all pair-histogramms are filled with MC truth information ONLY in case of non-fake candidates
229-
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kTruth>(femtoObsMC, mTMC, part1.fdMCParticle(), part2.fdMCParticle(), mult, use3dplots);
230-
setPairMC(femtoObsMC, femtoObs, mT, mult);
230+
if (!onlyPrimaryMC || (part1.fdMCParticle().partOriginMCTruth() == o2::aod::femtouniverse_mc_particle::kPrimary && part2.fdMCParticle().partOriginMCTruth() == o2::aod::femtouniverse_mc_particle::kPrimary)) {
231+
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kTruth>(femtoObsMC, mTMC, part1.fdMCParticle(), part1.fdMCParticle(), mult, use3dplots);
232+
setPairMC(femtoObsMC, femtoObs, mT, mult);
233+
}
231234
} else {
232235
kHistogramRegistry->fill(HIST(kFolderSuffix[kEventType]) + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kTruth]) + HIST("/hFakePairsCounter"), 0);
233236
}

PWGCF/FemtoUniverse/Core/FemtoUniversePairSHCentMultKt.h

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ class PairSHCentMultKt
8484
int em = 0;
8585
int il = 0;
8686
do {
87-
8887
fels[il] = el;
8988
fems[il] = em;
9089
felsi[il] = static_cast<int>(el);
@@ -245,10 +244,10 @@ class PairSHCentMultKt
245244
/// Set the PDG codes of the two particles involved
246245
/// \param pdg1 PDG code of particle one
247246
/// \param pdg2 PDG code of particle two
248-
void setPionPairMass()
247+
void setPDGCodes(const int pdg1, const int pdg2)
249248
{
250-
mMassOne = o2::constants::physics::MassPiPlus; // FIXME: Get from the PDG service of the common header
251-
mMassTwo = o2::constants::physics::MassPiPlus; // FIXME: Get from the PDG service of the common header
249+
mMassOne = TDatabasePDG::Instance()->GetParticle(pdg1)->Mass();
250+
mMassTwo = TDatabasePDG::Instance()->GetParticle(pdg2)->Mass();
252251
}
253252

254253
/// To compute the bin value for cavariance matrix
@@ -278,10 +277,8 @@ class PairSHCentMultKt
278277
int fKtBin = ktval;
279278
std::vector<std::complex<double>> fYlmBuffer(kMaxJM);
280279
std::vector<double> f3d;
281-
setPionPairMass();
282280

283-
f3d = FemtoUniverseMath::newpairfunc(part1, mMassOne, part2, mMassTwo,
284-
isIdenLCMS, isWeight, isIdenPRF);
281+
f3d = FemtoUniverseMath::newpairfunc(part1, mMassOne, part2, mMassTwo, isIdenLCMS, isWeight, isIdenPRF);
285282
double varout = 0.0;
286283
double varside = 0.0;
287284
double varlong = 0.0;

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMultKtExtended.cxx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
8888
Configurable<bool> confIsMC{"confIsMC", false, "Enable additional Histogramms in the case of a MonteCarlo Run"};
8989
Configurable<std::vector<float>> confTrkPIDnSigmaMax{"confTrkPIDnSigmaMax", std::vector<float>{4.f, 3.f, 2.f}, "This configurable needs to be the same as the one used in the producer task"};
9090
Configurable<bool> confUse3D{"confUse3D", false, "Enable three dimensional histogramms (to be used only for analysis with high statistics): k* vs mT vs multiplicity"};
91+
Configurable<bool> confOnlyPrimaryMCPair{"confOnlyPrimaryMCPair", false, "Fill MC pair histograms only with primary particles"};
92+
9193
} twotracksconfigs;
9294

9395
using FemtoFullParticles = soa::Join<aod::FDParticles, aod::FDExtParticles>;
@@ -536,7 +538,7 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
536538
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
537539
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
538540

539-
sameEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
541+
sameEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
540542
if (cfgProcessMultBins)
541543
sameEventMultCont.fill<float>(kstar, multCol, kT);
542544
}
@@ -583,14 +585,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
583585
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass1);
584586
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass1);
585587

586-
sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
588+
sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
587589
if (cfgProcessMultBins)
588590
sameEventMultContPP.fill<float>(kstar, multCol, kT);
589591
} else {
590592
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
591593
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
592594

593-
sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
595+
sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
594596
if (cfgProcessMultBins)
595597
sameEventMultContPP.fill<float>(kstar, multCol, kT);
596598
}
@@ -603,14 +605,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
603605
float kstar = FemtoUniverseMath::getkstar(p1, mass2, p2, mass2);
604606
float kT = FemtoUniverseMath::getkT(p1, mass2, p2, mass2);
605607

606-
sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
608+
sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
607609
if (cfgProcessMultBins)
608610
sameEventMultContMM.fill<float>(kstar, multCol, kT);
609611
} else {
610612
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
611613
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
612614

613-
sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
615+
sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
614616
if (cfgProcessMultBins)
615617
sameEventMultContMM.fill<float>(kstar, multCol, kT);
616618
}
@@ -730,7 +732,7 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
730732
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
731733
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
732734

733-
mixedEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
735+
mixedEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
734736
if (cfgProcessMultBins)
735737
mixedEventMultCont.fill<float>(kstar, multCol, kT);
736738

@@ -741,14 +743,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
741743
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass1);
742744
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass1);
743745

744-
mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
746+
mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
745747
if (cfgProcessMultBins)
746748
mixedEventMultContPP.fill<float>(kstar, multCol, kT);
747749
} else {
748750
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
749751
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
750752

751-
mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
753+
mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
752754
if (cfgProcessMultBins)
753755
mixedEventMultContPP.fill<float>(kstar, multCol, kT);
754756
}
@@ -761,14 +763,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
761763
float kstar = FemtoUniverseMath::getkstar(p1, mass2, p2, mass2);
762764
float kT = FemtoUniverseMath::getkT(p1, mass2, p2, mass2);
763765

764-
mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
766+
mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
765767
if (cfgProcessMultBins)
766768
mixedEventMultContMM.fill<float>(kstar, multCol, kT);
767769
} else {
768770
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
769771
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
770772

771-
mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
773+
mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair);
772774
if (cfgProcessMultBins)
773775
mixedEventMultContMM.fill<float>(kstar, multCol, kT);
774776
}

0 commit comments

Comments
 (0)