17 #include <TProfile2D.h>
37 if(verbose_)
cout <<
"[TriggerDQM]: ending... " << endl;
50 verbose_ = parameters_.getUntrackedParameter<
bool>(
"verbose",
false);
52 monitorDir_ = parameters_.getUntrackedParameter<
string>(
"monitorDir",
"");
53 if(verbose_)
cout <<
"Monitor dir = " << monitorDir_ << endl;
55 prescaleLS_ = parameters_.getUntrackedParameter<
int>(
"prescaleLS", -1);
56 if(verbose_)
cout <<
"DQM lumi section prescale = " << prescaleLS_ <<
" lumi section(s)"<< endl;
58 prescaleEvt_ = parameters_.getUntrackedParameter<
int>(
"prescaleEvt", -1);
59 if(verbose_)
cout <<
"DQM event prescale = " << prescaleEvt_ <<
" events(s)"<< endl;
61 thresholdLS_ = parameters_.getUntrackedParameter<
int>(
"thresholdLS", 1);
62 if(verbose_)
cout <<
"Minimum LS required to perform QTests = " << thresholdLS_ <<
" lumi section(s)"<< endl;
64 GCT_NonIsoEm_threshold_ = parameters_.getUntrackedParameter<
double>(
"GCT_NonIsoEm_threshold",100000);
65 GCT_IsoEm_threshold_ = parameters_.getUntrackedParameter<
double>(
"GCT_IsoEm_threshold",1000000);
66 GCT_TauJets_threshold_ = parameters_.getUntrackedParameter<
double>(
"GCT_TauJets_threshold",100000);
67 GCT_AllJets_threshold_ = parameters_.getUntrackedParameter<
double>(
"GCT_AllJets_threshold",100000);
68 GMT_Muons_threshold_ = parameters_.getUntrackedParameter<
double>(
"GMT_Muons_threshold",100000);
71 cout <<
" Thresholds are as follows:" << endl;
72 cout <<
" \t GCT_NonIsoEm_threshold_: " << GCT_NonIsoEm_threshold_ << endl;
73 cout <<
" \t GCT_IsoEm_threshold_: " << GCT_IsoEm_threshold_ << endl;
74 cout <<
" \t GCT_TauJets_threshold_: " << GCT_TauJets_threshold_ << endl;
75 cout <<
" \t GCT_AllJets_threshold_: " << GCT_AllJets_threshold_ << endl;
76 cout <<
" \t GMT_Muons_threshold_: " << GMT_Muons_threshold_ << endl;
79 std::vector<string> emptyMask;
81 dataMask = parameters_.getUntrackedParameter<std::vector<string> >(
"dataMaskedSystems", emptyMask);
82 emulMask = parameters_.getUntrackedParameter<std::vector<string> >(
"emulatorMaskedSystems", emptyMask);
84 s_mapDataValues[
"EMPTY"] = data_empty;
85 s_mapDataValues[
"ALL"] = data_all;
86 s_mapDataValues[
"GT"] = data_gt;
87 s_mapDataValues[
"MUONS"] = data_muons;
88 s_mapDataValues[
"JETS"] = data_jets;
89 s_mapDataValues[
"TAUJETS"] = data_taujets;
90 s_mapDataValues[
"ISOEM"] = data_isoem;
91 s_mapDataValues[
"NONISOEM"] = data_nonisoem;
92 s_mapDataValues[
"MET"] = data_met;
94 s_mapEmulValues[
"EMPTY"] = emul_empty;
95 s_mapEmulValues[
"ALL"] = emul_all;
96 s_mapEmulValues[
"DTTF"] = emul_dtf;
97 s_mapEmulValues[
"DTTPG"] = emul_dtp;
98 s_mapEmulValues[
"CSCTF"] = emul_ctf;
99 s_mapEmulValues[
"CSCTPG"] = emul_ctp;
100 s_mapEmulValues[
"RPC"] = emul_rpc;
101 s_mapEmulValues[
"GMT"] = emul_gmt;
102 s_mapEmulValues[
"ECAL"] = emul_etp;
103 s_mapEmulValues[
"HCAL"] = emul_htp;
104 s_mapEmulValues[
"RCT"] = emul_rct;
105 s_mapEmulValues[
"GCT"] = emul_gct;
106 s_mapEmulValues[
"GLT"] = emul_glt;
113 if(verbose_)
cout <<
"[TriggerDQM]: Begin Job" << endl;
119 if( (reportSummary_ =
dbe_->
get(
"L1T/EventInfo/reportSumamry")) ) {
126 if (reportSummary_) reportSummary_->
Fill(1);
133 for (
int n = 0;
n < nsys_;
n++) {
136 case 0 : sprintf(histo,
"L1T_MET");
break;
137 case 1 : sprintf(histo,
"L1T_NonIsoEM");
break;
138 case 2 : sprintf(histo,
"L1T_IsoEM");
break;
139 case 3 : sprintf(histo,
"L1T_TauJets");
break;
140 case 4 : sprintf(histo,
"L1T_Jets");
break;
141 case 5 : sprintf(histo,
"L1T_Muons");
break;
142 case 6 : sprintf(histo,
"L1T_GT");
break;
143 case 7 : sprintf(histo,
"L1TEMU_GLT");
break;
144 case 8 : sprintf(histo,
"L1TEMU_GMT");
break;
145 case 9 : sprintf(histo,
"L1TEMU_RPC");
break;
146 case 10: sprintf(histo,
"L1TEMU_CTP");
break;
147 case 11: sprintf(histo,
"L1TEMU_CTF");
break;
148 case 12: sprintf(histo,
"L1TEMU_DTP");
break;
149 case 13: sprintf(histo,
"L1TEMU_DTF");
break;
150 case 14: sprintf(histo,
"L1TEMU_HTP");
break;
151 case 15: sprintf(histo,
"L1TEMU_ETP");
break;
152 case 16: sprintf(histo,
"L1TEMU_GCT");
break;
153 case 17: sprintf(histo,
"L1TEMU_RCT");
break;
160 for (
int k = 0;
k < nsys_;
k++) {
161 summaryContent[
k] = 0;
162 reportSummaryContent_[
k]->
Fill(0.);
168 if( (reportSummaryMap_ =
dbe_->
get(
"L1T/EventInfo/reportSummaryMap")) ){
172 reportSummaryMap_ =
dbe_->
book2D(
"reportSummaryMap",
"reportSummaryMap", 2, 1, 3, 11, 1, 12);
174 reportSummaryMap_->setAxisTitle(
"", 2);
176 reportSummaryMap_->setBinLabel(1,
" ",1);
177 reportSummaryMap_->setBinLabel(2,
" ",1);
179 reportSummaryMap_->setBinLabel(1,
" ",2);
180 reportSummaryMap_->setBinLabel(2,
" ",2);
181 reportSummaryMap_->setBinLabel(3,
" ",2);
182 reportSummaryMap_->setBinLabel(4,
" ",2);
183 reportSummaryMap_->setBinLabel(5,
" ",2);
184 reportSummaryMap_->setBinLabel(6,
" ",2);
185 reportSummaryMap_->setBinLabel(7,
" ",2);
186 reportSummaryMap_->setBinLabel(8,
" ",2);
187 reportSummaryMap_->setBinLabel(9,
" ",2);
188 reportSummaryMap_->setBinLabel(10,
" ",2);
189 reportSummaryMap_->setBinLabel(11,
" ",2);
218 for (
int k = 0;
k < nsys_;
k++) {
219 summaryContent[
k] = 0;
220 reportSummaryContent_[
k]->
Fill(0.);
225 int GCT_IsoEm_nXCh = 0,GCT_IsoEm_nYCh=0,GCT_NonIsoEm_nXCh = 0,GCT_NonIsoEm_nYCh=0,GCT_AllJets_nXCh = 0,GCT_AllJets_nYCh=0,GCT_TauJets_nXCh = 0,GCT_TauJets_nYCh=0,GMT_nXCh=0,GMT_nYCh=0;
229 GCT_IsoEm_nXCh = GCT_IsoEm_QHist->
getNbinsX();
230 GCT_IsoEm_nYCh = GCT_IsoEm_QHist->
getNbinsY();
232 if(GCT_NonIsoEm_QHist){
233 GCT_NonIsoEm_nXCh = GCT_NonIsoEm_QHist->
getNbinsX();
234 GCT_NonIsoEm_nYCh = GCT_NonIsoEm_QHist->
getNbinsY();
236 if(GCT_AllJets_QHist){
237 GCT_AllJets_nXCh = GCT_AllJets_QHist->
getNbinsX();
238 GCT_AllJets_nYCh = GCT_AllJets_QHist->
getNbinsY();
240 if(GCT_TauJets_QHist){
241 GCT_TauJets_nXCh = GCT_TauJets_QHist->
getNbinsX();
242 GCT_TauJets_nYCh = GCT_TauJets_QHist->
getNbinsY();
250 int GCT_IsoEm_nCh=0,GCT_NonIsoEm_nCh=0,GCT_AllJets_nCh=0,GCT_TauJets_nCh=0,GMT_nCh=0;
253 GCT_IsoEm_nCh = GCT_IsoEm_nXCh*GCT_IsoEm_nYCh;
254 if(GCT_NonIsoEm_nYCh)
255 GCT_NonIsoEm_nCh = GCT_NonIsoEm_nXCh*GCT_NonIsoEm_nYCh;
257 GCT_AllJets_nCh = GCT_AllJets_nXCh*GCT_AllJets_nYCh;
259 GCT_TauJets_nCh = GCT_TauJets_nXCh*GCT_TauJets_nYCh;
261 GMT_nCh = GMT_nXCh*GMT_nYCh;
274 int nCh_no_inst = 144;
279 if (GCT_NonIsoEm_QHist){
280 const QReport *GCT_NonIsoEm_DeadCh_QReport = GCT_NonIsoEm_QHist->
getQReport(
"DeadChannels_GCT_2D_loose");
281 const QReport *GCT_NonIsoEm_HotCh_QReport = GCT_NonIsoEm_QHist->
getQReport(
"HotChannels_GCT_2D");
283 int GCT_NonIsoEm_nBadCh = 0;
285 if (GCT_NonIsoEm_DeadCh_QReport) {
286 int GCT_NonIsoEm_nDeadCh = GCT_NonIsoEm_DeadCh_QReport->
getBadChannels().size();
287 if( verbose_ )
cout <<
" GCT_NonIsoEm_nDeadCh: " << GCT_NonIsoEm_nDeadCh
288 <<
", GCT_NonIsoEm_nCh: " << GCT_NonIsoEm_nCh
289 <<
", GCT_NonIsoEm_DeadCh_efficiency: " << 1 - (float)GCT_NonIsoEm_nDeadCh/(
float)GCT_NonIsoEm_nCh
290 <<
" GCT_NonIsoEm_DeadCh QTResult = " << GCT_NonIsoEm_DeadCh_QReport->
getQTresult() << std::endl;
292 GCT_NonIsoEm_nBadCh+=GCT_NonIsoEm_nDeadCh;
295 if (GCT_NonIsoEm_HotCh_QReport) {
296 int GCT_NonIsoEm_nHotCh = GCT_NonIsoEm_HotCh_QReport->
getBadChannels().size();
297 if( verbose_ )
cout <<
" GCT_NonIsoEm_nHotCh: " << GCT_NonIsoEm_nHotCh
298 <<
", GCT_NonIsoEm_nCh: " << GCT_NonIsoEm_nCh
299 <<
", GCT_NonIsoEm_HotCh_efficiency: " << 1 - (float)GCT_NonIsoEm_nHotCh/(
float)GCT_NonIsoEm_nCh
300 <<
" GCT_NonIsoEm_HotCh QTResult = " << GCT_NonIsoEm_HotCh_QReport->
getQTresult() << std::endl;
302 GCT_NonIsoEm_nBadCh+=GCT_NonIsoEm_nHotCh;
305 if( verbose_ )
std::cout <<
" GCT_NonIsoEm total efficiency = " << 1 - (float)GCT_NonIsoEm_nBadCh/(
float)GCT_NonIsoEm_nCh << std::endl;
307 double GCT_NonIsoEm_nentries = GCT_NonIsoEm_QHist->
getEntries();
308 float nonisoResult = -1;
309 if( (counterLS_>=1000 && GCT_NonIsoEm_nentries==0) ) nonisoResult = 0;
310 if( (GCT_NonIsoEm_nentries>GCT_NonIsoEm_threshold_) ) nonisoResult = 1 - (float)(GCT_NonIsoEm_nBadCh-nCh_no_inst)/(float)(GCT_NonIsoEm_nCh-nCh_no_inst);
311 summaryContent[1] = ( nonisoResult < (1.0+1
e-10) ) ? nonisoResult : 1.0;
320 if (GCT_IsoEm_QHist){
321 const QReport *GCT_IsoEm_DeadCh_QReport = GCT_IsoEm_QHist->
getQReport(
"DeadChannels_GCT_2D_loose");
322 const QReport *GCT_IsoEm_HotCh_QReport = GCT_IsoEm_QHist->
getQReport(
"HotChannels_GCT_2D");
324 int GCT_IsoEm_nBadCh = 0;
326 if (GCT_IsoEm_DeadCh_QReport) {
327 int GCT_IsoEm_nDeadCh = GCT_IsoEm_DeadCh_QReport->
getBadChannels().size();
328 if( verbose_ )
cout <<
" GCT_IsoEm_nDeadCh: " << GCT_IsoEm_nDeadCh
329 <<
", GCT_IsoEm_nCh: " << GCT_IsoEm_nCh
330 <<
", GCT_IsoEm_DeadCh_efficiency: " << 1 - (float)GCT_IsoEm_nDeadCh/(
float)GCT_IsoEm_nCh
331 <<
" GCT_IsoEm_DeadCh QTResult = " << GCT_IsoEm_DeadCh_QReport->
getQTresult() << std::endl;
333 GCT_IsoEm_nBadCh+=GCT_IsoEm_nDeadCh;
336 if (GCT_IsoEm_HotCh_QReport) {
337 int GCT_IsoEm_nHotCh = GCT_IsoEm_HotCh_QReport->
getBadChannels().size();
338 if( verbose_ )
cout <<
" GCT_IsoEm_nHotCh: " << GCT_IsoEm_nHotCh
339 <<
", GCT_IsoEm_nCh: " << GCT_IsoEm_nCh
340 <<
", GCT_IsoEm_HotCh_efficiency: " << 1 - (float)GCT_IsoEm_nHotCh/(
float)GCT_IsoEm_nCh
341 <<
" GCT_IsoEm_HotCh QTResult = " << GCT_IsoEm_HotCh_QReport->
getQTresult() << std::endl;
343 GCT_IsoEm_nBadCh+=GCT_IsoEm_nHotCh;
346 if( verbose_ )
std::cout <<
" GCT_IsoEm total efficiency = " << 1 - (float)GCT_IsoEm_nBadCh/(
float)GCT_IsoEm_nCh << std::endl;
348 double GCT_IsoEm_nentries = GCT_IsoEm_QHist->
getEntries();
349 float isoResult = -1;
350 if( (counterLS_>=thresholdLS_ && GCT_IsoEm_nentries==0) ) isoResult = 0;
351 if( (GCT_IsoEm_nentries>GCT_IsoEm_threshold_) ) isoResult = 1 - (float)(GCT_IsoEm_nBadCh-nCh_no_inst)/(float)(GCT_IsoEm_nCh-nCh_no_inst);
352 summaryContent[2] = ( isoResult < (1.0+1
e-10) ) ? isoResult : 1.0;
361 if (GCT_TauJets_QHist){
362 const QReport *GCT_TauJets_DeadCh_QReport = GCT_TauJets_QHist->
getQReport(
"DeadChannels_GCT_2D_loose");
363 const QReport *GCT_TauJets_HotCh_QReport = GCT_TauJets_QHist->
getQReport(
"HotChannels_GCT_2D");
365 int GCT_TauJets_nBadCh = 0;
367 if (GCT_TauJets_DeadCh_QReport) {
368 int GCT_TauJets_nDeadCh = GCT_TauJets_DeadCh_QReport->
getBadChannels().size();
369 if( verbose_ )
cout <<
" GCT_TauJets_nDeadCh: " << GCT_TauJets_nDeadCh
370 <<
", GCT_TauJets_nCh: " << GCT_TauJets_nCh
371 <<
", GCT_TauJets_DeadCh_efficiency: " << 1 - (float)GCT_TauJets_nDeadCh/(
float)GCT_TauJets_nCh
372 <<
" GCT_TauJets_DeadCh QTResult = " << GCT_TauJets_DeadCh_QReport->
getQTresult() << std::endl;
374 GCT_TauJets_nBadCh+=GCT_TauJets_nDeadCh;
377 if (GCT_TauJets_HotCh_QReport) {
378 int GCT_TauJets_nHotCh = GCT_TauJets_HotCh_QReport->
getBadChannels().size();
379 if( verbose_ )
cout <<
" GCT_TauJets_nHotCh: " << GCT_TauJets_nHotCh
380 <<
", GCT_TauJets_nCh: " << GCT_TauJets_nCh
381 <<
", GCT_TauJets_HotCh_efficiency: " << 1 - (float)GCT_TauJets_nHotCh/(
float)GCT_TauJets_nCh
382 <<
" GCT_TauJets_HotCh QTResult = " << GCT_TauJets_HotCh_QReport->
getQTresult() << std::endl;
384 GCT_TauJets_nBadCh+=GCT_TauJets_nHotCh;
387 if( verbose_ )
std::cout <<
" GCT_TauJets total efficiency = " << 1 - (float)GCT_TauJets_nBadCh/(
float)GCT_TauJets_nCh << std::endl;
389 double GCT_TauJets_nentries = GCT_TauJets_QHist->
getEntries();
390 float taujetsResult = -1;
391 if( (counterLS_>=thresholdLS_ && GCT_TauJets_nentries==0) ) taujetsResult = 0;
392 if( (GCT_TauJets_nentries>GCT_TauJets_threshold_) ) taujetsResult = 1 - (float)(GCT_TauJets_nBadCh-nCh_no_inst)/(float)(GCT_TauJets_nCh-nCh_no_inst);
393 summaryContent[3] = ( taujetsResult < (1.0+1
e-10) ) ? taujetsResult : 1.0;
402 if (GCT_AllJets_QHist){
403 const QReport *GCT_AllJets_DeadCh_QReport = GCT_AllJets_QHist->
getQReport(
"DeadChannels_GCT_2D_tight");
404 const QReport *GCT_AllJets_HotCh_QReport = GCT_AllJets_QHist->
getQReport(
"HotChannels_GCT_2D");
406 int GCT_AllJets_nBadCh = 0;
408 if (GCT_AllJets_DeadCh_QReport) {
409 int GCT_AllJets_nDeadCh = GCT_AllJets_DeadCh_QReport->
getBadChannels().size();
410 if( verbose_ )
cout <<
" GCT_AllJets_nDeadCh: " << GCT_AllJets_nDeadCh
411 <<
", GCT_AllJets_nCh: " << GCT_AllJets_nCh
412 <<
", GCT_AllJets_DeadCh_efficiency: " << 1 - (float)GCT_AllJets_nDeadCh/(
float)GCT_AllJets_nCh
413 <<
" GCT_AllJets_DeadCh QTResult = " << GCT_AllJets_DeadCh_QReport->
getQTresult() << std::endl;
415 GCT_AllJets_nBadCh+=GCT_AllJets_nDeadCh;
418 if (GCT_AllJets_HotCh_QReport) {
419 int GCT_AllJets_nHotCh = GCT_AllJets_HotCh_QReport->
getBadChannels().size();
420 if( verbose_ )
cout <<
" GCT_AllJets_nHotCh: " << GCT_AllJets_nHotCh
421 <<
", GCT_AllJets_nCh: " << GCT_AllJets_nCh
422 <<
", GCT_AllJets_HotCh_efficiency: " << 1 - (float)GCT_AllJets_nHotCh/(
float)GCT_AllJets_nCh
423 <<
" GCT_AllJets_HotCh QTResult = " << GCT_AllJets_HotCh_QReport->
getQTresult() << std::endl;
425 GCT_AllJets_nBadCh+=GCT_AllJets_nHotCh;
428 if( verbose_ )
std::cout <<
" GCT_AllJets total efficiency = " << 1 - (float)GCT_AllJets_nBadCh/(
float)GCT_AllJets_nCh << std::endl;
430 double GCT_AllJets_nentries = GCT_AllJets_QHist->
getEntries();
431 float jetsResult = -1;
432 if( (counterLS_>=thresholdLS_ && GCT_AllJets_nentries==0) ) jetsResult = 0;
433 if( (GCT_AllJets_nentries>GCT_AllJets_threshold_) ) jetsResult = 1 - (float)GCT_AllJets_nBadCh/(
float)GCT_AllJets_nCh;
434 summaryContent[4] = ( jetsResult < (1.0+1
e-10) ) ? jetsResult : 1.0;
445 const QReport *GMT_DeadCh_QReport = GMT_QHist->
getQReport(
"DeadChannels_GMT_2D");
450 if (GMT_DeadCh_QReport) {
452 if( verbose_ )
cout <<
" GMT_nDeadCh: " << GMT_nDeadCh
453 <<
", GMT_nCh: " << GMT_nCh
454 <<
", GMT_DeadCh_efficiency: " << 1 - (float)GMT_nDeadCh/(
float)GMT_nCh
455 <<
" GMT_DeadCh QTResult = " << GMT_DeadCh_QReport->
getQTresult() << std::endl;
457 GMT_nBadCh+=GMT_nDeadCh;
460 if (GMT_HotCh_QReport) {
462 if( verbose_ )
cout <<
" GMT_nHotCh: " << GMT_nHotCh
463 <<
", GMT_nCh: " << GMT_nCh
464 <<
", GMT_HotCh_efficiency: " << 1 - (float)GMT_nHotCh/(
float)GMT_nCh
465 <<
" GMT_HotCh QTResult = " << GMT_HotCh_QReport->
getQTresult() << std::endl;
467 GMT_nBadCh+=GMT_nHotCh;
470 if( verbose_ )
std::cout <<
" GMT total efficiency = " << 1 - (float)GMT_nBadCh/(
float)GMT_nCh << std::endl;
472 double GMT_nentries = GMT_QHist->
getEntries();
473 float muonResult = -1;
474 if( (counterLS_>=thresholdLS_ && GMT_nentries==0) ) muonResult = 0;
475 if( (GMT_nentries>GMT_Muons_threshold_) ) muonResult = 1.5*(1 - (float)GMT_nBadCh/(
float)GMT_nCh);
476 summaryContent[5] = ( muonResult < (1.0+1
e-10) ) ? muonResult : 1.0;
484 double gt_algobits_prob = 0;
485 double gt_techbits_prob = 0;
487 if (GT_AlgoBits_QHist){
488 gt_algobits_prob = 1;
489 const QReport *GT_AlgoBits_QReport = GT_AlgoBits_QHist->
getQReport(
"CompareHist_GT");
490 if (GT_AlgoBits_QReport) gt_algobits_prob = GT_AlgoBits_QReport->
getQTresult();
492 if (GT_TechBits_QHist){
493 gt_techbits_prob = 1;
494 const QReport *GT_TechBits_QReport = GT_TechBits_QHist->
getQReport(
"CompareHist_GT");
495 if (GT_TechBits_QReport) gt_techbits_prob = GT_TechBits_QReport->
getQTresult();
498 if( gt_algobits_prob!=-1 && gt_techbits_prob!=-1 ) summaryContent[6] = 0.5*( gt_algobits_prob + gt_techbits_prob );
499 else if( GT_AlgoBits_QHist && GT_TechBits_QHist ) summaryContent[6] = 1;
500 else summaryContent[6] = 0;
516 unsigned int NumDataMask = dataMask.size();
517 std::vector<string> maskedData;
518 for(
unsigned int i=0;
i<NumDataMask;
i++ ){
519 std::string mask_sys_tmp = dataMask[
i];
520 std::string mask_sys = StringToUpper(mask_sys_tmp);
521 switch(s_mapDataValues[mask_sys])
526 for(
int m=0;
m<7;
m++ ) summaryContent[
m] = -2;
527 maskedData.push_back(mask_sys_tmp);
530 summaryContent[6]=-2;
531 maskedData.push_back(mask_sys_tmp);
534 summaryContent[5]=-2;
535 maskedData.push_back(mask_sys_tmp);
538 summaryContent[4]=-2;
539 maskedData.push_back(mask_sys_tmp);
542 summaryContent[3]=-2;
543 maskedData.push_back(mask_sys_tmp);
546 summaryContent[2]=-2;
547 maskedData.push_back(mask_sys_tmp);
550 summaryContent[1]=-2;
551 maskedData.push_back(mask_sys_tmp);
554 summaryContent[0]=-2;
555 maskedData.push_back(mask_sys_tmp);
558 if( verbose_ )
cout <<
" User input mask '" << mask_sys_tmp <<
"' is not recognized." << endl;
564 unsigned int NumEmulMask = emulMask.size();
565 std::vector<string> maskedEmul;
566 for(
unsigned int i=0;
i<NumEmulMask;
i++ ){
567 std::string mask_sys_tmp = emulMask[
i];
568 std::string mask_sys = StringToUpper(mask_sys_tmp);
569 switch(s_mapEmulValues[mask_sys])
574 for(
int m=7;
m<18;
m++ ) summaryContent[
m] = -2;
575 maskedEmul.push_back(mask_sys_tmp);
578 summaryContent[7]=-2;
579 maskedEmul.push_back(mask_sys_tmp);
582 summaryContent[8]=-2;
583 maskedEmul.push_back(mask_sys_tmp);
586 summaryContent[9]=-2;
587 maskedEmul.push_back(mask_sys_tmp);
590 summaryContent[10]=-2;
591 maskedEmul.push_back(mask_sys_tmp);
594 summaryContent[11]=-2;
595 maskedEmul.push_back(mask_sys_tmp);
598 summaryContent[12]=-2;
599 maskedEmul.push_back(mask_sys_tmp);
602 summaryContent[13]=-2;
603 maskedEmul.push_back(mask_sys_tmp);
606 summaryContent[14]=-2;
607 maskedEmul.push_back(mask_sys_tmp);
610 summaryContent[15]=-2;
611 maskedEmul.push_back(mask_sys_tmp);
614 summaryContent[16]=-2;
615 maskedEmul.push_back(mask_sys_tmp);
618 summaryContent[17]=-2;
619 maskedEmul.push_back(mask_sys_tmp);
622 if( verbose_ )
cout <<
" User input mask '" << mask_sys_tmp <<
"' is not recognized." << endl;
628 int numUnMaskedSystems = 0;
629 for(
int m=0;
m<nsys_;
m++ ){
630 if( summaryContent[
m]>-1
e-5){
632 summarySum += summaryContent[
m];
633 numUnMaskedSystems++;
636 reportSummaryContent_[
m]->Fill( summaryContent[
m] );
643 reportSummary = summarySum/float(numUnMaskedSystems);
644 if (reportSummary_) reportSummary_->Fill(reportSummary);
648 reportSummaryMap_->setBinContent(1,11,summaryContent[6]);
649 reportSummaryMap_->setBinContent(1,10,summaryContent[5]);
650 reportSummaryMap_->setBinContent(1,9, summaryContent[4]);
651 reportSummaryMap_->setBinContent(1,8, summaryContent[3]);
652 reportSummaryMap_->setBinContent(1,7, summaryContent[2]);
653 reportSummaryMap_->setBinContent(1,6, summaryContent[1]);
654 reportSummaryMap_->setBinContent(1,5, summaryContent[0]);
657 reportSummaryMap_->setBinContent(2,11,summaryContent[7]);
658 reportSummaryMap_->setBinContent(2,10,summaryContent[8]);
659 reportSummaryMap_->setBinContent(2,9, summaryContent[9]);
660 reportSummaryMap_->setBinContent(2,8, summaryContent[10]);
661 reportSummaryMap_->setBinContent(2,7, summaryContent[11]);
662 reportSummaryMap_->setBinContent(2,6, summaryContent[12]);
663 reportSummaryMap_->setBinContent(2,5, summaryContent[13]);
664 reportSummaryMap_->setBinContent(2,4, summaryContent[14]);
665 reportSummaryMap_->setBinContent(2,3, summaryContent[15]);
666 reportSummaryMap_->setBinContent(2,2, summaryContent[16]);
667 reportSummaryMap_->setBinContent(2,1, summaryContent[17]);
671 if( maskedData.size()>0 ){
673 for(
unsigned int i=0;
i<maskedData.size();
i++ ){
674 if(
i!=maskedData.size()-1 ){
682 if( maskedEmul.size()>0 ){
684 for(
unsigned int i=0;
i<maskedEmul.size();
i++ ){
685 if(
i!=maskedEmul.size()-1 ){
695 std::cout <<
" summaryContent[0] = MET = " << summaryContent[0] << std::endl;
696 std::cout <<
" summaryContent[1] = NonIsoEM = " << summaryContent[1] << std::endl;
697 std::cout <<
" summaryContent[2] = IsoEM = " << summaryContent[2] << std::endl;
698 std::cout <<
" summaryContent[3] = TauJets = " << summaryContent[3] << std::endl;
699 std::cout <<
" summaryContent[4] = Jets = " << summaryContent[4] << std::endl;
700 std::cout <<
" summaryContent[5] = Muons = " << summaryContent[5] << std::endl;
701 std::cout <<
" summaryContent[6] = GT = " << summaryContent[6] << std::endl;
703 std::cout <<
" summaryContent[7] = GLT = " << summaryContent[7] << std::endl;
704 std::cout <<
" summaryContent[8] = GMT = " << summaryContent[8] << std::endl;
705 std::cout <<
" summaryContent[9] = RPC = " << summaryContent[9] << std::endl;
706 std::cout <<
" summaryContent[10] = CTP = " << summaryContent[10] << std::endl;
707 std::cout <<
" summaryContent[11] = CTF = " << summaryContent[11] << std::endl;
708 std::cout <<
" summaryContent[12] = DTP = " << summaryContent[12] << std::endl;
709 std::cout <<
" summaryContent[13] = DTF = " << summaryContent[13] << std::endl;
710 std::cout <<
" summaryContent[14] = HTP = " << summaryContent[14] << std::endl;
711 std::cout <<
" summaryContent[15] = ETP = " << summaryContent[15] << std::endl;
712 std::cout <<
" summaryContent[16] = GCT = " << summaryContent[16] << std::endl;
713 std::cout <<
" summaryContent[17] = RCT = " << summaryContent[17] << std::endl;
724 if (prescaleEvt_<1)
return;
725 if (prescaleEvt_>0 && counterEvt_%prescaleEvt_ != 0)
return;
727 if(verbose_)
cout <<
"L1TEventInfoClient::analyze" << endl;
753 if(verbose_)
cout <<
"ME NOT FOUND." << endl;
767 if(verbose_)
cout <<
"ME NOT FOUND." << endl;
783 if(verbose_)
cout <<
"ME NOT FOUND." << endl;
798 if(verbose_)
cout <<
"ME NOT FOUND." << endl;
807 for(
unsigned int i=0;
i<strToConvert.length();
i++)
809 strToConvert[
i] = toupper(strToConvert[
i]);
L1TEventInfoClient(const edm::ParameterSet &ps)
Constructor.
const QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
TProfile2D * getTProfile2D(void) const
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
TProfile2D * get2DProfile(std::string meName, DQMStore *dbi)
TH2F * get2DHisto(std::string meName, DQMStore *dbi)
void beginJob(void)
BeginJob.
double getEntries(void) const
get # of entries
void analyze(const edm::Event &e, const edm::EventSetup &c)
Fake Analyze.
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
MonitorElement * bookFloat(const char *name)
Book float.
int getNbinsY(void) const
get # of bins in Y-axis
virtual ~L1TEventInfoClient()
Destructor.
void removeElement(const std::string &name)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
DQM Client Diagnostic.
const std::vector< DQMChannel > & getBadChannels(void) const
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
TH1F * getTH1F(void) const
float getQTresult(void) const
get test result i.e. prob value
TProfile * getTProfile(void) const
int getNbinsX(void) const
get # of bins in X-axis
TH2F * getTH2F(void) const
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void setCurrentFolder(const std::string &fullpath)
std::string StringToUpper(std::string strToConvert)
TProfile * get1DProfile(std::string meName, DQMStore *dbi)
TH1F * get1DHisto(std::string meName, DQMStore *dbi)