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,GT_AlgoBits_nCh=0,GT_TechBits_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;
262 if(GT_AlgoBits_QHist) GT_AlgoBits_nCh = GT_AlgoBits_QHist->
getNbinsX();
263 if(GT_TechBits_QHist) GT_TechBits_nCh = GT_TechBits_QHist->
getNbinsX();
276 int nCh_no_inst = 144;
281 if (GCT_NonIsoEm_QHist){
282 const QReport *GCT_NonIsoEm_DeadCh_QReport = GCT_NonIsoEm_QHist->
getQReport(
"DeadChannels_GCT_2D_loose");
283 const QReport *GCT_NonIsoEm_HotCh_QReport = GCT_NonIsoEm_QHist->
getQReport(
"HotChannels_GCT_2D");
285 int GCT_NonIsoEm_nBadCh = 0;
287 if (GCT_NonIsoEm_DeadCh_QReport) {
288 int GCT_NonIsoEm_nDeadCh = GCT_NonIsoEm_DeadCh_QReport->
getBadChannels().size();
289 if(
verbose_ )
cout <<
" GCT_NonIsoEm_nDeadCh: " << GCT_NonIsoEm_nDeadCh
290 <<
", GCT_NonIsoEm_nCh: " << GCT_NonIsoEm_nCh
291 <<
", GCT_NonIsoEm_DeadCh_efficiency: " << 1 - (float)GCT_NonIsoEm_nDeadCh/(
float)GCT_NonIsoEm_nCh
292 << " GCT_NonIsoEm_DeadCh QTResult = " << GCT_NonIsoEm_DeadCh_QReport->getQTresult() << std::endl;
294 GCT_NonIsoEm_nBadCh+=GCT_NonIsoEm_nDeadCh;
297 if (GCT_NonIsoEm_HotCh_QReport) {
298 int GCT_NonIsoEm_nHotCh = GCT_NonIsoEm_HotCh_QReport->getBadChannels().size();
299 if(
verbose_ )
cout <<
" GCT_NonIsoEm_nHotCh: " << GCT_NonIsoEm_nHotCh
300 <<
", GCT_NonIsoEm_nCh: " << GCT_NonIsoEm_nCh
301 <<
", GCT_NonIsoEm_HotCh_efficiency: " << 1 - (float)GCT_NonIsoEm_nHotCh/(
float)GCT_NonIsoEm_nCh
302 << " GCT_NonIsoEm_HotCh QTResult = " << GCT_NonIsoEm_HotCh_QReport->getQTresult() << std::endl;
304 GCT_NonIsoEm_nBadCh+=GCT_NonIsoEm_nHotCh;
309 double GCT_NonIsoEm_nentries = GCT_NonIsoEm_QHist->getEntries();
310 float nonisoResult = -1;
311 if( (
counterLS_>=1000 && GCT_NonIsoEm_nentries==0) ) nonisoResult = 0;
312 if( (GCT_NonIsoEm_nentries>
GCT_NonIsoEm_threshold_) ) nonisoResult = 1 - (
float)(GCT_NonIsoEm_nBadCh-nCh_no_inst)/(
float)(GCT_NonIsoEm_nCh-nCh_no_inst);
313 summaryContent[1] = ( nonisoResult < (1.0+1e-10) ) ? nonisoResult : 1.0;
322 if (GCT_IsoEm_QHist){
323 const QReport *GCT_IsoEm_DeadCh_QReport = GCT_IsoEm_QHist->getQReport(
"DeadChannels_GCT_2D_loose");
324 const QReport *GCT_IsoEm_HotCh_QReport = GCT_IsoEm_QHist->getQReport(
"HotChannels_GCT_2D");
326 int GCT_IsoEm_nBadCh = 0;
328 if (GCT_IsoEm_DeadCh_QReport) {
329 int GCT_IsoEm_nDeadCh = GCT_IsoEm_DeadCh_QReport->
getBadChannels().size();
330 if(
verbose_ )
cout <<
" GCT_IsoEm_nDeadCh: " << GCT_IsoEm_nDeadCh
331 <<
", GCT_IsoEm_nCh: " << GCT_IsoEm_nCh
332 <<
", GCT_IsoEm_DeadCh_efficiency: " << 1 - (float)GCT_IsoEm_nDeadCh/(
float)GCT_IsoEm_nCh
333 << " GCT_IsoEm_DeadCh QTResult = " << GCT_IsoEm_DeadCh_QReport->getQTresult() << std::endl;
335 GCT_IsoEm_nBadCh+=GCT_IsoEm_nDeadCh;
338 if (GCT_IsoEm_HotCh_QReport) {
339 int GCT_IsoEm_nHotCh = GCT_IsoEm_HotCh_QReport->getBadChannels().size();
340 if(
verbose_ )
cout <<
" GCT_IsoEm_nHotCh: " << GCT_IsoEm_nHotCh
341 <<
", GCT_IsoEm_nCh: " << GCT_IsoEm_nCh
342 <<
", GCT_IsoEm_HotCh_efficiency: " << 1 - (float)GCT_IsoEm_nHotCh/(
float)GCT_IsoEm_nCh
343 << " GCT_IsoEm_HotCh QTResult = " << GCT_IsoEm_HotCh_QReport->getQTresult() << std::endl;
345 GCT_IsoEm_nBadCh+=GCT_IsoEm_nHotCh;
350 double GCT_IsoEm_nentries = GCT_IsoEm_QHist->getEntries();
351 float isoResult = -1;
353 if( (GCT_IsoEm_nentries>
GCT_IsoEm_threshold_) ) isoResult = 1 - (
float)(GCT_IsoEm_nBadCh-nCh_no_inst)/(
float)(GCT_IsoEm_nCh-nCh_no_inst);
354 summaryContent[2] = ( isoResult < (1.0+1e-10) ) ? isoResult : 1.0;
363 if (GCT_TauJets_QHist){
364 const QReport *GCT_TauJets_DeadCh_QReport = GCT_TauJets_QHist->getQReport(
"DeadChannels_GCT_2D_loose");
365 const QReport *GCT_TauJets_HotCh_QReport = GCT_TauJets_QHist->getQReport(
"HotChannels_GCT_2D");
367 int GCT_TauJets_nBadCh = 0;
369 if (GCT_TauJets_DeadCh_QReport) {
370 int GCT_TauJets_nDeadCh = GCT_TauJets_DeadCh_QReport->
getBadChannels().size();
371 if(
verbose_ )
cout <<
" GCT_TauJets_nDeadCh: " << GCT_TauJets_nDeadCh
372 <<
", GCT_TauJets_nCh: " << GCT_TauJets_nCh
373 <<
", GCT_TauJets_DeadCh_efficiency: " << 1 - (float)GCT_TauJets_nDeadCh/(
float)GCT_TauJets_nCh
374 << " GCT_TauJets_DeadCh QTResult = " << GCT_TauJets_DeadCh_QReport->getQTresult() << std::endl;
376 GCT_TauJets_nBadCh+=GCT_TauJets_nDeadCh;
379 if (GCT_TauJets_HotCh_QReport) {
380 int GCT_TauJets_nHotCh = GCT_TauJets_HotCh_QReport->getBadChannels().size();
381 if(
verbose_ )
cout <<
" GCT_TauJets_nHotCh: " << GCT_TauJets_nHotCh
382 <<
", GCT_TauJets_nCh: " << GCT_TauJets_nCh
383 <<
", GCT_TauJets_HotCh_efficiency: " << 1 - (float)GCT_TauJets_nHotCh/(
float)GCT_TauJets_nCh
384 << " GCT_TauJets_HotCh QTResult = " << GCT_TauJets_HotCh_QReport->getQTresult() << std::endl;
386 GCT_TauJets_nBadCh+=GCT_TauJets_nHotCh;
391 double GCT_TauJets_nentries = GCT_TauJets_QHist->getEntries();
392 float taujetsResult = -1;
394 if( (GCT_TauJets_nentries>
GCT_TauJets_threshold_) ) taujetsResult = 1 - (
float)(GCT_TauJets_nBadCh-nCh_no_inst)/(
float)(GCT_TauJets_nCh-nCh_no_inst);
395 summaryContent[3] = ( taujetsResult < (1.0+1e-10) ) ? taujetsResult : 1.0;
404 if (GCT_AllJets_QHist){
405 const QReport *GCT_AllJets_DeadCh_QReport = GCT_AllJets_QHist->getQReport(
"DeadChannels_GCT_2D_tight");
406 const QReport *GCT_AllJets_HotCh_QReport = GCT_AllJets_QHist->getQReport(
"HotChannels_GCT_2D");
408 int GCT_AllJets_nBadCh = 0;
410 if (GCT_AllJets_DeadCh_QReport) {
411 int GCT_AllJets_nDeadCh = GCT_AllJets_DeadCh_QReport->
getBadChannels().size();
412 if(
verbose_ )
cout <<
" GCT_AllJets_nDeadCh: " << GCT_AllJets_nDeadCh
413 <<
", GCT_AllJets_nCh: " << GCT_AllJets_nCh
414 <<
", GCT_AllJets_DeadCh_efficiency: " << 1 - (float)GCT_AllJets_nDeadCh/(
float)GCT_AllJets_nCh
415 << " GCT_AllJets_DeadCh QTResult = " << GCT_AllJets_DeadCh_QReport->getQTresult() << std::endl;
417 GCT_AllJets_nBadCh+=GCT_AllJets_nDeadCh;
420 if (GCT_AllJets_HotCh_QReport) {
421 int GCT_AllJets_nHotCh = GCT_AllJets_HotCh_QReport->getBadChannels().size();
422 if(
verbose_ )
cout <<
" GCT_AllJets_nHotCh: " << GCT_AllJets_nHotCh
423 <<
", GCT_AllJets_nCh: " << GCT_AllJets_nCh
424 <<
", GCT_AllJets_HotCh_efficiency: " << 1 - (float)GCT_AllJets_nHotCh/(
float)GCT_AllJets_nCh
425 << " GCT_AllJets_HotCh QTResult = " << GCT_AllJets_HotCh_QReport->getQTresult() << std::endl;
427 GCT_AllJets_nBadCh+=GCT_AllJets_nHotCh;
432 double GCT_AllJets_nentries = GCT_AllJets_QHist->getEntries();
433 float jetsResult = -1;
435 if( (GCT_AllJets_nentries>
GCT_AllJets_threshold_) ) jetsResult = 1 - (
float)GCT_AllJets_nBadCh/(
float)GCT_AllJets_nCh;
436 summaryContent[4] = ( jetsResult < (1.0+1e-10) ) ? jetsResult : 1.0;
447 const QReport *GMT_DeadCh_QReport = GMT_QHist->getQReport(
"DeadChannels_GMT_2D");
448 const QReport *GMT_HotCh_QReport = GMT_QHist->getQReport(
"HotChannels_GMT_2D");
452 if (GMT_DeadCh_QReport) {
455 <<
", GMT_nCh: " << GMT_nCh
456 <<
", GMT_DeadCh_efficiency: " << 1 - (float)GMT_nDeadCh/(
float)GMT_nCh
457 << " GMT_DeadCh QTResult = " << GMT_DeadCh_QReport->getQTresult() << std::endl;
459 GMT_nBadCh+=GMT_nDeadCh;
462 if (GMT_HotCh_QReport) {
463 int GMT_nHotCh = GMT_HotCh_QReport->getBadChannels().size();
465 <<
", GMT_nCh: " << GMT_nCh
466 <<
", GMT_HotCh_efficiency: " << 1 - (float)GMT_nHotCh/(
float)GMT_nCh
467 << " GMT_HotCh QTResult = " << GMT_HotCh_QReport->getQTresult() << std::endl;
469 GMT_nBadCh+=GMT_nHotCh;
474 double GMT_nentries = GMT_QHist->getEntries();
475 float muonResult = -1;
478 summaryContent[5] = ( muonResult < (1.0+1e-10) ) ? muonResult : 1.0;
486 double gt_algobits_prob = 0;
487 double gt_techbits_prob = 0;
489 if (GT_AlgoBits_QHist){
490 gt_algobits_prob = 1;
491 const QReport *GT_AlgoBits_QReport = GT_AlgoBits_QHist->getQReport(
"CompareHist_GT");
492 if (GT_AlgoBits_QReport) gt_algobits_prob = GT_AlgoBits_QReport->
getQTresult();
494 if (GT_TechBits_QHist){
495 gt_techbits_prob = 1;
496 const QReport *GT_TechBits_QReport = GT_TechBits_QHist->
getQReport(
"CompareHist_GT");
497 if (GT_TechBits_QReport) gt_techbits_prob = GT_TechBits_QReport->
getQTresult();
500 if( gt_algobits_prob!=-1 && gt_techbits_prob!=-1 )
summaryContent[6] = 0.5*( gt_algobits_prob + gt_techbits_prob );
501 else if( GT_AlgoBits_QHist && GT_TechBits_QHist )
summaryContent[6] = 1;
518 unsigned int NumDataMask =
dataMask.size();
519 std::vector<string> maskedData;
520 for(
unsigned int i=0;
i<NumDataMask;
i++ ){
529 maskedData.push_back(mask_sys_tmp);
533 maskedData.push_back(mask_sys_tmp);
537 maskedData.push_back(mask_sys_tmp);
541 maskedData.push_back(mask_sys_tmp);
545 maskedData.push_back(mask_sys_tmp);
549 maskedData.push_back(mask_sys_tmp);
553 maskedData.push_back(mask_sys_tmp);
557 maskedData.push_back(mask_sys_tmp);
560 if(
verbose_ )
cout <<
" User input mask '" << mask_sys_tmp <<
"' is not recognized." << endl;
566 unsigned int NumEmulMask =
emulMask.size();
567 std::vector<string> maskedEmul;
568 for(
unsigned int i=0;
i<NumEmulMask;
i++ ){
577 maskedEmul.push_back(mask_sys_tmp);
581 maskedEmul.push_back(mask_sys_tmp);
585 maskedEmul.push_back(mask_sys_tmp);
589 maskedEmul.push_back(mask_sys_tmp);
593 maskedEmul.push_back(mask_sys_tmp);
597 maskedEmul.push_back(mask_sys_tmp);
601 maskedEmul.push_back(mask_sys_tmp);
605 maskedEmul.push_back(mask_sys_tmp);
609 maskedEmul.push_back(mask_sys_tmp);
613 maskedEmul.push_back(mask_sys_tmp);
617 maskedEmul.push_back(mask_sys_tmp);
621 maskedEmul.push_back(mask_sys_tmp);
624 if(
verbose_ )
cout <<
" User input mask '" << mask_sys_tmp <<
"' is not recognized." << endl;
630 int numUnMaskedSystems = 0;
635 numUnMaskedSystems++;
673 if( maskedData.size()>0 ){
675 for(
unsigned int i=0;
i<maskedData.size();
i++ ){
676 if(
i!=maskedData.size()-1 ){
684 if( maskedEmul.size()>0 ){
686 for(
unsigned int i=0;
i<maskedEmul.size();
i++ ){
687 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)