File indexing completed on 2024-04-06 12:08:13
0001 #include "DQM/RPCMonitorClient/interface/RPCRollMapHisto.h"
0002 #include <fmt/format.h>
0003
0004 typedef dqm::reco::MonitorElement MonitorElement;
0005
0006 typedef dqm::reco::DQMStore::IBooker IBooker;
0007
0008 MonitorElement* RPCRollMapHisto::bookBarrel(
0009 IBooker& booker, const int wheel, const std::string& name, const std::string& title, const bool useRollInfo) {
0010 MonitorElement* me = booker.book2D(name, title, 12, 0.5, 12.5, 21, 0.5, 21.5);
0011
0012 TH2* h = dynamic_cast<TH2*>(me->getTH1());
0013 h->GetXaxis()->SetNoAlphanumeric(true);
0014
0015 for (int i = 1; i <= 12; ++i) {
0016 me->setBinLabel(i, fmt::format("Sec{}", i), 1);
0017 }
0018
0019
0020 RPCRollMapHisto::setBarrelRollAxis(me, wheel, 2, useRollInfo);
0021
0022 return me;
0023 }
0024
0025 void RPCRollMapHisto::setBarrelRollAxis(MonitorElement* me, const int wheel, const int axis, const bool useRollInfo) {
0026 TH1* h = dynamic_cast<TH1*>(me->getTH1());
0027 if (axis == 1)
0028 h->GetXaxis()->SetNoAlphanumeric(true);
0029 else if (axis == 2)
0030 h->GetYaxis()->SetNoAlphanumeric(true);
0031
0032 const std::array<const std::string, 21> labelsRoll = {
0033 {"RB1in_B", "RB1in_F", "RB1out_B", "RB1out_F", "RB2in_B", "RB2in_F", "RB2in_M",
0034 "RB2out_B", "RB2out_F", "RB3-_B", "RB3-_F", "RB3+_B", "RB3+_F", "RB4,-_B",
0035 "RB4,-_F", "RB4+_B", "RB4+_F", "RB4--_B", "RB4--_F", "RB4++_B", "RB4++_F"}};
0036 const std::array<const std::string, 21> labelsCh = {{"RB1in", "", "RB1out", "", "RB2in", "", "",
0037 "RB2out", "", "RB3-", "", "RB3+", "", "RB4,-",
0038 "", "RB4+", "", "RB4--", "", "RB4++", ""}};
0039
0040 for (int i = 0, n = std::min(21, me->getNbinsY()); i < n; ++i) {
0041 const std::string label = useRollInfo ? labelsRoll[i] : labelsCh[i];
0042 me->setBinLabel(i + 1, label, 2);
0043 }
0044 if (useRollInfo and std::abs(wheel) == 2) {
0045
0046 me->setBinLabel(7, "RB2out_M", 2);
0047 }
0048 }
0049
0050 void RPCRollMapHisto::setEndcapRollAxis(MonitorElement* me, const int disk, const int axis, const bool useRollInfo) {
0051 TH1* h = dynamic_cast<TH1*>(me->getTH1());
0052 if (axis == 1)
0053 h->GetXaxis()->SetNoAlphanumeric(true);
0054 else if (axis == 2)
0055 h->GetYaxis()->SetNoAlphanumeric(true);
0056
0057
0058
0059 const std::array<const std::string, 6> labelsRoll = {{
0060 "C",
0061 "Ring2 B",
0062 "A",
0063 "C",
0064 "Ring3 B",
0065 "A"}};
0066 const std::array<const std::string, 6> labelsCh = {{
0067 "",
0068 "Ring2",
0069 "",
0070 "",
0071 "Ring3",
0072 ""}};
0073
0074
0075 for (int i = 0; i < 6; ++i) {
0076 const std::string label = useRollInfo ? labelsRoll[i] : labelsCh[i];
0077 me->setBinLabel(i + 1, label, 2);
0078 }
0079 }
0080
0081 MonitorElement* RPCRollMapHisto::bookEndcap(
0082 IBooker& booker, const int disk, const std::string& name, const std::string& title, const bool useRollInfo) {
0083 MonitorElement* me = booker.book2D(name, title, 36, 0.5, 36.5, 6, 0.5, 6.5);
0084 TH2* h = dynamic_cast<TH2*>(me->getTH1());
0085 h->GetXaxis()->SetNoAlphanumeric(true);
0086 h->GetYaxis()->SetNoAlphanumeric(true);
0087
0088
0089 for (int i = 1; i <= 36; ++i) {
0090 me->setBinLabel(i, fmt::format("{}", i), 1);
0091 }
0092 me->setAxisTitle("Segments", 1);
0093
0094 RPCRollMapHisto::setEndcapRollAxis(me, disk, 2, useRollInfo);
0095
0096 return me;
0097 }