DQM Client Diagnostic.
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;
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;
348 double GCT_IsoEm_nentries = GCT_IsoEm_QHist->getEntries();
349 float isoResult = -1;
351 if( (GCT_IsoEm_nentries>
GCT_IsoEm_threshold_) ) isoResult = 1 - (
float)(GCT_IsoEm_nBadCh-nCh_no_inst)/(
float)(GCT_IsoEm_nCh-nCh_no_inst);
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;
389 double GCT_TauJets_nentries = GCT_TauJets_QHist->getEntries();
390 float taujetsResult = -1;
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;
430 double GCT_AllJets_nentries = GCT_AllJets_QHist->getEntries();
431 float jetsResult = -1;
433 if( (GCT_AllJets_nentries>
GCT_AllJets_threshold_) ) jetsResult = 1 - (
float)GCT_AllJets_nBadCh/(
float)GCT_AllJets_nCh;
445 const QReport *GMT_DeadCh_QReport = GMT_QHist->getQReport(
"DeadChannels_GMT_2D");
446 const QReport *GMT_HotCh_QReport = GMT_QHist->getQReport(
"HotChannels_GMT_2D");
450 if (GMT_DeadCh_QReport) {
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) {
461 int GMT_nHotCh = GMT_HotCh_QReport->getBadChannels().size();
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;
472 double GMT_nentries = GMT_QHist->getEntries();
473 float muonResult = -1;
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;
516 unsigned int NumDataMask =
dataMask.size();
517 std::vector<string> maskedData;
518 for(
unsigned int i=0;
i<NumDataMask;
i++ ){
527 maskedData.push_back(mask_sys_tmp);
531 maskedData.push_back(mask_sys_tmp);
535 maskedData.push_back(mask_sys_tmp);
539 maskedData.push_back(mask_sys_tmp);
543 maskedData.push_back(mask_sys_tmp);
547 maskedData.push_back(mask_sys_tmp);
551 maskedData.push_back(mask_sys_tmp);
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++ ){
575 maskedEmul.push_back(mask_sys_tmp);
579 maskedEmul.push_back(mask_sys_tmp);
583 maskedEmul.push_back(mask_sys_tmp);
587 maskedEmul.push_back(mask_sys_tmp);
591 maskedEmul.push_back(mask_sys_tmp);
595 maskedEmul.push_back(mask_sys_tmp);
599 maskedEmul.push_back(mask_sys_tmp);
603 maskedEmul.push_back(mask_sys_tmp);
607 maskedEmul.push_back(mask_sys_tmp);
611 maskedEmul.push_back(mask_sys_tmp);
615 maskedEmul.push_back(mask_sys_tmp);
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;
633 numUnMaskedSystems++;
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 ){
const QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
void setBinContent(int binx, double content)
set content of bin (1-D)
std::map< std::string, EmulValue > s_mapEmulValues
MonitorElement * reportSummaryContent_[20]
Float_t summaryContent[20]
double GCT_NonIsoEm_threshold_
int getNbinsY(void) const
get # of bins in Y-axis
MonitorElement * reportSummary_
double GMT_Muons_threshold_
double GCT_AllJets_threshold_
double GCT_IsoEm_threshold_
std::vector< std::string > emulMask
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
double GCT_TauJets_threshold_
std::map< std::string, DataValue > s_mapDataValues
const std::vector< DQMChannel > & getBadChannels(void) const
int thresholdLS_
units of lumi sections
std::vector< std::string > dataMask
float getQTresult(void) const
get test result i.e. prob value
MonitorElement * reportSummaryMap_
int getNbinsX(void) const
get # of bins in X-axis
perl if(1 lt scalar(@::datatypes))
std::string StringToUpper(std::string strToConvert)