90 verbose_ = parameters_.getUntrackedParameter<
bool>(
"verbose",
false);
92 if(verbose_)
LogInfo (
"HLTMuonVal") <<
">>> Constructor (HLTMuonCertSummary) <<<" << endl;
124 if(verbose_)
LogInfo (
"HLTMuonVal") <<
">>> BeginRun (HLTMuonCertSummary) <<<" << std::endl;
125 if(verbose_)
LogInfo (
"HLTMuonVal") <<
">>> "<< run.
id() << std::endl;
137 if(verbose_)
LogInfo (
"HLTMuonVal") <<
">>> EndRun (HLTMuonCertSummary) <<<" << std::endl;
139 std::vector<string> histoNameVector;
150 int SummaryBitResult = 100;
157 MonitorElement* reportSummaryMap = iBooker.
book2D(
"HLT_MUON_ReportSummaryMap",
"HLT_MUON: ReportSummaryMap",6,-0.5,5.5,1,-0.5,0.5);
158 MonitorElement* CertificationSummaryMap = iBooker.
book2D(
"HLT_MUON_CertificationSummaryMap",
"HLT_MUON: CertificationSummaryMap",6,-0.5,5.5,1,-0.5,0.5);
160 TH2 * reportSummaryMapTH2 = reportSummaryMap->
getTH2F();
162 reportSummaryMapTH2->GetXaxis()->SetBinLabel(1,
"PhiEtaOccAll");
163 reportSummaryMapTH2->GetXaxis()->SetBinLabel(2,
"PhiEtaOccMatch");
164 reportSummaryMapTH2->GetXaxis()->SetBinLabel(3,
"PhiEtaEff");
165 reportSummaryMapTH2->GetXaxis()->SetBinLabel(4,
"PhiEff");
166 reportSummaryMapTH2->GetXaxis()->SetBinLabel(5,
"EtaEff");
167 reportSummaryMapTH2->GetXaxis()->SetBinLabel(6,
"PtEff");
169 reportSummaryMapTH2->GetYaxis()->SetBinLabel(1,
"HLT_Mu5_allMuons");
172 TH2 * CertificationSummaryMapTH2 = CertificationSummaryMap->getTH2F();
174 CertificationSummaryMapTH2->GetXaxis()->SetBinLabel(1,
"PhiEtaOccAll");
175 CertificationSummaryMapTH2->GetXaxis()->SetBinLabel(2,
"PhiEtaOccMatch");
176 CertificationSummaryMapTH2->GetXaxis()->SetBinLabel(3,
"PhiEtaEff");
177 CertificationSummaryMapTH2->GetXaxis()->SetBinLabel(4,
"PhiEff");
178 CertificationSummaryMapTH2->GetXaxis()->SetBinLabel(5,
"EtaEff");
179 CertificationSummaryMapTH2->GetXaxis()->SetBinLabel(6,
"PtEff");
181 CertificationSummaryMapTH2->GetYaxis()->SetBinLabel(1,
"HLT_Mu5_allMuons");
184 histoNameVector.push_back(
"HLT/Muon/Distributions/HLT_Mu5/allMuons/recPhiVsRecEta_All");
185 histoNameVector.push_back(
"HLT/Muon/Distributions/HLT_Mu5/allMuons/recPhiVsRecEta_L3Filtered");
186 histoNameVector.push_back(
"HLT/Muon/Distributions/HLT_Mu5/allMuons/recEffPhiVsEta_L3Filtered");
187 histoNameVector.push_back(
"HLT/Muon/Distributions/HLT_Mu5/allMuons/recEffPt_L3Filtered");
188 histoNameVector.push_back(
"HLT/Muon/Distributions/HLT_Mu5/allMuons/recEffPhi_L3Filtered");
189 histoNameVector.push_back(
"HLT/Muon/Distributions/HLT_Mu5/allMuons/recEffEta_L3Filtered");
196 if(verbose_)
LogInfo (
"HLTMuonVal") <<
"\n>>> looping over histograms to be tested <<<\n\n";
198 for(std::vector<string>::iterator it=histoNameVector.begin();it!=histoNameVector.end();++it){
206 TestHist = iGetter.
get(HistoName);
208 bool validMe = TestHist!=0;
209 if(verbose_)
LogInfo (
"HLTMuonVal") <<
" is valid? " << validMe <<
"\n";
210 if(!validMe)
continue;
212 string histNameNoPath = TestHist->
getName();
214 if(verbose_)
LogInfo (
"HLTMuonVal") <<
">>> TestHist Name: " << histNameNoPath <<
"\n\n";
219 std::vector<QReport *> myQReports = TestHist->
getQReports();
220 if(verbose_)
LogInfo (
"HLTMuonVal") << TestHist->
getName() <<
": myQReports.size() = " << myQReports.size() <<
"\n\n";
221 for(uint
i=0;
i!=myQReports.size();++
i) {
224 float qtresult = myQReports[
i]->getQTresult();
225 int qtstatus = myQReports[
i]->getStatus() ;
227 if(verbose_)
LogInfo (
"HLTMuonVal") <<
"\tTest " <<
i <<
": qtname: " << qtname <<
"\n";
228 if(verbose_)
LogInfo (
"HLTMuonVal") <<
"\tTest " <<
i <<
": qtresult: " << qtresult << std::endl;
229 if(verbose_)
LogInfo (
"HLTMuonVal") <<
"\tTest " <<
i <<
": qtstatus: " << qtstatus <<
"\n\n";
235 qValueInt->
Fill(qtstatus);
240 if (HistoName.find(
"recPhiVsRecEta_All") != std::string::npos) {
241 reportSummaryMapTH2->SetBinContent(reportSummaryMapTH2->GetBin(1,1), qtstatus);
242 CertificationSummaryMapTH2->SetBinContent(CertificationSummaryMapTH2->GetBin(1,1), qtstatus );
243 if ( (qtstatus == 200) && (SummaryBitResult < 300)) SummaryBitResult = 200;
244 if ( qtstatus == 300 ) SummaryBitResult = 300;
248 if (HistoName.find(
"recPhiVsRecEta_L3Filtered") != std::string::npos) {
249 reportSummaryMapTH2->SetBinContent(reportSummaryMapTH2->GetBin(2,1), qtstatus);
250 CertificationSummaryMapTH2->SetBinContent(CertificationSummaryMapTH2->GetBin(2,1), qtstatus);
251 if ( (qtstatus == 200) && (SummaryBitResult < 300)) SummaryBitResult = 200;
252 if (qtstatus == 300 ) SummaryBitResult = 300;
256 if (HistoName.find(
"recEffPhiVsEta_L3Filtered") != std::string::npos) {
257 reportSummaryMapTH2->SetBinContent(reportSummaryMapTH2->GetBin(3,1), qtstatus );
258 CertificationSummaryMapTH2->SetBinContent(CertificationSummaryMapTH2->GetBin(3,1), qtstatus);
259 if ( (qtstatus == 200) && (SummaryBitResult < 300)) SummaryBitResult = 200;
260 if (qtstatus == 300 ) SummaryBitResult = 300;
263 if (HistoName.find(
"recEffPhi_L3Filtered") != std::string::npos) {
264 reportSummaryMapTH2->SetBinContent(reportSummaryMapTH2->GetBin(4,1), qtstatus);
265 CertificationSummaryMapTH2->SetBinContent(CertificationSummaryMapTH2->GetBin(4,1), qtstatus);
268 if (HistoName.find(
"recEffEta_L3Filtered") != std::string::npos) {
269 reportSummaryMapTH2->SetBinContent(reportSummaryMapTH2->GetBin(5,1), qtstatus);
270 CertificationSummaryMapTH2->SetBinContent(CertificationSummaryMapTH2->GetBin(5,1), qtstatus);
273 if (HistoName.find(
"recEffPt_L3Filtered") != std::string::npos) {
274 reportSummaryMapTH2->SetBinContent(reportSummaryMapTH2->GetBin(6,1), qtstatus);
275 CertificationSummaryMapTH2->SetBinContent(CertificationSummaryMapTH2->GetBin(6,1), qtstatus);
283 reportSummary->Fill(SummaryBitResult);
284 CertificationSummary->Fill(SummaryBitResult);
293 if (SummaryBitResult == 100){
294 muonHLTQualityBinaryBit->
Fill(1);
296 muonHLTQualityBinaryBit->Fill(0);
const std::string & getName(void) const
get name of ME
HLTMuonCertSummary(const edm::ParameterSet &pset)
MonitorElement * get(const std::string &path)
#define DEFINE_FWK_MODULE(type)
edm::ParameterSet parameters_
virtual void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
void setCurrentFolder(const std::string &fullpath)
std::vector< QReport * > getQReports(void) const
get map of QReports
MonitorElement * book2D(Args &&...args)
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
MonitorElement * bookFloat(Args &&...args)
TH2F * getTH2F(void) const