Skip to content
Merged
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
82 changes: 41 additions & 41 deletions PWGLF/Utils/strangenessBuilderModule.h
Original file line number Diff line number Diff line change
Expand Up @@ -214,19 +214,19 @@
kXiPlus,
kOmegaMinus,
kOmegaPlus,
nPartTypes};
nPartTypes };

enum V0PreSelection : uint8_t { selGamma = 0,
selK0Short,
selLambda,
selAntiLambda,
nSelV0Types};
nSelV0Types };

enum CascPreSelection : uint8_t { selXiMinus = 0,
selXiPlus,
selOmegaMinus,
selOmegaPlus,
nSelCascTypes};
nSelCascTypes };

static constexpr float defaultK0MassWindowParameters[1][4] = {{2.81882e-03, 1.14057e-03, 1.72138e-03, 5.00262e-01}};
static constexpr float defaultLambdaWindowParameters[1][4] = {{1.17518e-03, 1.24099e-04, 5.47937e-03, 3.08009e-01}};
Expand Down Expand Up @@ -394,8 +394,8 @@
struct preSelectOpts : o2::framework::ConfigurableGroup {
std::string prefix = "preSelectOpts";
o2::framework::Configurable<o2::framework::LabeledArray<int>> preselectedSpecies{"preselectedSpecies",
{defaultPreselectParameters[0], nPreselectParticles, nPreselectParameters, preselectParticleNames, parameterNames},
"Preselect this species with compatible TPC PID and mass info: 0/1 is false/true"};
{defaultPreselectParameters[0], nPreselectParticles, nPreselectParameters, preselectParticleNames, parameterNames},
"Preselect this species with compatible TPC PID and mass info: 0/1 is false/true"};

std::vector<int> mEnabledPreselectedSpecies; // Vector of enabled preselected particle species
// lifetime preselection options
Expand Down Expand Up @@ -707,7 +707,7 @@
if (baseOpts.mc_findableMode.value == 1) {
LOGF(info, " ===> findable mode 1 is enabled: complement reco-ed with non-found findable");
}
if (baseOpts.mc_findableMode.value == 2) {

Check failure on line 710 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
LOGF(info, " ===> findable mode 2 is enabled: re-generate all findable from scratch");
}

Expand Down Expand Up @@ -906,7 +906,7 @@
} // end is_table<TMCCollisions>
} // end findable mode check

if (baseOpts.mc_findableMode.value < 2) {

Check failure on line 909 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
// keep all unless de-duplication active
ao2dV0toV0List.resize(v0s.size(), -1); // -1 means keep, -2 means do not keep

Expand Down Expand Up @@ -996,10 +996,10 @@
if (bestPointingAngleIndex == ic && baseOpts.deduplicationAlgorithm.value == 1) {
ao2dV0toV0List[v0tableGrouped[iV0].V0Ids[ic]] = -1; // keep best only
}
if (bestDCADaughtersIndex == ic && baseOpts.deduplicationAlgorithm.value == 2) {

Check failure on line 999 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
ao2dV0toV0List[v0tableGrouped[iV0].V0Ids[ic]] = -1; // keep best only
}
if (bestDCADaughtersIndex == ic && bestPointingAngleIndex == ic && baseOpts.deduplicationAlgorithm.value == 3) {

Check failure on line 1002 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
ao2dV0toV0List[v0tableGrouped[iV0].V0Ids[ic]] = -1; // keep best only
}
}
Expand Down Expand Up @@ -1112,7 +1112,7 @@
}
}
// findable mode 2
if (baseOpts.mc_findableMode.value == 2) {

Check failure on line 1115 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
currentV0Entry.globalId = -1;
currentV0Entry.collisionId = bestCollisionArray[positiveTrackIndex.mcCollisionId];
currentV0Entry.posTrackId = positiveTrackIndex.globalId;
Expand Down Expand Up @@ -1159,7 +1159,7 @@

// Cascade part if cores are requested, skip otherwise
if (baseOpts.mEnabledTables[kStoredCascCores] || baseOpts.mEnabledTables[kStoredKFCascCores]) {
if (baseOpts.mc_findableMode.value < 2) {

Check failure on line 1162 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
// simple passthrough: copy existing cascades to build list
for (const auto& cascade : cascades) {
auto const& v0 = cascade.v0();
Expand Down Expand Up @@ -1285,7 +1285,7 @@

// findable mode 2: determine type based on cascade table,
// with type 1 being reserved to findable-but-not-found
if (baseOpts.mc_findableMode.value == 2) {

Check failure on line 1288 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
currentCascadeEntry.globalId = -1;
currentCascadeEntry.collisionId = bestCollisionArray[bachelorTrackIndex.mcCollisionId];
currentCascadeEntry.v0Id = v0i; // fill this in one go later
Expand Down Expand Up @@ -1362,7 +1362,7 @@
for (const auto& cascade : cascadeList) {
if (cascade.v0Id < 0)
continue;
if (v0Map[cascade.v0Id] == -2) {

Check failure on line 1365 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
v0sUsedInCascades++;
}
v0Map[cascade.v0Id] = -1; // marks used (but isn't the index of a properly built V0, which would be >= 0)
Expand All @@ -1375,7 +1375,7 @@
trackedCascadeCount = trackedCascades.size();
for (const auto& trackedCascade : trackedCascades) {
auto const& cascade = trackedCascade.cascade();
if (v0Map[ao2dV0toV0List[cascade.v0Id()]] == -2) {

Check failure on line 1378 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
v0sUsedInCascades++;
}
v0Map[ao2dV0toV0List[cascade.v0Id()]] = -1; // marks used (but isn't the index of a built V0, which would be >= 0)
Expand Down Expand Up @@ -1410,7 +1410,7 @@
continue;
}

if (!baseOpts.mEnabledTables[kV0CoresBase] && v0Map[iv0] == -2) {

Check failure on line 1413 in PWGLF/Utils/strangenessBuilderModule.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
// this v0 hasn't been used by cascades and we're not generating V0s, so skip it
products.v0dataLink(-1, -1);
continue;
Expand Down Expand Up @@ -1531,30 +1531,30 @@
uint8_t maskV0Preselection = 0;

if ( // photon PID, mass, lifetime selection
preSelectOpts.mEnabledPreselectedSpecies[kGamma] && preSelectedPIDV0s[kGamma] &&
std::abs(straHelper.v0.massGamma) < preSelectOpts.massCutPhoton) {
BITSET(maskV0Preselection, selGamma);
preSelectOpts.mEnabledPreselectedSpecies[kGamma] && preSelectedPIDV0s[kGamma] &&
std::abs(straHelper.v0.massGamma) < preSelectOpts.massCutPhoton) {
BITSET(maskV0Preselection, selGamma);
}

if ( // K0Short PID, mass, lifetime selection
preSelectOpts.mEnabledPreselectedSpecies[kK0Short] && preSelectedPIDV0s[kK0Short] &&
o2::constants::physics::MassKaonNeutral * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutK0S") &&
std::abs(straHelper.v0.massK0Short - o2::constants::physics::MassKaonNeutral) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaK0Short(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskV0Preselection, selK0Short);
preSelectOpts.mEnabledPreselectedSpecies[kK0Short] && preSelectedPIDV0s[kK0Short] &&
o2::constants::physics::MassKaonNeutral * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutK0S") &&
std::abs(straHelper.v0.massK0Short - o2::constants::physics::MassKaonNeutral) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaK0Short(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskV0Preselection, selK0Short);
}

if ( // Lambda PID, mass, lifetime selection
preSelectOpts.mEnabledPreselectedSpecies[kLambda] && preSelectedPIDV0s[kLambda] &&
o2::constants::physics::MassLambda * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
std::abs(straHelper.v0.massLambda - o2::constants::physics::MassLambda) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaLambda(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskV0Preselection, selLambda);
preSelectOpts.mEnabledPreselectedSpecies[kLambda] && preSelectedPIDV0s[kLambda] &&
o2::constants::physics::MassLambda * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
std::abs(straHelper.v0.massLambda - o2::constants::physics::MassLambda) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaLambda(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskV0Preselection, selLambda);
}

if ( // antiLambda PID, mass, lifetime selection
preSelectOpts.mEnabledPreselectedSpecies[kAntiLambda] && preSelectedPIDV0s[kAntiLambda] &&
o2::constants::physics::MassLambda * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
std::abs(straHelper.v0.massAntiLambda - o2::constants::physics::MassLambda) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaLambda(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskV0Preselection, selAntiLambda);
preSelectOpts.mEnabledPreselectedSpecies[kAntiLambda] && preSelectedPIDV0s[kAntiLambda] &&
o2::constants::physics::MassLambda * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
std::abs(straHelper.v0.massAntiLambda - o2::constants::physics::MassLambda) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaLambda(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskV0Preselection, selAntiLambda);
}

histos.fill(HIST("hPreselectionV0s"), maskV0Preselection);
Expand Down Expand Up @@ -2051,7 +2051,7 @@
preSelectedPIDCascades.resize(nPartTypes, 1);
}
}

if (baseOpts.useV0BufferForCascades) {
// this processing path uses a buffer of V0s so that no
// additional minimization step is redone. It consumes less
Expand Down Expand Up @@ -2123,35 +2123,35 @@
uint8_t maskCascadePreselection = 0;

if ( // XiMinus PID and mass selection
preSelectOpts.mEnabledPreselectedSpecies[kXiMinus] && straHelper.cascade.charge < 0 && preSelectedPIDCascades[kXiMinus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassXiMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutXi") &&
std::abs(straHelper.cascade.massXi - o2::constants::physics::MassXiMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaXi(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selXiMinus);
preSelectOpts.mEnabledPreselectedSpecies[kXiMinus] && straHelper.cascade.charge < 0 && preSelectedPIDCascades[kXiMinus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassXiMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutXi") &&
std::abs(straHelper.cascade.massXi - o2::constants::physics::MassXiMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaXi(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selXiMinus);
}

if ( // XiPlus PID and mass selection
preSelectOpts.mEnabledPreselectedSpecies[kXiPlus] && straHelper.cascade.charge > 0 && preSelectedPIDCascades[kXiPlus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassXiMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutXi") &&
std::abs(straHelper.cascade.massXi - o2::constants::physics::MassXiMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaXi(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selXiPlus);
preSelectOpts.mEnabledPreselectedSpecies[kXiPlus] && straHelper.cascade.charge > 0 && preSelectedPIDCascades[kXiPlus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassXiMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutXi") &&
std::abs(straHelper.cascade.massXi - o2::constants::physics::MassXiMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaXi(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selXiPlus);
}

if ( // OmegaMinus PID and mass selection
preSelectOpts.mEnabledPreselectedSpecies[kOmegaMinus] && straHelper.cascade.charge < 0 && preSelectedPIDCascades[kOmegaMinus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassOmegaMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutOmega") &&
std::abs(straHelper.cascade.massOmega - o2::constants::physics::MassOmegaMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaOmega(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selOmegaMinus);
preSelectOpts.mEnabledPreselectedSpecies[kOmegaMinus] && straHelper.cascade.charge < 0 && preSelectedPIDCascades[kOmegaMinus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassOmegaMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutOmega") &&
std::abs(straHelper.cascade.massOmega - o2::constants::physics::MassOmegaMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaOmega(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selOmegaMinus);
}

if ( // OmegaPlus PID and mass selection
preSelectOpts.mEnabledPreselectedSpecies[kOmegaPlus] && straHelper.cascade.charge > 0 && preSelectedPIDCascades[kOmegaPlus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassOmegaMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutOmega") &&
std::abs(straHelper.cascade.massOmega - o2::constants::physics::MassOmegaMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaOmega(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selOmegaPlus);
preSelectOpts.mEnabledPreselectedSpecies[kOmegaPlus] && straHelper.cascade.charge > 0 && preSelectedPIDCascades[kOmegaPlus] &&
o2::constants::physics::MassLambda * lV0LengthTraveled / (lV0Ptot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutLambda") &&
o2::constants::physics::MassOmegaMinus * lLengthTraveled / (lPtot + 1e-13) < preSelectOpts.lifetimeCut->get("lifetimeCutOmega") &&
std::abs(straHelper.cascade.massOmega - o2::constants::physics::MassOmegaMinus) < preSelectOpts.massWindownumberOfSigmas * getMassSigmaOmega(lPt) + preSelectOpts.massWindowSafetyMargin) {
BITSET(maskCascadePreselection, selOmegaPlus);
}

histos.fill(HIST("hPreselectionCascades"), maskCascadePreselection);
Expand Down
Loading