140 static const std::map<int,std::string> theMuonCategories = {
155 std::string categoryPath = muonContainerName +
"/" + category +
"/";
163 if (category ==
"All") {
178 std::make_unique<MuonTrackValidationPlots>(
nullptr, categoryPath,
"MSOnlyMETrackParticles",
m_isData));
183 std::make_unique<MuonTrackValidationPlots>(
nullptr, categoryPath,
"IDSelectedTrackParticles",
m_isData));
187 std::make_unique<MuonTrackValidationPlots>(
nullptr, categoryPath,
"IDForwardTrackParticles",
m_isData));
190 if (category != theMuonCategories.at(
ALL))
continue;
199 m_oUnmatchedRecoMuonPlots = std::make_unique<Muon::RecoMuonPlotOrganizer>(
nullptr, muonContainerName +
"/UnmatchedRecoMuons/");
200 m_oUnmatchedTruthMuonPlots = std::make_unique<Muon::TruthMuonPlotOrganizer>(
nullptr, muonContainerName +
"/UnmatchedTruthMuons/");
220 m_h_overview_Z_mass =
new TH1F(Form(
"%s_Overview_Z_mass", muonContainerName.c_str()),
"", 20, 76, 106);
222 m_h_overview_Z_mass_ME =
new TH1F(Form(
"%s_Overview_Z_mass_ME", muonContainerName.c_str()),
"", 20, 76, 106);
224 m_h_overview_Z_mass_ID =
new TH1F(Form(
"%s_Overview_Z_mass_ID", muonContainerName.c_str()),
"", 20, 76, 106);
228 m_h_overview_nObjects.emplace_back(
new TH1F(Form(
"%s_Overview_N_perevent_truth_muons", muonContainerName.c_str()),
229 "Number of truth Muons per event", 20, -0.5, 19.5));
231 new TH1F(Form(
"%s_Overview_N_perevent_muons", muonContainerName.c_str()),
"Number of Muons per event", 20, -0.5, 19.5));
233 new TH1F(Form(
"%s_Overview_N_perevent_tracks", muonContainerName.c_str()),
"Number of Tracks per event", 50, -0.5, 49.5));
234 m_h_overview_nObjects.emplace_back(
new TH1F(Form(
"%s_Overview_N_perevent_truth_segments", muonContainerName.c_str()),
235 "Number of truth Segments per event", 200, -0.5, 199.5));
237 new TH1F(Form(
"%s_Overview_N_perevent_segments", muonContainerName.c_str()),
"Number of Segments per event", 200, -0.5, 199.5));
243 new TH1F(Form(
"%s_Overview_reco_category", muonContainerName.c_str()),
"", 4, 0, 4);
244 for (
int i = 1; i < 4; i++) {
250 int nAuth = xAOD::Muon::NumberOfMuonAuthors;
251 for (
int i = 1; i < 4; i++) {
252 m_h_overview_reco_authors.emplace_back(
new TH1F((muonContainerName +
"_" + theMuonCategories.at(i) +
"_reco_authors").c_str(),
253 (muonContainerName +
"_" + theMuonCategories.at(i) +
"_reco_authors").c_str(),
254 nAuth + 1, -0.5, nAuth + 0.5));
257 (muonContainerName +
"_Other_reco_authors").c_str(), nAuth + 1, -0.5, nAuth + 0.5));
263 return StatusCode::SUCCESS;
319 const EventContext& ctx{Gaudi::Hive::currentContext()};
352 std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > pairs;
362 pairs.emplace_back(std::make_pair(mu1, mu2));
367 float dMmin {1e10}, mZ{0.};
368 for (std::pair<const xAOD::Muon*, const xAOD::Muon*>&
x : pairs) {
370 const TLorentzVector mu1{
x.first->p4()}, mu2{
x.second->p4()};
371 const float M = (mu1 + mu2).M();
372 if (M < 66000. || M > 116000.)
continue;
375 float dM = std::abs(M - 91187.);
376 if (dM > dMmin)
continue;
390 if (metr1 && metr2) {
391 const TLorentzVector mu1ME{metr1->
p4()}, mu2ME{metr2->
p4()};
403 const TLorentzVector mu1ID{tr1->
p4()}, mu2ID{tr2->
p4()};
414 for (
const auto truthMu : *TruthMuons)
handleTruthMuon(truthMu, beamSpotWeight);
418 for (
const auto smu : *SlowMuons) {
420 const MuonLink link = smu->muonLink();
435 for (
const auto tp : *IDTracks)
handleMuonTrack(tp, xAOD::Muon::InnerDetectorTrackParticle, beamSpotWeight);
441 for (
const auto tp : *FwdIDTracks)
handleMuonTrack(tp, xAOD::Muon::InnerDetectorTrackParticle, beamSpotWeight);
448 for (
const auto tp : *MuonTracks)
handleMuonTrack(tp, xAOD::Muon::MuonSpectrometerTrackParticle, beamSpotWeight);
452 if (MuonExtrapolatedTracks) {
454 for (
const auto tp : *MuonExtrapolatedTracks)
455 handleMuonTrack(tp, xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle, beamSpotWeight);
460 if (MSOnlyMuonExtrapolatedTracks) {
462 for (
const auto tp : *MSOnlyMuonExtrapolatedTracks)
463 handleMuonTrack(tp, xAOD::Muon::MSOnlyExtrapolatedMuonSpectrometerTrackParticle, beamSpotWeight);
468 if (TruthMuonSegments) {
471 for (
const auto truthMuSeg : *TruthMuonSegments)
handleTruthMuonSegment(truthMuSeg, TruthMuons, beamSpotWeight);
484 auto chainGroups =
m_trigDec->getChainGroup(
"HLT_.*mu.*");
485 for (
auto& trig : chainGroups->getListOfTriggers()) {
491 auto L1chainGroups =
m_trigDec->getChainGroup(
"L1_MU.*");
492 for (
auto& L1trig : L1chainGroups->getListOfTriggers()) {
500 if (mu->author() == 1) {
502 ATH_MSG_DEBUG(
"##### m_vRecoMuons_EffDen_CB pt:" << mu->pt() <<
" phi:" << mu->phi() <<
" eta:" << mu->eta());
503 }
else if (mu->author() == 5) {
505 ATH_MSG_DEBUG(
"##### m_vRecoMuons_EffDen_MS pt:" << mu->pt() <<
" phi:" << mu->phi() <<
" eta:" << mu->eta());
524 if (L2SAMuons->
size() != 0) {
525 for (
const auto L2SAmu : *L2SAMuons) {
526 ATH_MSG_DEBUG(
"Muon L2SA Trigger: pt " << L2SAmu->pt() <<
" phi " << L2SAmu->phi() <<
" eta " << L2SAmu->eta()
527 <<
" roiWord " << L2SAmu->roiWord() <<
" sAddress " << L2SAmu->sAddress());
531 if (mu->pt() != 0.) {
536 for (
unsigned int i = 0; i <
m_vL2SAMuons.size(); i++) {
537 unsigned int cont = 0;
551 std::vector<Trig::Feature<xAOD::L2StandAloneMuonContainer> > vec_muons;
552 TString muonItem_str = (TString)muonItem;
553 if (muonItem_str.Contains(
"_OR_")) {
554 muonItem_str.ReplaceAll(
"_OR_",
" ");
556 std::vector<TString> v_subchains;
558 for (
int i = 0; i < (int)v_subchains.size(); i++) {
560 std::vector<Trig::Feature<xAOD::L2StandAloneMuonContainer> > vec_muons_1 =
562 for (
const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
568 ATH_MSG_DEBUG(
"Size of vector Trig::Feature<xAOD::L2StandAloneMuonContainer> for chain " << muonItem <<
" = "
569 << vec_muons.size());
570 for (
const auto& mufeat : vec_muons) {
571 ATH_MSG_DEBUG(muonItem <<
" vec_muons.size() = " << vec_muons.size()
572 <<
" mufeat.cptr()->size() = " << mufeat.cptr()->size());
573 for (
unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
574 ATH_MSG_DEBUG(
"#####" << muonItem <<
" L2SA feature pt: " << (*mufeat.cptr())[i]->pt()
575 <<
" eta: " << (*mufeat.cptr())[i]->eta() <<
" phi: " << (*mufeat.cptr())[i]->phi());
585 if (L2CBMuons->
size() != 0) {
586 for (
const auto L2CBmu : *L2CBMuons) {
587 ATH_MSG_DEBUG(
"Muon L2CB Trigger: pt " << L2CBmu->pt() <<
" phi " << L2CBmu->phi() <<
" eta " << L2CBmu->eta());
590 for (
unsigned int i = 0; i <
m_vL2CBMuons.size(); i++) {
596 for (
unsigned int i = 0; i <
m_vL2CBMuons.size(); i++) {
597 unsigned int cont = 0;
611 std::vector<Trig::Feature<xAOD::L2CombinedMuonContainer> > vec_muons;
612 TString muonItem_str = (TString)muonItem;
613 if (muonItem_str.Contains(
"_OR_")) {
614 muonItem_str.ReplaceAll(
"_OR_",
" ");
616 std::vector<TString> v_subchains;
618 for (
int i = 0; i < (int)v_subchains.size(); i++) {
620 std::vector<Trig::Feature<xAOD::L2CombinedMuonContainer> > vec_muons_1 =
622 for (
const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
628 ATH_MSG_DEBUG(
"Size of vector Trig::Feature<xAOD::L2CombinedMuonContainer> for chain " << muonItem <<
" = "
629 << vec_muons.size());
630 for (
const auto& mufeat : vec_muons) {
631 ATH_MSG_DEBUG(muonItem <<
" vec_muons.size() = " << vec_muons.size()
632 <<
" mufeat.cptr()->size() = " << mufeat.cptr()->size());
633 for (
unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
634 ATH_MSG_DEBUG(
"#####" << muonItem <<
" L2CB feature pt: " << (*mufeat.cptr())[i]->pt()
635 <<
" eta: " << (*mufeat.cptr())[i]->eta() <<
" phi: " << (*mufeat.cptr())[i]->phi());
648 if (EFCombTrigMuons->
size() != 0) {
649 for (
const auto Trigmu : *EFCombTrigMuons) {
650 ATH_MSG_DEBUG(
"Muon EF Trigger: pt " << Trigmu->pt() <<
" phi " << Trigmu->phi() <<
" eta " << Trigmu->eta()
651 <<
" author" << Trigmu->author());
655 for (
unsigned int i = 0; i <
m_vEFMuons.size(); i++) {
656 unsigned int cont = 0;
671 for (
const auto truthMu : *TruthMuons) {
672 ATH_MSG_DEBUG(
"TRUTH:: pt=" << truthMu->pt() <<
" eta=" << truthMu->eta() <<
" phi=" << truthMu->phi());
680 if ((muonItem.find(
"msonly") != std::string::npos)) {
684 std::vector<Trig::Feature<xAOD::MuonContainer> > vec_muons;
685 TString muonItem_str = (TString)muonItem;
686 if (muonItem_str.Contains(
"_OR_")) {
687 muonItem_str.ReplaceAll(
"_OR_",
" ");
689 std::vector<TString> v_subchains;
691 for (
int i = 0; i < (int)v_subchains.size(); i++) {
694 for (
const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
700 ATH_MSG_DEBUG(
"Size of vector Trig::Feature<xAOD::MuonContainer> for chain " << muonItem <<
" = " << vec_muons.size());
701 for (
const auto& mufeat : vec_muons) {
702 ATH_MSG_DEBUG(muonItem <<
" vec_muons.size() = " << vec_muons.size()
703 <<
" mufeat.cptr()->size() = " << mufeat.cptr()->size());
704 for (
unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
705 ATH_MSG_DEBUG(
"#####" << muonItem <<
" EF feature pt: " << (*mufeat.cptr())[i]->pt()
706 <<
" eta: " << (*mufeat.cptr())[i]->eta() <<
" phi: " << (*mufeat.cptr())[i]->phi()
707 <<
" author: " << (*mufeat.cptr())[i]->author());
717 bool break_flag =
false;
723 for (
const auto& mufeat : vec_muons) {
724 for (
unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
733 << muonItem <<
" pt: " << (*mufeat.cptr())[i]->pt()
734 <<
" eta: " << (*mufeat.cptr())[i]->eta() <<
" phi: " << (*mufeat.cptr())[i]->phi()
735 <<
" author: " << (*mufeat.cptr())[i]->author() <<
" rel_p "
749 if (break_flag)
break;
758 if (L1MuonItem ==
"L1_MU4")
threshold = 4000;
759 else if (L1MuonItem ==
"L1_MU6")
threshold = 6000;
760 else if (L1MuonItem ==
"L1_MU10")
threshold = 10000;
761 else if (L1MuonItem ==
"L1_MU11")
threshold = 11000;
762 else if (L1MuonItem ==
"L1_MU15")
threshold = 15000;
763 else if (L1MuonItem ==
"L1_MU20")
threshold = 20000;
764 for (
const auto TrigL1mu : *L1TrigMuons) {
778 for (
const auto TrigL1mu : *L1TrigMuons) {
779 if (((TrigL1mu->thrValue()) >=
threshold) &&
786 ATH_MSG_DEBUG(
" $$$ L1 feature " << L1MuonItem <<
" pt: " << TrigL1mu->thrValue()
787 <<
" eta: " << TrigL1mu->eta() <<
" phi: " << TrigL1mu->phi());
799 for (
unsigned int m = 0; m <
m_muonItems.size(); m++) {
800 std::vector<Trig::Feature<xAOD::MuonContainer> > vec_muons;
802 if (muonItem_str.Contains(
"_OR_")) {
803 muonItem_str.ReplaceAll(
"_OR_",
" ");
805 std::vector<TString> v_subchains;
807 for (
int i = 0; i < (int)v_subchains.size(); i++) {
810 for (
const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
830 bool break_flag =
false;
831 for (
const auto TrigL1mu : *L1TrigMuons) {
832 if (((TrigL1mu->thrValue()) >=
threshold) &&
840 for (
const auto& mufeat : vec_muons) {
841 for (
unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
854 if (break_flag)
break;
863 return StatusCode::SUCCESS;
1433 std::string histname = hist->GetName();
1436 if (histname.find(
"parameters_z0") != std::string::npos) {
1437 hist->GetXaxis()->Set(80, -200., 200.);
1439 if (histname.find(
"parameters_d0") != std::string::npos && histname.find(
"parameters_d0_small") == std::string::npos) {
1440 hist->GetXaxis()->Set(80, -1., 1.);
1441 hist->GetYaxis()->SetTitle(
"Entries / 0.025 mm");
1444 if (histname.find(
"parameters_d0") != std::string::npos && histname.find(
"parameters_d0_small") == std::string::npos) {
1446 hist->GetYaxis()->SetTitle(
"Entries / 2.5 mm");
1451 if (histname.find(
"trigger_L1_pt") != std::string::npos) {
1452 hist->SetTitle(
"L1Trigger Muons pt threshold");
1453 hist->GetXaxis()->SetTitle(
"L1Trigger Muons pt threshold [GeV]");
1454 hist->GetXaxis()->Set(30, -0.5, 29.5);
1456 if (histname.find(
"trigger_L1_eta_pt") != std::string::npos) {
1457 hist->SetTitle(
"L1Trigger Muons pt threshold vs eta");
1458 hist->GetYaxis()->Set(90, -0.5, 29.5);
1459 hist->GetYaxis()->SetTitle(
"L1Trigger Muons pt threshold [GeV]");
1462 if (histname.find(
"trigger") != std::string::npos &&
1463 ((histname.find(
"Denom_pt") != std::string::npos) || (histname.find(
"Numer_pt") != std::string::npos) ||
1464 (histname.find(
"Features_pt") != std::string::npos)))
1465 hist->GetXaxis()->Set(200, 0., 200.);
1467 if (histname.find(
"hits") != std::string::npos) {
1468 if (histname.find(
"etaLayer2") != std::string::npos)
1469 hist->GetXaxis()->Set(15, -0.5, 14.5);
1470 else if (histname.find(
"etaLayer") != std::string::npos)
1471 hist->GetXaxis()->Set(11, -0.5, 10.5);
1475 bool is2D = !(histname.find(
"_vs_") == std::string::npos);
1478 if (histname.find(
"METrackParticles") != std::string::npos) {
1479 if (histname.find(
"Res_eta") != std::string::npos) {
1481 hist->GetYaxis()->Set(50, -0.025, 0.025);
1483 hist->GetXaxis()->Set(50, -0.025, 0.025);
1484 }
else if (histname.find(
"Res_phi") != std::string::npos) {
1486 hist->GetYaxis()->Set(50, -0.02, 0.02);
1488 hist->GetXaxis()->Set(50, -0.02, 0.02);
1490 }
else if (histname.find(
"MSTrackParticles") != std::string::npos) {
1491 if (histname.find(
"Res_eta") != std::string::npos) {
1493 hist->GetYaxis()->Set(50, -0.025, 0.025);
1495 hist->GetXaxis()->Set(50, -0.025, 0.025);
1496 }
else if (histname.find(
"Res_phi") != std::string::npos) {
1498 hist->GetYaxis()->Set(50, -0.05, 0.05);
1500 hist->GetXaxis()->Set(50, -0.05, 0.05);
1503 if (histname.find(
"Res_eta") != std::string::npos) {
1505 hist->GetYaxis()->Set(50, -0.005, 0.005);
1507 hist->GetXaxis()->Set(50, -0.005, 0.005);
1508 }
else if (histname.find(
"Res_phi") != std::string::npos) {
1510 hist->GetYaxis()->Set(50, -0.002, 0.002);
1512 hist->GetXaxis()->Set(50, -0.002, 0.002);
1516 if (histname.find(
"trigger") != std::string::npos) {
1518 if ((!
m_isData) && histname.find(
"MuidCo") != std::string::npos &&
1519 (histname.find(
"BARREL") != std::string::npos || histname.find(
"WHOLE_DETECT") != std::string::npos)) {
1520 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1521 hist->GetXaxis()->Set(100, -0.04, 0.04);
1523 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.04, 0.04); }
1524 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1525 hist->GetXaxis()->Set(100, -0.0005, 0.0005);
1527 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0005, 0.0005); }
1529 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1530 hist->GetXaxis()->Set(100, -0.0002, 0.0002);
1532 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0002, 0.0002); }
1534 if ((!
m_isData) && histname.find(
"MuidCo") != std::string::npos && (histname.find(
"ENDCAPS") != std::string::npos)) {
1535 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1536 hist->GetXaxis()->Set(100, -0.05, 0.05);
1538 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.05, 0.05); }
1539 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1540 hist->GetXaxis()->Set(100, -0.001, 0.001);
1542 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.001, 0.001); }
1544 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1545 hist->GetXaxis()->Set(100, -0.0003, 0.0003);
1547 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0003, 0.0003); }
1549 if ((!
m_isData) && histname.find(
"MuidSA") != std::string::npos) {
1550 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1551 hist->GetXaxis()->Set(100, -0.03, 0.03);
1553 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1555 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1556 hist->GetXaxis()->Set(100, -0.03, 0.03);
1558 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1560 if ((!
m_isData) && histname.find(
"MuidSA") != std::string::npos && (histname.find(
"BARREL") != std::string::npos)) {
1561 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1562 hist->GetXaxis()->Set(100, -0.15, 0.15);
1564 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.15, 0.15); }
1566 if ((!
m_isData) && histname.find(
"MuidSA") != std::string::npos &&
1567 (histname.find(
"ENDCAPS") != std::string::npos || histname.find(
"WHOLE_DETECT") != std::string::npos)) {
1568 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1569 hist->GetXaxis()->Set(100, -0.2, 0.2);
1571 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.2, 0.2); }
1575 if ((
m_isData) && histname.find(
"MuidCo") != std::string::npos &&
1576 (histname.find(
"BARREL") != std::string::npos || histname.find(
"WHOLE_DETECT") != std::string::npos)) {
1577 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1578 hist->GetXaxis()->Set(100, -0.06, 0.06);
1580 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.06, 0.06); }
1581 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1582 hist->GetXaxis()->Set(100, -0.001, 0.001);
1584 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.001, 0.001); }
1586 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1587 hist->GetXaxis()->Set(100, -0.0005, 0.0005);
1589 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0005, 0.0005); }
1591 if ((
m_isData) && histname.find(
"MuidCo") != std::string::npos && (histname.find(
"ENDCAPS") != std::string::npos)) {
1592 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1593 hist->GetXaxis()->Set(100, -0.1, 0.1);
1595 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.1, 0.1); }
1596 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1597 hist->GetXaxis()->Set(100, -0.0015, 0.0015);
1599 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0015, 0.0015); }
1601 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1602 hist->GetXaxis()->Set(100, -0.0005, 0.0005);
1604 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0005, 0.0005); }
1606 if ((
m_isData) && histname.find(
"MuidSA") != std::string::npos) {
1607 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1608 hist->GetXaxis()->Set(100, -0.03, 0.03);
1610 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1612 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1613 hist->GetXaxis()->Set(100, -0.03, 0.03);
1615 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1617 if ((
m_isData) && histname.find(
"MuidSA") != std::string::npos && (histname.find(
"BARREL") != std::string::npos)) {
1618 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1619 hist->GetXaxis()->Set(100, -0.3, 0.3);
1621 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.3, 0.3); }
1623 if ((
m_isData) && histname.find(
"MuidSA") != std::string::npos &&
1624 (histname.find(
"ENDCAPS") != std::string::npos || histname.find(
"WHOLE_DETECT") != std::string::npos)) {
1625 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1626 hist->GetXaxis()->Set(100, -0.5, 0.5);
1628 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.5, 0.5); }
1632 if ((histname.find(
"L2_StandAlone") != std::string::npos)) {
1633 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1634 hist->GetXaxis()->Set(100, -0.03, 0.03);
1636 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1638 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1639 hist->GetXaxis()->Set(100, -0.03, 0.03);
1641 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1643 if ((histname.find(
"L2_StandAlone") != std::string::npos) && (histname.find(
"BARREL") != std::string::npos)) {
1644 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1645 hist->GetXaxis()->Set(100, -0.3, 0.3);
1647 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.3, 0.3); }
1649 if ((histname.find(
"L2_StandAlone") != std::string::npos) &&
1650 ((histname.find(
"ENDCAPS") != std::string::npos) || (histname.find(
"WHOLE_DETECT") != std::string::npos))) {
1651 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1652 hist->GetXaxis()->Set(100, -0.5, 0.5);
1654 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.5, 0.5); }
1657 if ((histname.find(
"L2_Combined") != std::string::npos)) {
1658 if (histname.find(
"Res_eta") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1659 hist->GetXaxis()->Set(100, -0.002, 0.002);
1661 if (histname.find(
"Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.002, 0.002); }
1663 if (histname.find(
"Res_phi") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1664 hist->GetXaxis()->Set(100, -0.001, 0.001);
1666 if (histname.find(
"Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.001, 0.001); }
1667 if (histname.find(
"Res_pT") != std::string::npos && histname.find(
"_vs_") == std::string::npos) {
1668 hist->GetXaxis()->Set(100, -0.2, 0.2);
1670 if (histname.find(
"Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.2, 0.2); }