Skip to content

Commit 88109a0

Browse files
committed
Added control histograms to the task: nSigmaTOF for reconstructed particles, BC Id checks, mcCollision Id checks
1 parent cc29826 commit 88109a0

File tree

1 file changed

+36
-15
lines changed

1 file changed

+36
-15
lines changed

PWGLF/TableProducer/Strangeness/sigmaminustask.cxx

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,31 +55,39 @@ struct sigmaminustask {
5555
{
5656
// Axes
5757
const AxisSpec ptAxis{100, -10, 10, "#it{p}_{T} (GeV/#it{c})"};
58-
const AxisSpec nSigmaPiAxis{100, -5, 5, "n#sigma_{#pi}"};
58+
const AxisSpec nSigmaPiAxis{1000, -1000, 1000, "n#sigma_{#pi}"};
59+
const AxisSpec nSigmaPrAxis{1000, -1000, 1000, "n#sigma_{p}"};
5960
const AxisSpec sigmaMassAxis{100, 1.1, 1.4, "m (GeV/#it{c}^{2})"};
6061
const AxisSpec xiMassAxis{100, 1.2, 1.6, "m_{#Xi} (GeV/#it{c}^{2})"};
6162
const AxisSpec pdgAxis{10001, -5000, 5000, "PDG code"};
6263
const AxisSpec vertexZAxis{100, -15., 15., "vrtx_{Z} [cm]"};
6364

6465
const AxisSpec ptResolutionAxis{100, -0.5, 0.5, "#it{p}_{T}^{rec} - #it{p}_{T}^{gen} (GeV/#it{c})"};
6566
const AxisSpec massResolutionAxis{100, -0.1, 0.1, "m_{rec} - m_{gen} (GeV/#it{c}^{2})"};
66-
67+
const AxisSpec boolAxis{2, -0.5, 1.5, "Boolean value (0=false, 1=true)"};
6768
// Event selection
6869
rEventSelection.add("hVertexZRec", "hVertexZRec", {HistType::kTH1F, {vertexZAxis}});
6970
// Sigma-minus reconstruction
7071
rSigmaMinus.add("h2MassSigmaMinusPt", "h2MassSigmaMinusPt", {HistType::kTH2F, {ptAxis, sigmaMassAxis}});
7172
rSigmaMinus.add("h2SigmaMassVsXiMass", "h2SigmaMassVsXiMass", {HistType::kTH2F, {xiMassAxis, sigmaMassAxis}});
72-
rSigmaMinus.add("h2NSigmaPiPt", "h2NSigmaPiPt", {HistType::kTH2F, {ptAxis, nSigmaPiAxis}});
73+
rSigmaMinus.add("h2NSigmaTPCPiPt", "h2NSigmaTPCPiPt", {HistType::kTH2F, {ptAxis, nSigmaPiAxis}});
7374

7475
if (doprocessMC) {
7576
// Add MC histograms if needed
7677
rSigmaMinus.add("h2MassPtMCRec", "h2MassPtMCRec", {HistType::kTH2F, {ptAxis, sigmaMassAxis}});
7778
rSigmaMinus.add("h2MassPtMCGen", "h2MassPtMCGen", {HistType::kTH2F, {ptAxis, sigmaMassAxis}});
7879

79-
rSigmaMinus.add("h2MassResolution_minus", "h2MassResolution_minus", {HistType::kTH2F, {sigmaMassAxis, massResolutionAxis}});
80-
rSigmaMinus.add("h2PtResolution_minus", "h2PtResolution_minus", {HistType::kTH2F, {ptAxis, ptResolutionAxis}});
81-
rSigmaMinus.add("h2MassResolution_plus", "h2MassResolution_plus", {HistType::kTH2F, {sigmaMassAxis, massResolutionAxis}});
82-
rSigmaMinus.add("h2PtResolution_plus", "h2PtResolution_plus", {HistType::kTH2F, {ptAxis, ptResolutionAxis}});
80+
rSigmaMinus.add("h2MassResolution", "h2MassResolution", {HistType::kTH2F, {ptAxis, massResolutionAxis}});
81+
rSigmaMinus.add("h2PtResolution", "h2PtResolution", {HistType::kTH2F, {ptAxis, ptResolutionAxis}});
82+
83+
rSigmaMinus.add("h2NSigmaTOFPiPt", "h2NSigmaTOFPiPt", {HistType::kTH2F, {ptAxis, nSigmaPiAxis}});
84+
rSigmaMinus.add("h2NSigmaTOFPrPt", "h2NSigmaTOFPrPt", {HistType::kTH2F, {ptAxis, nSigmaPrAxis}});
85+
86+
// BC ID comparison histograms
87+
rSigmaMinus.add("hMcCollIdCoherence", "McCollId (coll == daug)", {HistType::kTH1F, {boolAxis}});
88+
rSigmaMinus.add("h2CollId_BCId", "(McCollId coherence) vs (EvSelBC == McBC)", {HistType::kTH2F, {boolAxis, boolAxis}});
89+
rSigmaMinus.add("h2BCId_comp1", "(BC == McBC) vs (BC == EvSelBC)", {HistType::kTH2F, {boolAxis, boolAxis}});
90+
rSigmaMinus.add("h2BCId_comp2", "(McBC == EvSelBC) vs (BC == EvSelBC)", {HistType::kTH2F, {boolAxis, boolAxis}});
8391
}
8492
}
8593

@@ -114,7 +122,7 @@ struct sigmaminustask {
114122
}
115123
PROCESS_SWITCH(sigmaminustask, processData, "Data processing", true);
116124

117-
void processMC(CollisionsFullMC const& collisions, aod::KinkCands const& KinkCands, aod::McTrackLabels const& trackLabelsMC, aod::McParticles const& particlesMC, aod::McCollisions const&, TracksFull const&)
125+
void processMC(CollisionsFullMC const& collisions, aod::KinkCands const& KinkCands, aod::McTrackLabels const& trackLabelsMC, aod::McParticles const& particlesMC, TracksFull const&, aod::McCollisions const&)
118126
{
119127
for (const auto& collision : collisions) {
120128
if (std::abs(collision.posZ()) > cutzvertex || !collision.sel8()) {
@@ -136,9 +144,10 @@ struct sigmaminustask {
136144
continue;
137145
}
138146

147+
// histograms filled with all kink candidates
139148
rSigmaMinus.fill(HIST("h2MassSigmaMinusPt"), kinkCand.mothSign() * kinkCand.ptMoth(), kinkCand.mSigmaMinus());
140149
rSigmaMinus.fill(HIST("h2SigmaMassVsXiMass"), kinkCand.mXiMinus(), kinkCand.mSigmaMinus());
141-
rSigmaMinus.fill(HIST("h2NSigmaPiPt"), kinkCand.mothSign() * kinkCand.ptMoth(), dauTrack.tpcNSigmaPi());
150+
rSigmaMinus.fill(HIST("h2NSigmaTPCPiPt"), kinkCand.mothSign() * kinkCand.ptMoth(), dauTrack.tpcNSigmaPi());
142151

143152
// do MC association
144153
auto mcLabSigma = trackLabelsMC.rawIteratorAt(mothTrack.globalIndex());
@@ -171,14 +180,25 @@ struct sigmaminustask {
171180
if (collision.has_mcCollision()) {
172181
mcCollisionIdCheck = collision.mcCollision().globalIndex() == mcTrackPiDau.mcCollisionId();
173182
}
183+
// Check bunch crossing ID coherence
184+
auto mcCollision = mcTrackPiDau.template mcCollision_as<aod::McCollisions>();
185+
bool BCId_vs_MCBCId = collision.bcId() == mcCollision.bcId();
186+
bool BCId_vs_EvSel = collision.bcId() == collision.foundBCId();
187+
bool EvSel_vs_MCBCId = collision.foundBCId() == mcCollision.bcId();
188+
189+
rSigmaMinus.fill(HIST("hMcCollIdCoherence"), static_cast<int>(mcCollisionIdCheck));
190+
rSigmaMinus.fill(HIST("h2CollId_BCId"), static_cast<int>(mcCollisionIdCheck), static_cast<int>(EvSel_vs_MCBCId));
191+
rSigmaMinus.fill(HIST("h2BCId_comp1"), static_cast<int>(BCId_vs_MCBCId), static_cast<int>(BCId_vs_EvSel));
192+
rSigmaMinus.fill(HIST("h2BCId_comp2"), static_cast<int>(EvSel_vs_MCBCId), static_cast<int>(BCId_vs_EvSel));
174193

175194
rSigmaMinus.fill(HIST("h2MassPtMCRec"), kinkCand.mothSign() * kinkCand.ptMoth(), kinkCand.mSigmaMinus());
176-
if (mcTrackSigma.pdgCode() > 0) {
177-
rSigmaMinus.fill(HIST("h2MassResolution_plus"), kinkCand.mSigmaMinus(), kinkCand.mSigmaMinus() - MotherMassMC);
178-
rSigmaMinus.fill(HIST("h2PtResolution_plus"), kinkCand.ptMoth(), kinkCand.ptMoth() - MotherpTMC);
179-
} else {
180-
rSigmaMinus.fill(HIST("h2MassResolution_minus"), kinkCand.mSigmaMinus(), kinkCand.mSigmaMinus() - MotherMassMC);
181-
rSigmaMinus.fill(HIST("h2PtResolution_minus"), kinkCand.ptMoth(), kinkCand.ptMoth() - MotherpTMC);
195+
rSigmaMinus.fill(HIST("h2MassResolution"), kinkCand.mothSign() * kinkCand.ptMoth(), kinkCand.mSigmaMinus() - MotherMassMC);
196+
rSigmaMinus.fill(HIST("h2PtResolution"), kinkCand.mothSign() * kinkCand.ptMoth(), kinkCand.ptMoth() - MotherpTMC);
197+
198+
if (std::abs(mcTrackPiDau.pdgCode()) == 211) {
199+
rSigmaMinus.fill(HIST("h2NSigmaTOFPiPt"), kinkCand.mothSign() * kinkCand.ptMoth(), dauTrack.tofNSigmaPi());
200+
} else if (std::abs(mcTrackPiDau.pdgCode()) == 2212) {
201+
rSigmaMinus.fill(HIST("h2NSigmaTOFPrPt"), kinkCand.mothSign() * kinkCand.ptMoth(), dauTrack.tofNSigmaPr());
182202
}
183203

184204
// fill the output table with Mc information
@@ -250,3 +270,4 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
250270
return WorkflowSpec{
251271
adaptAnalysisTask<sigmaminustask>(cfgc)};
252272
}
273+

0 commit comments

Comments
 (0)