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
14 changes: 7 additions & 7 deletions PWGCF/FemtoUniverse/Core/FemtoUniverseSoftPionRemoval.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class FemtoUniverseSoftPionRemoval
const auto& negChild = particles.iteratorAt(part2.index() - 1);

// D* reconstruction
double pSum2 = std::pow(posChild.px()+negChild.px()+part1.px(), 2.0) + std::pow(posChild.py()+negChild.py()+part1.py(), 2.0) + std::pow(posChild.pz()+negChild.pz()+part1.pz(), 2.0);
double pSum2 = std::pow(posChild.px() + negChild.px() + part1.px(), 2.0) + std::pow(posChild.py() + negChild.py() + part1.py(), 2.0) + std::pow(posChild.pz() + negChild.pz() + part1.pz(), 2.0);
// Energies of the daughters -> D0->K-pi+
double e1Pi = std::sqrt(std::pow(MassPiPlus, 2.0) + std::pow(posChild.px(), 2.0) + std::pow(posChild.py(), 2.0) + std::pow(posChild.pz(), 2.0));
double e1K = std::sqrt(std::pow(MassKPlus, 2.0) + std::pow(negChild.px(), 2.0) + std::pow(negChild.py(), 2.0) + std::pow(negChild.pz(), 2.0));
Expand All @@ -83,21 +83,21 @@ class FemtoUniverseSoftPionRemoval

bool isSoftPion = false;
double softPiMass = 0.14542; // pion mass in D*->D0pi decay
double lowMassLimitSoftPion = softPiMass - 3.0*sigma;
double highMassLimitSoftPion = softPiMass + 3.0*sigma;
double lowMassLimitSoftPion = softPiMass - 3.0 * sigma;
double highMassLimitSoftPion = softPiMass + 3.0 * sigma;

if (isD0Cand) {
if (mDstar1-part2.mLambda() > 0.) {
mHistogramRegistry->fill(HIST("SoftPion/softPionMassVsPt"), mDstar1-part2.mLambda(), part2.pt());
if (mDstar1 - part2.mLambda() > 0.) {
mHistogramRegistry->fill(HIST("SoftPion/softPionMassVsPt"), mDstar1 - part2.mLambda(), part2.pt());
}
if ((std::abs(mDstar1 - part2.mLambda()) > lowMassLimitSoftPion) && (std::abs(mDstar1 - part2.mLambda()) < highMassLimitSoftPion)) {
isSoftPion = true;
}
}

if (isD0barCand) {
if (mDstar2-part2.mAntiLambda() > 0.) {
mHistogramRegistry->fill(HIST("SoftPion/softPionMassVsPt"), mDstar2-part2.mAntiLambda(), part2.pt());
if (mDstar2 - part2.mAntiLambda() > 0.) {
mHistogramRegistry->fill(HIST("SoftPion/softPionMassVsPt"), mDstar2 - part2.mAntiLambda(), part2.pt());
}
if ((std::abs(mDstar2 - part2.mAntiLambda()) > lowMassLimitSoftPion) && (std::abs(mDstar2 - part2.mAntiLambda()) < highMassLimitSoftPion)) {
isSoftPion = true;
Expand Down
51 changes: 23 additions & 28 deletions PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -701,7 +701,7 @@ struct FemtoUniverseProducerTask {
particle.mlProbD0()[0], // getter decayVtxX
particle.mlProbD0()[1], // getter decayVtxY
particle.mlProbD0()[2], // getter decayVtxZ
-999.); // Additional info for D0/D0bar
-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.,
Expand All @@ -710,7 +710,7 @@ struct FemtoUniverseProducerTask {
particle.mlProbD0bar()[0], // getter decayVtxX
particle.mlProbD0bar()[1], // getter decayVtxY
particle.mlProbD0bar()[2], // getter decayVtxZ
-999.); // Additional info for D0/D0bar
-999.); // Additional info for D0/D0bar
} else {
outputDebugParts(-999., -999., -999., -999., -999., -999., -999., -999., -999.,
-999., -999., -999., -999., -999., -999., -999., -999.,
Expand Down Expand Up @@ -817,26 +817,21 @@ struct FemtoUniverseProducerTask {
if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 0) {
hfCandOrigin = aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kPrompt;
pdgCode = 421;
}
else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
} else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
hfCandOrigin = aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kPrompt;
pdgCode = -421;
}
else {
} else {
hfCandOrigin = aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kFake;
pdgCode = 0;
}
}
else {
} else {
if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 0) {
hfCandOrigin = aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kNonPrompt;
pdgCode = 421;
}
else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
} else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
hfCandOrigin = aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kNonPrompt;
pdgCode = -421;
}
else {
} else {
hfCandOrigin = aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kFake;
pdgCode = 0;
}
Expand Down Expand Up @@ -1519,8 +1514,8 @@ struct FemtoUniverseProducerTask {
hfCand.eta(),
hfCand.phi(),
aod::femtouniverseparticle::ParticleType::kD0,
-999, // cut, CutContainerType
-999, // PID, CutContainerType
-999, // cut, CutContainerType
-999, // PID, CutContainerType
mlProbD0D0barBg, // saving the probability for ML score class 1
indexChildID,
invMassD0, // D0 mass (mLambda)
Expand All @@ -1529,8 +1524,8 @@ struct FemtoUniverseProducerTask {
if (confIsDebug) {
fillDebugParticle<false, true, false>(postrack); // QA for positive daughter
fillDebugParticle<false, true, false>(negtrack); // QA for negative daughter
if(hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 0) {
fillDebugD0D0barML<true, false>(hfCand); // QA for D0/D0bar
if (hfCand.isSelD0() == 1 && hfCand.isSelD0bar() == 0) {
fillDebugD0D0barML<true, false>(hfCand); // QA for D0/D0bar
} else if (hfCand.isSelD0() == 0 && hfCand.isSelD0bar() == 1) {
fillDebugD0D0barML<false, true>(hfCand);
} else {
Expand Down Expand Up @@ -2201,12 +2196,12 @@ struct FemtoUniverseProducerTask {

Preslice<soa::Join<aod::HfCand2Prong, aod::HfCand2ProngMcRec, aod::HfSelD0, aod::HfMlD0>> perCollisionD0s = aod::track::collisionId;
void processTrackD0MC(aod::McCollisions const& mccols,
aod::TracksWMc const&,
soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::McCollisionLabels> const& collisions,
soa::Filtered<soa::Join<aod::FemtoFullTracks, aod::McTrackLabels>> const& tracks,
soa::Join<aod::McParticles, aod::HfCand2ProngMcGen> const& hfMcGenCands,
soa::Join<aod::HfCand2Prong, aod::HfCand2ProngMcRec, aod::HfSelD0, aod::HfMlD0> const& hfMcRecoCands,
aod::BCsWithTimestamps const&)
aod::TracksWMc const&,
soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::McCollisionLabels> const& collisions,
soa::Filtered<soa::Join<aod::FemtoFullTracks, aod::McTrackLabels>> const& tracks,
soa::Join<aod::McParticles, aod::HfCand2ProngMcGen> const& hfMcGenCands,
soa::Join<aod::HfCand2Prong, aod::HfCand2ProngMcRec, aod::HfSelD0, aod::HfMlD0> const& hfMcRecoCands,
aod::BCsWithTimestamps const&)
{
// MC Reco
std::set<int> recoMcIds;
Expand All @@ -2219,18 +2214,18 @@ struct FemtoUniverseProducerTask {
const auto colcheck = fillCollisions<true>(col, tracks);
if (colcheck) {
fillTracks<true>(tracks);
fillD0D0barUsingML<true>(col, groupedTracks, groupedD0s);
for (const auto& track : groupedTracks) {
if (trackCuts.isSelectedMinimal(track))
recoMcIds.insert(track.mcParticleId());
}
fillD0D0barUsingML<true>(col, groupedTracks, groupedD0s);
for (const auto& track : groupedTracks) {
if (trackCuts.isSelectedMinimal(track))
recoMcIds.insert(track.mcParticleId());
}
}
}
// MC Truth
for (const auto& mccol : mccols) {
auto groupedMCParticles = hfMcGenCands.sliceBy(perMCCollision, mccol.globalIndex());
auto groupedCollisions = collisions.sliceBy(recoCollsPerMCColl, mccol.globalIndex());
fillMCTruthCollisions(groupedCollisions, groupedMCParticles); // fills the reco collisions for mc collision
fillMCTruthCollisions(groupedCollisions, groupedMCParticles); // fills the reco collisions for mc collision
fillMCTruthParticlesD0<decltype(groupedMCParticles), true, true>(groupedMCParticles, recoMcIds); // fills mc particles
}
}
Expand Down
32 changes: 16 additions & 16 deletions PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackD0.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ struct FemtoUniversePairTaskTrackD0 {
Configurable<float> minInvMassD0D0barLeftSB{"minInvMassD0D0barLeftSB", 1.65, "Min. inv. mass of D0/D0bar for left SB region"};
Configurable<float> maxInvMassD0D0barLeftSB{"maxInvMassD0D0barLeftSB", 1.754, "Max. inv. mass of D0/D0bar for left SB region"};
Configurable<float> minInvMassD0D0barRightSB{"minInvMassD0D0barRightSB", 1.978, "Min. inv. mass of D0/D0bar for right SB region"};
Configurable<float> maxInvMassD0D0barRightSB{"maxInvMassD0D0barRightSB", 2.09,"Max. inv. mass of D0/D0bar for right SB region"};
Configurable<float> maxInvMassD0D0barRightSB{"maxInvMassD0D0barRightSB", 2.09, "Max. inv. mass of D0/D0bar for right SB region"};
} ConfDmesons;

struct : o2::framework::ConfigurableGroup {
Expand All @@ -139,7 +139,7 @@ struct FemtoUniversePairTaskTrackD0 {

Configurable<std::vector<double>> binsPt{"binsPt", std::vector<double>{hf_cuts_d0_to_pi_k::vecBinsPt}, "pT bin limits"};
Configurable<uint8_t> confChooseD0trackCorr{"confChooseD0trackCorr", 0, "If 0 correlations with D0s, if 1 with D0bars"};

// Efficiency
struct : o2::framework::ConfigurableGroup {
Configurable<std::string> confEfficiencyTrackPath{"confEfficiencyTrackPath", "", "Local path to hadron efficiency TH2F file"};
Expand Down Expand Up @@ -549,7 +549,7 @@ struct FemtoUniversePairTaskTrackD0 {
if (charmCand.mLambda() > 0.0f && charmCand.mAntiLambda() < 0.0f) {
if (charmCand.tempFitVar() < ConfMlOpt.confClass1BgProbStart)
registry.fill(HIST("D0D0bar_MLSel/hMassVsPt1"), charmCand.mLambda(), charmCand.pt());
if (charmCand.tempFitVar() < ConfMlOpt.confClass1BgProbStart + ConfMlOpt.confClass1BgProbStep )
if (charmCand.tempFitVar() < ConfMlOpt.confClass1BgProbStart + ConfMlOpt.confClass1BgProbStep)
registry.fill(HIST("D0D0bar_MLSel/hMassVsPt2"), charmCand.mLambda(), charmCand.pt());
if (charmCand.tempFitVar() < ConfMlOpt.confClass1BgProbStart + 2.0 * ConfMlOpt.confClass1BgProbStep)
registry.fill(HIST("D0D0bar_MLSel/hMassVsPt3"), charmCand.mLambda(), charmCand.pt());
Expand Down Expand Up @@ -745,8 +745,8 @@ struct FemtoUniversePairTaskTrackD0 {
}
}
// Soft Pion Removal
if(confRemoveSoftPions) {
if(softPionRemoval.isSoftPion(track, d0candidate, parts, confSoftPionD0Flag, confSoftPionD0barFlag, sigmaSoftPiInvMass)) {
if (confRemoveSoftPions) {
if (softPionRemoval.isSoftPion(track, d0candidate, parts, confSoftPionD0Flag, confSoftPionD0barFlag, sigmaSoftPiInvMass)) {
continue;
}
}
Expand Down Expand Up @@ -800,7 +800,7 @@ struct FemtoUniversePairTaskTrackD0 {

auto groupPartsTrack = partsTrack->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache);
auto groupPartsD0sFromSB = partsD0sFromSB->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache);

doSameEvent<false>(groupPartsTrack, groupPartsD0sFromSB, parts, col.magField(), col.multNtr());
}
PROCESS_SWITCH(FemtoUniversePairTaskTrackD0, processSameEventSB, "Enable processing same event", true);
Expand Down Expand Up @@ -843,8 +843,8 @@ struct FemtoUniversePairTaskTrackD0 {
}
}
// // Soft Pion Removal
if(confRemoveSoftPions) {
if(softPionRemoval.isSoftPion(track, d0candidate, parts, confSoftPionD0Flag, confSoftPionD0barFlag, sigmaSoftPiInvMass)) {
if (confRemoveSoftPions) {
if (softPionRemoval.isSoftPion(track, d0candidate, parts, confSoftPionD0Flag, confSoftPionD0barFlag, sigmaSoftPiInvMass)) {
continue;
}
}
Expand Down Expand Up @@ -988,26 +988,26 @@ struct FemtoUniversePairTaskTrackD0 {
mcTruthRegistry.fill(HIST("MCTruthAllPositivePt"), part.pt());
}
if (pdgCode == 321) {
//mcTruthRegistry.fill(HIST("MCtruthKp"), part.pt(), part.eta());
//mcTruthRegistry.fill(HIST("MCtruthKpPt"), part.pt());
// mcTruthRegistry.fill(HIST("MCtruthKp"), part.pt(), part.eta());
// mcTruthRegistry.fill(HIST("MCtruthKpPt"), part.pt());
}
if (pdgCode == 333) {
//mcTruthRegistry.fill(HIST("MCtruthPhi"), part.pt(), part.eta());
//continue;
// mcTruthRegistry.fill(HIST("MCtruthPhi"), part.pt(), part.eta());
// continue;
}
if (pdgCode == 2212) {
//mcTruthRegistry.fill(HIST("MCtruthPpos"), part.pt(), part.eta());
// mcTruthRegistry.fill(HIST("MCtruthPpos"), part.pt(), part.eta());
}

if (pdgParticle->Charge() < 0.0) {
mcTruthRegistry.fill(HIST("MCTruthAllNegativePt"), part.pt());
}
if (pdgCode == -321) {
//mcTruthRegistry.fill(HIST("MCtruthKm"), part.pt(), part.eta());
//mcTruthRegistry.fill(HIST("MCtruthKmPt"), part.pt());
// mcTruthRegistry.fill(HIST("MCtruthKm"), part.pt(), part.eta());
// mcTruthRegistry.fill(HIST("MCtruthKmPt"), part.pt());
}
if (pdgCode == -2212) {
//mcTruthRegistry.fill(HIST("MCtruthPneg"), part.pt(), part.eta());
// mcTruthRegistry.fill(HIST("MCtruthPneg"), part.pt(), part.eta());
}
}
}
Expand Down
Loading