55 if(
object.
IsA()->InheritsFrom(
"TH2" ) ) {
56 hist =
static_cast<const TH2*
>(&
object);
57 if (hist->GetDimension() != 2 ){
58 throw dqm_core::BadConfig( ERS_HERE, name,
"dimension != 2 " );
61 throw dqm_core::BadConfig( ERS_HERE, name,
"does not inherit from TH2" );
73 catch ( dqm_core::Exception & ex ) {
74 throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex );
81 TH1* projection = hist->ProjectionX();
83 dqm_core::Result*
result =
new dqm_core::Result();
84 std::map<std::string,double>
tags;
87 result->status_ = dqm_core::Result::Green;
90 for(
int iBin=1;iBin<=projection->GetNbinsX();iBin++)
92 if( projection->GetBinContent(iBin)*thresh > hist->GetBinContent(iBin,centralBin) )
94 result->status_ = dqm_core::Result::Yellow;
97 std::string slNum = std::to_string(iBin-1);
98 if(iBin < 10) slNum =
"0" + slNum;
100 tags[slNum] = hist->GetBinContent(iBin,centralBin)*1.0 / projection->GetBinContent(iBin) ;
103 tags[
"howmanybad"] = howmanybad;
110 result->status_ = dqm_core::Result::Red;
113 hist->GetStats(stats);
116 result->status_ = dqm_core::Result::Undefined;