Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 27 additions & 9 deletions PWGCF/FemtoUniverse/Core/FemtoUniverseContainer.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>

#include <TDatabasePDG.h>

Check failure on line 30 in PWGCF/FemtoUniverse/Core/FemtoUniverseContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
#include <TRandom2.h>

#include <string>
#include <string_view>
Expand Down Expand Up @@ -157,8 +158,8 @@
/// \param pdg2 PDG code of particle two
void setPDGCodes(const int pdg1, const int pdg2)
{
mMassOne = TDatabasePDG::Instance()->GetParticle(pdg1)->Mass();

Check failure on line 161 in PWGCF/FemtoUniverse/Core/FemtoUniverseContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
mMassTwo = TDatabasePDG::Instance()->GetParticle(pdg2)->Mass();

Check failure on line 162 in PWGCF/FemtoUniverse/Core/FemtoUniverseContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
mPDGOne = pdg1;
mPDGTwo = pdg2;
}
Expand All @@ -177,10 +178,10 @@
deltaPhi = part1.phi() - part2.phi();

while (deltaPhi < mPhiLow) {
deltaPhi += o2::constants::math::TwoPI;

Check failure on line 181 in PWGCF/FemtoUniverse/Core/FemtoUniverseContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[two-pi-add-subtract]

Use RecoDecay::constrainAngle to restrict angle to a given range.
}
while (deltaPhi > mPhiHigh) {
deltaPhi -= o2::constants::math::TwoPI;

Check failure on line 184 in PWGCF/FemtoUniverse/Core/FemtoUniverseContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[two-pi-add-subtract]

Use RecoDecay::constrainAngle to restrict angle to a given range.
}

mHistogramRegistry->fill(HIST(FolderSuffix[EventType]) + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/relPairDist"), femtoObs, weight);
Expand Down Expand Up @@ -229,36 +230,53 @@
/// \param part2 Particle two
/// \param mult Multiplicity of the event
template <bool isMC, typename T>
void setPair(T const& part1, T const& part2, const int mult, bool use3dplots, float weight = 1.0f, bool isiden = false)
void setPair(T const& part1, T const& part2, const int mult, bool use3dplots, float weight = 1.0f, bool isiden = false, bool randomizePair = false, double randValue = 0.5)
{
float femtoObs, femtoObsMC;

auto p1 = part1;
auto p2 = part2;
auto mass1 = mMassOne;
auto mass2 = mMassTwo;
if (randomizePair) {
TRandom2* randgen = new TRandom2(0);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you need to create a new object in every call?

double rand = randgen->Rndm();

if (rand > randValue) {
p1 = part2;
p2 = part1;
mass1 = mMassTwo;
mass2 = mMassOne;
Comment on lines +246 to +249

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is std::swap for this.

}
delete randgen;
}
// Calculate femto observable and the mT with reconstructed information
if constexpr (FemtoObs == femto_universe_container::Observable::kstar) {
if (!isiden) {
femtoObs = FemtoUniverseMath::getkstar(part1, mMassOne, part2, mMassTwo);
femtoObs = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
} else {
femtoObs = 2.0 * FemtoUniverseMath::getkstar(part1, mMassOne, part2, mMassTwo);
femtoObs = 2.0 * FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
}
}
const float mT = FemtoUniverseMath::getmT(part1, mMassOne, part2, mMassTwo);
const float mT = FemtoUniverseMath::getmT(p1, mass1, p2, mass2);

if (mHistogramRegistry) {
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kRecon>(femtoObs, mT, part1, part2, mult, use3dplots, weight);
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kRecon>(femtoObs, mT, p1, p2, mult, use3dplots, weight);

if constexpr (isMC) {
if (part1.has_fdMCParticle() && part2.has_fdMCParticle()) {
// calculate the femto observable and the mT with MC truth information
if constexpr (FemtoObs == femto_universe_container::Observable::kstar) {
if (!isiden) {
femtoObsMC = FemtoUniverseMath::getkstar(part1.fdMCParticle(), mMassOne, part2.fdMCParticle(), mMassTwo);
femtoObsMC = FemtoUniverseMath::getkstar(p1.fdMCParticle(), mass1, p2.fdMCParticle(), mass2);
} else {
femtoObsMC = 2.0 * FemtoUniverseMath::getkstar(part1.fdMCParticle(), mMassOne, part2.fdMCParticle(), mMassTwo);
femtoObsMC = 2.0 * FemtoUniverseMath::getkstar(p1.fdMCParticle(), mass1, p2.fdMCParticle(), mass2);
}
}
const float mTMC = FemtoUniverseMath::getmT(part1.fdMCParticle(), mMassOne, part2.fdMCParticle(), mMassTwo);
const float mTMC = FemtoUniverseMath::getmT(part1.fdMCParticle(), mass1, part2.fdMCParticle(), mass2);

if (std::abs(part1.fdMCParticle().pdgMCTruth()) == std::abs(mPDGOne) && std::abs(part2.fdMCParticle().pdgMCTruth()) == std::abs(mPDGTwo)) { // Note: all pair-histogramms are filled with MC truth information ONLY in case of non-fake candidates
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kTruth>(femtoObsMC, mTMC, part1.fdMCParticle(), part2.fdMCParticle(), mult, use3dplots, weight);
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kTruth>(femtoObsMC, mTMC, p1.fdMCParticle(), p2.fdMCParticle(), mult, use3dplots, weight);
setPairMC(femtoObsMC, femtoObs, mT, mult);
} else {
mHistogramRegistry->fill(HIST(FolderSuffix[EventType]) + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kTruth]) + HIST("/hFakePairsCounter"), 0);
Expand Down
37 changes: 28 additions & 9 deletions PWGCF/FemtoUniverse/Core/FemtoUniverseFemtoContainer.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>

#include <TDatabasePDG.h>

Check failure on line 29 in PWGCF/FemtoUniverse/Core/FemtoUniverseFemtoContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
#include <TRandom2.h>

#include <string>
#include <string_view>
Expand Down Expand Up @@ -145,8 +146,8 @@
/// \param pdg2 PDG code of particle two
void setPDGCodes(const int pdg1, const int pdg2)
{
kMassOne = TDatabasePDG::Instance()->GetParticle(pdg1)->Mass();

Check failure on line 149 in PWGCF/FemtoUniverse/Core/FemtoUniverseFemtoContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
kMassTwo = TDatabasePDG::Instance()->GetParticle(pdg2)->Mass();

Check failure on line 150 in PWGCF/FemtoUniverse/Core/FemtoUniverseFemtoContainer.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
kPDGOne = pdg1;
kPDGTwo = pdg2;
}
Expand Down Expand Up @@ -205,29 +206,47 @@
/// \param part2 Particle two
/// \param mult Multiplicity of the event
template <bool isMC, typename T>
void setPair(T const& part1, T const& part2, const int mult, bool use3dplots)
void setPair(T const& part1, T const& part2, const int mult, bool use3dplots, bool onlyPrimaryMC = false, bool randomizePair = false, double randValue = 0.5)
{
float femtoObs, femtoObsMC;
auto p1 = part1;
auto p2 = part2;

auto mass1 = kMassOne;
auto mass2 = kMassTwo;
if (randomizePair) {
TRandom2* randgen = new TRandom2(0);
double rand = randgen->Rndm();
if (rand > randValue) {
p1 = part2;
p2 = part1;
mass1 = kMassTwo;
mass2 = kMassOne;
}
delete randgen;
}
// Calculate femto observable and the mT with reconstructed information
if constexpr (kFemtoObs == femto_universe_femto_container::Observable::kstar) {
femtoObs = FemtoUniverseMath::getkstar(part1, kMassOne, part2, kMassTwo);
femtoObs = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
}
const float mT = FemtoUniverseMath::getmT(part1, kMassOne, part2, kMassTwo);
const float mT = FemtoUniverseMath::getmT(p1, mass1, p2, mass2);

if (kHistogramRegistry) {
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kRecon>(femtoObs, mT, part1, part2, mult, use3dplots);
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kRecon>(femtoObs, mT, p1, p2, mult, use3dplots);

if constexpr (isMC) {
if (part1.has_fdMCParticle() && part2.has_fdMCParticle()) {
if (p1.has_fdMCParticle() && p1.has_fdMCParticle()) {
// calculate the femto observable and the mT with MC truth information
if constexpr (kFemtoObs == femto_universe_femto_container::Observable::kstar) {
femtoObsMC = FemtoUniverseMath::getkstar(part1.fdMCParticle(), kMassOne, part2.fdMCParticle(), kMassTwo);
femtoObsMC = FemtoUniverseMath::getkstar(p1.fdMCParticle(), mass1, p2.fdMCParticle(), mass2);
}
const float mTMC = FemtoUniverseMath::getmT(part1.fdMCParticle(), kMassOne, part2.fdMCParticle(), kMassTwo);
const float mTMC = FemtoUniverseMath::getmT(p1.fdMCParticle(), mass1, p2.fdMCParticle(), mass2);

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
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kTruth>(femtoObsMC, mTMC, part1.fdMCParticle(), part2.fdMCParticle(), mult, use3dplots);
setPairMC(femtoObsMC, femtoObs, mT, mult);
if (!onlyPrimaryMC || (part1.fdMCParticle().partOriginMCTruth() == o2::aod::femtouniverse_mc_particle::kPrimary && part2.fdMCParticle().partOriginMCTruth() == o2::aod::femtouniverse_mc_particle::kPrimary)) {
setPairBase<o2::aod::femtouniverse_mc_particle::MCType::kTruth>(femtoObsMC, mTMC, p1.fdMCParticle(), p1.fdMCParticle(), mult, use3dplots);
setPairMC(femtoObsMC, femtoObs, mT, mult);
}
} else {
kHistogramRegistry->fill(HIST(kFolderSuffix[kEventType]) + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kTruth]) + HIST("/hFakePairsCounter"), 0);
}
Expand Down
37 changes: 26 additions & 11 deletions PWGCF/FemtoUniverse/Core/FemtoUniversePairSHCentMultKt.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@
/// \param ktval kT value
template <typename T>
void fillMultNumDen(T const& part1, T const& part2, uint8_t ChosenEventType,
int maxl, int multval, float ktval, bool isIdenLCMS, bool isqinvfill, bool isWeight, bool isIdenPRF)
int maxl, int multval, float ktval, bool isIdenLCMS, bool isqinvfill, bool isWeight, bool isIdenPRF, bool randomizePair = false, double randValue = 0.5)
{
int multbinval;
int absmultval = multval;
Expand All @@ -207,7 +207,7 @@
return;
}
// std::cout<<"multbinval "<<multbinval<<std::endl;
fillkTNumDen(part1, part2, ChosenEventType, maxl, multbinval, ktval, isIdenLCMS, isqinvfill, isWeight, isIdenPRF);
fillkTNumDen(part1, part2, ChosenEventType, maxl, multbinval, ktval, isIdenLCMS, isqinvfill, isWeight, isIdenPRF, randomizePair, randValue);
}

/// Templated function to access different kT directory and call addEventPair
Expand All @@ -219,7 +219,7 @@
/// \param ktval kT value
template <typename T>
void fillkTNumDen(T const& part1, T const& part2, uint8_t ChosenEventType,
int maxl, int multval, float ktval, bool isIdenLCMS, bool isqinvfill, bool isWeight, bool isIdenPRF)
int maxl, int multval, float ktval, bool isIdenLCMS, bool isqinvfill, bool isWeight, bool isIdenPRF, bool randomizePair = false, double randValue = 0.5)
{
int ktbinval = -1;
if (ktval >= ktBins[0] && ktval < ktBins[1]) {
Expand All @@ -239,16 +239,16 @@
} else {
return;
}
addEventPair(part1, part2, ChosenEventType, maxl, multval, ktbinval, isIdenLCMS, isqinvfill, isWeight, isIdenPRF);
addEventPair(part1, part2, ChosenEventType, maxl, multval, ktbinval, isIdenLCMS, isqinvfill, isWeight, isIdenPRF, randomizePair, randValue);
}

/// Set the PDG codes of the two particles involved
/// \param pdg1 PDG code of particle one
/// \param pdg2 PDG code of particle two
void setPionPairMass()
void setPDGCodes(const int pdg1, const int pdg2)
{
mMassOne = o2::constants::physics::MassPiPlus; // FIXME: Get from the PDG service of the common header
mMassTwo = o2::constants::physics::MassPiPlus; // FIXME: Get from the PDG service of the common header
mMassOne = TDatabasePDG::Instance()->GetParticle(pdg1)->Mass();

Check failure on line 250 in PWGCF/FemtoUniverse/Core/FemtoUniversePairSHCentMultKt.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
mMassTwo = TDatabasePDG::Instance()->GetParticle(pdg2)->Mass();

Check failure on line 251 in PWGCF/FemtoUniverse/Core/FemtoUniversePairSHCentMultKt.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Do not use TDatabasePDG directly. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG> instead.
}

/// To compute the bin value for cavariance matrix
Expand All @@ -272,16 +272,31 @@
/// \param ktval kT value
template <typename T>
void addEventPair(T const& part1, T const& part2, uint8_t ChosenEventType,
int /*maxl*/, int multval, int ktval, bool isIdenLCMS, bool isqinvfill, bool isWeight, bool isIdenPRF)
int /*maxl*/, int multval, int ktval, bool isIdenLCMS, bool isqinvfill, bool isWeight, bool isIdenPRF, bool randomizePair = false, double randValue = 0.5)
{
int fMultBin = multval;
int fKtBin = ktval;
std::vector<std::complex<double>> fYlmBuffer(kMaxJM);
std::vector<double> f3d;
setPionPairMass();

f3d = FemtoUniverseMath::newpairfunc(part1, mMassOne, part2, mMassTwo,
isIdenLCMS, isWeight, isIdenPRF);
auto p1 = part1;
auto p2 = part2;
auto mass1 = mMassOne;
auto mass2 = mMassTwo;
if (randomizePair) {
TRandom2* randgen = new TRandom2(0);
double rand = randgen->Rndm();

if (rand > randValue) {
p1 = part2;
p2 = part1;
mass1 = mMassTwo;
mass2 = mMassOne;
}
delete randgen;
}

f3d = FemtoUniverseMath::newpairfunc(p1, mass1, p2, mass2, isIdenLCMS, isWeight, isIdenPRF);
double varout = 0.0;
double varside = 0.0;
double varlong = 0.0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
Configurable<bool> confIsMC{"confIsMC", false, "Enable additional Histogramms in the case of a MonteCarlo Run"};
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"};
Configurable<bool> confUse3D{"confUse3D", false, "Enable three dimensional histogramms (to be used only for analysis with high statistics): k* vs mT vs multiplicity"};
Configurable<bool> confOnlyPrimaryMCPair{"confOnlyPrimaryMCPair", false, "Fill MC pair histograms only with primary particles"};
Configurable<bool> confRandomizePair{"confRandomizePair", true, "Randomize pair before filling pair histograms, like k*"};

} twotracksconfigs;

using FemtoFullParticles = soa::Join<aod::FDParticles, aod::FDExtParticles>;
Expand Down Expand Up @@ -536,7 +539,7 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);

sameEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
sameEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
sameEventMultCont.fill<float>(kstar, multCol, kT);
}
Expand Down Expand Up @@ -583,14 +586,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass1);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass1);

sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
sameEventMultContPP.fill<float>(kstar, multCol, kT);
} else {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);

sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
sameEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
sameEventMultContPP.fill<float>(kstar, multCol, kT);
}
Expand All @@ -603,14 +606,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
float kstar = FemtoUniverseMath::getkstar(p1, mass2, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass2, p2, mass2);

sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
sameEventMultContMM.fill<float>(kstar, multCol, kT);
} else {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);

sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
sameEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
sameEventMultContMM.fill<float>(kstar, multCol, kT);
}
Expand Down Expand Up @@ -730,7 +733,7 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);

mixedEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
mixedEventCont.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
mixedEventMultCont.fill<float>(kstar, multCol, kT);

Expand All @@ -741,14 +744,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass1);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass1);

mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
mixedEventMultContPP.fill<float>(kstar, multCol, kT);
} else {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);

mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
mixedEventContPP.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
mixedEventMultContPP.fill<float>(kstar, multCol, kT);
}
Expand All @@ -761,14 +764,14 @@ struct FemtoUniversePairTaskTrackTrackMultKtExtended {
float kstar = FemtoUniverseMath::getkstar(p1, mass2, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass2, p2, mass2);

mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
mixedEventMultContMM.fill<float>(kstar, multCol, kT);
} else {
float kstar = FemtoUniverseMath::getkstar(p1, mass1, p2, mass2);
float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);

mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D);
mixedEventContMM.setPair<isMC>(p1, p2, multCol, twotracksconfigs.confUse3D, twotracksconfigs.confOnlyPrimaryMCPair, twotracksconfigs.confRandomizePair);
if (cfgProcessMultBins)
mixedEventMultContMM.fill<float>(kstar, multCol, kT);
}
Expand Down
Loading
Loading