@@ -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