Skip to content

Commit 0ba4dbc

Browse files
committed
Store rematched candidates in standard FwdTracksReAlign tables
1 parent ebd2ddc commit 0ba4dbc

1 file changed

Lines changed: 16 additions & 50 deletions

File tree

PWGDQ/Tasks/global-muon-matcher.cxx

Lines changed: 16 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
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

100101
DECLARE_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

147105
using 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+
14791445
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
14801446
{
14811447
return WorkflowSpec{

0 commit comments

Comments
 (0)