41{
43
44 if(
object.
IsA()->InheritsFrom(
"TH2" )) {
47 throw dqm_core::BadConfig( ERS_HERE, name, "dimension != 2 " );
48 }
49 } else {
50 throw dqm_core::BadConfig( ERS_HERE, name, "does not inherit from TH2");
51 }
52
55
56 int gthreshold;
57 int rthreshold;
58 try {
61 }
62 catch( dqm_core::Exception & ex ) {
63 throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex );
64 }
65
66 double phi_s_sum, phi_l_sum, eta_s_sum, eta_l_sum;
67
68 double phi_s_avg[48], phi_l_avg[48], eta_s_avg[192], eta_l_avg[192];
69
70 int NphiDead = 0;
71 int NphiNoisy = 0;
72 int NetaDead = 0;
73 int NetaNoisy = 0;
74 int NBad=0;
75
76 for (
int i = 0;
i < 48;
i++) {
79 }
80
81 for (
int i = 0;
i < 192;
i++) {
84 }
85
86
87 for(
size_t x = 0;
x < 48;
x++) {
88 int xbin =
histogram->GetXaxis()->FindBin(
x-48);
89 phi_s_sum = 0;
90 phi_l_sum = 0;
92 for(
size_t y = 6;
y < 86;
y++) {
94
95
96
98
101 }else {
103 }
104 }
105 }
106 }
107 phi_s_avg[
x] = (phi_s_sum/32.0);
108 phi_l_avg[
x] = (phi_l_sum/32.0);
109 }
110
111
112 for(
size_t x = 0;
x < 192;
x++) {
113 int xbin =
histogram->GetXaxis()->FindBin(
x+1);
114 eta_s_sum = 0;
115 eta_l_sum = 0;
116 for(
size_t y = 6;
y < 86;
y++) {
118
119
120
122
125 }else {
127 }
128 }
129 }
130 eta_s_avg[
x] = (eta_s_sum/32.0);
131 eta_l_avg[
x] = (eta_l_sum/32.0);
132 }
133
134
135 for(
size_t x = 0;
x < 48;
x++) {
136 int xbin =
histogram->GetXaxis()->FindBin(
int(
x)-48);
137 phi_s_sum = 0;
138 phi_l_sum = 0;
139 for(
size_t y = 6;
y < 86;
y++) {
141
142
143
145
147 if(content > (1+high)*phi_l_avg[
x]){
148 NphiNoisy++;
149 }
else if(content < (1-low)*phi_l_avg[
x]){
150 NphiDead++;
151 }
152 }else {
153 if(content > (1+high)*phi_s_avg[
x]){
154 NphiNoisy++;
155 }
else if(content < (1-low)*phi_s_avg[
x]){
156 NphiDead++;
157 }
158 }
159 }
160 }
161 }
162
163
164 for(
size_t x = 0;
x < 192;
x++) {
165 int xbin =
histogram->GetXaxis()->FindBin(
x+1);
166 eta_s_sum = 0;
167 eta_l_sum = 0;
168 for(
size_t y = 6;
y < 86;
y++) {
170
171
172
174
176 if(content > (1+high)*eta_l_avg[
x]){
177 NetaNoisy++;
178 }
else if(content < (1-low)*eta_l_avg[
x]){
179 NetaDead++;
180 }
181 }else {
182 if(content > (1+high)*eta_s_avg[
x]){
183 NetaNoisy++;
184 }
else if(content < (1-low)*eta_s_avg[
x]){
185 NetaDead++;
186 }
187 }
188 }
189 }
190 }
191
192 dqm_core::Result*
result =
new dqm_core::Result();
193 NBad = NphiNoisy + NphiDead + NetaNoisy + NetaDead;
194 result->tags_.insert(std::make_pair(
"NBad",NBad));
195 result->tags_.insert(std::make_pair(
"NphiNoisy",NphiNoisy));
196 result->tags_.insert(std::make_pair(
"NphiDead",NphiDead));
197 result->tags_.insert(std::make_pair(
"NetaNoisy",NetaNoisy));
198 result->tags_.insert(std::make_pair(
"NetaDead",NetaDead));
199
200 if (NBad >= rthreshold){
201 result->status_ = dqm_core::Result::Red;
202 }else if (NBad < gthreshold){
203 result->status_ = dqm_core::Result::Green;
204 }else{
205 result->status_ = dqm_core::Result::Yellow;
206 }
207
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245}
#define IsA
Declare the TObject style functions.