CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EBPedestalClient.cc
Go to the documentation of this file.
1 /*
2  * \file EBPedestalClient.cc
3  *
4  * $Date: 2010/08/30 13:14:07 $
5  * $Revision: 1.226 $
6  * \author G. Della Ricca
7  * \author F. Cossutti
8  *
9 */
10 
11 #include <memory>
12 #include <iostream>
13 #include <fstream>
14 #include <iomanip>
15 #include <math.h>
16 
18 
20 
21 #ifdef WITH_ECAL_COND_DB
29 #endif
30 
32 
35 
37 
38 // #define COMMON_NOISE_ANALYSIS
39 
41 
42  // cloneME switch
43  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
44 
45  // verbose switch
46  verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
47 
48  // debug switch
49  debug_ = ps.getUntrackedParameter<bool>("debug", false);
50 
51  // prefixME path
52  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
53 
54  // enableCleanup_ switch
55  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
56 
57  // vector of selected Super Modules (Defaults to all 36).
58  superModules_.reserve(36);
59  for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i);
60  superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
61 
62  MGPAGains_.reserve(3);
63  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGains_.push_back(i);
64  MGPAGains_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGains", MGPAGains_);
65 
66  MGPAGainsPN_.reserve(2);
67  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGainsPN_.push_back(i);
68  MGPAGainsPN_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGainsPN", MGPAGainsPN_);
69 
70  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
71 
72  int ism = superModules_[i];
73 
74  h01_[ism-1] = 0;
75  h02_[ism-1] = 0;
76  h03_[ism-1] = 0;
77 
78  j01_[ism-1] = 0;
79  j02_[ism-1] = 0;
80  j03_[ism-1] = 0;
81 
82  k01_[ism-1] = 0;
83  k02_[ism-1] = 0;
84  k03_[ism-1] = 0;
85 
86  i01_[ism-1] = 0;
87  i02_[ism-1] = 0;
88 
89  }
90 
91  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
92 
93  int ism = superModules_[i];
94 
95  meg01_[ism-1] = 0;
96  meg02_[ism-1] = 0;
97  meg03_[ism-1] = 0;
98 
99  meg04_[ism-1] = 0;
100  meg05_[ism-1] = 0;
101 
102  mep01_[ism-1] = 0;
103  mep02_[ism-1] = 0;
104  mep03_[ism-1] = 0;
105 
106  mer01_[ism-1] = 0;
107  mer02_[ism-1] = 0;
108  mer03_[ism-1] = 0;
109 
110  mer04_[ism-1] = 0;
111  mer05_[ism-1] = 0;
112 
113 #ifdef COMMON_NOISE_ANALYSIS
114  mes01_[ism-1] = 0;
115  mes02_[ism-1] = 0;
116  mes03_[ism-1] = 0;
117 
118  met01_[ism-1] = 0;
119  met02_[ism-1] = 0;
120  met03_[ism-1] = 0;
121 #endif
122 
123  }
124 
125  expectedMean_[0] = 200.0;
126  expectedMean_[1] = 200.0;
127  expectedMean_[2] = 200.0;
128 
129  discrepancyMean_[0] = 25.0;
130  discrepancyMean_[1] = 25.0;
131  discrepancyMean_[2] = 25.0;
132 
133  RMSThreshold_[0] = 1.0;
134  RMSThreshold_[1] = 1.2;
135  RMSThreshold_[2] = 2.0;
136 
137  expectedMeanPn_[0] = 750.0;
138  expectedMeanPn_[1] = 750.0;
139 
140  discrepancyMeanPn_[0] = 100.0;
141  discrepancyMeanPn_[1] = 100.0;
142 
143  RMSThresholdPn_[0] = 999.;
144  RMSThresholdPn_[1] = 999.;
145 
146 }
147 
149 
150 }
151 
153 
155 
156  if ( debug_ ) std::cout << "EBPedestalClient: beginJob" << std::endl;
157 
158  ievt_ = 0;
159  jevt_ = 0;
160 
161 }
162 
164 
165  if ( debug_ ) std::cout << "EBPedestalClient: beginRun" << std::endl;
166 
167  jevt_ = 0;
168 
169  this->setup();
170 
171 }
172 
174 
175  if ( debug_ ) std::cout << "EBPedestalClient: endJob, ievt = " << ievt_ << std::endl;
176 
177  this->cleanup();
178 
179 }
180 
182 
183  if ( debug_ ) std::cout << "EBPedestalClient: endRun, jevt = " << jevt_ << std::endl;
184 
185  this->cleanup();
186 
187 }
188 
190 
191  char histo[200];
192 
193  dqmStore_->setCurrentFolder( prefixME_ + "/EBPedestalClient" );
194 
195  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
196 
197  int ism = superModules_[i];
198 
199  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
200  if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
201  sprintf(histo, "EBPT pedestal quality G01 %s", Numbers::sEB(ism).c_str());
202  meg01_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
203  meg01_[ism-1]->setAxisTitle("ieta", 1);
204  meg01_[ism-1]->setAxisTitle("iphi", 2);
205  }
206  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
207  if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
208  sprintf(histo, "EBPT pedestal quality G06 %s", Numbers::sEB(ism).c_str());
209  meg02_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
210  meg02_[ism-1]->setAxisTitle("ieta", 1);
211  meg02_[ism-1]->setAxisTitle("iphi", 2);
212  }
213  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
214  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
215  sprintf(histo, "EBPT pedestal quality G12 %s", Numbers::sEB(ism).c_str());
216  meg03_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
217  meg03_[ism-1]->setAxisTitle("ieta", 1);
218  meg03_[ism-1]->setAxisTitle("iphi", 2);
219  }
220 
221  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
222  if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
223  sprintf(histo, "EBPT pedestal quality PNs G01 %s", Numbers::sEB(ism).c_str());
224  meg04_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
225  meg04_[ism-1]->setAxisTitle("pseudo-strip", 1);
226  meg04_[ism-1]->setAxisTitle("channel", 2);
227  }
228  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
229  if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
230  sprintf(histo, "EBPT pedestal quality PNs G16 %s", Numbers::sEB(ism).c_str());
231  meg05_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.);
232  meg05_[ism-1]->setAxisTitle("pseudo-strip", 1);
233  meg05_[ism-1]->setAxisTitle("channel", 2);
234  }
235 
236  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
237  if ( mep01_[ism-1] ) dqmStore_->removeElement( mep01_[ism-1]->getName() );
238  sprintf(histo, "EBPT pedestal mean G01 %s", Numbers::sEB(ism).c_str());
239  mep01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 150., 250.);
240  mep01_[ism-1]->setAxisTitle("mean", 1);
241  }
242  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
243  if ( mep02_[ism-1] ) dqmStore_->removeElement( mep02_[ism-1]->getName() );
244  sprintf(histo, "EBPT pedestal mean G06 %s", Numbers::sEB(ism).c_str());
245  mep02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 150., 250.);
246  mep02_[ism-1]->setAxisTitle("mean", 1);
247  }
248  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
249  if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() );
250  sprintf(histo, "EBPT pedestal mean G12 %s", Numbers::sEB(ism).c_str());
251  mep03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 150., 250.);
252  mep03_[ism-1]->setAxisTitle("mean", 1);
253  }
254 
255  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
256  if ( mer01_[ism-1] ) dqmStore_->removeElement( mer01_[ism-1]->getName() );
257  sprintf(histo, "EBPT pedestal rms G01 %s", Numbers::sEB(ism).c_str());
258  mer01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
259  mer01_[ism-1]->setAxisTitle("rms", 1);
260  }
261  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
262  if ( mer02_[ism-1] ) dqmStore_->removeElement( mer02_[ism-1]->getName() );
263  sprintf(histo, "EBPT pedestal rms G06 %s", Numbers::sEB(ism).c_str());
264  mer02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
265  mer02_[ism-1]->setAxisTitle("rms", 1);
266  }
267  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
268  if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() );
269  sprintf(histo, "EBPT pedestal rms G12 %s", Numbers::sEB(ism).c_str());
270  mer03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
271  mer03_[ism-1]->setAxisTitle("rms", 1);
272  }
273 
274  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
275  if ( mer04_[ism-1] ) dqmStore_->removeElement( mer04_[ism-1]->getName() );
276  sprintf(histo, "EBPDT PNs pedestal rms %s G01", Numbers::sEB(ism).c_str());
277  mer04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
278  mer04_[ism-1]->setAxisTitle("rms", 1);
279  }
280  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
281  if ( mer05_[ism-1] ) dqmStore_->removeElement( mer05_[ism-1]->getName() );
282  sprintf(histo, "EBPDT PNs pedestal rms %s G16", Numbers::sEB(ism).c_str());
283  mer05_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
284  mer05_[ism-1]->setAxisTitle("rms", 1);
285  }
286 
287 #ifdef COMMON_NOISE_ANALYSIS
288  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
289  if ( mes01_[ism-1] ) dqmStore_->removeElement( mes01_[ism-1]->getName() );
290  sprintf(histo, "EBPT pedestal 3sum G01 %s", Numbers::sEB(ism).c_str());
291  mes01_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
292  mes01_[ism-1]->setAxisTitle("ieta", 1);
293  mes01_[ism-1]->setAxisTitle("iphi", 2);
294  }
295  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
296  if ( mes02_[ism-1] ) dqmStore_->removeElement( mes02_[ism-1]->getName() );
297  sprintf(histo, "EBPT pedestal 3sum G06 %s", Numbers::sEB(ism).c_str());
298  mes02_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
299  mes02_[ism-1]->setAxisTitle("ieta", 1);
300  mes02_[ism-1]->setAxisTitle("iphi", 2);
301  }
302  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
303  if ( mes03_[ism-1] ) dqmStore_->removeElement( mes03_[ism-1]->getName() );
304  sprintf(histo, "EBPT pedestal 3sum G12 %s", Numbers::sEB(ism).c_str());
305  mes03_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
306  mes03_[ism-1]->setAxisTitle("ieta", 1);
307  mes03_[ism-1]->setAxisTitle("iphi", 2);
308  }
309 
310  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
311  if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() );
312  sprintf(histo, "EBPT pedestal 5sum G01 %s", Numbers::sEB(ism).c_str());
313  met01_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
314  met01_[ism-1]->setAxisTitle("ieta", 1);
315  met01_[ism-1]->setAxisTitle("iphi", 2);
316  }
317  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
318  if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() );
319  sprintf(histo, "EBPT pedestal 5sum G06 %s", Numbers::sEB(ism).c_str());
320  met02_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
321  met02_[ism-1]->setAxisTitle("ieta", 1);
322  met02_[ism-1]->setAxisTitle("iphi", 2);
323  }
324  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
325  if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() );
326  sprintf(histo, "EBPT pedestal 5sum G12 %s", Numbers::sEB(ism).c_str());
327  met03_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
328  met03_[ism-1]->setAxisTitle("ieta", 1);
329  met03_[ism-1]->setAxisTitle("iphi", 2);
330  }
331 #endif
332 
333  }
334 
335  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
336 
337  int ism = superModules_[i];
338 
339  if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
340  if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
341  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
342 
343  if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
344  if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
345 
346  for ( int ie = 1; ie <= 85; ie++ ) {
347  for ( int ip = 1; ip <= 20; ip++ ) {
348 
349  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ie, ip, 2. );
350  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. );
351  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ie, ip, 2. );
352 
353  }
354  }
355 
356  for ( int i = 1; i <= 10; i++ ) {
357 
358  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 2. );
359  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
360 
361  }
362 
363  if ( mep01_[ism-1] ) mep01_[ism-1]->Reset();
364  if ( mep02_[ism-1] ) mep02_[ism-1]->Reset();
365  if ( mep03_[ism-1] ) mep03_[ism-1]->Reset();
366 
367  if ( mer01_[ism-1] ) mer01_[ism-1]->Reset();
368  if ( mer02_[ism-1] ) mer02_[ism-1]->Reset();
369  if ( mer03_[ism-1] ) mer03_[ism-1]->Reset();
370 
371  if ( mer04_[ism-1] ) mer04_[ism-1]->Reset();
372  if ( mer05_[ism-1] ) mer05_[ism-1]->Reset();
373 
374 #ifdef COMMON_NOISE_ANALYSIS
375  if ( mes01_[ism-1] ) mes01_[ism-1]->Reset();
376  if ( mes02_[ism-1] ) mes02_[ism-1]->Reset();
377  if ( mes03_[ism-1] ) mes03_[ism-1]->Reset();
378 
379  if ( met01_[ism-1] ) met01_[ism-1]->Reset();
380  if ( met02_[ism-1] ) met02_[ism-1]->Reset();
381  if ( met03_[ism-1] ) met03_[ism-1]->Reset();
382 
383  for ( int ie = 1; ie <= 85; ie++ ) {
384  for ( int ip = 1; ip <= 20; ip++ ) {
385 
386  if ( mes01_[ism-1] ) mes01_[ism-1]->setBinContent( ie, ip, -999. );
387  if ( mes02_[ism-1] ) mes02_[ism-1]->setBinContent( ie, ip, -999. );
388  if ( mes03_[ism-1] ) mes03_[ism-1]->setBinContent( ie, ip, -999. );
389 
390  if ( met01_[ism-1] ) met01_[ism-1]->setBinContent( ie, ip, -999. );
391  if ( met02_[ism-1] ) met02_[ism-1]->setBinContent( ie, ip, -999. );
392  if ( met03_[ism-1] ) met03_[ism-1]->setBinContent( ie, ip, -999. );
393 
394  }
395  }
396 #endif
397 
398  }
399 
400 }
401 
403 
404  if ( ! enableCleanup_ ) return;
405 
406  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
407 
408  int ism = superModules_[i];
409 
410  if ( cloneME_ ) {
411  if ( h01_[ism-1] ) delete h01_[ism-1];
412  if ( h02_[ism-1] ) delete h02_[ism-1];
413  if ( h03_[ism-1] ) delete h03_[ism-1];
414 
415  if ( j01_[ism-1] ) delete j01_[ism-1];
416  if ( j02_[ism-1] ) delete j02_[ism-1];
417  if ( j03_[ism-1] ) delete j03_[ism-1];
418 
419  if ( k01_[ism-1] ) delete k01_[ism-1];
420  if ( k02_[ism-1] ) delete k02_[ism-1];
421  if ( k03_[ism-1] ) delete k03_[ism-1];
422 
423  if ( i01_[ism-1] ) delete i01_[ism-1];
424  if ( i02_[ism-1] ) delete i02_[ism-1];
425  }
426 
427  h01_[ism-1] = 0;
428  h02_[ism-1] = 0;
429  h03_[ism-1] = 0;
430 
431  j01_[ism-1] = 0;
432  j02_[ism-1] = 0;
433  j03_[ism-1] = 0;
434 
435  k01_[ism-1] = 0;
436  k02_[ism-1] = 0;
437  k03_[ism-1] = 0;
438 
439  i01_[ism-1] = 0;
440  i02_[ism-1] = 0;
441 
442  }
443 
444  dqmStore_->setCurrentFolder( prefixME_ + "/EBPedestalClient" );
445 
446  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
447 
448  int ism = superModules_[i];
449 
450  if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() );
451  meg01_[ism-1] = 0;
452  if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() );
453  meg02_[ism-1] = 0;
454  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
455  meg03_[ism-1] = 0;
456 
457  if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() );
458  meg04_[ism-1] = 0;
459  if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() );
460  meg05_[ism-1] = 0;
461 
462  if ( mep01_[ism-1] ) dqmStore_->removeElement( mep01_[ism-1]->getName() );
463  mep01_[ism-1] = 0;
464  if ( mep02_[ism-1] ) dqmStore_->removeElement( mep02_[ism-1]->getName() );
465  mep02_[ism-1] = 0;
466  if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() );
467  mep03_[ism-1] = 0;
468 
469  if ( mer01_[ism-1] ) dqmStore_->removeElement( mer01_[ism-1]->getName() );
470  mer01_[ism-1] = 0;
471  if ( mer02_[ism-1] ) dqmStore_->removeElement( mer02_[ism-1]->getName() );
472  mer02_[ism-1] = 0;
473  if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() );
474  mer03_[ism-1] = 0;
475 
476  if ( mer04_[ism-1] ) dqmStore_->removeElement( mer04_[ism-1]->getName() );
477  mer04_[ism-1] = 0;
478  if ( mer05_[ism-1] ) dqmStore_->removeElement( mer05_[ism-1]->getName() );
479  mer05_[ism-1] = 0;
480 
481 #ifdef COMMON_NOISE_ANALYSIS
482  if ( mes01_[ism-1] ) dqmStore_->removeElement( mes01_[ism-1]->getName() );
483  mes01_[ism-1] = 0;
484  if ( mes02_[ism-1] ) dqmStore_->removeElement( mes02_[ism-1]->getName() );
485  mes02_[ism-1] = 0;
486  if ( mes03_[ism-1] ) dqmStore_->removeElement( mes03_[ism-1]->getName() );
487  mes03_[ism-1] = 0;
488 
489  if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() );
490  met01_[ism-1] = 0;
491  if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() );
492  met02_[ism-1] = 0;
493  if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() );
494  met03_[ism-1] = 0;
495 #endif
496 
497  }
498 
499 }
500 
501 #ifdef WITH_ECAL_COND_DB
502 bool EBPedestalClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status) {
503 
504  status = true;
505 
506  EcalLogicID ecid;
507 
509  std::map<EcalLogicID, MonPedestalsDat> dataset1;
510 
511  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
512 
513  int ism = superModules_[i];
514 
515  if ( verbose_ ) {
516  std::cout << " " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
517  std::cout << std::endl;
518  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
519  UtilsClient::printBadChannels(meg01_[ism-1], h01_[ism-1]);
520  }
521  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
522  UtilsClient::printBadChannels(meg02_[ism-1], h02_[ism-1]);
523  }
524  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
525  UtilsClient::printBadChannels(meg03_[ism-1], h03_[ism-1]);
526  }
527  }
528 
529  for ( int ie = 1; ie <= 85; ie++ ) {
530  for ( int ip = 1; ip <= 20; ip++ ) {
531 
532  bool update01;
533  bool update02;
534  bool update03;
535 
536  float num01, num02, num03;
537  float mean01, mean02, mean03;
538  float rms01, rms02, rms03;
539 
540  update01 = UtilsClient::getBinStatistics(h01_[ism-1], ie, ip, num01, mean01, rms01);
541  update02 = UtilsClient::getBinStatistics(h02_[ism-1], ie, ip, num02, mean02, rms02);
542  update03 = UtilsClient::getBinStatistics(h03_[ism-1], ie, ip, num03, mean03, rms03);
543 
544  if ( update01 || update02 || update03 ) {
545 
546  if ( Numbers::icEB(ism, ie, ip) == 1 ) {
547 
548  if ( verbose_ ) {
549  std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
550  std::cout << "G01 (" << ie << "," << ip << ") " << num01 << " " << mean01 << " " << rms01 << std::endl;
551  std::cout << "G06 (" << ie << "," << ip << ") " << num02 << " " << mean02 << " " << rms02 << std::endl;
552  std::cout << "G12 (" << ie << "," << ip << ") " << num03 << " " << mean03 << " " << rms03 << std::endl;
553  std::cout << std::endl;
554  }
555 
556  }
557 
558  p.setPedMeanG1(mean01);
559  p.setPedRMSG1(rms01);
560 
561  p.setPedMeanG6(mean02);
562  p.setPedRMSG6(rms02);
563 
564  p.setPedMeanG12(mean03);
565  p.setPedRMSG12(rms03);
566 
567  if ( UtilsClient::getBinStatus(meg01_[ism-1], ie, ip) &&
568  UtilsClient::getBinStatus(meg02_[ism-1], ie, ip) &&
569  UtilsClient::getBinStatus(meg03_[ism-1], ie, ip) ) {
570  p.setTaskStatus(true);
571  } else {
572  p.setTaskStatus(false);
573  }
574 
575  status = status && UtilsClient::getBinQuality(meg01_[ism-1], ie, ip) &&
576  UtilsClient::getBinQuality(meg02_[ism-1], ie, ip) &&
577  UtilsClient::getBinQuality(meg03_[ism-1], ie, ip);
578 
579  int ic = Numbers::indexEB(ism, ie, ip);
580 
581  if ( econn ) {
582  ecid = LogicID::getEcalLogicID("EB_crystal_number", Numbers::iSM(ism, EcalBarrel), ic);
583  dataset1[ecid] = p;
584  }
585 
586  }
587 
588  }
589  }
590 
591  }
592 
593  if ( econn ) {
594  try {
595  if ( verbose_ ) std::cout << "Inserting MonPedestalsDat ..." << std::endl;
596  if ( dataset1.size() != 0 ) econn->insertDataArraySet(&dataset1, moniov);
597  if ( verbose_ ) std::cout << "done." << std::endl;
598  } catch (std::runtime_error &e) {
599  std::cerr << e.what() << std::endl;
600  }
601  }
602 
603  if ( verbose_ ) std::cout << std::endl;
604 
605  MonPNPedDat pn;
606  std::map<EcalLogicID, MonPNPedDat> dataset2;
607 
608  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
609 
610  int ism = superModules_[i];
611 
612  if ( verbose_ ) {
613  std::cout << " " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
614  std::cout << std::endl;
615  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
616  UtilsClient::printBadChannels(meg04_[ism-1], i01_[ism-1]);
617  }
618  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
619  UtilsClient::printBadChannels(meg05_[ism-1], i02_[ism-1]);
620  }
621  }
622 
623  for ( int i = 1; i <= 10; i++ ) {
624 
625  bool update01;
626  bool update02;
627 
628  float num01, num02;
629  float mean01, mean02;
630  float rms01, rms02;
631 
632  update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01);
633  update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02);
634 
635  if ( update01 || update02 ) {
636 
637  if ( i == 1 ) {
638 
639  if ( verbose_ ) {
640  std::cout << "Preparing dataset for " << Numbers::sEB(ism) << " (ism=" << ism << ")" << std::endl;
641  std::cout << "PNs (" << i << ") G01 " << num01 << " " << mean01 << " " << rms01 << std::endl;
642  std::cout << "PNs (" << i << ") G16 " << num01 << " " << mean01 << " " << rms01 << std::endl;
643  std::cout << std::endl;
644  }
645 
646  }
647 
648  pn.setPedMeanG1(mean01);
649  pn.setPedRMSG1(rms01);
650 
651  pn.setPedMeanG16(mean02);
652  pn.setPedRMSG16(rms02);
653 
654  if ( UtilsClient::getBinStatus(meg04_[ism-1], i, 1) &&
655  UtilsClient::getBinStatus(meg05_[ism-1], i, 1) ) {
656  pn.setTaskStatus(true);
657  } else {
658  pn.setTaskStatus(false);
659  }
660 
661  status = status && UtilsClient::getBinQuality(meg04_[ism-1], i, 1) &&
662  UtilsClient::getBinQuality(meg05_[ism-1], i, 1);
663 
664  if ( econn ) {
665  ecid = LogicID::getEcalLogicID("EB_LM_PN", Numbers::iSM(ism, EcalBarrel), i-1);
666  dataset2[ecid] = pn;
667  }
668 
669  }
670 
671  }
672 
673  }
674 
675  if ( econn ) {
676  try {
677  if ( verbose_ ) std::cout << "Inserting MonPNPedDat ..." << std::endl;
678  if ( dataset2.size() != 0 ) econn->insertDataArraySet(&dataset2, moniov);
679  if ( verbose_ ) std::cout << "done." << std::endl;
680  } catch (std::runtime_error &e) {
681  std::cerr << e.what() << std::endl;
682  }
683  }
684 
685  return true;
686 
687 }
688 #endif
689 
691 
692  ievt_++;
693  jevt_++;
694  if ( ievt_ % 10 == 0 ) {
695  if ( debug_ ) std::cout << "EBPedestalClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
696  }
697 
698  uint32_t bits01 = 0;
701 
702  uint32_t bits02 = 0;
705 
706  uint32_t bits03 = 0;
709 
710  char histo[200];
711 
712  MonitorElement* me;
713 
714  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
715 
716  int ism = superModules_[i];
717 
718  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
719 
720  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain01/EBPT pedestal %s G01").c_str(), Numbers::sEB(ism).c_str());
721  me = dqmStore_->get(histo);
722  h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h01_[ism-1] );
723 
724  }
725 
726  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
727 
728  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain06/EBPT pedestal %s G06").c_str(), Numbers::sEB(ism).c_str());
729  me = dqmStore_->get(histo);
730  h02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h02_[ism-1] );
731 
732  }
733 
734  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
735 
736  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain12/EBPT pedestal %s G12").c_str(), Numbers::sEB(ism).c_str());
737  me = dqmStore_->get(histo);
738  h03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h03_[ism-1] );
739 
740  }
741 
742 #ifdef COMMON_NOISE_ANALYSIS
743  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
744 
745  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain01/EBPT pedestal 3sum %s G01").c_str(), Numbers::sEB(ism).c_str());
746  me = dqmStore_->get(histo);
747  j01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, j01_[ism-1] );
748 
749  }
750 
751  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
752 
753  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain06/EBPT pedestal 3sum %s G06").c_str(), Numbers::sEB(ism).c_str());
754  me = dqmStore_->get(histo);
755  j02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, j02_[ism-1] );
756 
757  }
758 
759  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
760 
761  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain12/EBPT pedestal 3sum %s G12").c_str(), Numbers::sEB(ism).c_str());
762  me = dqmStore_->get(histo);
763  j03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, j03_[ism-1] );
764 
765  }
766 
767  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
768 
769  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain01/EBPT pedestal 5sum %s G01").c_str(), Numbers::sEB(ism).c_str());
770  me = dqmStore_->get(histo);
771  k01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, k01_[ism-1] );
772 
773  }
774 
775  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
776 
777  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain06/EBPT pedestal 5sum %s G06").c_str(), Numbers::sEB(ism).c_str());
778  me = dqmStore_->get(histo);
779  k02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, k02_[ism-1] );
780 
781  }
782 
783  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
784 
785  sprintf(histo, (prefixME_ + "/EBPedestalTask/Gain12/EBPT pedestal 5sum %s G12").c_str(), Numbers::sEB(ism).c_str());
786  me = dqmStore_->get(histo);
787  k03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, k03_[ism-1] );
788 
789  }
790 #endif
791 
792  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
793 
794  sprintf(histo, (prefixME_ + "/EBPedestalTask/PN/Gain01/EBPDT PNs pedestal %s G01").c_str(), Numbers::sEB(ism).c_str());
795  me = dqmStore_->get(histo);
796  i01_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i01_[ism-1] );
797 
798  }
799 
800  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 6) != MGPAGainsPN_.end() ) {
801 
802  sprintf(histo, (prefixME_ + "/EBPedestalTask/PN/Gain16/EBPDT PNs pedestal %s G16").c_str(), Numbers::sEB(ism).c_str());
803  me = dqmStore_->get(histo);
804  i02_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i02_[ism-1] );
805 
806  }
807 
808  if ( meg01_[ism-1] ) meg01_[ism-1]->Reset();
809  if ( meg02_[ism-1] ) meg02_[ism-1]->Reset();
810  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
811 
812  if ( meg04_[ism-1] ) meg04_[ism-1]->Reset();
813  if ( meg05_[ism-1] ) meg05_[ism-1]->Reset();
814 
815  if ( mep01_[ism-1] ) mep01_[ism-1]->Reset();
816  if ( mep02_[ism-1] ) mep02_[ism-1]->Reset();
817  if ( mep03_[ism-1] ) mep03_[ism-1]->Reset();
818 
819  if ( mer01_[ism-1] ) mer01_[ism-1]->Reset();
820  if ( mer02_[ism-1] ) mer02_[ism-1]->Reset();
821  if ( mer03_[ism-1] ) mer03_[ism-1]->Reset();
822 
823  if ( mer04_[ism-1] ) mer04_[ism-1]->Reset();
824  if ( mer05_[ism-1] ) mer05_[ism-1]->Reset();
825 
826 #ifdef COMMON_NOISE_ANALYSIS
827  if ( mes01_[ism-1] ) mes01_[ism-1]->Reset();
828  if ( mes02_[ism-1] ) mes02_[ism-1]->Reset();
829  if ( mes03_[ism-1] ) mes03_[ism-1]->Reset();
830 
831  if ( met01_[ism-1] ) met01_[ism-1]->Reset();
832  if ( met02_[ism-1] ) met02_[ism-1]->Reset();
833  if ( met03_[ism-1] ) met03_[ism-1]->Reset();
834 #endif
835 
836  for ( int ie = 1; ie <= 85; ie++ ) {
837  for ( int ip = 1; ip <= 20; ip++ ) {
838 
839  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent(ie, ip, 2.);
840  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent(ie, ip, 2.);
841  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ie, ip, 2.);
842 
843  bool update01;
844  bool update02;
845  bool update03;
846 
847  float num01, num02, num03;
848  float mean01, mean02, mean03;
849  float rms01, rms02, rms03;
850 
851  update01 = UtilsClient::getBinStatistics(h01_[ism-1], ie, ip, num01, mean01, rms01);
852  update02 = UtilsClient::getBinStatistics(h02_[ism-1], ie, ip, num02, mean02, rms02);
853  update03 = UtilsClient::getBinStatistics(h03_[ism-1], ie, ip, num03, mean03, rms03);
854 
855  if ( update01 ) {
856 
857  float val;
858 
859  val = 1.;
860  if ( std::abs(mean01 - expectedMean_[0]) > discrepancyMean_[0] )
861  val = 0.;
862  if ( rms01 > RMSThreshold_[0] )
863  val = 0.;
864  if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent(ie, ip, val);
865 
866  if ( mep01_[ism-1] ) mep01_[ism-1]->Fill(mean01);
867  if ( mer01_[ism-1] ) mer01_[ism-1]->Fill(rms01);
868 
869  }
870 
871  if ( update02 ) {
872 
873  float val;
874 
875  val = 1.;
876  if ( std::abs(mean02 - expectedMean_[1]) > discrepancyMean_[1] )
877  val = 0.;
878  if ( rms02 > RMSThreshold_[1] )
879  val = 0.;
880  if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent(ie, ip, val);
881 
882  if ( mep02_[ism-1] ) mep02_[ism-1]->Fill(mean02);
883  if ( mer02_[ism-1] ) mer02_[ism-1]->Fill(rms02);
884 
885  }
886 
887  if ( update03 ) {
888 
889  float val;
890 
891  val = 1.;
892  if ( std::abs(mean03 - expectedMean_[2]) > discrepancyMean_[2] )
893  val = 0.;
894  if ( rms03 > RMSThreshold_[2] )
895  val = 0.;
896  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ie, ip, val);
897 
898  if ( mep03_[ism-1] ) mep03_[ism-1]->Fill(mean03);
899  if ( mer03_[ism-1] ) mer03_[ism-1]->Fill(rms03);
900 
901  }
902 
903  if ( Masks::maskChannel(ism, ie, ip, bits01, EcalBarrel) ) UtilsClient::maskBinContent( meg01_[ism-1], ie, ip );
904  if ( Masks::maskChannel(ism, ie, ip, bits02, EcalBarrel) ) UtilsClient::maskBinContent( meg02_[ism-1], ie, ip );
905  if ( Masks::maskChannel(ism, ie, ip, bits03, EcalBarrel) ) UtilsClient::maskBinContent( meg03_[ism-1], ie, ip );
906 
907  }
908  }
909 
910  // PN diodes
911 
912  for ( int i = 1; i <= 10; i++ ) {
913 
914  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 2. );
915  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. );
916 
917  bool update01;
918  bool update02;
919 
920  float num01, num02;
921  float mean01, mean02;
922  float rms01, rms02;
923 
924  update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01);
925  update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02);
926 
927  // filling projections
928  if ( mer04_[ism-1] ) mer04_[ism-1]->Fill(rms01);
929  if ( mer05_[ism-1] ) mer05_[ism-1]->Fill(rms02);
930 
931  if ( update01 ) {
932 
933  float val;
934 
935  val = 1.;
936  if ( mean01 < (expectedMeanPn_[0] - discrepancyMeanPn_[0])
937  || (expectedMeanPn_[0] + discrepancyMeanPn_[0]) < mean01)
938  val = 0.;
939  if ( rms01 > RMSThresholdPn_[0])
940  val = 0.;
941 
942  if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent(i, 1, val);
943 
944  }
945 
946  if ( update02 ) {
947 
948  float val;
949 
950  val = 1.;
951  if ( mean02 < (expectedMeanPn_[1] - discrepancyMeanPn_[1])
952  || (expectedMeanPn_[1] + discrepancyMeanPn_[1]) < mean02)
953  val = 0.;
954  if ( rms02 > RMSThresholdPn_[1])
955  val = 0.;
956 
957  if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent(i, 1, val);
958  }
959 
960  if ( Masks::maskPn(ism, i, bits01, EcalBarrel) ) UtilsClient::maskBinContent( meg04_[ism-1], i, 1 );
961  if ( Masks::maskPn(ism, i, bits03, EcalBarrel) ) UtilsClient::maskBinContent( meg05_[ism-1], i, 1 );
962 
963  }
964 
965 #ifdef COMMON_NOISE_ANALYSIS
966  for ( int ie = 1; ie <= 85; ie++ ) {
967  for ( int ip = 1; ip <= 20; ip++ ) {
968 
969  float x3val01;
970  float x3val02;
971  float x3val03;
972 
973  float y3val01;
974  float y3val02;
975  float y3val03;
976 
977  float z3val01;
978  float z3val02;
979  float z3val03;
980 
981  float x5val01;
982  float x5val02;
983  float x5val03;
984 
985  float y5val01;
986  float y5val02;
987  float y5val03;
988 
989  float z5val01;
990  float z5val02;
991  float z5val03;
992 
993  if ( mes01_[ism-1] ) mes01_[ism-1]->setBinContent(ie, ip, -999.);
994  if ( mes02_[ism-1] ) mes02_[ism-1]->setBinContent(ie, ip, -999.);
995  if ( mes03_[ism-1] ) mes03_[ism-1]->setBinContent(ie, ip, -999.);
996 
997  if ( met01_[ism-1] ) met01_[ism-1]->setBinContent(ie, ip, -999.);
998  if ( met02_[ism-1] ) met02_[ism-1]->setBinContent(ie, ip, -999.);
999  if ( met03_[ism-1] ) met03_[ism-1]->setBinContent(ie, ip, -999.);
1000 
1001  if ( ie >= 2 && ie <= 84 && ip >= 2 && ip <= 19 ) {
1002 
1003  x3val01 = 0.;
1004  x3val02 = 0.;
1005  x3val03 = 0.;
1006  for ( int i = -1; i <= +1; i++ ) {
1007  for ( int j = -1; j <= +1; j++ ) {
1008 
1009  if ( h01_[ism-1] ) x3val01 = x3val01 + h01_[ism-1]->GetBinError(ie+i, ip+j) *
1010  h01_[ism-1]->GetBinError(ie+i, ip+j);
1011 
1012  if ( h02_[ism-1] ) x3val02 = x3val02 + h02_[ism-1]->GetBinError(ie+i, ip+j) *
1013  h02_[ism-1]->GetBinError(ie+i, ip+j);
1014 
1015  if ( h03_[ism-1] ) x3val03 = x3val03 + h03_[ism-1]->GetBinError(ie+i, ip+j) *
1016  h03_[ism-1]->GetBinError(ie+i, ip+j);
1017 
1018  }
1019  }
1020  x3val01 = x3val01 / (9.*9.);
1021  x3val02 = x3val02 / (9.*9.);
1022  x3val03 = x3val03 / (9.*9.);
1023 
1024  y3val01 = 0.;
1025  if ( j01_[ism-1] ) y3val01 = j01_[ism-1]->GetBinError(ie, ip) *
1026  j01_[ism-1]->GetBinError(ie, ip);
1027 
1028  y3val02 = 0.;
1029  if ( j02_[ism-1] ) y3val02 = j02_[ism-1]->GetBinError(ie, ip) *
1030  j02_[ism-1]->GetBinError(ie, ip);
1031 
1032  y3val03 = 0.;
1033  if ( j03_[ism-1] ) y3val03 = j03_[ism-1]->GetBinError(ie, ip) *
1034  j03_[ism-1]->GetBinError(ie, ip);
1035 
1036  z3val01 = -999.;
1037  if ( x3val01 != 0 && y3val01 != 0 ) z3val01 = sqrt(std::abs(x3val01 - y3val01));
1038  if ( (x3val01 - y3val01) < 0 ) z3val01 = -z3val01;
1039 
1040  if ( mes01_[ism-1] ) mes01_[ism-1]->setBinContent(ie, ip, z3val01);
1041 
1042  z3val02 = -999.;
1043  if ( x3val02 != 0 && y3val02 != 0 ) z3val02 = sqrt(std::abs(x3val02 - y3val02));
1044  if ( (x3val02 - y3val02) < 0 ) z3val02 = -z3val02;
1045 
1046  if ( mes02_[ism-1] ) mes02_[ism-1]->setBinContent(ie, ip, z3val02);
1047 
1048  z3val03 = -999.;
1049  if ( x3val03 != 0 && y3val03 != 0 ) z3val03 = sqrt(std::abs(x3val03 - y3val03));
1050  if ( (x3val03 - y3val03) < 0 ) z3val03 = -z3val03;
1051 
1052  if ( mes03_[ism-1] ) mes03_[ism-1]->setBinContent(ie, ip, z3val03);
1053 
1054  }
1055 
1056  if ( ie >= 3 && ie <= 83 && ip >= 3 && ip <= 18 ) {
1057 
1058  x5val01 = 0.;
1059  x5val02 = 0.;
1060  x5val03 = 0.;
1061  for ( int i = -2; i <= +2; i++ ) {
1062  for ( int j = -2; j <= +2; j++ ) {
1063 
1064  if ( h01_[ism-1] ) x5val01 = x5val01 + h01_[ism-1]->GetBinError(ie+i, ip+j) *
1065  h01_[ism-1]->GetBinError(ie+i, ip+j);
1066 
1067  if ( h02_[ism-1] ) x5val02 = x5val02 + h02_[ism-1]->GetBinError(ie+i, ip+j) *
1068  h02_[ism-1]->GetBinError(ie+i, ip+j);
1069 
1070  if ( h03_[ism-1] ) x5val03 = x5val03 + h03_[ism-1]->GetBinError(ie+i, ip+j) *
1071  h03_[ism-1]->GetBinError(ie+i, ip+j);
1072 
1073  }
1074  }
1075  x5val01 = x5val01 / (25.*25.);
1076  x5val02 = x5val02 / (25.*25.);
1077  x5val03 = x5val03 / (25.*25.);
1078 
1079  y5val01 = 0.;
1080  if ( k01_[ism-1] ) y5val01 = k01_[ism-1]->GetBinError(ie, ip) *
1081  k01_[ism-1]->GetBinError(ie, ip);
1082 
1083  y5val02 = 0.;
1084  if ( k02_[ism-1] ) y5val02 = k02_[ism-1]->GetBinError(ie, ip) *
1085  k02_[ism-1]->GetBinError(ie, ip);
1086 
1087  y5val03 = 0.;
1088  if ( k03_[ism-1] ) y5val03 = k03_[ism-1]->GetBinError(ie, ip) *
1089  k03_[ism-1]->GetBinError(ie, ip);
1090 
1091  z5val01 = -999.;
1092  if ( x5val01 != 0 && y5val01 != 0 ) z5val01 = sqrt(std::abs(x5val01 - y5val01));
1093  if ( (x5val01 - y5val01) < 0 ) z5val01 = -z5val01;
1094 
1095  if ( met01_[ism-1] ) met01_[ism-1]->setBinContent(ie, ip, z5val01);
1096 
1097  z5val02 = -999.;
1098  if ( x5val02 != 0 && y5val02 != 0 ) z5val02 = sqrt(std::abs(x5val02 - y5val02));
1099  if ( (x5val02 - y5val02) < 0 ) z5val02 = -z5val02;
1100 
1101  if ( met02_[ism-1] ) met02_[ism-1]->setBinContent(ie, ip, z5val02);
1102 
1103  z5val03 = -999.;
1104  if ( x5val03 != 0 && y5val03 != 0 ) z5val03 = sqrt(std::abs(x5val03 - y5val03));
1105  if ( (x5val03 - y5val03) < 0 ) z5val03 = -z5val03;
1106 
1107  if ( met03_[ism-1] ) met03_[ism-1]->setBinContent(ie, ip, z5val03);
1108 
1109  }
1110 
1111  }
1112  }
1113 #endif
1114 
1115  }
1116 
1117 }
1118 
MonitorElement * mer01_[36]
static void printBadChannels(const MonitorElement *me, const T *hi, bool positive_only=false)
Print the bad channels.
Definition: UtilsClient.h:67
void beginRun(void)
begin of run method
Cache logicID vector from database.
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
void setPedMeanG1(float mean)
static const int PEDESTAL_MIDDLE_GAIN_RMS_ERROR
void setBinContent(int binx, double content)
set content of bin (1-D)
static bool maskChannel(int ism, int i1, int i2, uint32_t bits, const EcalSubdetector subdet)
Definition: Masks.cc:60
static std::string sEB(const int ism)
Definition: Numbers.cc:81
MonitorElement * mer02_[36]
MonitorElement * meg03_[36]
MonitorElement * meg02_[36]
MonitorElement * met03_[36]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:519
std::string prefixME_
MonitorElement * met02_[36]
Some &quot;id&quot; conversions.
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
Definition: UtilsClient.h:189
TProfile2D * k03_[36]
void setPedRMSG16(float mean)
Definition: MonPNPedDat.h:30
static const int PEDESTAL_HIGH_GAIN_MEAN_ERROR
std::vector< int > MGPAGains_
MonitorElement * mes02_[36]
TProfile * i01_[36]
virtual ~EBPedestalClient()
Destructor.
MonitorElement * mep02_[36]
#define abs(x)
Definition: mlp_lapack.h:159
MonitorElement * meg01_[36]
tuple histo
Definition: trackerHits.py:12
void setPedRMSG1(float mean)
Definition: MonPNPedDat.h:24
static const int PEDESTAL_LOW_GAIN_RMS_ERROR
void setPedMeanG1(float mean)
Definition: MonPNPedDat.h:21
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
void setPedRMSG6(float rms)
static int icEB(const int ism, const int ix, const int iy)
Definition: Numbers.cc:892
MonitorElement * meg04_[36]
static const int PEDESTAL_HIGH_GAIN_RMS_ERROR
static bool maskPn(int ism, int i1, uint32_t bits, const EcalSubdetector subdet)
Definition: Masks.cc:112
void setTaskStatus(bool status)
void Fill(long long x)
void cleanup(void)
clean up method
static int indexEB(const int ism, const int ie, const int ip)
Definition: Numbers.cc:863
MonitorElement * mep03_[36]
MonitorElement * mes03_[36]
TProfile2D * h02_[36]
static int iSM(const int ism, const EcalSubdetector subdet)
Definition: Numbers.cc:216
MonitorElement * mer03_[36]
T sqrt(T t)
Definition: SSEVec.h:28
MonitorElement * mer05_[36]
void setPedMeanG6(float mean)
void removeElement(const std::string &name)
Definition: DQMStore.cc:2338
TProfile2D * j01_[36]
void endJob(void)
end of job method
std::vector< int > superModules_
channel masking
int j
Definition: DBlmapReader.cc:9
MonitorElement * mer04_[36]
DQMStore * dqmStore_
EBPedestalClient(const edm::ParameterSet &ps)
Constructor.
void analyze(void)
Analyze.
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
void setPedMeanG16(float mean)
Definition: MonPNPedDat.h:27
std::vector< int > MGPAGainsPN_
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1270
void endRun(void)
end of run method
void beginJob(void)
begin of job method
Ecal Monitor Utils for Client.
static const int PEDESTAL_LOW_GAIN_MEAN_ERROR
TProfile * i02_[36]
MonitorElement * mep01_[36]
void setPedRMSG1(float rms)
MonitorElement * met01_[36]
TProfile2D * k01_[36]
void setup(void)
Setup.
TProfile2D * j03_[36]
static bool getBinStatus(const MonitorElement *me, const int ix, const int iy)
Returns true if the bin status is red/dark red.
Definition: UtilsClient.h:171
TProfile2D * j02_[36]
float discrepancyMeanPn_[2]
void setPedMeanG12(float mean)
void setTaskStatus(bool status)
Definition: MonPNPedDat.h:33
void insertDataArraySet(const std::map< EcalLogicID, DATT > *data, IOVT *iov)
tuple cout
Definition: gather_cfg.py:41
TProfile2D * k02_[36]
MonitorElement * meg05_[36]
static const int PEDESTAL_MIDDLE_GAIN_MEAN_ERROR
tuple status
Definition: ntuplemaker.py:245
MonitorElement * mes01_[36]
static bool getBinQuality(const MonitorElement *me, const int ix, const int iy)
Returns true if the bin quality is good or masked.
Definition: UtilsClient.h:153
TProfile2D * h03_[36]
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:647
static EcalLogicID getEcalLogicID(const char *name, const int id1=EcalLogicID::NULLID, const int id2=EcalLogicID::NULLID, const int id3=EcalLogicID::NULLID)
Definition: LogicID.h:31
Definition: RunIOV.h:13
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:47
TProfile2D * h01_[36]
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
static bool getBinStatistics(const T *histo, const int ix, const int iy, float &num, float &mean, float &rms)
Returns true if the bin contains good statistical data.
Definition: UtilsClient.h:133
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:237
void setPedRMSG12(float rms)