9 #include <dqm_core/AlgorithmConfig.h>
19 #include <dqm_core/AlgorithmManager.h>
42 const TObject &
object,
43 const dqm_core::AlgorithmConfig &
config )
47 if(
object.
IsA()->InheritsFrom(
"TH1" )) {
50 throw dqm_core::BadConfig( ERS_HERE,
name,
"dimension > 1 " );
53 throw dqm_core::BadConfig( ERS_HERE,
name,
"does not inherit from TH1");
72 catch( dqm_core::Exception & ex ) {
73 throw dqm_core::BadConfig( ERS_HERE,
name, ex.what(), ex );
84 }
else if (
histogram->InheritsFrom(
"TH1")) {
87 throw dqm_core::BadConfig( ERS_HERE,
name,
"does not inherit from TH1" );
92 for (
int i = 1;
i <
range[0]; ++
i ) {
96 resulthisto->SetBinContent(
i,
content);
97 if (publish &&
count<maxpublish) {
106 resulthisto->SetBinContent(j,
content);
107 if (publish &&
count<maxpublish) {
113 ERS_DEBUG(1,
"Number of bins with content != 0 is " <<
count );
114 ERS_DEBUG(1,
"Green threshold: "<< gthreshold <<
" bin(s); Red threshold : " << rthreshold <<
" bin(s) ");
118 result->object_ = (boost::shared_ptr<TObject>)(TObject*)(resulthisto);
120 if (gthreshold > rthreshold) {
121 if (
count >= gthreshold ) {
123 }
else if (
count > rthreshold ) {
124 result->status_ = dqm_core::Result::Yellow;
129 if (
count <= gthreshold ) {
131 }
else if (
count < rthreshold ) {
132 result->status_ = dqm_core::Result::Yellow;
143 out<<
"Bins_Filled_OutsideRange: Checks for number of non-empty bins outside bin range\n"<<std::endl;
145 out<<
"Mandatory Parameter: xmin: minimum x range"<<std::endl;
146 out<<
"Mandatory Parameter: xmax: maximum x range"<<std::endl;
147 out<<
"Mandatory Green/Red Threshold: NBins: Number of non-empty bins to give Green/Red result\n"<<std::endl;
149 out<<
"Optional Parameter: PublishBins: Save bins which are different from average in Result (set to 1)"<<std::endl;
150 out<<
"Optional Parameter: MaxPublish: Max number of bins to save (default 20)"<<std::endl;
151 out<<
"Optional Parameter: MinStat: Minimum histogram statistics needed to perform Algorithm"<<std::endl;