Skip to content
Open
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
26 changes: 12 additions & 14 deletions PWGCF/Femto/Core/charmHadronBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ class CharmHadronSelection : public baseselection::BaseSelection<float, o2::anal
this->evaluateObservable(kImpactParameterProngSqSumMin, candidate.impactParameterProngSqSum());
} else {
this->evaluateObservable(kImpactParameterProductMax, candidate.impactParameter0() * candidate.impactParameter1());
this->evaluateObservable(kCosThetaStarMax, mHfHelper.cosThetaStarD0(candidate));
this->evaluateObservable(kCosThetaStarMax, HfHelper::cosThetaStarD0(candidate));
}
this->template assembleBitmask<SelectionHistName>();
}
Expand Down Expand Up @@ -359,9 +359,9 @@ class CharmHadronSelection : public baseselection::BaseSelection<float, o2::anal
if (mUseYCut) {
float y = 0.f;
if constexpr (isThreeProng<hadronType>()) {
y = mHfHelper.yLc(candidate);
y = HfHelper::yLc(candidate);
} else {
y = mHfHelper.yD0(candidate);
y = HfHelper::yD0(candidate);
}
p = y > mYMin;
this->template fillFilter<FilterHistName>(kYMin, p);
Expand All @@ -387,7 +387,6 @@ class CharmHadronSelection : public baseselection::BaseSelection<float, o2::anal
}

private:
HfHelper mHfHelper;
float mPtMin = 0.f;
float mPtMax = 24.f;
float mEtaMin = -0.8f;
Expand Down Expand Up @@ -491,7 +490,7 @@ class CharmHadronBuilder
candidate.decayLength(),
candidate.decayLengthXY(),
candidate.impactParameter0() * candidate.impactParameter1(),
mHfHelper.cosThetaStarD0(candidate),
HfHelper::cosThetaStarD0(candidate),
candidate.mlProbD0().size() < NSizeMLScore ? -1.f : candidate.mlProbD0()[0],
candidate.mlProbD0().size() < NSizeMLScore ? -1.f : candidate.mlProbD0()[1],
candidate.mlProbD0().size() < NSizeMLScore ? -1.f : candidate.mlProbD0()[2],
Expand Down Expand Up @@ -567,8 +566,8 @@ class CharmHadronBuilder
// remap the prongs onto the accepted hypothesis so that the proton is always first
auto const& protonProng = isPKPi ? prong0 : prong2;
auto const& pionProng = isPKPi ? prong2 : prong0;
float const mass = isPKPi ? mHfHelper.invMassLcToPKPi(candidate) : mHfHelper.invMassLcToPiKP(candidate);
float const massCompeting = isPKPi ? mHfHelper.invMassLcToPiKP(candidate) : mHfHelper.invMassLcToPKPi(candidate);
float const mass = isPKPi ? HfHelper::invMassLcToPKPi(candidate) : HfHelper::invMassLcToPiKP(candidate);
float const massCompeting = isPKPi ? HfHelper::invMassLcToPiKP(candidate) : HfHelper::invMassLcToPKPi(candidate);

collisionBuilder.template fillCollision<system>(collisionProducts, col);
int64_t const protonDauIndex = trackBuilder.template getDaughterIndex<modes::Track::kCharmDaughter>(protonProng, trackProducts, collisionBuilder);
Expand All @@ -594,8 +593,8 @@ class CharmHadronBuilder
// remap the prongs onto the accepted hypothesis so that the proton is always first
auto const& protonProng = isPKPi ? prong0 : prong2;
auto const& pionProng = isPKPi ? prong2 : prong0;
float const mass = isPKPi ? mHfHelper.invMassLcToPKPi(candidate) : mHfHelper.invMassLcToPiKP(candidate);
float const massCompeting = isPKPi ? mHfHelper.invMassLcToPiKP(candidate) : mHfHelper.invMassLcToPKPi(candidate);
float const mass = isPKPi ? HfHelper::invMassLcToPKPi(candidate) : HfHelper::invMassLcToPiKP(candidate);
float const massCompeting = isPKPi ? HfHelper::invMassLcToPiKP(candidate) : HfHelper::invMassLcToPKPi(candidate);

collisionBuilder.template fillMcCollision<system>(collisionProducts, col, mcCols, mcProducts, mcBuilder);

Expand Down Expand Up @@ -634,9 +633,9 @@ class CharmHadronBuilder
int64_t negDauIndex = trackBuilder.template getDaughterIndex<modes::Track::kCharmDaughter>(prong1, trackProducts, collisionBuilder);

if constexpr (modes::isEqual(hadronType, modes::CharmHadron::kD0)) {
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, candidate.pt(), mHfHelper.invMassD0ToPiK(candidate), posDauIndex, negDauIndex);
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, candidate.pt(), HfHelper::invMassD0ToPiK(candidate), posDauIndex, negDauIndex);
} else {
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, -candidate.pt(), mHfHelper.invMassD0barToKPi(candidate), posDauIndex, negDauIndex);
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, -candidate.pt(), HfHelper::invMassD0barToKPi(candidate), posDauIndex, negDauIndex);
}
}

Expand Down Expand Up @@ -683,9 +682,9 @@ class CharmHadronBuilder
int64_t negDauIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kCharmDaughter>(prong1, trackProducts, mcCols, collisionBuilder, mcParticles, mcBuilder, mcProducts);

if constexpr (modes::isEqual(hadronType, modes::CharmHadron::kD0)) {
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, candidate.pt(), mHfHelper.invMassD0ToPiK(candidate), posDauIndex, negDauIndex);
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, candidate.pt(), HfHelper::invMassD0ToPiK(candidate), posDauIndex, negDauIndex);
} else {
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, -candidate.pt(), mHfHelper.invMassD0barToKPi(candidate), posDauIndex, negDauIndex);
this->fillD0Tables(collisionProducts, charmHadronProducts, candidate, -candidate.pt(), HfHelper::invMassD0barToKPi(candidate), posDauIndex, negDauIndex);
}
mcBuilder.template fillMcD0WithLabel<system>(candidate, tracks, mcParticles, mcCols, mcProducts);
}
Expand All @@ -711,7 +710,6 @@ class CharmHadronBuilder

private:
CharmHadronSelection<hadronType, SelectionHistName, FilterHistName> mCharmHadronSelection;
HfHelper mHfHelper;

bool mProduceD0s = false;
bool mProduceD0Masks = false;
Expand Down
67 changes: 33 additions & 34 deletions PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,6 @@ struct FemtoUniverseProducerTask {
Configurable<float> confNsigmaCombinedParticle{"confNsigmaCombinedParticle", 3.0, "TPC and TOF Sigma (combined) for particle (track) momentum > Confmom"};
} ConfPIDBitmask;

HfHelper hfHelper;
bool isKaonNSigma(float mom, float nsigmaTPCK, float nsigmaTOFK)
{
if (mom < ConfPhiSelection.confMomKaon03) { // 0.0-0.3
Expand Down Expand Up @@ -829,17 +828,17 @@ struct FemtoUniverseProducerTask {
-999., -999., -999., -999., -999., -999., -999., -999.,
-999., -999., -999., -999., -999.,
-999.,
hfHelper.yD0(particle), // getter transRadius
particle.mlProbD0()[0], // getter decayVtxX
particle.mlProbD0()[1], // getter decayVtxY
particle.mlProbD0()[2], // getter decayVtxZ
-999.); // Additional info for D0/D0bar
HfHelper::yD0(particle), // getter transRadius
particle.mlProbD0()[0], // getter decayVtxX
particle.mlProbD0()[1], // getter decayVtxY
particle.mlProbD0()[2], // getter decayVtxZ
-999.); // Additional info for D0/D0bar
} else if constexpr (isD0barML) {
outputDebugParts(-999., -999., -999., -999., -999., -999., -999., -999., -999.,
-999., -999., -999., -999., -999., -999., -999., -999.,
-999., -999., -999., -999., -999.,
-999.,
hfHelper.yD0(particle), // getter transRadius
HfHelper::yD0(particle), // getter transRadius
particle.mlProbD0bar()[0], // getter decayVtxX
particle.mlProbD0bar()[1], // getter decayVtxY
particle.mlProbD0bar()[2], // getter decayVtxZ
Expand Down Expand Up @@ -869,17 +868,17 @@ struct FemtoUniverseProducerTask {
-999., -999., -999., -999., -999., -999., -999., -999.,
-999., -999., -999., -999., -999.,
-999.,
hfHelper.yD0(particle), // getter transRadius
particle.mlProbD0()[0], // getter decayVtxX
particle.mlProbD0()[1], // getter decayVtxY
particle.mlProbD0()[2], // getter decayVtxZ
-999.); // Additional info for D0/D0bar
HfHelper::yD0(particle), // getter transRadius
particle.mlProbD0()[0], // getter decayVtxX
particle.mlProbD0()[1], // getter decayVtxY
particle.mlProbD0()[2], // getter decayVtxZ
-999.); // Additional info for D0/D0bar
} else if constexpr (isD0barML) {
outputDebugParts(particle.flagMcMatchRec(), -999., -999., -999., -999., -999., -999., -999., -999.,
originMcReco, -999., -999., -999., -999., -999., -999., -999.,
-999., -999., -999., -999., -999.,
-999.,
hfHelper.yD0(particle), // getter transRadius
HfHelper::yD0(particle), // getter transRadius
particle.mlProbD0bar()[0], // getter decayVtxX
particle.mlProbD0bar()[1], // getter decayVtxY
particle.mlProbD0bar()[2], // getter decayVtxZ
Expand Down Expand Up @@ -1719,7 +1718,7 @@ struct FemtoUniverseProducerTask {
continue;
}

if (ConfD0Selection.useYCutD0Cand && std::abs(hfHelper.yD0(hfCand)) > ConfD0Selection.yD0CandMax) {
if (ConfD0Selection.useYCutD0Cand && std::abs(HfHelper::yD0(hfCand)) > ConfD0Selection.yD0CandMax) {
continue;
}

Expand All @@ -1737,18 +1736,18 @@ struct FemtoUniverseProducerTask {
auto negtrack = hfCand.template prong1_as<TrackType>();

if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 0) {
invMassD0 = hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = -hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = -HfHelper::invMassD0barToKPi(hfCand);
isD0D0bar = true;
daughFlag = 1;
} else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
invMassD0 = -hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = -HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = HfHelper::invMassD0barToKPi(hfCand);
isD0D0bar = true;
daughFlag = -1;
} else if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 1) {
invMassD0 = hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = HfHelper::invMassD0barToKPi(hfCand);
if (ConfD0Selection.storeD0D0barDoubleMassHypo) {
isD0D0bar = true;
daughFlag = 0;
Expand Down Expand Up @@ -1842,7 +1841,7 @@ struct FemtoUniverseProducerTask {
continue;
}

if (ConfD0Selection.useYCutD0Cand && std::abs(hfHelper.yD0(hfCand)) > ConfD0Selection.yD0CandMax) {
if (ConfD0Selection.useYCutD0Cand && std::abs(HfHelper::yD0(hfCand)) > ConfD0Selection.yD0CandMax) {
continue;
}

Expand All @@ -1859,18 +1858,18 @@ struct FemtoUniverseProducerTask {
auto negtrack = hfCand.template prong1_as<TrackType>();

if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 0) {
invMassD0 = hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = -hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = -HfHelper::invMassD0barToKPi(hfCand);
isD0D0bar = true;
daughFlag = 1;
} else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
invMassD0 = -hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = -HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = HfHelper::invMassD0barToKPi(hfCand);
isD0D0bar = true;
daughFlag = -1;
} else if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 1) {
invMassD0 = hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = HfHelper::invMassD0barToKPi(hfCand);
if (ConfD0Selection.storeD0D0barDoubleMassHypo) {
isD0D0bar = true;
daughFlag = 0;
Expand Down Expand Up @@ -1974,7 +1973,7 @@ struct FemtoUniverseProducerTask {
}
}

if (ConfD0Selection.useYCutD0Cand && std::abs(hfHelper.yD0(hfCand)) > ConfD0Selection.yD0CandMax) {
if (ConfD0Selection.useYCutD0Cand && std::abs(HfHelper::yD0(hfCand)) > ConfD0Selection.yD0CandMax) {
continue;
}

Expand All @@ -2000,18 +1999,18 @@ struct FemtoUniverseProducerTask {
childIDs[1] = 0;

if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 0) {
invMassD0 = hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = -hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = -HfHelper::invMassD0barToKPi(hfCand);
isD0D0bar = true;
daughFlag = 1;
} else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
invMassD0 = -hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = -HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = HfHelper::invMassD0barToKPi(hfCand);
isD0D0bar = true;
daughFlag = -1;
} else if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 1) {
invMassD0 = hfHelper.invMassD0ToPiK(hfCand);
invMassD0bar = hfHelper.invMassD0barToKPi(hfCand);
invMassD0 = HfHelper::invMassD0ToPiK(hfCand);
invMassD0bar = HfHelper::invMassD0barToKPi(hfCand);
if (ConfD0Selection.storeD0D0barDoubleMassHypo) {
isD0D0bar = true;
daughFlag = 0;
Expand Down
25 changes: 12 additions & 13 deletions PWGCF/FemtoWorld/TableProducer/femtoWorldProducerTask.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,6 @@ struct femtoWorldProducerTask {
int mRunNumber;
float mMagField;
Service<o2::ccdb::BasicCCDBManager> ccdb; /// Accessing the CCDB
HfHelper hfHelper;

void init(InitContext&)
{
Expand Down Expand Up @@ -1168,7 +1167,7 @@ struct femtoWorldProducerTask {
if (!(candidate.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) {
continue;
}
if (config.yCandMax >= 0. && std::abs(hfHelper.yD0(candidate)) > config.yCandMax) {
if (config.yCandMax >= 0. && std::abs(HfHelper::yD0(candidate)) > config.yCandMax) {
continue;
}

Expand Down Expand Up @@ -1297,11 +1296,11 @@ struct femtoWorldProducerTask {
candidate.eta(),
candidate.phi(),
candidate.p(),
0., // general mass
hfHelper.invMassD0ToPiK(candidate), // D0mass
hfHelper.invMassD0barToKPi(candidate), // D0bar mass
candidate.isSelD0(), // D0 flag
candidate.isSelD0bar(), // D0bar flag
0., // general mass
HfHelper::invMassD0ToPiK(candidate), // D0mass
HfHelper::invMassD0barToKPi(candidate), // D0bar mass
candidate.isSelD0(), // D0 flag
candidate.isSelD0bar(), // D0bar flag
aod::femtoworldparticle::ParticleType::kD0D0bar,
0., // cutContainerV0.at(femtoWorldV0Selection::V0ContainerPosition::kV0),
0,
Expand Down Expand Up @@ -2115,7 +2114,7 @@ struct femtoWorldProducerTask {
if (!(candidate.hfflag() & 1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) {
continue;
}
if (config.yCandMax >= 0. && std::abs(hfHelper.yD0(candidate)) > config.yCandMax) {
if (config.yCandMax >= 0. && std::abs(HfHelper::yD0(candidate)) > config.yCandMax) {
continue;
}

Expand Down Expand Up @@ -2246,11 +2245,11 @@ struct femtoWorldProducerTask {
candidate.eta(),
candidate.phi(),
candidate.p(),
0., // general mass
hfHelper.invMassD0ToPiK(candidate), // D0mass
hfHelper.invMassD0barToKPi(candidate), // D0bar mass
candidate.isSelD0(), // D0 flag
candidate.isSelD0bar(), // D0bar flag
0., // general mass
HfHelper::invMassD0ToPiK(candidate), // D0mass
HfHelper::invMassD0barToKPi(candidate), // D0bar mass
candidate.isSelD0(), // D0 flag
candidate.isSelD0bar(), // D0bar flag
aod::femtoworldparticle::ParticleType::kD0D0bar,
0., // cutContainerV0.at(femtoWorldV0Selection::V0ContainerPosition::kV0),
0,
Expand Down
7 changes: 3 additions & 4 deletions PWGCF/TableProducer/filter2Prong.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,6 @@ struct Filter2Prong {
ConfigurableAxis axisVertexMix{"axisVertexMix", {7, -7, 7}, "vertex axis for phi event mixing"};
ConfigurableAxis axisMultiplicityMix{"axisMultiplicityMix", {VARIABLE_WIDTH, 0, 5, 10, 20, 30, 40, 50, 100.1}, "multiplicity axis for phi event mixing"};

HfHelper hfHelper;
Produces<aod::CF2ProngTracks> output2ProngTracks;
Produces<aod::CF2ProngTrackmls> output2ProngTrackmls;

Expand Down Expand Up @@ -246,7 +245,7 @@ struct Filter2Prong {
// look-up the collision id
if ((c.hfflag() & (1 << aod::hf_cand_2prong::DecayType::D0ToPiK)) == 0)
continue;
if (cfgYMax >= 0.0f && std::abs(hfHelper.yD0(c)) > cfgYMax)
if (cfgYMax >= 0.0f && std::abs(HfHelper::yD0(c)) > cfgYMax)
continue;
if constexpr (std::experimental::is_detected<HasFlagMcMatchRec, typename HFCandidatesType::iterator>::value) {
if (std::abs(c.flagMcMatchRec()) != o2::hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiK)
Expand All @@ -255,7 +254,7 @@ struct Filter2Prong {

if (c.isSelD0() > 0) {
output2ProngTracks(cfcollisions.begin().globalIndex(),
prongCFId[0], prongCFId[1], c.pt(), c.eta(), c.phi(), hfHelper.invMassD0ToPiK(c), aod::cf2prongtrack::D0ToPiK);
prongCFId[0], prongCFId[1], c.pt(), c.eta(), c.phi(), HfHelper::invMassD0ToPiK(c), aod::cf2prongtrack::D0ToPiK);
if constexpr (std::experimental::is_detected<HasMLProb, typename HFCandidatesType::iterator>::value) {
mlvecd.clear();
for (const float val : c.mlProbD0())
Expand All @@ -269,7 +268,7 @@ struct Filter2Prong {

if (c.isSelD0bar() > 0) {
output2ProngTracks(cfcollisions.begin().globalIndex(),
prongCFId[0], prongCFId[1], c.pt(), c.eta(), c.phi(), hfHelper.invMassD0barToKPi(c),
prongCFId[0], prongCFId[1], c.pt(), c.eta(), c.phi(), HfHelper::invMassD0barToKPi(c),
c.isSelD0() > 0 ? aod::cf2prongtrack::D0barToKPi : aod::cf2prongtrack::D0barToKPiExclusive);
if constexpr (std::experimental::is_detected<HasMLProb, typename HFCandidatesType::iterator>::value) {
mlvecd.clear();
Expand Down
Loading