17 #include "dqm_core/exceptions.h"
18 #include "dqm_core/AlgorithmConfig.h"
19 #include "dqm_core/AlgorithmManager.h"
20 #include "dqm_core/Result.h"
55 if(
object.
IsA()->InheritsFrom(
"TH2" ) ) {
56 hist = (
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();
84 std::map<std::string,double>
tags;
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;
98 if(iBin < 10) slNum =
"0" + slNum;
100 tags[slNum] =
hist->GetBinContent(iBin,centralBin)*1.0 / projection->GetBinContent(iBin) ;
103 tags[
"howmanybad"] = howmanybad;
128 message +=
"Description: for each SL x-slice (set of y-bins for the same x value) check that the central y bin has at least 'thresh' percent(ratio) of the sum of values in the SL \n";