Skip to content

Commit c42f216

Browse files
PWGDQ: update qamatching AO2D Tables
1 parent b28372e commit c42f216

1 file changed

Lines changed: 36 additions & 8 deletions

File tree

PWGDQ/Tasks/qaMatching.cxx

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ DECLARE_SOA_COLUMN(P, p, float);
9696
DECLARE_SOA_COLUMN(Pt, pt, float);
9797
DECLARE_SOA_COLUMN(Eta, eta, float);
9898
DECLARE_SOA_COLUMN(Phi, phi, float);
99+
DECLARE_SOA_COLUMN(InvQPt, invQPt, float);
100+
DECLARE_SOA_COLUMN(Tanl, tanl, float);
99101
DECLARE_SOA_COLUMN(MatchLabel, matchLabel, int8_t);
100102
DECLARE_SOA_COLUMN(MatchType, matchType, int8_t);
101103
DECLARE_SOA_COLUMN(MatchChi2, matchChi2, float);
@@ -144,6 +146,8 @@ DECLARE_SOA_TABLE(QaMatchingMCHTrack, "AOD", "QAMCHTRK",
144146
qamatching::Pt,
145147
qamatching::Eta,
146148
qamatching::Phi,
149+
qamatching::InvQPt,
150+
qamatching::Tanl,
147151
qamatching::MftMatchAttempts,
148152
qamatching::IsTagged,
149153
qamatching::XAtVtx,
@@ -169,11 +173,22 @@ DECLARE_SOA_TABLE(QaMatchingCandidates, "AOD", "QAMCAND",
169173
qamatching::ReducedEventId,
170174
qamatching::ReducedTrackId,
171175
qamatching::MatchLabel,
172-
qamatching::P, qamatching::Pt, qamatching::Eta, qamatching::Phi,
173-
qamatching::MatchType, qamatching::MatchChi2, qamatching::MatchScore, qamatching::MatchRanking,
176+
qamatching::P,
177+
qamatching::Pt,
178+
qamatching::Eta,
179+
qamatching::Phi,
180+
qamatching::InvQPt,
181+
qamatching::Tanl,
182+
qamatching::MatchType,
183+
qamatching::MatchChi2,
184+
qamatching::MatchScore,
185+
qamatching::MatchRanking,
174186
qamatching::XAtVtx,
175187
qamatching::YAtVtx,
176188
qamatching::ZAtVtx,
189+
qamatching::FXAtPlaneZ2,
190+
qamatching::FYAtPlaneZ2,
191+
qamatching::FZAtPlaneZ2,
177192
qamatching::PxAtVtx,
178193
qamatching::PyAtVtx,
179194
qamatching::PzAtVtx);
@@ -3083,7 +3098,7 @@ struct QaMatching {
30833098

30843099
//-------------------------------
30853100
// Chi2-based matching from production
3086-
fillQaMatchingAodTablesForCollision(collision, muonTracks, mftTracks, collisionInfo.matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId, collisionInfo.reducedMchTrackIds);
3101+
fillQaMatchingAodTablesForCollision(collision, muonTracks, mftTracks, collisionInfo.matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId, collisionInfo.reducedMchTrackIds, mftCovs);
30873102
if constexpr (isMC) {
30883103
fillMatchingPlotsMc(collision, collisionInfo, muonTracks, mftTracks, taggedMuons, collisionInfo.matchingCandidates, collisionInfo.matchingCandidates, collisionInfo.matchablePairs, cfgMatchingChi2ScoreMftMchLow, fChi2MatchingPlotter.get(), false);
30893104
} else {
@@ -3114,7 +3129,7 @@ struct QaMatching {
31143129
double matchingScoreCut = matchingScoreCuts.at(label);
31153130

31163131
matchingMethodCounter += 1;
3117-
fillQaMatchingAodTablesForCollision(collision, muonTracks, mftTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId, collisionInfo.reducedMchTrackIds);
3132+
fillQaMatchingAodTablesForCollision(collision, muonTracks, mftTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId, collisionInfo.reducedMchTrackIds, mftCovs);
31183133
if constexpr (isMC) {
31193134
fillMatchingPlotsMc(collision, collisionInfo, muonTracks, mftTracks, taggedMuons, matchingCandidates, collisionInfo.matchingCandidates, collisionInfo.matchablePairs, matchingScoreCut, plotter, false);
31203135
} else {
@@ -3132,7 +3147,7 @@ struct QaMatching {
31323147
double matchingScoreCut = matchingScoreCuts.at(label);
31333148

31343149
matchingMethodCounter += 1;
3135-
fillQaMatchingAodTablesForCollision(collision, muonTracks, mftTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId, collisionInfo.reducedMchTrackIds);
3150+
fillQaMatchingAodTablesForCollision(collision, muonTracks, mftTracks, matchingCandidates, matchingMethodCounter, collisionInfo.reducedEventId, collisionInfo.reducedMchTrackIds, mftCovs);
31363151
if constexpr (isMC) {
31373152
fillMatchingPlotsMc(collision, collisionInfo, muonTracks, mftTracks, taggedMuons, matchingCandidates, collisionInfo.matchingCandidates, collisionInfo.matchablePairs, matchingScoreCut, plotter);
31383153
} else {
@@ -3145,14 +3160,15 @@ struct QaMatching {
31453160
fillDimuonPlotsMc(collisionInfo, collisions, muonTracks, mftTracks);
31463161
}
31473162

3148-
template <class TCOLLISION, class TMUON, class TMFT>
3163+
template <class TCOLLISION, class TMUON, class TMFT, class CMFT>
31493164
void fillQaMatchingAodTablesForCollision(TCOLLISION const& collision,
31503165
TMUON const& muonTracks,
31513166
TMFT const& mftTracks,
31523167
const MatchingCandidates& matchingCandidates,
31533168
int8_t matchLabel,
31543169
int32_t reducedEventId,
3155-
std::map<int64_t, int64_t> reducedMchTrackIds)
3170+
std::map<int64_t, int64_t> reducedMchTrackIds,
3171+
CMFT const& mftCovs)
31563172
{
31573173
for (const auto& [mchIndex, candidates] : matchingCandidates) {
31583174
if (candidates.empty()) {
@@ -3173,8 +3189,13 @@ struct QaMatching {
31733189
for (const auto& candidate : candidates) {
31743190
const auto& candidateTrack = muonTracks.rawIteratorAt(candidate.globalTrackId);
31753191
const auto& mftTrack = mftTracks.rawIteratorAt(candidate.mftTrackId);
3192+
if (mftTrackCovs.count(mftTrack.globalIndex()) < 1) {
3193+
continue;
3194+
}
3195+
auto const& mftTrackCov = mftCovs.rawIteratorAt(mftTrackCovs[mftTrack.globalIndex()]);
31763196
// propagate global forward track to vertex using momentum rescaling method
31773197
auto candidateTrackAtVertex = propagateToVertexMft(mftTrack, mchTrack, collision);
3198+
auto candidateTrackAtPlaneZ2 = propagateToZMft(mftTrack, mftTrackCov, o2::mft::constants::mft::LayerZCoordinate()[9]);
31783199
qaMatchingCandidates(
31793200
reducedEventId,
31803201
reducedMchTrackId,
@@ -3183,13 +3204,18 @@ struct QaMatching {
31833204
static_cast<float>(candidateTrack.pt()),
31843205
static_cast<float>(candidateTrack.eta()),
31853206
static_cast<float>(candidateTrack.phi()),
3207+
static_cast<float>(candidateTrack.signed1Pt()),
3208+
static_cast<float>(candidateTrack.tgl()),
31863209
static_cast<int8_t>(candidate.matchType),
31873210
static_cast<float>(candidate.matchChi2),
31883211
static_cast<float>(candidate.matchScore),
31893212
static_cast<int32_t>(candidate.matchRanking),
31903213
static_cast<float>(candidateTrackAtVertex.getX()),
31913214
static_cast<float>(candidateTrackAtVertex.getY()),
31923215
static_cast<float>(candidateTrackAtVertex.getZ()),
3216+
static_cast<float>(candidateTrackAtPlaneZ2.getX()),
3217+
static_cast<float>(candidateTrackAtPlaneZ2.getY()),
3218+
static_cast<float>(candidateTrackAtPlaneZ2.getZ()),
31933219
static_cast<float>(candidateTrackAtVertex.getPx()),
31943220
static_cast<float>(candidateTrackAtVertex.getPy()),
31953221
static_cast<float>(candidateTrackAtVertex.getPz()));
@@ -3242,7 +3268,7 @@ struct QaMatching {
32423268
mftMchMatchAttempts = mchTrackInfoIt->second.compatMftTracks.size();
32433269
}
32443270
auto mchTrackAtVertex = VarManager::PropagateMuon(mchTrack, collision, VarManager::kToVertex);
3245-
auto mchTrackAtPlaneZ2 = propagateToZMch(mchTrackAtVertex, o2::mft::constants::mft::LayerZCoordinate()[9]);
3271+
auto mchTrackAtPlaneZ2 = propagateToZMch(mchTrack, o2::mft::constants::mft::LayerZCoordinate()[9]);
32463272
bool isTagged = false;
32473273
if (std::find(taggedMuons.begin(), taggedMuons.end(), mchIndex) != taggedMuons.end()) {
32483274
isTagged = true;
@@ -3254,6 +3280,8 @@ struct QaMatching {
32543280
static_cast<float>(mchTrack.pt()),
32553281
static_cast<float>(mchTrack.eta()),
32563282
static_cast<float>(mchTrack.phi()),
3283+
static_cast<float>(mchTrack.signed1Pt()),
3284+
static_cast<float>(mchTrack.tgl()),
32573285
static_cast<int32_t>(mftMchMatchAttempts),
32583286
isTagged,
32593287
static_cast<float>(mchTrackAtVertex.getX()),

0 commit comments

Comments
 (0)