From 0953a58418f5298c7a463b903532d0ed4fd91490 Mon Sep 17 00:00:00 2001 From: aferrero2707 Date: Wed, 17 Jun 2026 10:13:21 +0200 Subject: [PATCH] [PWGDQ] added processing of realigned MCH forward tracks The new code allows to process tracks produced by the MCH realignment task, as well as the planned global muon rematching task (see PR O2Physics#16678). --- PWGDQ/Tasks/qaMatching.cxx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/PWGDQ/Tasks/qaMatching.cxx b/PWGDQ/Tasks/qaMatching.cxx index e7de1e7f2b0..c9e010ab125 100644 --- a/PWGDQ/Tasks/qaMatching.cxx +++ b/PWGDQ/Tasks/qaMatching.cxx @@ -20,6 +20,7 @@ #include "Common/DataModel/Centrality.h" #include "Common/DataModel/CollisionAssociationTables.h" #include "Common/DataModel/EventSelection.h" +#include "Common/DataModel/FwdTrackReAlignTables.h" #include "Common/DataModel/Multiplicity.h" #include "Common/DataModel/TrackSelectionTables.h" #include "Tools/ML/MlResponse.h" @@ -178,6 +179,7 @@ DECLARE_SOA_INDEX_COLUMN_FULL_CUSTOM(Candidate, candidate, int32_t, o2::aod::QaM using MyEvents = soa::Join; using MyMuons = soa::Join; +using MyMuonsReAlign = soa::Join; using MyMuonsMC = soa::Join; using MyMFTs = aod::MFTTracks; using MyMFTCovariances = aod::MFTTracksCov; @@ -3233,6 +3235,33 @@ struct QaMatching { } PROCESS_SWITCH(QaMatching, processQA, "processQA", false); + + void processQAReAlign(MyEvents const& collisions, + aod::BCsWithTimestamps const& bcs, + MyMuonsReAlign const& muonTracks, + MyMFTs const& mftTracks, + MyMFTCovariances const& mftCovs) + { + auto bc = bcs.begin(); + initCcdb(bc); + + for (const auto& muon : muonTracks) { + registry.get(HIST("nTracksPerType"))->Fill(static_cast(muon.trackType())); + } + + mftTrackCovs.clear(); + for (const auto& mftTrackCov : mftCovs) { + mftTrackCovs[mftTrackCov.matchMFTTrackId()] = mftTrackCov.globalIndex(); + } + + fillCollisions(collisions, bcs, muonTracks, mftTracks, mftCovs, fCollisionInfos); + + for (auto const& [collisionIndex, collisionInfo] : fCollisionInfos) { + processCollision(collisionInfo, collisions, bcs, muonTracks, mftTracks, mftCovs); + } + } + + PROCESS_SWITCH(QaMatching, processQAReAlign, "processQAReAlign", false); }; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)