Skip to content

Commit 0663b24

Browse files
authored
[PWGLF] dev: adding measured FT0M to MC (#17466)
1 parent d47a767 commit 0663b24

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

PWGLF/DataModel/LFNonPromptCascadeTables.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,9 @@ DECLARE_SOA_TABLE(NPMCChargedTable, "AOD", "NPMCChargedTABLE",
462462
NPCascadeTable::EtaRec,
463463
NPCascadeTable::MultNTracksNP,
464464
NPCascadeTable::MultGen,
465-
NPCascadeTable::MultGenFT0);
465+
NPCascadeTable::MultGenFT0,
466+
NPCascadeTable::MultFT0M,
467+
NPCascadeTable::CentFT0M);
466468
DECLARE_SOA_TABLE(NPCollisionTable, "AOD", "NPCollisionTABLE",
467469
NPCascadeTable::RunNumber,
468470
NPCascadeTable::GlobalBC,

PWGLF/Tasks/Strangeness/nonPromptCascade.cxx

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -960,11 +960,15 @@ struct NonPromptCascadeTask {
960960
// MC collision has a reconstructed collision in 'colls'.
961961
// This must be independent of reco-track cuts.
962962
std::vector<char> mcCollisionHasRecoCollision(mcCollisions.size(), 0);
963+
std::vector<float> mcCollisionRecoMultFT0M(mcCollisions.size(), InvalidEta);
964+
std::vector<float> mcCollisionRecoCentFT0M(mcCollisions.size(), InvalidEta);
963965

964966
for (auto const& col : colls) {
965967
const int mcid = col.mcCollisionId();
966968
if (mcid >= 0 && static_cast<size_t>(mcid) < mcCollisionHasRecoCollision.size()) {
967969
mcCollisionHasRecoCollision[mcid] = 1;
970+
mcCollisionRecoMultFT0M[mcid] = col.multFT0M();
971+
mcCollisionRecoCentFT0M[mcid] = col.centFT0M();
968972
} else {
969973
LOG(info) << "4 This should never happen ?";
970974
}
@@ -1016,11 +1020,13 @@ struct NonPromptCascadeTask {
10161020
const float multReco = recoMultDense[dIdx];
10171021
const float ptReco = trk.pt();
10181022
const float etaReco = trk.eta();
1023+
const float multFT0M = col.multFT0M();
1024+
const float centFT0M = col.centFT0M();
10191025

10201026
if (mcCollId < 0 || static_cast<int64_t>(mcCollId) >= mcCollisions.size()) {
10211027
if (writeRecoCollision[dIdx]) {
10221028
// Fake: accepted reco track whose reconstructed collision has no valid MC collision label.
1023-
NPMCNTable(-1.f, ptReco, InvalidEta, etaReco, multReco, -1.f, -1.f);
1029+
NPMCNTable(-1.f, ptReco, InvalidEta, etaReco, multReco, -1.f, -1.f, multFT0M, centFT0M);
10241030
}
10251031
continue;
10261032
}
@@ -1029,7 +1035,7 @@ struct NonPromptCascadeTask {
10291035
if (mcPid < 0 || static_cast<int64_t>(mcPid) >= mcParticles.size()) {
10301036
if (writeMcCollision[mcCollId]) {
10311037
// Fake: accepted reco track with invalid or missing MC particle label.
1032-
NPMCNTable(-2.f, ptReco, InvalidEta, etaReco, multReco, -2.f, mcMultFT0[mcCollId]);
1038+
NPMCNTable(-2.f, ptReco, InvalidEta, etaReco, multReco, -2.f, mcMultFT0[mcCollId], multFT0M, centFT0M);
10331039
}
10341040
continue;
10351041
}
@@ -1040,15 +1046,15 @@ struct NonPromptCascadeTask {
10401046
if (mcParCollId != mcCollId) {
10411047
if (writeMcCollision[mcCollId]) {
10421048
// Fake: reco collision and particle label point to different MC collisions.
1043-
NPMCNTable(-3.f, ptReco, InvalidEta, etaReco, multReco, -3.f, mcMultFT0[mcCollId]);
1049+
NPMCNTable(-3.f, ptReco, InvalidEta, etaReco, multReco, -3.f, mcMultFT0[mcCollId], multFT0M, centFT0M);
10441050
}
10451051
continue;
10461052
}
10471053

10481054
if (!isAcceptedMCParticle(mcPar)) {
10491055
if (writeMcCollision[mcCollId]) {
10501056
// Feed-in: accepted reco track matched to truth outside fiducial phase space.
1051-
NPMCNTable(-4.f, ptReco, mcPar.eta(), etaReco, multReco, -4.f, mcMultFT0[mcCollId]);
1057+
NPMCNTable(-4.f, ptReco, mcPar.eta(), etaReco, multReco, -4.f, mcMultFT0[mcCollId], multFT0M, centFT0M);
10521058
}
10531059
continue;
10541060
}
@@ -1067,7 +1073,7 @@ struct NonPromptCascadeTask {
10671073

10681074
if (writeMcCollision[mcCollId]) {
10691075
// Matched: accepted truth particle reconstructed inside the fiducial reco phase space.
1070-
NPMCNTable(ptMC, ptReco, etaMC, etaReco, multReco, multMC, mcMultFT0[mcCollId]);
1076+
NPMCNTable(ptMC, ptReco, etaMC, etaReco, multReco, multMC, mcMultFT0[mcCollId], multFT0M, centFT0M);
10711077
}
10721078
}
10731079

@@ -1097,14 +1103,16 @@ struct NonPromptCascadeTask {
10971103

10981104
const float multMC = mcMult[mcid];
10991105
const float multMCFT0 = mcMultFT0[mcid];
1106+
const float multFT0M = mcCollisionRecoMultFT0M[mcid];
1107+
const float centFT0M = mcCollisionRecoCentFT0M[mcid];
11001108

11011109
mRegistrydNdeta.fill(HIST("hdNdetaRM/hdNdetaRMNotInRecoTrk"),
11021110
multMC,
11031111
mcp.pt());
11041112

11051113
if (writeMcCollision[mcid]) {
11061114
// Missed track: accepted truth particle in a reconstructed MC collision, but no accepted reco track.
1107-
NPMCNTable(mcp.pt(), -1.f, mcp.eta(), InvalidEta, -1.f, multMC, multMCFT0);
1115+
NPMCNTable(mcp.pt(), -1.f, mcp.eta(), InvalidEta, -1.f, multMC, multMCFT0, multFT0M, centFT0M);
11081116
}
11091117
}
11101118

@@ -1134,7 +1142,7 @@ struct NonPromptCascadeTask {
11341142

11351143
if (writeMcCollision[mcid]) {
11361144
// Missed collision: accepted truth particle from an MC collision with no reconstructed collision.
1137-
NPMCNTable(mcp.pt(), -2.f, mcp.eta(), InvalidEta, -2.f, multMC, multMCFT0);
1145+
NPMCNTable(mcp.pt(), -2.f, mcp.eta(), InvalidEta, -2.f, multMC, multMCFT0, InvalidEta, InvalidEta);
11381146
}
11391147
}
11401148
}

0 commit comments

Comments
 (0)