2121#include " Common/DataModel/EventSelection.h"
2222#include " Common/DataModel/Multiplicity.h"
2323#include " Common/DataModel/TrackSelectionTables.h"
24+ #include " Common/DataModel/FwdTrackReAlignTables.h"
2425#include " Tools/ML/MlResponse.h"
2526
2627#include < CCDB/BasicCCDBManager.h>
@@ -99,49 +100,6 @@ DECLARE_SOA_ARRAY_INDEX_COLUMN(GlobalMuonMatchCandidate, matchCandidate); //! Ar
99100
100101DECLARE_SOA_TABLE (FwdTrkMatchCands, " AOD" , " FWDTRKMATCHCAND" , // ! Vectors of match-candidate indices stored per fwdtrack
101102 globalmuonmatching::GlobalMuonMatchCandidateIds, o2::soa::Marker<3 >);
102-
103- // FwdTracks-like tables for refitted global-muon match candidates (one row per GMCAND entry)
104- DECLARE_SOA_TABLE (GMCandidateFwdTracks, " AOD" , " GMMCANDTRK" ,
105- o2::soa::Index<>,
106- fwdtrack::CollisionId, fwdtrack::TrackType,
107- fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
108- fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::PDca, fwdtrack::RAtAbsorberEnd,
109- fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
110- fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
111- fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
112- fwdtrack::Sign<fwdtrack::Signed1Pt>,
113- fwdtrack::Chi2, fwdtrack::Chi2MatchMCHMID, fwdtrack::Chi2MatchMCHMFT,
114- fwdtrack::MatchScoreMCHMFT, globalmuonmatching::MatchRanking, globalmuonmatching::IsTagged,
115- fwdtrack::MFTTrackId, fwdtrack::MCHTrackId,
116- fwdtrack::MCHBitMap, fwdtrack::MIDBitMap, fwdtrack::MIDBoards,
117- fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
118-
119- DECLARE_SOA_EXTENDED_TABLE (GMCandidateFwdTracksExt, GMCandidateFwdTracks, " GMMCANDTRKEX" , 0 , // !
120- aod::fwdtrack::Pt,
121- aod::fwdtrack::Eta,
122- aod::fwdtrack::P);
123-
124- DECLARE_SOA_TABLE (GMCandidateFwdTracksCov, " AOD" , " GMMCANDTRKCOV" , // !
125- fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
126- fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
127- fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
128-
129- DECLARE_SOA_EXTENDED_TABLE (GMCandidateFwdTracksCovExt, GMCandidateFwdTracksCov, " GMMCANDTRKCOVEX" , 0 , // !
130- aod::fwdtrack::CXX ,
131- aod::fwdtrack::CXY ,
132- aod::fwdtrack::CYY ,
133- aod::fwdtrack::CPhiX,
134- aod::fwdtrack::CPhiY,
135- aod::fwdtrack::CPhiPhi,
136- aod::fwdtrack::CTglX,
137- aod::fwdtrack::CTglY,
138- aod::fwdtrack::CTglPhi,
139- aod::fwdtrack::CTglTgl,
140- aod::fwdtrack::C1PtX,
141- aod::fwdtrack::C1PtY,
142- aod::fwdtrack::C1PtPhi,
143- aod::fwdtrack::C1PtTgl,
144- aod::fwdtrack::C1Pt21Pt2);
145103} // namespace o2::aod
146104
147105using MyEvents = soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::MFTMults, aod::PVMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>;
@@ -301,8 +259,8 @@ struct GlobalMuonMatching {
301259
302260 Produces<o2::aod::GlobalMuonMatchCandidates> globalMuonMatchCandidates;
303261 Produces<o2::aod::FwdTrkMatchCands> fwdTrkMatchCands;
304- Produces<o2::aod::GMCandidateFwdTracks > gmCandidateFwdTracks;
305- Produces<o2::aod::GMCandidateFwdTracksCov > gmCandidateFwdTracksCov;
262+ Produces<o2::aod::StoredFwdTracksReAlign > gmCandidateFwdTracks;
263+ Produces<o2::aod::StoredFwdTrksCovReAlign > gmCandidateFwdTracksCov;
306264
307265 int32_t mMatchCandidateCounter {0 };
308266 std::unordered_map<int64_t , std::vector<int32_t >> mMchTrackToCandidateIndices ;
@@ -639,6 +597,8 @@ struct GlobalMuonMatching {
639597 {
640598 const int32_t collisionId = track.has_collision () ? track.collisionId () : -1 ;
641599
600+ bool isRemovable = false ;
601+
642602 gmCandidateFwdTracks (
643603 collisionId,
644604 track.trackType (),
@@ -651,12 +611,11 @@ struct GlobalMuonMatching {
651611 track.nClusters (),
652612 track.pDca (),
653613 track.rAtAbsorberEnd (),
614+ isRemovable,
654615 track.chi2 (),
655616 track.chi2MatchMCHMID (),
656617 chi2MatchMCHMFT,
657618 matchScoreMCHMFT,
658- matchRanking,
659- isTagged,
660619 track.matchMFTTrackId (),
661620 gmmMchTrackId,
662621 track.mchBitMap (),
@@ -702,6 +661,8 @@ struct GlobalMuonMatching {
702661 const float chi2 = static_cast <float >(mchTrack.chi2 ());
703662 const int32_t collisionId = mchTrack.has_collision () ? mchTrack.collisionId () : -1 ;
704663
664+ bool isRemovable = false ;
665+
705666 gmCandidateFwdTracks (
706667 collisionId,
707668 candidateTrackType,
@@ -714,12 +675,11 @@ struct GlobalMuonMatching {
714675 nClusters,
715676 mchTrack.pDca (),
716677 mchTrack.rAtAbsorberEnd (),
678+ isRemovable,
717679 chi2,
718680 mchTrack.chi2MatchMCHMID (),
719681 static_cast <float >(candidate.matchChi2 ),
720682 static_cast <float >(candidate.matchScore ),
721- static_cast <int32_t >(candidate.matchRanking ),
722- isTagged,
723683 static_cast <int >(mftTrack.globalIndex ()),
724684 gmmMchTrackId,
725685 mchTrack.mchBitMap (),
@@ -1294,7 +1254,6 @@ struct GlobalMuonMatching {
12941254 fillMatchingCandidatesForCollision (collision, muonTracks, mftTracks, mftCovs, matchingCandidates, taggedMuons);
12951255 }
12961256 }
1297-
12981257 }
12991258
13001259 template <class TCOLLISION , class TMUON , class TMFT , class CMFT >
@@ -1476,6 +1435,13 @@ struct GlobalMuonMatching {
14761435 PROCESS_SWITCH (GlobalMuonMatching, processData, " processData" , true );
14771436};
14781437
1438+ // Extends the fwdtracksrealign table with expression columns
1439+ struct GlobalMuonMatchingSpawner {
1440+ Spawns<aod::FwdTrksCovReAlign> realignFwdTrksCov;
1441+ Spawns<aod::FwdTracksReAlign> realignFwdTrks;
1442+ void init (InitContext const &) {}
1443+ };
1444+
14791445WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
14801446{
14811447 return WorkflowSpec{
0 commit comments