@@ -325,8 +325,10 @@ struct HadronNucleiCorrelation {
325325 const AxisSpec tofNSigmaAxis = {axisNSigma, " n#sigma TOF" };
326326 const AxisSpec tpcNSigmaAxis = {axisNSigma, " n#sigma TPC" };
327327 const AxisSpec itsNSigmaAxis = {axisNSigma, " n#sigma ITS" };
328- registryQa.add (" QA/h2dTPCTOF_Pr" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH2D , {tpcNSigmaAxis, tofNSigmaAxis}});
329- registryQa.add (" QA/h2dTPCTOF_AntiPr" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH2D , {tpcNSigmaAxis, tofNSigmaAxis}});
328+ registryQa.add (" QA/h3dTPCTOF_Pr" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
329+ registryQa.add (" QA/h3dTPCTOF_AntiPr" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
330+ registryQa.add (" QA/h3dTPCTOF_De" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
331+ registryQa.add (" QA/h3dTPCTOF_AntiDe" , " n#sigma TPC vs n#sigma TOF; n#sigma TPC;n#sigma TOF;p_{T} (GeV/c)" , {HistType::kTH3D , {tpcNSigmaAxis, tofNSigmaAxis, ptAxis}});
330332 registryQa.add (" QA/hnSigmaTPCVsPt_El" , " n#sigma TPC vs p_{T} for e hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, tpcNSigmaAxis}});
331333 registryQa.add (" QA/hnSigmaTPCVsPt_Pr" , " n#sigma TPC vs p_{T} for p hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, tpcNSigmaAxis}});
332334 registryQa.add (" QA/hnSigmaTPCVsPt_De" , " n#sigma TPC vs p_{T} for d hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, tpcNSigmaAxis}});
@@ -352,8 +354,6 @@ struct HadronNucleiCorrelation {
352354 registryQa.add (" QA/hnSigmaTOFVsPt_De_AfterSel" , " n#sigma TOF vs p_{T} for d hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, tofNSigmaAxis}});
353355 registryQa.add (" QA/hnSigmaITSVsPt_Pr_AfterSel" , " n#sigma ITS vs p_{T} for p hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, itsNSigmaAxis}});
354356 registryQa.add (" QA/hnSigmaITSVsPt_De_AfterSel" , " n#sigma ITS vs p_{T} for d hypothesis (all tracks)" , {HistType::kTH2D , {ptAxis, itsNSigmaAxis}});
355- registryQa.add (" QA/h2dTPCTOF_Pr_AfterSel" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH2D , {tpcNSigmaAxis, tofNSigmaAxis}});
356- registryQa.add (" QA/h2dTPCTOF_AntiPr_AfterSel" , " n#sigma TPC vs n#sigma TOF" , {HistType::kTH2D , {tpcNSigmaAxis, tofNSigmaAxis}});
357357 }
358358 }
359359
@@ -716,7 +716,7 @@ struct HadronNucleiCorrelation {
716716 // Generated-level candidate selection, shared by same- and mixed-event processing:
717717 // same cuts as the pairing (primary if requested, |eta| <= etaCut, PDG code of one of the two species)
718718 template <typename TParticle>
719- void addGenCandidate (TParticle const & particle, GenCollisionCache& cache )
719+ void addGenCandidate (TParticle const & particle, GenCollisionCache& colCache )
720720 {
721721 if (isPrim && !particle.isPhysicalPrimary ()) {
722722 return ;
@@ -730,10 +730,10 @@ struct HadronNucleiCorrelation {
730730 }
731731 const GenCandidate cand{particle.pt (), particle.eta (), particle.phi ()};
732732 if (pdg == pdgPart0) {
733- cache .cand0 .push_back (cand);
733+ colCache .cand0 .push_back (cand);
734734 }
735735 if (pdg == pdgPart1) {
736- cache .cand1 .push_back (cand);
736+ colCache .cand1 .push_back (cand);
737737 }
738738 }
739739
@@ -742,9 +742,9 @@ struct HadronNucleiCorrelation {
742742 template <typename TParticles>
743743 GenCollisionCache buildGenCollisionCache (TParticles const & particles)
744744 {
745- GenCollisionCache cache ;
745+ GenCollisionCache colCache ;
746746 for (const auto & mcParticle : particles) {
747- addGenCandidate (mcParticle, cache );
747+ addGenCandidate (mcParticle, colCache );
748748
749749 if (!mcParticle.isPhysicalPrimary ()) {
750750 continue ;
@@ -757,10 +757,10 @@ struct HadronNucleiCorrelation {
757757 continue ;
758758 }
759759 if (std::abs (p->Charge ()) > 1E-3 ) {
760- cache .mult ++;
760+ colCache .mult ++;
761761 }
762762 }
763- return cache ;
763+ return colCache ;
764764 }
765765
766766 void processSameEvent (FilteredCollisions::iterator const & collision, FilteredTracks const & tracks)
@@ -812,24 +812,28 @@ struct HadronNucleiCorrelation {
812812 registryQa.fill (HIST (" QA/hnSigmaTOFVsPt_De" ), track.pt () * track.sign (), track.tofNSigmaDe ());
813813 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_Pr" ), track.pt () * track.sign (), track.itsNSigmaPr ());
814814 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_De" ), track.pt () * track.sign (), track.itsNSigmaDe ());
815- registryQa.fill (HIST (" QA/h2dTPCTOF_AntiPr" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
816- registryQa.fill (HIST (" QA/h2dTPCTOF_Pr" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
815+ if (track.sign () > 0 ) {
816+ registryQa.fill (HIST (" QA/h3dTPCTOF_Pr" ), track.tpcNSigmaPr (), track.tofNSigmaPr (), track.pt ());
817+ registryQa.fill (HIST (" QA/h3dTPCTOF_De" ), track.tpcNSigmaDe (), track.tofNSigmaDe (), track.pt ());
818+ }
819+ if (track.sign () < 0 ) {
820+ registryQa.fill (HIST (" QA/h3dTPCTOF_AntiPr" ), track.tpcNSigmaPr (), track.tofNSigmaPr (), track.pt ());
821+ registryQa.fill (HIST (" QA/h3dTPCTOF_AntiDe" ), track.tpcNSigmaDe (), track.tofNSigmaDe (), track.pt ());
822+ }
817823
818824 if (isProton (track, -1 )) {
819825 registryQa.fill (HIST (" QA/hEtaAntiPr" ), track.eta ());
820826 registryQa.fill (HIST (" QA/hPhiAntiPr" ), track.phi ());
821827 registryQa.fill (HIST (" QA/hnSigmaTOFVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tofNSigmaPr ());
822828 registryQa.fill (HIST (" QA/hnSigmaTPCVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tpcNSigmaPr ());
823829 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.itsNSigmaPr ());
824- registryQa.fill (HIST (" QA/h2dTPCTOF_AntiPr_AfterSel" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
825830 }
826831 if (isProton (track, +1 )) {
827832 registryQa.fill (HIST (" QA/hEtaPr" ), track.eta ());
828833 registryQa.fill (HIST (" QA/hPhiPr" ), track.phi ());
829834 registryQa.fill (HIST (" QA/hnSigmaTOFVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tofNSigmaPr ());
830835 registryQa.fill (HIST (" QA/hnSigmaTPCVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tpcNSigmaPr ());
831836 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.itsNSigmaPr ());
832- registryQa.fill (HIST (" QA/h2dTPCTOF_Pr_AfterSel" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
833837 }
834838 if (isDeuteron (track, -1 )) {
835839 registryQa.fill (HIST (" QA/hEtaAntiDe" ), track.eta ());
@@ -1050,24 +1054,20 @@ struct HadronNucleiCorrelation {
10501054 registryQa.fill (HIST (" QA/hnSigmaTOFVsPt_De" ), track.pt () * track.sign (), track.tofNSigmaDe ());
10511055 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_Pr" ), track.pt () * track.sign (), track.itsNSigmaPr ());
10521056 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_De" ), track.pt () * track.sign (), track.itsNSigmaDe ());
1053- registryQa.fill (HIST (" QA/h2dTPCTOF_AntiPr" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
1054- registryQa.fill (HIST (" QA/h2dTPCTOF_Pr" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
10551057
10561058 if (isProton (track, -1 )) {
10571059 registryQa.fill (HIST (" QA/hEtaAntiPr" ), track.eta ());
10581060 registryQa.fill (HIST (" QA/hPhiAntiPr" ), track.phi ());
10591061 registryQa.fill (HIST (" QA/hnSigmaTOFVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tofNSigmaPr ());
10601062 registryQa.fill (HIST (" QA/hnSigmaTPCVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tpcNSigmaPr ());
10611063 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.itsNSigmaPr ());
1062- registryQa.fill (HIST (" QA/h2dTPCTOF_AntiPr_AfterSel" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
10631064 }
10641065 if (isProton (track, +1 )) {
10651066 registryQa.fill (HIST (" QA/hEtaPr" ), track.eta ());
10661067 registryQa.fill (HIST (" QA/hPhiPr" ), track.phi ());
10671068 registryQa.fill (HIST (" QA/hnSigmaTOFVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tofNSigmaPr ());
10681069 registryQa.fill (HIST (" QA/hnSigmaTPCVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.tpcNSigmaPr ());
10691070 registryQa.fill (HIST (" QA/hnSigmaITSVsPt_Pr_AfterSel" ), track.pt () * track.sign (), track.itsNSigmaPr ());
1070- registryQa.fill (HIST (" QA/h2dTPCTOF_Pr_AfterSel" ), track.tpcNSigmaPr (), track.tofNSigmaPr ());
10711071 }
10721072 if (isDeuteron (track, -1 )) {
10731073 registryQa.fill (HIST (" QA/hEtaAntiDe" ), track.eta ());
@@ -2031,9 +2031,9 @@ struct HadronNucleiCorrelation {
20312031 genCaches.reserve (mcCollisions.size ());
20322032 for (const auto & collision : mcCollisions) {
20332033 auto particlesPerCol = mcParticles.sliceBy (perMcCollision, collision.globalIndex ());
2034- auto cache = buildGenCollisionCache (particlesPerCol);
2035- registry.fill (HIST (" hMult" ), cache .mult );
2036- genCaches.emplace (collision.globalIndex (), std::move (cache ));
2034+ auto colCache = buildGenCollisionCache (particlesPerCol);
2035+ registry.fill (HIST (" hMult" ), colCache .mult );
2036+ genCaches.emplace (collision.globalIndex (), std::move (colCache ));
20372037 }
20382038
20392039 auto getMultiplicity = [&genCaches](SimCollisions::iterator const & collision) {
0 commit comments