Skip to content

Commit a5f65eb

Browse files
authored
[PWGLF] dN/deat fixes (#15730)
1 parent ddc0cba commit a5f65eb

File tree

2 files changed

+39
-24
lines changed

2 files changed

+39
-24
lines changed

PWGLF/DataModel/LFNonPromptCascadeTables.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
195195
NPCascadeTable::CentFT0M,
196196
NPCascadeTable::MultNTracksGlobal,
197197
NPCascadeTable::ToiMask,
198-
NPCascadeTable::NoSameBunchPileup)
198+
NPCascadeTable::NoSameBunchPileup);
199199

200200
DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
201201
NPCascadeTable::RunNumber,
@@ -263,7 +263,7 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
263263
NPCascadeTable::CentFT0M,
264264
NPCascadeTable::MultNTracksGlobal,
265265
NPCascadeTable::ToiMask,
266-
NPCascadeTable::NoSameBunchPileup)
266+
NPCascadeTable::NoSameBunchPileup);
267267

268268
DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
269269
NPCascadeTable::RunNumber,
@@ -350,7 +350,7 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
350350
NPCascadeTable::MotherDecayDaughters,
351351
NPCascadeTable::MultNTracksGlobal,
352352
NPCascadeTable::ToiMask,
353-
NPCascadeTable::NoSameBunchPileup)
353+
NPCascadeTable::NoSameBunchPileup);
354354

355355
DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
356356
NPCascadeTable::RunNumber,
@@ -437,7 +437,7 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
437437
NPCascadeTable::MotherDecayDaughters,
438438
NPCascadeTable::MultNTracksGlobal,
439439
NPCascadeTable::ToiMask,
440-
NPCascadeTable::NoSameBunchPileup)
440+
NPCascadeTable::NoSameBunchPileup);
441441
DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
442442
NPCascadeTable::gPt,
443443
NPCascadeTable::gEta,
@@ -449,21 +449,21 @@ DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
449449
NPCascadeTable::DCAzMC,
450450
NPCascadeTable::IsFromBeauty,
451451
NPCascadeTable::IsFromCharm,
452-
NPCascadeTable::MotherDecayDaughters)
452+
NPCascadeTable::MotherDecayDaughters);
453+
DECLARE_SOA_TABLE(NPMCChargedTable, "AOD", "NPMCChargedTABLE",
454+
NPCascadeTable::PtGen,
455+
NPCascadeTable::PtRec,
456+
NPCascadeTable::MultNTracksGlobal,
457+
NPCascadeTable::MultGen);
453458
DECLARE_SOA_TABLE(NPCollisionTable, "AOD", "NPCollisionTABLE",
454459
NPCascadeTable::RunNumber,
455460
NPCascadeTable::GlobalBC,
456461
aod::collision::NumContrib,
457462
NPCascadeTable::MultNTracksGlobal,
458463
NPCascadeTable::CentFT0M,
459464
NPCascadeTable::MultFT0M);
460-
DECLARE_SOA_TABLE(NPMCChargedTable, "AOD", "NPMCChargedTABLE",
461-
NPCascadeTable::PtGen,
462-
NPCascadeTable::PtRec,
463-
NPCascadeTable::MultNTracksGlobal,
464-
NPCascadeTable::MultGen);
465465
DECLARE_SOA_INDEX_COLUMN_FULL(NPCollision, npCollision, int32_t, NPCollisionTable, "");
466-
DECLARE_SOA_TABLE(NPRecoChargedCandidate, "AOD", "NPRecoChargedCandidate",
466+
DECLARE_SOA_TABLE(NPRecoChargedCand, "AOD", "NPRecoChargedCand",
467467
NPCollisionId,
468468
NPCascadeTable::PtRec);
469469
} // namespace o2::aod

PWGLF/Tasks/Strangeness/nonPromptCascade.cxx

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ struct NonPromptCascadeTask {
185185
//
186186
Produces<o2::aod::NPCollisionTable> NPCollsTable;
187187
Produces<o2::aod::NPMCChargedTable> NPMCNTable;
188-
Produces<o2::aod::NPRecoChargedCandidate> NPRecoCandTable;
188+
Produces<o2::aod::NPRecoChargedCand> NPRecoCandTable;
189189

190190
using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
191191
using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
@@ -196,6 +196,7 @@ struct NonPromptCascadeTask {
196196

197197
Preslice<TracksExtData> perCollision = aod::track::collisionId;
198198
Preslice<TracksExtMC> perCollisionMC = aod::track::collisionId;
199+
Preslice<TracksWithSel> perCollisionSel = aod::track::collisionId;
199200

200201
HistogramRegistry mRegistry;
201202

@@ -222,6 +223,7 @@ struct NonPromptCascadeTask {
222223
Configurable<float> cfgMaxMultFV0{"cfgMaxMultFV0", 10000.f, "Upper range of multiplicty FV0 histo"};
223224
Configurable<std::string> cfgPtEdgesdNdeta{"ptEdges", "0,0.2,0.4,0.6,0.8,1,1.2,1.6,2.0,2.4,2.8,3.2,3.6,4,4.5,5,5.5,6,7,8,10", "Pt bin edges (comma-separated)"};
224225
Configurable<int> cfgDownscaleMB{"cfgDownscaleMB", 1, "Downscaling for pile up study sample"};
226+
Configurable<double> cfgEtaCutdNdeta{"cfgEtaCutdNdeta", 0.8, "Eta cut for charged tracks"};
225227

226228
Zorro mZorro;
227229
OutputObj<ZorroSummary> mZorroSummary{"ZorroSummary"};
@@ -331,8 +333,9 @@ struct NonPromptCascadeTask {
331333
// dN/deta
332334
//
333335
bool runMCdNdeta = context.options().get<bool>("processdNdetaMC");
336+
bool rundNdeta = context.options().get<bool>("processdNdeta");
334337
// std::cout << "runMCdNdeta: " << runMCdNdeta << std::endl;
335-
if (runMCdNdeta) {
338+
if (runMCdNdeta || rundNdeta) {
336339
std::vector<double> ptBins;
337340
std::vector<std::string> tokens = o2::utils::Str::tokenize(cfgPtEdgesdNdeta, ',');
338341
for (auto const& pts : tokens) {
@@ -344,13 +347,14 @@ struct NonPromptCascadeTask {
344347
}
345348
ptBins.push_back(pt);
346349
}
347-
AxisSpec ptAxisMC{ptBins, "pT MC"};
348350
AxisSpec ptAxisReco{ptBins, "pT Reco"};
351+
AxisSpec ptAxisMC{ptBins, "pT MC"};
349352

350353
// multMeasured, multMC, ptMeasured, ptMC
351354
mRegistrydNdeta.add("hdNdetaRM/hdNdetaRM", "hdNdetaRM", HistType::kTHnSparseF, {nTracksAxisMC, nTracksAxis, ptAxisMC, ptAxisReco});
352355
mRegistrydNdeta.add("hdNdetaRM/hdNdetaRMNotInRecoCol", "hdNdetaRMNotInRecoCol", HistType::kTHnSparseF, {nTracksAxisMC, ptAxisMC});
353356
mRegistrydNdeta.add("hdNdetaRM/hdNdetaRMNotInRecoTrk", "hdNdetaRMNotInRecoTrk", HistType::kTHnSparseF, {nTracksAxisMC, ptAxisMC});
357+
mRegistrydNdeta.add("hdNdetaData", "hdNdetaData", HistType::kTH1F, {nTracksAxis});
354358
}
355359
}
356360

@@ -810,6 +814,10 @@ struct NonPromptCascadeTask {
810814
aod::McParticles const& mcParticles,
811815
TracksWithLabel const& tracks)
812816
{
817+
//------------------------------------------------------------
818+
// Downscaling output table by BC as there is no pileup in MC
819+
//------------------------------------------------------------
820+
int ds = 1;
813821
//-------------------------------------------------------------
814822
// MC mult for all MC coll
815823
//--------------------------------------------------------------
@@ -822,7 +830,7 @@ struct NonPromptCascadeTask {
822830
// apply your primary/eta/charge definition here
823831
if (!mcp.isPhysicalPrimary())
824832
continue;
825-
if (std::abs(mcp.eta()) > 0.5f)
833+
if (std::abs(mcp.eta()) > cfgEtaCutdNdeta)
826834
continue;
827835
int q = 0;
828836
if (auto pdg = pdgDB->GetParticle(mcp.pdgCode())) {
@@ -859,7 +867,7 @@ struct NonPromptCascadeTask {
859867
// ------------------------------------------------------------
860868
std::vector<int> recoMultDense(colls.size(), 0);
861869
for (auto const& trk : tracks) {
862-
if (std::abs(trk.eta()) > 0.5f) {
870+
if (std::abs(trk.eta()) > cfgEtaCutdNdeta) {
863871
continue;
864872
}
865873
const int collRowId = trk.collisionId();
@@ -887,7 +895,7 @@ struct NonPromptCascadeTask {
887895
// ------------------------------------------------------------
888896
for (auto const& trk : tracks) {
889897
// Accept reco track
890-
if (std::abs(trk.eta()) > 0.5f) {
898+
if (std::abs(trk.eta()) > cfgEtaCutdNdeta) {
891899
continue;
892900
}
893901

@@ -931,7 +939,7 @@ struct NonPromptCascadeTask {
931939
if (!mcPar.isPhysicalPrimary()) {
932940
continue;
933941
}
934-
if (std::abs(mcPar.eta()) > 0.5f) {
942+
if (std::abs(mcPar.eta()) > cfgEtaCutdNdeta) {
935943
continue;
936944
}
937945

@@ -952,7 +960,10 @@ struct NonPromptCascadeTask {
952960
const float ptMC = mcPar.pt();
953961

954962
mRegistrydNdeta.fill(HIST("hdNdetaRM/hdNdetaRM"), mult, multReco, ptMC, ptReco);
955-
NPMCNTable(ptMC, ptReco, mult, multReco);
963+
if (ds % cfgDownscaleMB == 0) {
964+
NPMCNTable(ptMC, ptReco, mult, multReco);
965+
}
966+
ds++;
956967
}
957968

958969
// ------------------------------------------------------------
@@ -983,7 +994,7 @@ struct NonPromptCascadeTask {
983994

984995
PROCESS_SWITCH(NonPromptCascadeTask, processdNdetaMC, "process mc dN/deta", false);
985996
//
986-
void processdNdeta(CollisionCandidatesRun3 const& collisions, TracksWithSel const& tracks)
997+
void processdNdeta(CollisionCandidatesRun3 const& collisions, TracksWithSel const& tracks, aod::BCsWithTimestamps const&)
987998
{
988999
int ds = 1;
9891000
uint32_t orbitO = 0;
@@ -1006,22 +1017,26 @@ struct NonPromptCascadeTask {
10061017
mRunNumber = bc.runNumber();
10071018
}
10081019
NPCollsTable(mRunNumber,
1009-
coll.bc().globalBC(),
1020+
globalBC,
10101021
coll.numContrib(),
10111022
coll.multNTracksGlobal(),
10121023
coll.centFT0M(),
10131024
coll.multFT0M());
10141025

10151026
auto collIdx = NPCollsTable.lastIndex();
1016-
auto tracksThisColl = tracks.sliceBy(perCollision, coll.globalIndex());
1027+
auto tracksThisColl = tracks.sliceBy(perCollisionSel, coll.globalIndex());
1028+
float multreco = 0.;
1029+
// std::cout << "tracks:" << tracksThisColl.size() << std::endl;
10171030
for (auto const& track : tracksThisColl) {
1018-
if (std::fabs(track.eta()) < 0.8 && track.tpcNClsFound() >= 80 && track.tpcNClsCrossedRows() >= 100) {
1031+
// std::cout << track.pt() << " tracks " << track.isGlobalTrack() << std::endl;
1032+
if (std::fabs(track.eta()) < cfgEtaCutdNdeta && track.tpcNClsFound() >= 80 && track.tpcNClsCrossedRows() >= 100) {
10191033
if (track.isGlobalTrack()) {
1020-
// mults.multGlobalTracks++;
1034+
multreco++;
10211035
NPRecoCandTable(collIdx, track.pt());
10221036
}
10231037
}
10241038
}
1039+
mRegistrydNdeta.fill(HIST("hdNdetaData"), multreco);
10251040
}
10261041
}
10271042
}

0 commit comments

Comments
 (0)