9 #include <dqm_core/AlgorithmConfig.h>
12 #include <dqm_core/AlgorithmManager.h>
37 const TObject &
object,
38 const dqm_core::AlgorithmConfig &
config)
42 if(
object.
IsA()->InheritsFrom(
"TH1" ) ) {
45 throw dqm_core::BadConfig( ERS_HERE,
name,
"dimension > 2 " );
48 throw dqm_core::BadConfig( ERS_HERE,
name,
"does not inherit from TH1" );
60 catch ( dqm_core::Exception & ex ) {
61 throw dqm_core::BadConfig( ERS_HERE,
name, ex.what(), ex );
68 catch ( dqm_core::Exception & ex ) {
69 throw dqm_core::BadConfig(ERS_HERE,
name,
"Parameter: 'Threshold' is mandatory, cannot continue");
84 double hdenom =
histogram->GetBinContent(xbin_denom);
86 if ( minrefentries > 0 && hdenom < minrefentries) {
88 result->tags_[
"InsufficientRefEntries"] = hdenom;
93 double hnum =
histogram -> GetBinContent(xbin_num);
95 double value = hnum/hdenom;
100 if (rthresho < gthresho){
101 if (
value >= gthresho ) {
103 }
else if (
value < rthresho ) {
106 result->status_ = dqm_core::Result::Yellow;
109 if (
value <= gthresho ) {
111 }
else if (
value > rthresho ) {
114 result->status_ = dqm_core::Result::Yellow;
123 out<<
"DivideBin : Performs the division of a particular bin by the total entries in that histogram "<< std::endl;
124 out<<
"Optional Parameter : MinStat : Minimum histogram statistics needed to perform Algorithm"<< std::endl;
125 out<<
"Optional Parameter : MinRefEntries : Minimum number of entries in reference bin needed to perform Algorithm"<< std::endl;
126 out<<
"Mandatory parameter: TestBin: Index of the bin in x that should be tested\n"<< std::endl;
127 out<<
"Mandatory parameter: RefBin: Index of the bin in x that should be used as a reference\n"<< std::endl;