Skip to content
Open
12 changes: 6 additions & 6 deletions Common/Core/CollisionAssociation.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@ class CollisionAssociation
RevIndices& reverseIndices)
{
// cache globalBC
std::vector<uint64_t> globalBC;
std::vector<int64_t> globalBC;
for (const auto& track : tracks) {
if (track.has_collision()) {
globalBC.push_back(track.collision().bc().globalBC());
globalBC.push_back((int64_t)track.collision().bc().globalBC());
} else {
for (const auto& ambTrack : ambiguousTracks) {
if constexpr (isCentralBarrel) { // FIXME: to be removed as soon as it is possible to use getId<Table>() for joined tables
Expand All @@ -137,12 +137,12 @@ class CollisionAssociation
globalBC.push_back(-1);
break;
}
globalBC.push_back(ambTrack.bc().begin().globalBC());
globalBC.push_back((int64_t)ambTrack.bc().begin().globalBC());
break;
}
} else {
if (ambTrack.template getId<TTracks>() == track.globalIndex()) {
globalBC.push_back(ambTrack.bc().begin().globalBC());
globalBC.push_back((int64_t)ambTrack.bc().begin().globalBC());
break;
}
}
Expand Down Expand Up @@ -170,15 +170,15 @@ class CollisionAssociation
if (globalBC[track.filteredIndex()] < 0) {
continue;
}
const int64_t bcOffsetWindow = (int64_t)globalBC[track.filteredIndex()] + trackTime / o2::constants::lhc::LHCBunchSpacingNS - (int64_t)collBC;
const int64_t bcOffsetWindow = globalBC[track.filteredIndex()] + trackTime / o2::constants::lhc::LHCBunchSpacingNS - (int64_t)collBC;
if (std::abs(bcOffsetWindow) > bOffsetMax) {
continue;
}

float trackTimeRes = track.trackTimeRes();
if constexpr (isCentralBarrel) {
if (mUsePvAssociation && track.isPVContributor()) {
trackTime = track.collision().collisionTime(); // if PV contributor, we assume the time to be the one of the collision
trackTime = track.collision().collisionTime(); // if PV contributor, we assume the time to be the one of the collision
trackTimeRes = o2::constants::lhc::LHCBunchSpacingNS; // 1 BC
}
}
Expand Down
28 changes: 17 additions & 11 deletions EventFiltering/PWGLF/strangenessFilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ struct strangenessFilter {
Configurable<bool> kint7{"kint7", 0, "Apply kINT7 event selection"};
Configurable<bool> sel7{"sel7", 0, "Apply sel7 event selection"};
Configurable<bool> sel8{"sel8", 0, "Apply sel8 event selection"};
Configurable<bool> useSigmaBasedMassCutXi{"useSigmaBasedMassCutXi", true, "Mass window based on n*sigma instead of fixed"};
Configurable<bool> useSigmaBasedMassCutOmega{"useSigmaBasedMassCutOmega", true, "Mass window based on n*sigma instead of fixed"};
Configurable<float> massWindowOmegaNsigma{"massWindowOmegaNsigma", 6, "Inv. mass window for tracked Omega"};
Configurable<float> massWindowXiNsigma{"massWindowXiNsigma", 6, "Inv. mass window for tracked Xi"};

// Selections criteria for tracks
Configurable<float> hEta{"hEta", 0.9f, "Eta range for trigger particles"};
Expand All @@ -128,7 +132,7 @@ struct strangenessFilter {
Configurable<int> materialCorrectionType{"materialCorrectionType", static_cast<int>(o2::base::Propagator::MatCorrType::USEMatCorrLUT), "Type of material correction"};
Configurable<int> minNoClsTrackedCascade{"minNoClsTrackedCascade", 70, "Minimum number of clusters required for daughters of tracked cascades"};
Configurable<float> minPtTrackedCascade{"minPtTrackedCascade", 0., "Min. pt for tracked cascades"};
Configurable<bool> useNsigmaCutTrackedXi{"useNsigmaCutTrackedXi", false, "Mass window based on n*sigma instead of fixed"};
Configurable<bool> useNsigmaCutTrackedXi{"useNsigmaCutTrackedXi", true, "Mass window based on n*sigma instead of fixed"};
Configurable<bool> useNsigmaCutTrackedOmega{"useNsigmaCutTrackedOmega", true, "Mass window based on n*sigma instead of fixed"};
Configurable<float> massWindowTrackedOmegaNsigma{"massWindowTrackedOmegaNsigma", 6, "Inv. mass window for tracked Omega"};
Configurable<float> massWindowTrackedXiNsigma{"massWindowTrackedXiNsigma", 6, "Inv. mass window for tracked Xi"};
Expand All @@ -144,8 +148,8 @@ struct strangenessFilter {
Configurable<float> maxNSigmaV0PiTrackedCascade{"maxNSigmaV0PiTrackedCascade", 4., "Max Nsigma for pion from V0 fromtracked Xi"};
Configurable<float> minDcaTrackedXi{"minDcaTrackedXi", 0., "Minimum DCA for tracked cascades"};
Configurable<float> maxCpaTrackedXi{"maxCpaTrackedXi", 1., "Maximum CPA for tracked cascades"};
Configurable<float> minDcaTrackedOmega{"minDcaTrackedOmega", 0., "Minimum DCA for tracked cascades"};
Configurable<float> maxCpaTrackedOmega{"maxCpaTrackedOmega", 1., "Maximum CPA for tracked cascades"};
Configurable<float> minDcaTrackedOmega{"minDcaTrackedOmega", 0., "Minimum DCA for tracked cascades (ST)"};
Configurable<float> maxCpaTrackedOmega{"maxCpaTrackedOmega", 1., "Maximum CPA for tracked cascades (ST)"};
Configurable<LabeledArray<double>> parSigmaMass{
"parSigmaMass",
{stfilter::massSigmaParameters[0], 4, 2,
Expand Down Expand Up @@ -360,10 +364,10 @@ struct strangenessFilter {
QAHistosStrangenessTracking.add("hCpaSelectedOmega", "cpa;cpa", HistType::kTH1D, {{500, .995, 1.}});
QAHistosStrangenessTracking.add("hPtCascCand", "cascades;p_{T} (GeV/#it{c})", HistType::kTH1D, {{200, 0., 10.}});
QAHistosStrangenessTracking.add("hPtCascTracked", "tracked cascades;p_{T} (GeV/#it{c})", HistType::kTH1D, {{200, 0., 10.}});
QAHistosStrangenessTracking.add("hPtVsMassTrkXi", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1., 3.}});
QAHistosStrangenessTracking.add("hPtVsMassTrkOmega", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1., 3.}});
QAHistosStrangenessTracking.add("hPtVsMassTrkXiSelected", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1., 3.}});
QAHistosStrangenessTracking.add("hPtVsMassTrkOmegaSelected", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1., 3.}});
QAHistosStrangenessTracking.add("hPtVsMassTrkXi", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1.2, 1.7}});
QAHistosStrangenessTracking.add("hPtVsMassTrkOmega", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1.6, 2.1}});
QAHistosStrangenessTracking.add("hPtVsMassTrkXiSelected", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1.2, 1.7}});
QAHistosStrangenessTracking.add("hPtVsMassTrkOmegaSelected", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1.6, 2.1}});
}
}

Expand Down Expand Up @@ -830,23 +834,25 @@ struct strangenessFilter {
}
}

const auto deltaMassXi = useSigmaBasedMassCutXi ? getMassWindow(stfilter::species::Xi, casc.pt()) : ximasswindow;
const auto deltaMassOmega = useSigmaBasedMassCutOmega ? getMassWindow(stfilter::species::Omega, casc.pt()) : omegamasswindow;
isXi = (TMath::Abs(bachelor.tpcNSigmaPi()) < nsigmatpcpi) &&
(casc.casccosPA(collision.posX(), collision.posY(), collision.posZ()) > casccospaxi) &&
(casc.dcav0topv(collision.posX(), collision.posY(), collision.posZ()) > dcav0topv) &&
(TMath::Abs(casc.mXi() - o2::constants::physics::MassXiMinus) < ximasswindow) &&
(TMath::Abs(casc.mXi() - o2::constants::physics::MassXiMinus) < deltaMassXi) &&
(TMath::Abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) > omegarej) &&
(xiproperlifetime < properlifetimefactor * ctauxi) &&
(TMath::Abs(casc.yXi()) < rapidity);
isXiYN = (TMath::Abs(bachelor.tpcNSigmaPi()) < nsigmatpcpi) &&
(casc.cascradius() > lowerradiusXiYN) &&
(TMath::Abs(casc.mXi() - o2::constants::physics::MassXiMinus) < ximasswindow) &&
(TMath::Abs(casc.mXi() - o2::constants::physics::MassXiMinus) < deltaMassXi) &&
(TMath::Abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) > omegarej) &&
(xiproperlifetime < properlifetimefactor * ctauxi) &&
(TMath::Abs(casc.yXi()) < rapidity);
isOmega = (TMath::Abs(bachelor.tpcNSigmaKa()) < nsigmatpcka) &&
(casc.casccosPA(collision.posX(), collision.posY(), collision.posZ()) > casccospaomega) &&
(casc.dcav0topv(collision.posX(), collision.posY(), collision.posZ()) > dcav0topv) &&
(TMath::Abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) < omegamasswindow) &&
(TMath::Abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega) &&
(TMath::Abs(casc.mXi() - o2::constants::physics::MassXiMinus) > xirej) &&
(casc.cascradius() < upperradiusOmega) &&
(omegaproperlifetime < properlifetimefactor * ctauomega) &&
Expand All @@ -855,7 +861,7 @@ struct strangenessFilter {
(casc.casccosPA(collision.posX(), collision.posY(), collision.posZ()) > casccospaomega) &&
(casc.dcav0topv(collision.posX(), collision.posY(), collision.posZ()) > dcav0topv) &&
(casc.cascradius() > lowerradiusOmega) &&
(TMath::Abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) < omegamasswindow) &&
(TMath::Abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega) &&
(TMath::Abs(casc.mXi() - o2::constants::physics::MassXiMinus) > xirej) &&
(omegaproperlifetime < properlifetimefactor * ctauomega) &&
(TMath::Abs(casc.yOmega()) < rapidity);
Expand Down
26 changes: 21 additions & 5 deletions PWGDQ/Core/CutsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1587,11 +1587,7 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
cut->AddCut(GetAnalysisCut("lmeeStandardKine"));
cut->AddCut(GetAnalysisCut("LooseGlobalTrackRun3"));
cut->AddCut(GetAnalysisCut("PrimaryTrack_looseDCA"));

AnalysisCompositeCut* cut_tof_nSigma = new AnalysisCompositeCut("pid_TOFnSigma", "pid_TOFnSigma", kTRUE);
cut_tof_nSigma->AddCut(GetAnalysisCut(Form("lmee_pp_502TeV_TOFloose%s", vecPIDcase.at(icase).Data())));

cut->AddCut(cut_tof_nSigma);
cut->AddCut(GetAnalysisCut(Form("lmee_pp_502TeV_TOFloose%s", vecPIDcase.at(icase).Data())));
return cut;
}

Expand Down Expand Up @@ -2011,6 +2007,16 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
return cut;
}

if (!nameStr.compare("pairMassLow11")) {
cut->AddCut(GetAnalysisCut("pairMassLow11"));
return cut;
}

if (!nameStr.compare("pairMassLow12")) {
cut->AddCut(GetAnalysisCut("pairMassLow12"));
return cut;
}

if (!nameStr.compare("pairMass1to2")) {
cut->AddCut(GetAnalysisCut("pairMass1to2"));
return cut;
Expand Down Expand Up @@ -4048,6 +4054,16 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
return cut;
}

if (!nameStr.compare("pairMassLow11")) {
cut->AddCut(VarManager::kMass, 3.0, 1000.0);
return cut;
}

if (!nameStr.compare("pairMassLow12")) {
cut->AddCut(VarManager::kMass, 3.5, 1000.0);
return cut;
}

if (!nameStr.compare("pairMass1to2")) {
cut->AddCut(VarManager::kMass, 1., 2.);
return cut;
Expand Down
48 changes: 24 additions & 24 deletions PWGDQ/DataModel/ReducedInfoTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -267,10 +267,10 @@ namespace reducedmft
DECLARE_SOA_INDEX_COLUMN(ReducedEvent, reducedevent); //!
DECLARE_SOA_COLUMN(FilteringFlags, filteringFlags, uint8_t); //!

DECLARE_SOA_COLUMN(Pt, pt, float); //!
DECLARE_SOA_COLUMN(Eta, eta, float); //!
DECLARE_SOA_COLUMN(Phi, phi, float); //!
DECLARE_SOA_COLUMN(Sign, sign, int); //!
DECLARE_SOA_COLUMN(Pt, pt, float); //!
DECLARE_SOA_COLUMN(Eta, eta, float); //!
DECLARE_SOA_COLUMN(Phi, phi, float); //!
DECLARE_SOA_COLUMN(Sign, sign, int); //!
DECLARE_SOA_COLUMN(MftClusterSizesAndTrackFlags, mftClusterSizesAndTrackFlags, uint64_t); //!
} // namespace reducedmft

Expand Down Expand Up @@ -438,27 +438,27 @@ DECLARE_SOA_COLUMN(FwdDcaY2, fwdDcaY2, float); //! Y component of forward DCA
// pair information
namespace reducedpair
{
DECLARE_SOA_INDEX_COLUMN(ReducedEvent, reducedevent); //!
DECLARE_SOA_COLUMN(Mass, mass, float); //!
DECLARE_SOA_COLUMN(Pt, pt, float); //!
DECLARE_SOA_COLUMN(Eta, eta, float); //!
DECLARE_SOA_COLUMN(Phi, phi, float); //!
DECLARE_SOA_COLUMN(Sign, sign, int); //!
DECLARE_SOA_COLUMN(FilterMap, filterMap, uint32_t); //!
DECLARE_SOA_COLUMN(McDecision, mcDecision, uint32_t); //!
DECLARE_SOA_COLUMN(Tauz, tauz, float); //! Longitudinal pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(TauzErr, tauzErr, float); //! Error on longitudinal pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(Tauxy, tauxy, float); //! Transverse pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(TauxyErr, tauxyErr, float); //! Error on transverse pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(Lz, lz, float); //! Longitudinal projection of decay length
DECLARE_SOA_COLUMN(Lxy, lxy, float); //! Transverse projection of decay length
DECLARE_SOA_COLUMN(Chi2pca, chi2pca, float); //! Chi2 for PCA of the dilepton
DECLARE_SOA_INDEX_COLUMN(ReducedEvent, reducedevent); //!
DECLARE_SOA_COLUMN(Mass, mass, float); //!
DECLARE_SOA_COLUMN(Pt, pt, float); //!
DECLARE_SOA_COLUMN(Eta, eta, float); //!
DECLARE_SOA_COLUMN(Phi, phi, float); //!
DECLARE_SOA_COLUMN(Sign, sign, int); //!
DECLARE_SOA_COLUMN(FilterMap, filterMap, uint32_t); //!
DECLARE_SOA_COLUMN(McDecision, mcDecision, uint32_t); //!
DECLARE_SOA_COLUMN(Tauz, tauz, float); //! Longitudinal pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(TauzErr, tauzErr, float); //! Error on longitudinal pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(Tauxy, tauxy, float); //! Transverse pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(TauxyErr, tauxyErr, float); //! Error on transverse pseudo-proper time of lepton pair (in ns)
DECLARE_SOA_COLUMN(Lz, lz, float); //! Longitudinal projection of decay length
DECLARE_SOA_COLUMN(Lxy, lxy, float); //! Transverse projection of decay length
DECLARE_SOA_COLUMN(Chi2pca, chi2pca, float); //! Chi2 for PCA of the dilepton
DECLARE_SOA_COLUMN(CosPointingAngle, cosPointingAngle, float); //! Cosine of the pointing angle
DECLARE_SOA_COLUMN(U2Q2, u2q2, float); //! Scalar product between unitary vector with event flow vector (harmonic 2)
DECLARE_SOA_COLUMN(U3Q3, u3q3, float); //! Scalar product between unitary vector with event flow vector (harmonic 3)
DECLARE_SOA_COLUMN(Cos2DeltaPhi, cos2deltaphi, float); //! Cosinus term using event plane angle (harmonic 2)
DECLARE_SOA_COLUMN(Cos3DeltaPhi, cos3deltaphi, float); //! Cosinus term using event plane angle (harmonic 3)
DECLARE_SOA_COLUMN(CollisionId, collisionId, int); //!
DECLARE_SOA_COLUMN(U2Q2, u2q2, float); //! Scalar product between unitary vector with event flow vector (harmonic 2)
DECLARE_SOA_COLUMN(U3Q3, u3q3, float); //! Scalar product between unitary vector with event flow vector (harmonic 3)
DECLARE_SOA_COLUMN(Cos2DeltaPhi, cos2deltaphi, float); //! Cosinus term using event plane angle (harmonic 2)
DECLARE_SOA_COLUMN(Cos3DeltaPhi, cos3deltaphi, float); //! Cosinus term using event plane angle (harmonic 3)
DECLARE_SOA_COLUMN(CollisionId, collisionId, int); //!
// DECLARE_SOA_INDEX_COLUMN(ReducedMuon, reducedmuon2); //!
DECLARE_SOA_DYNAMIC_COLUMN(Px, px, //!
[](float pt, float phi) -> float { return pt * std::cos(phi); });
Expand Down
Loading