90 int stationEta =
m_idHelperSvc -> stgcIdHelper().stationEta(
id);
91 int stationPhi =
m_idHelperSvc -> stgcIdHelper().stationPhi(
id);
92 int multiplet =
m_idHelperSvc -> stgcIdHelper().multilayer(
id);
94 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(
id);
96 std::string sectorStr = std::to_string(sector);
98 int layer =
getLayer(multiplet, gasGap);
99 int stationEtaAbs = std::abs(stationEta);
100 std::string layerStr = std::to_string(layer);
101 int iside = (stationEta > 0) ? 1 : 0;
103 std::string channelName =
"";
108 Identifier idPadQ1 =
m_idHelperSvc -> stgcIdHelper().channelID(stationName, 1, stationPhi, multiplet, gasGap, channelType, 1);
109 Identifier idPadQ2 =
m_idHelperSvc -> stgcIdHelper().channelID(stationName, 2, stationPhi, multiplet, gasGap, channelType, 1);
112 int maxPadNumberQ1 = sTgcReadoutObjectPadQ1 -> maxPadNumber(idPadQ1);
113 int maxPadNumberQ2 = sTgcReadoutObjectPadQ2 -> maxPadNumber(idPadQ2);
115 if (stationEtaAbs == 2) padNumber = padNumber + maxPadNumberQ1;
116 else if (stationEtaAbs == 3) padNumber = padNumber + maxPadNumberQ1 + maxPadNumberQ2;
123 fill(
"Occupancy", sectorMon, padNumberMon);
127 fill(
"Occupancy", layerMon, quadMon);
131 channelName =
"strip";
132 int stripNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
133 Identifier idStripQ1 =
m_idHelperSvc -> stgcIdHelper().channelID(stationName, 1, stationPhi, multiplet, gasGap, channelType, 1);
134 Identifier idStripQ2 =
m_idHelperSvc -> stgcIdHelper().channelID(stationName, 2, stationPhi, multiplet, gasGap, channelType, 1);
137 int maxStripNumberQ1 = sTgcReadoutObjectStripQ1 -> numberOfStrips(idStripQ1);
138 int maxStripNumberQ2 = sTgcReadoutObjectStripQ2 -> numberOfStrips(idStripQ2);
140 if (stationEtaAbs == 2) stripNumber = stripNumber + maxStripNumberQ1 + 1;
141 else if (stationEtaAbs == 3) stripNumber = stripNumber + maxStripNumberQ1 + maxStripNumberQ2 + 1;
148 fill(
"Occupancy", sectorMon, stripNumberMon);
152 fill(
"Occupancy", layerMon, quadMon);
156 channelName =
"wire";
157 int wireGroupNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
158 Identifier idWireGroupQ3 =
m_idHelperSvc -> stgcIdHelper().channelID(
"STL", 3, stationPhi, 1, 3, channelType, 1);
159 const MuonGM::sTgcReadoutElement* sTgcReadoutObjectWireGroupQ3 = muonDetectorManagerObject -> getsTgcReadoutElement(idWireGroupQ3);
160 int maxWireGroupNumberQ3 = sTgcReadoutObjectWireGroupQ3 -> numberOfStrips(idWireGroupQ3);
163 auto wireGroupNumberMon =
Monitored::Scalar<int>(
"wireGroupNumber_layer_" + layerStr, wireGroupNumber + (sector - 1)*maxWireGroupNumberQ3);
166 fill(
"Occupancy", stationEtaMon, wireGroupNumberMon);
170 fill(
"Occupancy", layerMon, quadMon);
176 fill(
"Occupancy", sectorMon, febMon);
177 fill(
"LBShifterGroup", lbMon, sectorMon);
228 if(!meTrack)
continue;
230 std::optional<std::tuple<Identifier, const Trk::RIO_OnTrack*>> status =
getRotIdAndRotObject(trkState);
231 if (!status.has_value())
continue;
232 std::tuple<Identifier, const Trk::RIO_OnTrack*> rotIDtuple = status.value();
234 Identifier rot_id = std::get<Identifier>(rotIDtuple);
237 if(!cluster)
continue;
243 if (!rdoEl)
continue;
247 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
248 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
249 int multi =
m_idHelperSvc -> stgcIdHelper().multilayer(rot_id);
254 int iside = (stEta > 0) ? 1 : 0;
256 std::string channelName =
"";
257 std::string sectorStr = std::to_string(sector);
259 std::string quadLabel =
"";
260 bool isInner =
false;
261 bool isQ1 = (std::abs(stEta) == 1);
263 isInner = rdoEl->
isEtaZero(rot_id, localPos);
264 quadLabel = isInner ?
"Q1Inner" :
"Q1Outer";
266 quadLabel =
"Q" + std::to_string(std::abs(stEta));
270 float padCharge = prd ->
charge();
271 auto padChargeMon =
Monitored::Scalar<float>(
"padTrackCharge_" + side +
"_quad_" + quadLabel +
"_sector_" + std::to_string(sector) +
"_layer_" + std::to_string(layer), padCharge);
272 fill(
"padCharge_" + side + std::to_string(sector) +
"_quad_" + quadLabel, padChargeMon);
274 short int padTiming = prd -> time();
275 auto padSectorSidedMon =
Monitored::Scalar<int>(
"padTrackSectorSided_layer_" + std::to_string(layer), sectorsTotal);
277 fill(
"sTgcTiming", padSectorSidedMon, padTimingMon);
279 auto padSectorSidedExpertMon =
Monitored::Scalar<int>(
"padTrackSectorSided_quad_" + std::to_string(std::abs(stEta)) +
"_layer_" + std::to_string(layer), sectorsTotal);
280 auto padTimingExpertMon =
Monitored::Scalar<float>(
"padTrackTiming_quad_" + std::to_string(std::abs(stEta)) +
"_layer_" + std::to_string(layer), padTiming);
281 fill(
"padTiming_quad_" + std::to_string(std::abs(stEta)), padSectorSidedExpertMon, padTimingExpertMon);
287 fill(
"sTgcTiming", timeMon, febMon);
291 channelName =
"strip";
292 const std::vector<Identifier>& stripIds = prd->
rdoList();
293 unsigned int csize = stripIds.size();
295 std::vector<short int> stripTimesVec = prd -> stripTimes();
296 std::vector<int> stripChargesVec = prd -> stripCharges();
298 float stripClusterTimes = 0;
299 float stripClusterCharges = 0;
301 for (
unsigned int sIdx = 0; sIdx < csize; ++sIdx) {
302 stripClusterTimes += stripTimesVec.at(sIdx);
303 stripClusterCharges += stripChargesVec.at(sIdx);
306 stripClusterTimes /= stripTimesVec.size();
308 auto stripClusterChargesPerSideQuadMon =
Monitored::Scalar<float>(
"stripTrackCharge_" + side +
"_quad_" + quadLabel +
"_sector_" + std::to_string(sector) +
"_layer_" + std::to_string(layer), stripClusterCharges);
309 fill(
"stripCharge_" + side + std::to_string(sector) +
"_quad_" + quadLabel, stripClusterChargesPerSideQuadMon);
312 auto stripClusterSectorSidedMon =
Monitored::Scalar<int>(
"stripTrackSectorSided_layer_" + std::to_string(layer), sectorsTotal);
313 auto stripClusterTimesMon =
Monitored::Scalar<float>(
"stripTrackTiming_layer_" + std::to_string(layer), stripClusterTimes);
315 fill(
"sTgcTiming", stripClusterSectorSidedMon, stripClusterTimesMon);
316 fill(
"padTriggerExpert", stripClusterSectorSidedMon, stripClusterSizeMon);
322 fill(
"sTgcTiming", timeMon, febMon);
325 auto stripSectorSidedExpertMon =
Monitored::Scalar<int>(
"stripTrackSectorSided_quad_" + std::to_string(std::abs(stEta)) +
"_layer_" + std::to_string(layer), sectorsTotal);
326 auto stripTimingExpertMon =
Monitored::Scalar<float>(
"stripTrackTiming_quad_" + std::to_string(std::abs(stEta)) +
"_layer_" + std::to_string(layer), stripClusterTimes);
327 fill(
"stripTiming_quad_" + std::to_string(std::abs(stEta)), stripSectorSidedExpertMon, stripTimingExpertMon);
333 float residual = resPull -> residual()[
Trk::locX];
334 auto residualMon =
Monitored::Scalar<float>(
"residual_" + side +
"_quad_" + std::to_string(std::abs(stEta)) +
"_sector_" + std::to_string(sector) +
"_layer_" + std::to_string(layer), residual);
335 fill(
"sTgcResiduals_" + side + std::to_string(sector) +
"_quad_" + std::to_string(std::abs(stEta)), residualMon);
340 float wireGroupCharge = prd ->
charge();
341 auto wireGroupChargeMon =
Monitored::Scalar<float>(
"wireGroupTrackCharge_" + side +
"_quad_" + std::to_string(std::abs(stEta)) +
"_sector_" + std::to_string(sector) +
"_layer_" + std::to_string(layer), wireGroupCharge);
342 fill(
"wireGroupCharge_" + side + std::to_string(sector) +
"_quad_" + std::to_string(std::abs(stEta)), wireGroupChargeMon);
344 short int wireGroupTiming = prd -> time();
345 auto wireGroupSectorSidedMon =
Monitored::Scalar<int>(
"wireGroupTrackSectorSided_layer_" + std::to_string(layer), sectorsTotal);
346 auto wireGroupTimingMon =
Monitored::Scalar<float>(
"wireGroupTrackTiming_layer_" + std::to_string(layer), wireGroupTiming);
347 fill(
"sTgcTiming", wireGroupSectorSidedMon, wireGroupTimingMon);
349 auto wireSectorSidedExpertMon =
Monitored::Scalar<int>(
"wireTrackSectorSided_quad_" + std::to_string(std::abs(stEta)) +
"_layer_" + std::to_string(layer), sectorsTotal);
350 auto wireTimingExpertMon =
Monitored::Scalar<float>(
"wireTrackTiming_quad_" + std::to_string(std::abs(stEta)) +
"_layer_" + std::to_string(layer), wireGroupTiming);
351 fill(
"wireTiming_quad_" + std::to_string(std::abs(stEta)), wireSectorSidedExpertMon, wireTimingExpertMon);
357 fill(
"sTgcTiming", timeMon, febMon);
367 bool sideA = rdo -> sideA();
368 bool largeSector = rdo -> largeSector();
370 int iside = (sideA) ? 1 : 0;
371 int isize = (largeSector) ? 1 : 0;
376 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
377 size_t numberOfHits = rdo -> getNumberOfHits();
379 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
380 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
381 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
382 int triggerRelBCID = rdo -> getTriggerRelBcids().at(trigger);
383 int sourceId = rdo -> getSourceid();
392 fill(
"padTriggerExpert", phiIdsPerSideSizeMon, bandIdsPerSideSizeMon);
398 fill(
"Overview", lbMon, sectorMon, numberOfTriggersMon);
399 fill(
"padTriggerExpert", lbMon, relBCIDMon);
401 auto numberOfTriggersPerSectorMon =
Monitored::Scalar<int>(
"numberOfTriggers_" + side +
"_sector_" + std::to_string(std::abs(sectorNumber)), numberOfTriggers);
402 auto phiIdsSidedSizedPerSectorMon =
Monitored::Scalar<int>(
"phiIds_" + side +
"_sector_" + std::to_string(std::abs(sectorNumber)), triggerPhiIds);
403 auto bandIdsSidedSizedPerSectorMon =
Monitored::Scalar<int>(
"bandIds_" + side +
"_sector_" + std::to_string(std::abs(sectorNumber)), triggerBandIds);
404 auto lbPerSectorMon =
Monitored::Scalar<int>(
"lb_" + side +
"_sector_" + std::to_string(std::abs(sectorNumber)),
lb);
405 auto relBCIDperSectorMon =
Monitored::Scalar<int>(
"relBCID_" + side +
"_sector_" + std::to_string(std::abs(sectorNumber)), triggerRelBCID);
406 fill(
"padTriggerExpert", numberOfTriggersPerSectorMon, phiIdsSidedSizedPerSectorMon, bandIdsSidedSizedPerSectorMon, lbPerSectorMon, relBCIDperSectorMon);
408 auto RelBCIDPerSectorMon =
Monitored::Scalar<int>(
"relBCID_"+ side +
"_sector_" + std::to_string(std::abs(sectorNumber)), triggerRelBCID);
409 auto PhiIDPerSectorMon =
Monitored::Scalar<int>(
"phiIds_" + side +
"_sector_" + std::to_string(std::abs(sectorNumber)), triggerPhiIds);
410 auto BandIDPerSectorMon =
Monitored::Scalar<int>(
"bandID_" + side +
"_sector_" + std::to_string(std::abs(sectorNumber)), triggerBandIds);
411 fill(
"padTriggerExpert", RelBCIDPerSectorMon, PhiIDPerSectorMon, BandIDPerSectorMon);
414 for (
size_t hits = 0; hits < numberOfHits; ++hits){
415 std::optional<Identifier> status =
getPadId(rdo->getSourceid(), rdo->getHitPfebs().at(hits), rdo->getHitTdsChannels().at(hits));
416 if (!status.has_value())
continue;
420 if(mu -> pt() <
m_cutPt)
continue;
421 if(!(mu -> author() == xAOD::Muon::Author::MuidCo || mu -> author() == xAOD::Muon::Author::MuidSA))
continue;
423 const xAOD::TrackParticle* meTP = mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
424 if(meTP ==
nullptr)
continue;
427 if(!meTrack)
continue;
430 std::optional<Identifier> status =
getRotId(trkState);
431 if (!status.has_value())
continue;
434 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
438 if (rot_id != pad_id)
continue;
440 int sourceIds = rdo -> getSourceid();
442 int hitRelBCID = rdo -> getHitRelBcids().at(hits);
443 int hitpfebs = rdo -> getHitPfebs().at(hits);
444 int hitTdsChannels = rdo->getHitTdsChannels().at(hits);
446 std::optional<std::tuple<int, int, std::string, std::string, int>> statusPadEtaPhi =
getPadEtaPhiTuple(sourceIds, hitpfebs, hitTdsChannels);
447 if (!statusPadEtaPhi.has_value())
continue;
448 std::tuple<int, int, std::string, std::string, int> padEtaPhiTuple = statusPadEtaPhi.value();
450 int padPhi = std::get<0>(padEtaPhiTuple);
451 int padEta = std::get<1>(padEtaPhiTuple);
452 std::string sideName = std::get<2>(padEtaPhiTuple);
453 std::string sizeName = std::get<3>(padEtaPhiTuple);
454 int layer = std::get<4>(padEtaPhiTuple);
456 auto padPhiMon =
Monitored::Scalar<int>(
"padPhi_" + sideName +
"_" + sizeName +
"_layer_" + std::to_string(layer), padPhi);
457 auto padEtaMon =
Monitored::Scalar<int>(
"padEta_" + sideName +
"_" + sizeName +
"_layer_" + std::to_string(layer), padEta);
458 fill(
"padTriggerOccupancy", padPhiMon, padEtaMon);
463 fill(
"padTriggerExpert", hitRelBCIDmon, hitPfebsMon, sectorMon);
465 auto hitRelBCIDPerSectorMon =
Monitored::Scalar<int>(
"hitRelBCID_"+side+
"_sector_"+std::to_string(std::abs(sectorNumbers)), hitRelBCID);
466 auto hitpfebsPerSectorMon =
Monitored::Scalar<int>(
"hitPfebs_"+side+
"_sector_"+std::to_string(std::abs(sectorNumbers)), hitpfebs);
467 fill(
"padTriggerExpert", hitRelBCIDPerSectorMon, hitpfebsPerSectorMon);
478 if (mu -> pt() <
m_cutPt)
continue;
479 if (!(mu -> author() == xAOD::Muon::Author::MuidCo || mu -> author() == xAOD::Muon::Author::MuidSA))
continue;
482 std::array<int, 8> quadMultiplet{};
483 std::array<int, 8> layerMultiplet{};
484 std::array<float, 8> xPosMultiplet{};
485 std::array<float, 8> yPosMultiplet{};
486 std::array<float, 8> zPosMultiplet{};
489 std::array<std::array<sTGCeff, 16>, 2> effPlots;
491 const xAOD::TrackParticle* meTP = mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
492 if(meTP ==
nullptr)
continue;
495 if(!meTrack)
continue;
498 std::optional<Identifier> status =
getRotId(trkState);
499 if (!status.has_value())
continue;
503 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
506 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
507 int iside = (stEta > 0) ? 1 : 0;
509 int multi =
m_idHelperSvc -> stgcIdHelper().multilayer(rot_id);
513 const Amg::Vector2D& positionsMultiplet = (trkState) -> trackParameters() -> localPosition();
514 float xPosStripInMultipletLocal = positionsMultiplet.x();
515 float yPosStripInMultipletLocal = positionsMultiplet.y();
517 Amg::Vector2D localPos(xPosStripInMultipletLocal, yPosStripInMultipletLocal);
520 sTgcReadoutObjectStrip -> surface(rot_id).localToGlobal(localPos, Amg::Vector3D::Zero(), globalPos);
521 float xPosStripInMultiplet = globalPos.x();
522 float yPosStripInMultiplet = globalPos.y();
525 (muonDetectorManagerObject -> getsTgcReadoutElement(rot_id)) -> stripGlobalPosition(rot_id, posStripGlobal);
526 float zPosStripInMultiplet = posStripGlobal.z();
528 auto& sTGCelements = effPlots[iside][sector - 1];
530 sTGCelements.quadMultiplet.at(layer - 1) = stEta;
531 sTGCelements.layerMultiplet.at(layer - 1) = layer;
532 sTGCelements.xPosMultiplet.at(layer - 1) = xPosStripInMultiplet;
533 sTGCelements.yPosMultiplet.at(layer - 1) = yPosStripInMultiplet;
534 sTGCelements.zPosMultiplet.at(layer - 1) = zPosStripInMultiplet;
537 for (
unsigned int isideIndex = 0; isideIndex <= 1; ++isideIndex) {
538 for (
unsigned int sectorIndex = 1; sectorIndex <= 16; ++sectorIndex) {
539 auto& sTGCelements = effPlots[isideIndex][sectorIndex - 1];
540 bool fourOutEight = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 4;
541 bool oneRefLayer = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 1;
544 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
545 if (sTGCelements.layerMultiplet.at(layerIndex - 1) == 0)
continue;
547 float xPos = sTGCelements.xPosMultiplet.at(layerIndex - 1);
548 float yPos = sTGCelements.yPosMultiplet.at(layerIndex - 1);
549 float rPos = std::hypot(xPos, yPos);
554 auto rPosStripMon =
Monitored::Scalar<float>(
"rPosStrip_" + side +
"_sector_" + std::to_string(sectorIndex) +
"_layer_" + std::to_string(layerIndex), rPos);
555 fill(
"rPosStrip_" + side + std::to_string(sectorIndex), rPosStripMon, effQuestionMon);
560 fill(
"padTriggerShifter", xPosStripmon, yPosStripmon, effQuestionMon);
565 else if (!fourOutEight && oneRefLayer) {
566 auto refLayerIndex = std::distance(sTGCelements.layerMultiplet.begin(), std::find_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) {return i != 0;}));
568 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
569 if (sTGCelements.layerMultiplet.at(layerIndex - 1) != 0)
continue;
570 int quad = sTGCelements.quadMultiplet.at(refLayerIndex);
571 int multi = (layerIndex <= static_cast<std::array<int, 8>::size_type>(
m_idHelperSvc->stgcIdHelper().gasGapMax())) ?
m_idHelperSvc->stgcIdHelper().multilayerMin() :
m_idHelperSvc->stgcIdHelper().multilayerMax();
572 int gap = (layerIndex <= static_cast<std::array<int, 8>::size_type>(
m_idHelperSvc->stgcIdHelper().gasGapMax())) ? layerIndex : layerIndex -
static_cast<std::array<int, 8>::size_type
>(
m_idHelperSvc->stgcIdHelper().gasGapMax());
583 (muonDetectorManagerObject -> getsTgcReadoutElement(idProbe)) -> stripGlobalPosition(idProbe, posProbe);
584 float posZprobe = posProbe.z();
586 float xSlope = sTGCelements.xPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
587 float ySlope = sTGCelements.yPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
589 float xPos = sTGCelements.xPosMultiplet.at(refLayerIndex) + xSlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
590 float yPos = sTGCelements.yPosMultiplet.at(refLayerIndex) + ySlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
591 float rPos = std::hypot(xPos, yPos);
597 auto rPosStripProbemon =
Monitored::Scalar<float>(
"rPosStrip_" + side +
"_sector_" + std::to_string(sectorIndex) +
"_layer_" + std::to_string(layerIndex), rPos);
598 fill(
"rPosStrip_" + side + std::to_string(sectorIndex), rPosStripProbemon, effQuestionMon);
600 auto xPosStripProbemon =
Monitored::Scalar<float>(
"xPosStrip_" + side +
"_layer_" + std::to_string(layerIndex), xPos);
601 auto yPosStripProbemon =
Monitored::Scalar<float>(
"yPosStrip_" + side +
"_layer_" + std::to_string(layerIndex), yPos);
602 fill(
"padTriggerShifter", xPosStripProbemon, yPosStripProbemon, effQuestionMon);
614 if (!(mu -> author() == xAOD::Muon::Author::MuidCo || mu -> author() == xAOD::Muon::Author::MuidSA))
continue;
615 if (mu -> pt() <
m_cutPt)
continue;
618 double recoMuonEta = mu ->
eta();
619 double recoMuonPhi = mu ->
phi();
623 std::string minSideRecoMuon =
"", minSideTrigger =
"";
625 double minTriggerEta = 999., minTriggerPhi = 999.,
626 minRecoEta = 999., minRecoPhi = 999., minDeltaR = 999.;
628 auto minDeltaRtrigIt = -1;
631 bool sideA = rdo -> sideA();
632 bool largeSector = rdo -> largeSector();
634 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
636 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
637 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
638 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
639 int sourceId = rdo -> getSourceid();
644 std::optional<double> status =
bandId2eta(triggerBandIds, largeSector, sideA, muonDetectorManagerObject);
645 if (!status.has_value())
continue;
646 double triggerBandIdToEta = status.value();
652 if (sideRecoMuon == sideTrigger) {
654 minSideRecoMuon = sideRecoMuon;
655 minSideTrigger = sideTrigger;
656 minTriggerEta = triggerBandIdToEta;
657 minTriggerPhi = triggerPhiIDtoPhi;
658 minRecoEta = recoMuonEta;
659 minRecoPhi = recoMuonPhi;
661 minDeltaRtrigIt = trigger;
667 bool muonRecoTriggerMatch =
false;
669 if (minDeltaRtrigIt != -1) {
671 muonRecoTriggerMatch =
true;
676 fill(
"Overview", deltaRmon);
680 fill(
"Overview", etaRecoMuonMon, phiRecoMuonMon);
684 fill(
"Overview", etaPadTriggerMon, phiPadTriggerMon);
688 fill(
"Overview", phiRecoMuonSidedMon, phiPadTriggerSidedMon);
693 fill(
"Overview", muonRecoTriggerMatchMon, etaRecoMuonEffMon, phiRecoMuonEffMon);