61execute(
const std::string& name,
const TObject&
object,
const dqm_core::AlgorithmConfig&
config)
65 if(
object.
IsA()->InheritsFrom(
"TH1" ) ) {
68 throw dqm_core::BadConfig( ERS_HERE, name,
"dimension > 2 " );
71 throw dqm_core::BadConfig( ERS_HERE, name,
"does not inherit from TH1" );
85 catch ( dqm_core::Exception & ex ) {
86 throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex );
100 int binSize = binEnd-binStart+1;
102 std::vector<double>
contents(binSize);
104 for(
int i=0;i<binSize;i++) {
105 int binx = binStart+i;
107 for (
int j = 1; j <= nbiny; ++j ) {
108 double content=
histogram -> GetBinContent(binx,j);
114 ERS_DEBUG(1,
"Number of entries for bins is "
116 ERS_DEBUG(1,
"Green: "<< gmin <<
" entries; Red: " << rmin <<
" entries ");
119 const TAxis *axis =
histogram->GetXaxis();
120 dqm_core::Result*
result =
new dqm_core::Result();
122 for(
int i=0;i<binSize;i++) {
125 if(binStart+i==0) sprintf(tag,
"Underflows");
126 else if(binStart+i==nbinx+1) sprintf(tag,
"Overflows");
128 label=axis->GetBinLabel(binStart+i);
134 char *mylabel=
new char[l+1];
139 if (mylabel[0]!=0) sprintf(tag,
"%s",mylabel);
140 else sprintf(tag,
"Bin%d",binStart+i);
143 else sprintf(tag,
"Bin%d",binStart+i);
145 else sprintf(tag,
"Bin%d",binStart+i);
150 for(
int i=0;i<binSize;i++) {
152 if(binStart+i==0) sprintf(tag,
"Underflows");
153 else if(binStart+i==nbinx+1) sprintf(tag,
"Overflows");
154 else sprintf(tag,
"Bin%d",binStart+i);
160 if (
count <= gmin ) {
161 result->status_ = dqm_core::Result::Green;
162 }
else if (
count > rmin ) {
163 result->status_ = dqm_core::Result::Red;
165 result->status_ = dqm_core::Result::Yellow;
171 for(
int i=0;i<binSize;i++) {
174 if (
count <= gmin ) {
175 result->status_ = dqm_core::Result::Green;
176 }
else if (
count > rmin ) {
177 result->status_ = dqm_core::Result::Red;
179 result->status_ = dqm_core::Result::Yellow;
185 for(
int i=0;i<binSize;i++) {
188 if (
count <= gmin ) {
189 result->status_ = dqm_core::Result::Green;
190 }
else if (
count > rmin ) {
191 result->status_ = dqm_core::Result::Red;
193 result->status_ = dqm_core::Result::Yellow;
void contents(std::vector< std::string > &keys, TDirectory *td, const std::string &directory, const std::string &pattern, const std::string &path)