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
2 changes: 1 addition & 1 deletion PWGLF/DataModel/LFResonanceTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -874,7 +874,7 @@ using Reso2TracksMC = soa::Join<aod::FullTracks, McTrackLabels>;
using Reso2TracksPID = soa::Join<aod::FullTracks, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr>;
using Reso2TracksPIDExt = soa::Join<Reso2TracksPID, aod::TracksDCA, aod::TrackSelection, aod::TrackSelectionExtension>; // Without Extra

using ResoCollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>;
using ResoCollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod::Mults>;
using ResoRun2CollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms>;
using ResoCollisionCandidatesMC = soa::Join<ResoCollisionCandidates, aod::McCollisionLabels>;
using ResoRun2CollisionCandidatesMC = soa::Join<ResoRun2CollisionCandidates, aod::McCollisionLabels>;
Expand Down
51 changes: 42 additions & 9 deletions PWGLF/TableProducer/Resonances/resonanceInitializer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ struct ResonanceInitializer {

// Pre-selection cuts
Configurable<float> cfgCutEta{"cfgCutEta", 0.8f, "Eta range for tracks"};
Configurable<float> pidnSigmaPreSelectionCut{"pidnSigmaPreSelectionCut", 5.0f, "TPC and TOF PID cut (loose, improve performance)"};
Configurable<float> pidnSigmaPreSelectionCut{"pidnSigmaPreSelectionCut", 5.0f, "TPC PID cut (loose, improve performance)"};
Configurable<int> mincrossedrows{"mincrossedrows", 70, "min crossed rows"};

/// DCA Selections for V0
Expand Down Expand Up @@ -181,6 +181,8 @@ struct ResonanceInitializer {
Configurable<bool> cfgFillLambda0{"cfgFillLambda0", false, "Fill Lambda0"};
Configurable<bool> cfgFillXi0{"cfgFillXi0", false, "Fill Xi0"};
Configurable<bool> cfgFillOmega0{"cfgFillOmega0", false, "Fill Omega0"};
Configurable<bool> cfgBypassNoPairCascades{"cfgBypassNoPairCascades", true, "Bypass track fill if no pair cascade with track"};
Configurable<bool> cfgBypassNoPairV0s{"cfgBypassNoPairV0s", false, "Bypass if no pair V0 with track"};
} FilterForDerivedTables;

// Secondary cuts
Expand Down Expand Up @@ -221,7 +223,8 @@ struct ResonanceInitializer {
ConfigurableAxis impactParameterAxis{"impactParameterAxis", {500, 0, 50}, "IP (fm)"};

Configurable<bool> isDaughterCheck{"isDaughterCheck", 1, "Check if the mother has the correct daughters when it is considered"};
Configurable<float> cfgRapidityCutGen{"cfgRapidityCutGen", 0.5, "Rapidity cut for the truth particle"};
Configurable<float> cfgRapidityCutMinGen{"cfgRapidityCutMinGen", -0.5, "Rapidity cut for the truth particle"};
Configurable<float> cfgRapidityCutMaxGen{"cfgRapidityCutMaxGen", 0.5, "Rapidity cut for the truth particle"};
Configurable<int> pdgTruthMother{"pdgTruthMother", 3324, "pdgcode for the truth mother e.g. Xi(1530) (3324)"};
Configurable<int> pdgTruthDaughter1{"pdgTruthDaughter1", 3312, "pdgcode for the daughter 1, e.g. Xi- 3312"};
Configurable<int> pdgTruthDaughter2{"pdgTruthDaughter2", 211, "pdgcode for the daughter 2, e.g. pi+ 211"};
Expand Down Expand Up @@ -267,8 +270,8 @@ struct ResonanceInitializer {
|| (nabs(aod::mcparticle::pdgCode) == 123314) // Xi(1820)0
|| (nabs(aod::mcparticle::pdgCode) == 123324); // Xi(1820)-0

using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>;
using ResoEvents001 = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults, aod::MultsExtra, aod::PVMults>;
using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod::Mults>;
using ResoEvents001 = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod::Mults, aod::MultsExtra, aod::PVMults>;
using ResoRun2Events = soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms>;
using ResoEventsMC = soa::Join<ResoEvents, aod::McCollisionLabels>;
using ResoRun2EventsMC = soa::Join<ResoEvents, aod::McCollisionLabels>;
Expand Down Expand Up @@ -381,7 +384,7 @@ struct ResonanceInitializer {
return false;
if (v0.qtarm() < SecondaryCuts.cfgSecondaryparamArmenterosCut * std::abs(v0.alpha()))
return false;
if (std::fabs(v0.mLambda() - MassLambda0) < SecondaryCuts.cfgSecondaryMassWindow)
if (std::fabs(v0.mLambda() - MassLambda0) > SecondaryCuts.cfgSecondaryMassWindow)
return false;
if (SecondaryCuts.cfgSecondaryCrossMassHypothesisCut && (std::fabs(v0.mK0Short() - MassK0Short) < SecondaryCuts.cfgSecondaryCrossMassCutWindow))
return false;
Expand Down Expand Up @@ -592,6 +595,9 @@ struct ResonanceInitializer {
case 2:
returnValue = ResoEvents.centFT0A();
break;
case 3:
returnValue = ResoEvents.centFV0A();
break;
default:
returnValue = ResoEvents.centFT0M();
break;
Expand Down Expand Up @@ -1192,7 +1198,9 @@ struct ResonanceInitializer {
{
for (auto const& mcPart : mcParticles) {

if (std::abs(mcPart.pdgCode()) != GenCuts.pdgTruthMother || std::abs(mcPart.y()) >= GenCuts.cfgRapidityCutGen)
if (std::abs(mcPart.pdgCode()) != GenCuts.pdgTruthMother)
continue;
if ((mcPart.y() >= GenCuts.cfgRapidityCutMaxGen) || (mcPart.y() <= GenCuts.cfgRapidityCutMinGen))
continue;
std::vector<int> daughterPDGs;
if (mcPart.has_daughters()) {
Expand Down Expand Up @@ -1279,15 +1287,15 @@ struct ResonanceInitializer {
{
mRunNumber = 0;
dBz = 0;
// Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 99: FV0A)
// Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 3: FV0A)
if (cfgMultName.value == "FT0M") {
multEstimator = 0;
} else if (cfgMultName.value == "FT0C") {
multEstimator = 1;
} else if (cfgMultName.value == "FT0A") {
multEstimator = 2;
} else if (cfgMultName.value == "FV0A") {
multEstimator = 99;
multEstimator = 3;
} else {
multEstimator = 0;
}
Expand Down Expand Up @@ -1337,6 +1345,7 @@ struct ResonanceInitializer {
AxisSpec idxMCAxis = {26, -0.5, 25.5, "Index"};
qaRegistry.add("Event/hMCEventIndices", "hMCEventIndices", kTH2D, {centAxis, idxMCAxis});
}
qaRegistry.add("Event/CentFV0A", "; FV0A Percentile; Entries", o2::framework::kTH1F, {{110, 0, 110}});
AxisSpec idxAxis = {8, 0, 8, "Index"};
if (cfgFillQA) {
qaRegistry.add("hGoodTrackIndices", "hGoodTrackIndices", kTH1F, {idxAxis});
Expand Down Expand Up @@ -1513,6 +1522,9 @@ struct ResonanceInitializer {
}
resoSpheroCollisions(computeSpherocity(tracks, trackSphMin, trackSphDef));
resoEvtPlCollisions(0, 0, 0, 0);
if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() < 1)) {
return;
}

fillTracks<false>(collision, tracks);
if (cfgFillMicroTracks) {
Expand Down Expand Up @@ -1572,6 +1584,14 @@ struct ResonanceInitializer {
}
resoSpheroCollisions(computeSpherocity(tracks, trackSphMin, trackSphDef));
resoEvtPlCollisions(0, 0, 0, 0);
if (cfgMultName.value == "FV0A")
qaRegistry.fill(HIST("Event/CentFV0A"), centEst(collision));
if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() < 1)) {
return;
}
if (FilterForDerivedTables.cfgBypassNoPairCascades && (Cascades.size() < 1)) {
return;
}
fillTracks<false>(collision, tracks);
if (cfgFillMicroTracks) {
fillMicroTracks<false>(collision, tracks);
Expand Down Expand Up @@ -1718,6 +1738,9 @@ struct ResonanceInitializer {
fillMCCollision<false>(collision, mcParticles);

// Loop over tracks
if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() < 1)) {
return;
}
fillTracks<true>(collision, tracks);
if (cfgFillMicroTracks) {
fillMicroTracks<true>(collision, tracks);
Expand Down Expand Up @@ -1782,6 +1805,8 @@ struct ResonanceInitializer {
Cent = mcCollision.centFT0M();
else
Cent = centEst(collision);
if (cfgMultName.value == "FV0A")
qaRegistry.fill(HIST("Event/CentFV0A"), centEst(collision));

bool isRecINELgt0 = 0;
if (checkIsRecINELgt0)
Expand All @@ -1802,6 +1827,12 @@ struct ResonanceInitializer {
fillMCCollision<false>(collision, mcParticles, impactpar, mult);

// Loop over tracks
if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() < 1)) {
return;
}
if (FilterForDerivedTables.cfgBypassNoPairCascades && (Cascades.size() < 1)) {
return;
}
fillTracks<true>(collision, tracks);
if (cfgFillMicroTracks) {
fillMicroTracks<true>(collision, tracks);
Expand Down Expand Up @@ -1839,6 +1870,8 @@ struct ResonanceInitializer {
return col.centFT0C();
} else if (cfgMultName.value == "FT0A") {
return col.centFT0A();
} else if (cfgMultName.value == "FV0A") {
return col.centFV0A();
}
return 100.5f;
};
Expand Down Expand Up @@ -1875,7 +1908,7 @@ struct ResonanceInitializer {
for (const auto& collision : collisions) {
if (EventCuts.cfgEvtUseRCTFlagChecker && !rctChecker(collision))
continue;
if (!colCuts.isSelected(collision)) // Bug is appeared in colCuts-> double counting in event QA histo, will be fixed later
if (!colCuts.isSelected(collision, false)) // Bug is appeared in colCuts-> double counting in event QA histo, will be fixed later
continue;
if (biggestNContribs < collision.multPVTotalContributors()) {
biggestNContribs = collision.multPVTotalContributors();
Expand Down
Loading
Loading