Skip to content

Commit 6a979a6

Browse files
authored
Fix
1 parent 9405509 commit 6a979a6

File tree

1 file changed

+65
-60
lines changed

1 file changed

+65
-60
lines changed

PWGHF/TableProducer/treeCreatorOmegacSt.cxx

Lines changed: 65 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
/// \author Ruiqi Yin
1818

1919
#include "PWGHF/DataModel/TrackIndexSkimmingTables.h"
20-
#include "PWGHF/Utils/utilsEvSelHf.h"
2120
#include "PWGHF/Utils/utilsTrkCandHf.h"
21+
#include "PWGHF/Utils/utilsEvSelHf.h"
2222
#include "PWGLF/DataModel/LFStrangenessTables.h"
2323

2424
#include "Common/Core/RecoDecay.h"
2525
#include "Common/Core/Zorro.h"
2626
#include "Common/Core/ZorroSummary.h"
2727
#include "Common/Core/trackUtilities.h"
28-
#include "Common/DataModel/Centrality.h"
2928
#include "Common/DataModel/CollisionAssociationTables.h"
29+
#include "Common/DataModel/Centrality.h"
3030
#include "Common/DataModel/EventSelection.h"
3131
#include "Common/DataModel/PIDResponseTOF.h"
3232
#include "Common/DataModel/PIDResponseTPC.h"
@@ -278,13 +278,13 @@ struct HfTreeCreatorOmegacSt {
278278
// whether to require TOF in addition to TPC
279279
Configurable<bool> useTofPid{"useTofPid", false, "Require TOF PID together with TPC PID when true; otherwise use TPC only"};
280280

281-
// pT cut for CharmBaryon
281+
//pT cut for CharmBaryon
282282
Configurable<float> minPtCharmedBaryon{"minPtCharmedBaryon", 0.f, "Minimum pT for the charmed baryon"};
283283
Configurable<float> maxPtCharmedBaryon{"maxPtCharmedBaryon", 50.f, "Maximum pT for the charmed baryon"};
284284

285285
// CPA cuts (defaults: >= 0.9)
286286
Configurable<float> minCpaCharmedBaryon{"minCpaCharmedBaryon", 0.9f, "Minimum CPA for charmed baryon"};
287-
Configurable<float> minCpaXYCharmedBaryon{"minCpaXYCharmedBaryon", 0.9f, "Minimum CPA XY for charmed baryon"}; // remove maybe???
287+
Configurable<float> minCpaXYCharmedBaryon{"minCpaXYCharmedBaryon", 0.9f, "Minimum CPA XY for charmed baryon"};//remove maybe???
288288
Configurable<float> minCpaCasc{"minCpaCasc", 0.9f, "Minimum CPA for cascade"};
289289
Configurable<float> minCpaXYCasc{"minCpaXYCasc", 0.9f, "Minimum CPA XY for cascade"};
290290

@@ -494,27 +494,31 @@ struct HfTreeCreatorOmegacSt {
494494
const auto matCorr = static_cast<o2::base::Propagator::MatCorrType>(materialCorrectionType.value);
495495

496496
for (const auto& collision : collisions) {
497-
// Event selection & centrality using HF helper
498-
float centrality{-1.f};
499-
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<true, CentEstimator, aod::BCsWithTimestamps>(collision, centrality, ccdb, registry);
500-
if (rejectionMask != 0) {
501-
continue; // reject collisions failing HF event selection
502-
}
503-
hfEvSel.fillHistograms(collision, rejectionMask, centrality);
504-
const auto bc = collision.template bc_as<aod::BCsWithTimestamps>();
497+
// Event selection & centrality using HF helper
498+
float centrality{-1.f};
499+
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<true, CentEstimator, aod::BCsWithTimestamps>(collision, centrality, ccdb, registry);
500+
if (rejectionMask != 0) {
501+
continue; // reject collisions failing HF event selection
502+
}
503+
hfEvSel.fillHistograms(collision, rejectionMask, centrality);
504+
const auto bc = collision.template bc_as<aod::BCsWithTimestamps>();
505505

506-
auto timestamp = bc.timestamp();
506+
// Update CCDB-based magnetic field only when run changes to avoid redundant lookups
507+
if (runNumber != bc.runNumber()) {
508+
runNumber = bc.runNumber();
509+
auto timestamp = bc.timestamp();
507510

508-
if (auto* grpo = ccdb->getForTimeStamp<o2::parameters::GRPObject>(grpPath, timestamp)) {
509-
o2::base::Propagator::initFieldFromGRP(grpo);
510-
bz = grpo->getNominalL3Field();
511+
if (auto* grpo = ccdb->getForTimeStamp<o2::parameters::GRPObject>(grpPath, timestamp)) {
512+
o2::base::Propagator::initFieldFromGRP(grpo);
513+
bz = grpo->getNominalL3Field();
511514
} else if (auto* grpmag = ccdb->getForTimeStamp<o2::parameters::GRPMagField>(grpMagPath, timestamp)) {
512515
o2::base::Propagator::initFieldFromGRP(grpmag);
513516
bz = std::lround(5.f * grpmag->getL3Current() / 30000.f);
514517
} else {
515518
LOG(fatal) << "Got nullptr from CCDB for path " << grpMagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << timestamp;
516519
}
517520
df2.setBz(bz);
521+
}
518522

519523
uint32_t toiMask = 0;
520524
if (skimmedProcessing) {
@@ -687,7 +691,7 @@ struct HfTreeCreatorOmegacSt {
687691
(track.tpcNClsCrossedRows() >= TpcNclsFindableFraction * track.tpcNClsFindable()) &&
688692
(track.tpcChi2NCl() <= TpcChi2NclMax) &&
689693
(track.itsChi2NCl() <= ItsChi2NclMax)) {
690-
// TPC and TOF PID for pion/kaon from chambaryon
694+
//TPC and TOF PID for pion/kaon from chambaryon
691695
const bool passTPCpid = (std::abs(track.tpcNSigmaPi()) < maxNSigmaPion) || (std::abs(track.tpcNSigmaKa()) < maxNSigmaKaon);
692696
const float tofPiAbs = std::abs(track.tofNSigmaPi());
693697
const float tofKaAbs = std::abs(track.tofNSigmaKa());
@@ -790,10 +794,10 @@ struct HfTreeCreatorOmegacSt {
790794
//--- do the MC Rec match
791795
if (mcParticles) {
792796
auto arrayDaughters = std::array{
793-
trackId.template track_as<TracksExtMc>(), // bachelor <- charm baryon
794-
casc.template bachelor_as<TracksExtMc>(), // bachelor <- cascade
795-
v0.template posTrack_as<TracksExtMc>(), // p <- lambda
796-
v0.template negTrack_as<TracksExtMc>()}; // pi <- lambda
797+
trackId.template track_as<TracksExtMc>(), // bachelor <- charm baryon
798+
casc.template bachelor_as<TracksExtMc>(), // bachelor <- cascade
799+
v0.template posTrack_as<TracksExtMc>(), // p <- lambda
800+
v0.template negTrack_as<TracksExtMc>()}; // pi <- lambda
797801

798802
auto arrayDaughtersCasc = std::array{
799803
casc.template bachelor_as<TracksExtMc>(), // bachelor <- cascade
@@ -887,7 +891,7 @@ struct HfTreeCreatorOmegacSt {
887891
bachelor.tpcNSigmaKa(),
888892
bachelor.tofNSigmaKa(),
889893
momenta[0][0], // cascade momentum
890-
momenta[0][1],
894+
momenta[0][1],
891895
momenta[0][2],
892896
static_cast<bool>(trackCasc.sign() > 0),
893897
momenta[1][0], // pion/kaon momentum
@@ -941,45 +945,46 @@ struct HfTreeCreatorOmegacSt {
941945
}
942946
}
943947
}
948+
949+
// No centrality selection
950+
void processDataNocent(Collisions const& collisions,
951+
soa::SmallGroups<aod::AssignedTrackedCascades> const& trackedCascades,
952+
aod::TrackAssoc const& trackIndices,
953+
aod::Cascades const&,
954+
aod::V0s const&,
955+
TracksExt const&,
956+
aod::BCsWithTimestamps const&)
957+
{
958+
fillTable<CentralityEstimator::None, TracksExt>(collisions, trackedCascades, trackIndices);
959+
}
960+
PROCESS_SWITCH(HfTreeCreatorOmegacSt, processDataNocent, "Process data (No centrality)", true);
961+
962+
// FT0C centrality selection
963+
void processDataFT0C(CollisionsFT0C const& collisions,
964+
soa::SmallGroups<aod::AssignedTrackedCascades> const& trackedCascades,
965+
aod::TrackAssoc const& trackIndices,
966+
aod::Cascades const&,
967+
aod::V0s const&,
968+
TracksExt const&,
969+
aod::BCsWithTimestamps const&)
970+
{
971+
fillTable<CentralityEstimator::FT0C, TracksExt>(collisions, trackedCascades, trackIndices);
972+
}
973+
PROCESS_SWITCH(HfTreeCreatorOmegacSt, processDataFT0C, "Process data (FT0C centrality)", false);
974+
975+
// FT0M centrality selection
976+
void processDataFT0M(CollisionsFT0M const& collisions,
977+
soa::SmallGroups<aod::AssignedTrackedCascades> const& trackedCascades,
978+
aod::TrackAssoc const& trackIndices,
979+
aod::Cascades const&,
980+
aod::V0s const&,
981+
TracksExt const&,
982+
aod::BCsWithTimestamps const&)
983+
{
984+
fillTable<CentralityEstimator::FT0M, TracksExt>(collisions, trackedCascades, trackIndices);
985+
}
986+
PROCESS_SWITCH(HfTreeCreatorOmegacSt, processDataFT0M, "Process data (FT0M centrality)", false);
944987

945-
// No centrality selection
946-
void processDataNocent(Collisions const& collisions,
947-
soa::SmallGroups<aod::AssignedTrackedCascades> const& trackedCascades,
948-
aod::TrackAssoc const& trackIndices,
949-
aod::Cascades const&,
950-
aod::V0s const&,
951-
TracksExt const&,
952-
aod::BCsWithTimestamps const&)
953-
{
954-
fillTable<CentralityEstimator::None, TracksExt>(collisions, trackedCascades, trackIndices);
955-
}
956-
PROCESS_SWITCH(HfTreeCreatorOmegacSt, processDataNocent, "Process data (No centrality)", true);
957-
958-
// FT0C centrality selection
959-
void processDataFT0C(CollisionsFT0C const& collisions,
960-
soa::SmallGroups<aod::AssignedTrackedCascades> const& trackedCascades,
961-
aod::TrackAssoc const& trackIndices,
962-
aod::Cascades const&,
963-
aod::V0s const&,
964-
TracksExt const&,
965-
aod::BCsWithTimestamps const&)
966-
{
967-
fillTable<CentralityEstimator::FT0C, TracksExt>(collisions, trackedCascades, trackIndices);
968-
}
969-
PROCESS_SWITCH(HfTreeCreatorOmegacSt, processDataFT0C, "Process data (FT0C centrality)", false);
970-
971-
// FT0M centrality selection
972-
void processDataFT0M(CollisionsFT0M const& collisions,
973-
soa::SmallGroups<aod::AssignedTrackedCascades> const& trackedCascades,
974-
aod::TrackAssoc const& trackIndices,
975-
aod::Cascades const&,
976-
aod::V0s const&,
977-
TracksExt const&,
978-
aod::BCsWithTimestamps const&)
979-
{
980-
fillTable<CentralityEstimator::FT0M, TracksExt>(collisions, trackedCascades, trackIndices);
981-
}
982-
PROCESS_SWITCH(HfTreeCreatorOmegacSt, processDataFT0M, "Process data (FT0M centrality)", false);
983988

984989
// MC reco: No centrality selection
985990
void processMcRecNocent(Collisions const& collisions,

0 commit comments

Comments
 (0)