Skip to content

Commit 2c771d5

Browse files
authored
[PWGDQ] Adding cut for removable realigned muons (#11097)
1 parent c459d71 commit 2c771d5

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

PWGDQ/TableProducer/tableMaker.cxx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1120,6 +1120,7 @@ struct TableMaker {
11201120
for (const auto& muonId : fwdtrackIndices) { // start loop over tracks
11211121
auto muon = muonId.template fwdtrack_as<TMuons>();
11221122
trackFilteringTag = static_cast<uint64_t>(0);
1123+
int realignRemoveFlag = 0;
11231124
if constexpr (static_cast<bool>(TMuonRealignFillMap)) {
11241125
// Update muon information using realigned tracks
11251126
if (static_cast<int>(muon.trackType()) > 2) {
@@ -1128,6 +1129,7 @@ struct TableMaker {
11281129
if (muonRealignSelected.size() == 1) {
11291130
for (const auto& muonRealign : muonRealignSelected) {
11301131
VarManager::FillTrack<TMuonRealignFillMap>(muonRealign);
1132+
realignRemoveFlag = muonRealign.isRemovable();
11311133
}
11321134
} else {
11331135
LOGF(fatal, "Inconsistent size of realigned muon track candidates.");
@@ -1151,7 +1153,7 @@ struct TableMaker {
11511153
trackTempFilterMap |= (uint8_t(1) << i);
11521154
}
11531155

1154-
if (!trackTempFilterMap) { // does not pass the cuts
1156+
if (!trackTempFilterMap || realignRemoveFlag) { // does not pass the cuts
11551157
nDel++;
11561158
} else { // it passes the cuts and will be saved in the tables
11571159
newEntryNb[muon.index()] = muon.index() - nDel;
@@ -1174,11 +1176,13 @@ struct TableMaker {
11741176
if (static_cast<int>(muon.trackType()) > 2) {
11751177
// Update only MCH or MCH-MID tracks with realigned information
11761178
auto muonRealignSelected = tracksMuonRealign.sliceBy(fwdtrackRealignPerMuon, muonId.fwdtrackId());
1179+
int realignRemoveFlag = 0;
11771180
if (muonRealignSelected.size() == 1) {
11781181
for (const auto& muonRealign : muonRealignSelected) {
11791182
LOGF(debug, "Muon original - collisionId:%d x:%g y:%g z:%g phi:%g tgl:%g signed1pt:%g pt:%g p:%g eta:%g chi2:%g", muon.collisionId(), muon.x(), muon.y(), muon.z(), muon.phi(), muon.tgl(), muon.signed1Pt(), muon.pt(), muon.p(), muon.eta(), muon.chi2());
11801183
LOGF(debug, "Muon realigned - collisionId:%d x:%g y:%g z:%g phi:%g tgl:%g signed1pt:%g pt:%g p:%g eta:%g chi2:%g", muonRealign.collisionId(), muonRealign.x(), muonRealign.y(), muonRealign.z(), muonRealign.phi(), muonRealign.tgl(), muonRealign.signed1Pt(), muonRealign.pt(), muonRealign.p(), muonRealign.eta(), muonRealign.chi2());
11811184
VarManager::FillTrack<TMuonRealignFillMap>(muonRealign);
1185+
realignRemoveFlag = muonRealign.isRemovable();
11821186

11831187
// recalculte pDca for global muon tracks
11841188
VarManager::FillTrackCollision<TMuonRealignFillMap>(muonRealign, collision);
@@ -1187,6 +1191,11 @@ struct TableMaker {
11871191
VarManager::FillPropagateMuon<TMuonRealignFillMap>(muonRealign, collision);
11881192
}
11891193
}
1194+
1195+
if (realignRemoveFlag) {
1196+
continue;
1197+
}
1198+
11901199
} else {
11911200
LOGF(fatal, "Inconsistent size of realigned muon track candidates.");
11921201
}

PWGDQ/TableProducer/tableMaker_withAssoc.cxx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ struct TableMaker {
261261
o2::parameters::GRPObject* fGrpMagRun2 = nullptr; // for run 2, we access the GRPObject from GLO/GRP/GRP
262262
o2::parameters::GRPMagField* fGrpMag = nullptr; // for run 3, we access GRPMagField from GLO/Config/GRPMagField
263263

264-
AnalysisCompositeCut* fEventCut; //! Event selection cut
264+
AnalysisCompositeCut* fEventCut; //! Event selection cut
265265
std::vector<AnalysisCompositeCut*> fTrackCuts; //! Barrel track cuts
266266
std::vector<AnalysisCompositeCut*> fMuonCuts; //! Muon track cuts
267267

@@ -400,7 +400,7 @@ struct TableMaker {
400400
}
401401
}
402402

403-
DefineHistograms(histClasses); // define all histograms
403+
DefineHistograms(histClasses); // define all histograms
404404
// Additional histogram via the JSON configurable
405405
TString addHistsStr = fConfigHistOutput.fConfigAddJSONHistograms.value;
406406
if (fConfigHistOutput.fConfigQA && addHistsStr != "") {
@@ -1160,17 +1160,24 @@ struct TableMaker {
11601160
if (static_cast<int>(muon.trackType()) > 2) {
11611161
// refill kinematic info and recalculate propagation in case of using realigned muons
11621162
auto muonRealignSelected = muonsRealign.sliceBy(fwdtrackRealignPerMuon, assoc.fwdtrackId());
1163+
int realignRemoveFlag = 0;
11631164
if (muonRealignSelected.size() == 1) {
11641165
for (const auto& muonRealign : muonRealignSelected) {
11651166
// refill muon information with realigned tracks
11661167
VarManager::FillTrack<TMuonRealignFillMap>(muonRealign);
1168+
realignRemoveFlag = muonRealign.isRemovable();
11671169

11681170
if (fConfigVariousOptions.fPropMuon) {
11691171
VarManager::FillPropagateMuon<TMuonRealignFillMap>(muonRealign, collision);
11701172
}
11711173

11721174
VarManager::FillTrackCollision<TMuonRealignFillMap>(muonRealign, collision);
11731175
}
1176+
1177+
if (realignRemoveFlag) {
1178+
continue;
1179+
}
1180+
11741181
} else {
11751182
LOGF(fatal, "Inconsistent size of realigned muon track candidates.");
11761183
}
@@ -1260,17 +1267,24 @@ struct TableMaker {
12601267
if (static_cast<int>(muon.trackType()) > 2) {
12611268
// refill kinematic info and recalculate propagation in case of using realigned muons
12621269
auto muonRealignSelected = muonsRealign.sliceBy(fwdtrackRealignPerMuon, muon.globalIndex());
1270+
int realignRemoveFlag = 0;
12631271
if (muonRealignSelected.size() == 1) {
12641272
for (const auto& muonRealign : muonRealignSelected) {
12651273
// refill muon information with realigned tracks
12661274
VarManager::FillTrack<TMuonRealignFillMap>(muonRealign);
1275+
realignRemoveFlag = muonRealign.isRemovable();
12671276

12681277
if (fConfigVariousOptions.fPropMuon) {
12691278
VarManager::FillPropagateMuon<TMuonRealignFillMap>(muonRealign, collision);
12701279
}
12711280

12721281
VarManager::FillTrackCollision<TMuonRealignFillMap>(muonRealign, collision);
12731282
}
1283+
1284+
if (realignRemoveFlag) {
1285+
continue;
1286+
}
1287+
12741288
} else {
12751289
LOGF(fatal, "Inconsistent size of realigned muon track candidates.");
12761290
}

0 commit comments

Comments
 (0)