From 5b9e6cc86c95ebe68893bece9089813624d96775 Mon Sep 17 00:00:00 2001 From: joachimckh Date: Mon, 12 Oct 2026 14:32:55 +0200 Subject: [PATCH] add process function to check alignment in data --- PWGJE/Tasks/jetSpectraEseTask.cxx | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/PWGJE/Tasks/jetSpectraEseTask.cxx b/PWGJE/Tasks/jetSpectraEseTask.cxx index 57b89a93a34..6810033f1ab 100644 --- a/PWGJE/Tasks/jetSpectraEseTask.cxx +++ b/PWGJE/Tasks/jetSpectraEseTask.cxx @@ -615,6 +615,12 @@ struct JetSpectraEseTask { registry.add("hSTrackPtPhiEtaOcc", ";cent;jpt;phi;eta;occ", {HistType::kTHnSparseF, {{centAxis}, {100, 0, 100}, {phiAxis}, {etaAxis}, {occAxis}}}); registry.add("hSJetPtPhiEtaOcc", ";cent;jpt;phi;eta;occ", {HistType::kTHnSparseF, {{centAxis}, {jetPtAxis}, {phiAxis}, {etaAxis}, {occAxis}}}); } + if (doprocessJetAlignment) { + LOGF(info, "JetSpectraEseTask::init() - Jet Alignment Process"); + registry.add("hCentq2", ";cent;#it{q}_{2};occ", {HistType::kTHnSparseF, {{centAxis}, {100, 0, 100}}}); + registry.add("hTrackPtPhiEta", ";cent;p_{T,track};#phi;#eta", {HistType::kTHnSparseF, {{centAxis}, {100, 0, 100}, {phiAxis}, {etaAxis}}}); + registry.add("hJetPtPhiEta", ";cent;p_{T,jet};jet #phi;jet #eta", {HistType::kTHnSparseF, {{centAxis}, {250, -50, 200}, {phiAxis}, {etaAxis}}}); + } if (doprocessMCGenTrack) { LOGF(info, "JetSpectraEseTask::init() - MCGen track"); registry.add("mcgen/h3TrackPtGen", ";#it{p}_{T,track}; vtxZ; #eta", {HistType::kTH3F, {{assocTrackPt}, {vertexZAxis}, {etaAxis}}}); @@ -1084,6 +1090,57 @@ struct JetSpectraEseTask { } PROCESS_SWITCH(JetSpectraEseTask, processESEOccupancy, "process occupancy", false); + void processJetAlignment(soa::Join::iterator const& collision, + soa::Join const& tracks, soa::Filtered> const& jets) + { + const auto psi{procEP(collision)}; + if (!psi.isValid) { + return; + } + const auto qPerc{collision.qPERCFT0C()}; + if (qPerc[0] < 0) { + return; + } + + std::unique_ptr rhoFit{nullptr}; + if (cfgrhoPhi) { + rhoFit = fitRho(collision, psi, tracks, jets); + if (!rhoFit) { + return; + } + } + + if (!isVertexSelected(collision)) { + return; + } + + if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections)) { + return; + } + + registry.fill(HIST("hCentq2"), getCentrality(collision), qPerc[0]); + auto corrL = [&](const auto& j) { return j.pt() - evalRho(rhoFit.get(), jetR, j.phi(), collision.rho()) * j.area(); }; + + for (const auto& jet : jets) { + if (!jetfindingutilities::isInEtaAcceptance(jet, cfgJetEta->at(0), cfgJetEta->at(1), trackCuts.trackEtaMin, trackCuts.trackEtaMax)) { + continue; + } + if (!isAcceptedJet>(jet)) { + continue; + } + auto vCorrL = cfgrhoPhi ? corrL(jet) : corr(collision, jet); + registry.fill(HIST("hJetPtPhiEta"), getCentrality(collision), vCorrL, jet.phi(), jet.eta()); + } + + for (auto const& track : tracks) { + if (!jetderiveddatautilities::selectTrack(track, trackSelection)) { + continue; + } + registry.fill(HIST("hTrackPtPhiEta"), getCentrality(collision), track.pt(), track.phi(), track.eta()); + } + } + PROCESS_SWITCH(JetSpectraEseTask, processJetAlignment, "process jet+track spectra for QA checking alignment issues", false); + void processMCParticleLevel(soa::Filtered>::iterator const& mcCollision, soa::SmallGroups const& collisions, soa::Filtered> const& jets,