File indexing completed on 2024-04-06 12:07:38
0001 #include "DQM/HLTEvF/plugins/TriggerRatesMonitorClient.h"
0002
0003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0004
0005
0006
0007
0008 TriggerRatesMonitorClient::TriggerRatesMonitorClient(const edm::ParameterSet& iConfig)
0009 : m_dqm_path(iConfig.getUntrackedParameter<std::string>("dqmPath")) {
0010 edm::LogInfo("TriggerRatesMonitorClient")
0011 << "Constructor TriggerRatesMonitorClient::TriggerRatesMonitorClient " << std::endl;
0012 }
0013
0014
0015
0016
0017 void TriggerRatesMonitorClient::beginJob() {
0018 edm::LogInfo("TriggerRatesMonitorClient") << "TriggerRatesMonitorClient::beginJob " << std::endl;
0019 }
0020
0021
0022
0023
0024 void TriggerRatesMonitorClient::dqmEndJob(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_) {
0025
0026 ibooker_.setCurrentFolder(m_dqm_path);
0027
0028
0029 std::vector<std::string> directories = igetter_.getSubdirs();
0030 m_hltXpd_counts.resize(directories.size());
0031
0032 int i = 0;
0033 for (auto const& dir : directories) {
0034
0035 ibooker_.setCurrentFolder(m_dqm_path + "/" + dir);
0036
0037 std::vector<std::string> const& all_mes = igetter_.getMEs();
0038 std::vector<std::string> mes;
0039 for (auto const& me : all_mes)
0040 if (me.find("accept") != std::string::npos)
0041 mes.push_back(me);
0042
0043 int nbinsY = mes.size();
0044 double xminY = 0.;
0045 double xmaxY = xminY + 1. * nbinsY;
0046 int nbinsX = 0;
0047 int ibinY = 1;
0048 for (auto const& me : mes) {
0049
0050 ibooker_.setCurrentFolder(m_dqm_path + "/" + dir);
0051 TH1F* histo = igetter_.get(me)->getTH1F();
0052
0053 if (m_hltXpd_counts[i] == nullptr) {
0054
0055 nbinsX = histo->GetNbinsX();
0056 double xminX = histo->GetXaxis()->GetXmin();
0057 double xmaxX = histo->GetXaxis()->GetXmax();
0058
0059
0060 std::string hname = dir + "_summary";
0061 ibooker_.setCurrentFolder(m_dqm_path);
0062 m_hltXpd_counts[i] = ibooker_.book2D(hname, hname, nbinsX, xminX, xmaxX, nbinsY, xminY, xmaxY)->getTH2F();
0063 } else {
0064 m_hltXpd_counts[i]->GetYaxis()->SetBinLabel(ibinY, me.c_str());
0065 }
0066
0067
0068 for (int ibinX = 1; ibinX <= nbinsX; ++ibinX) {
0069 float rate = histo->GetBinContent(ibinX);
0070 m_hltXpd_counts[i]->SetBinContent(ibinX, ibinY, rate);
0071 }
0072 ibinY++;
0073 }
0074
0075 i++;
0076 }
0077 }
0078
0079
0080
0081
0082 void TriggerRatesMonitorClient::dqmEndLuminosityBlock(DQMStore::IBooker& ibooker_,
0083 DQMStore::IGetter& igetter_,
0084 edm::LuminosityBlock const& iLumi,
0085 edm::EventSetup const& iSetup) {
0086 edm::LogInfo("TriggerRatesMonitorClient") << "TriggerRatesMonitorClient::endLumi " << std::endl;
0087 }
0088
0089 void TriggerRatesMonitorClient::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0090 edm::ParameterSetDescription desc;
0091 desc.addUntracked<std::string>("dqmPath", "HLT/Datasets");
0092 descriptions.add("triggerRatesMonitorClient", desc);
0093 }
0094
0095
0096 #include "FWCore/Framework/interface/MakerMacros.h"
0097 DEFINE_FWK_MODULE(TriggerRatesMonitorClient);