37 {
38 if ( !
object.
IsA()->InheritsFrom(
"TProfile" ) ) {
39 throw dqm_core::BadConfig( ERS_HERE, name, "does not inherit from TProfile" );
40 }
41
43
47
48 std::vector<double> bad_errs;
49 std::vector<int> bad_lbs;
50 int nonZerocounter = 0;
51 double percentBadBins = -10.0;
52
53 for (
int i = 1;
i <= 2000;
i++)
54 {
55 if (abs(
histogram->GetBinContent(i)) >= dif_limit)
56 {
57 bad_errs.push_back(
histogram->GetBinContent(i) );
58 bad_lbs.push_back(i);
59 }
61 nonZerocounter++;
62 }
63 percentBadBins =
double( bad_errs.size() )/
double(nonZerocounter)*100;
64
65 auto result =
new dqm_core::Result();
66
67
68 result->tags_[
"% Bad bins " ] = percentBadBins;
69 for (
int i = 0;
i <
int(bad_errs.size()); ++
i )
70 {
71 auto tag = ( std::ostringstream() <<
"LB " << bad_lbs[
i] ).
str();
73 }
74
75 if ( nonZerocounter == 0 )
76 result->status_ = dqm_core::Result::Undefined;
77 else if ( percentBadBins > rthreshold )
78 result->status_ = dqm_core::Result::Red;
79 else if ( percentBadBins > gthreshold )
80 result->status_ = dqm_core::Result::Yellow;
81 else
82 result->status_ = dqm_core::Result::Green;
83
85}
TProfile(*args, **kwargs)
#define IsA
Declare the TObject style functions.