diff --git a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx index ddb6db7af84..25556b2bc14 100644 --- a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx +++ b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx @@ -194,6 +194,8 @@ struct EbyeMaker { const AxisSpec zVtxAxis{100, -20.f, 20.f, "vertex z in cm"}; const AxisSpec nTpcAxis{160, 0, 160, "N TPC"}; const AxisSpec dcaAxis{2000, -1., 1., "DCA in cm"}; + const AxisSpec phiAxis{650, 0, 6.5, "#phi (rad)"}; + const AxisSpec signMomAxis{1000, -5.f, 5.f, "#it{p}_{T}/#it{Z} (GeV/#it{c})"}; // binning of (anti)lambda mass QA histograms ConfigurableAxis massLambdaAxis{"massLambdaAxis", {400, o2::constants::physics::MassLambda0 - 0.03f, o2::constants::physics::MassLambda0 + 0.03f}, "binning for the lambda invariant-mass"}; @@ -517,7 +519,7 @@ struct EbyeMaker { // event QA histos.add("QA/zVtx", ";#it{z}_{vtx} (cm);Entries", HistType::kTH1F, {zVtxAxis}); if (doprocessRun3) { - histos.add("QA/PvMultVsCent", ";Centrality T0C (%);#it{N}_{PV contributors};", HistType::kTH2F, {centAxis, multAxis}); + histos.add("QA/MultChVsCent", ";Centrality FT0C (%);#it{N}_{tracks};", HistType::kTH2F, {centAxis, multAxis}); } else if (doprocessRun2 || doprocessMiniRun2 || doprocessMcRun2 || doprocessMiniMcRun2) { histos.add("QA/V0MvsCL0", ";Centrality CL0 (%);Centrality V0M (%)", HistType::kTH2F, {centAxis, centAxis}); histos.add("QA/trackletsVsV0M", ";Centrality CL0 (%);Centrality V0M (%)", HistType::kTH2F, {centAxis, multAxis}); @@ -535,6 +537,7 @@ struct EbyeMaker { histos.add("QA/tpcCRvsCls", ";#it{N}_{TPCCR};#it{N}_{TPCcls}", HistType::kTH2F, {nTpcAxis, nTpcAxis}); histos.add("QA/dcaxyVsPt", ";#it{p}_{T} (GeV/#it{c});DCA_{#it{xy}} (cm)", HistType::kTH2F, {momAxis, dcaAxis}); histos.add("QA/dcazVsPt", ";#it{p}_{T} (GeV/#it{c});DCA_{#it{z}} (cm)", HistType::kTH2F, {momAxis, dcaAxis}); + histos.add("QA/phiVsPtVsCR", ";#it{N}^{TPC}_{CR};#it{p}_{T} (GeV/#it{c});#phi (rad)", HistType::kTH3F, {nTpcAxis, signMomAxis, phiAxis}); ptMin = std::array{antipPtMin, antidPtMin}; ptMax = std::array{antipPtMax, antidPtMax}; @@ -573,21 +576,21 @@ struct EbyeMaker { if (!selectTrack(track)) { continue; } - histos.fill(HIST("QA/tpcCRvsCls"), track.tpcNClsCrossedRows(), track.tpcNClsFound()); - if (track.tpcNClsFound() < trackNclusTpcCut || track.tpcNClsCrossedRows() < trackNcrossedRows) - continue; auto trackParCov = getTrackParCov(track); o2::base::Propagator::Instance()->propagateToDCABxByBz({collision.posX(), collision.posY(), collision.posZ()}, trackParCov, 2.f, fitter.getMatCorrType(), &dcaInfo); auto dca = std::hypot(dcaInfo[0], dcaInfo[1]); auto trackPt = trackParCov.getPt(); + auto trackPhi = trackParCov.getPhi(); auto trackEta = trackParCov.getEta(); - histos.fill(HIST("QA/dcaxyVsPt"), track.pt(), dcaInfo[0]); + histos.fill(HIST("QA/dcaxyVsPt"), track.pt(), dcaInfo[0]); // TODO: this should rather be trackPt (likely small effect for 7 ITS clusters?) histos.fill(HIST("QA/dcazVsPt"), track.pt(), dcaInfo[1]); - if (std::abs(dcaInfo[0]) > dcaSigma(track.pt(), "dcaxy") || std::abs(dcaInfo[1]) > dcaSigma(track.pt(), "dcaz") || dca > dcaSigma(track.pt(), "dca")) { // dcaxy + if (std::abs(dcaInfo[0]) > dcaSigma(track.pt(), "dcaxy") || std::abs(dcaInfo[1]) > dcaSigma(track.pt(), "dcaz") || dca > dcaSigma(track.pt(), "dca")) + continue; + histos.fill(HIST("QA/phiVsPtVsCR"), track.tpcNClsCrossedRows(), track.sign() > 0. ? trackPt : -trackPt, trackPhi); + if (track.tpcNClsFound() < trackNclusTpcCut || track.tpcNClsCrossedRows() < trackNcrossedRows) continue; - } histos.fill(HIST("QA/tpcSignal"), track.tpcInnerParam(), track.tpcSignal()); if (trackPt > ptMin[0] && trackPt < ptMax[0] && ((track.sign() < 0 && countOnlyLSTrk == TracksCharge::kNegative) || (track.sign() > 0 && countOnlyLSTrk == TracksCharge::kPositive) || (countOnlyLSTrk == TracksCharge::kAll))) nTracksColl++; @@ -932,8 +935,8 @@ struct EbyeMaker { auto v0TableThisCollision = V0s.sliceBy(perCollisionV0, collIdx); v0TableThisCollision.bindExternalIndices(&tracks); - histos.fill(HIST("QA/PvMultVsCent"), centrality, collision.numContrib()); fillRecoEvent(collision, tracks, v0TableThisCollision, centrality); + histos.fill(HIST("QA/PvMultVsCent"), centrality, nTracksColl); miniCollTable(static_cast(collision.posZ() * 10), 0x0, nTrackletsColl, centrality, nTracksColl); for (auto& candidateTrack : candidateTracks[0]) { // o2-linter: disable=const-ref-in-for-loop (not a const ref)