CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EESummaryClient.cc
Go to the documentation of this file.
1 /*
2  * \file EESummaryClient.cc
3  *
4  * $Date: 2012/08/10 00:30:16 $
5  * $Revision: 1.227 $
6  * \author G. Della Ricca
7  *
8 */
9 
10 #include <memory>
11 #include <iostream>
12 #include <fstream>
13 #include <iomanip>
14 #include <math.h>
15 #include <utility>
16 
18 
21 
22 #ifdef WITH_ECAL_COND_DB
25 #endif
26 
30 
32 
36 
48 
50 
52 
53  // cloneME switch
54  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
55 
56  // verbose switch
57  verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
58 
59  // debug switch
60  debug_ = ps.getUntrackedParameter<bool>("debug", false);
61 
62  // prefixME path
63  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
64 
65  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");
66 
67  // enableCleanup_ switch
68  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
69 
70  produceReports_ = ps.getUntrackedParameter<bool>("produceReports", true);
71 
72  reducedReports_ = ps.getUntrackedParameter<bool>("reducedReports", false);
73 
74  // vector of selected Super Modules (Defaults to all 18).
75  superModules_.reserve(18);
76  for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i);
77  superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
78 
79  laserWavelengths_.reserve(4);
80  for ( unsigned int i = 1; i <= 4; i++ ) laserWavelengths_.push_back(i);
81  laserWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("laserWavelengths", laserWavelengths_);
82 
83  ledWavelengths_.reserve(2);
84  for ( unsigned int i = 1; i <= 2; i++ ) ledWavelengths_.push_back(i);
85  ledWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("ledWavelengths", ledWavelengths_);
86 
87  MGPAGains_.reserve(3);
88  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGains_.push_back(i);
89  MGPAGains_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGains", MGPAGains_);
90 
91  MGPAGainsPN_.reserve(2);
92  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGainsPN_.push_back(i);
93  MGPAGainsPN_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGainsPN", MGPAGainsPN_);
94 
95  timingNHitThreshold_ = ps.getUntrackedParameter<int>("timingNHitThreshold", 5);
96  synchErrorThreshold_ = ps.getUntrackedParameter<double>("synchErrorThreshold", 0.01);
97 
98  // summary maps
99  meIntegrity_[0] = 0;
100  meIntegrity_[1] = 0;
101  meIntegrityPN_ = 0;
102  meOccupancy_[0] = 0;
103  meOccupancy_[1] = 0;
104  meOccupancyPN_ = 0;
105  meStatusFlags_[0] = 0;
106  meStatusFlags_[1] = 0;
107  mePedestalOnline_[0] = 0;
108  mePedestalOnline_[1] = 0;
113 
114  meLaserL1_[0] = 0;
115  meLaserL1_[1] = 0;
116  meLaserL1PN_ = 0;
117  meLaserL1Ampl_ = 0;
118  meLaserL1Timing_ = 0;
120 
121  meLaserL2_[0] = 0;
122  meLaserL2_[1] = 0;
123  meLaserL2PN_ = 0;
124  meLaserL2Ampl_ = 0;
125  meLaserL2Timing_ = 0;
127 
128  meLaserL3_[0] = 0;
129  meLaserL3_[1] = 0;
130  meLaserL3PN_ = 0;
131  meLaserL3Ampl_ = 0;
132  meLaserL3Timing_ = 0;
134 
135  meLaserL4_[0] = 0;
136  meLaserL4_[1] = 0;
137  meLaserL4PN_ = 0;
138  meLaserL4Ampl_ = 0;
139  meLaserL4Timing_ = 0;
141 
142  meLedL1_[0] = 0;
143  meLedL1_[1] = 0;
144  meLedL1PN_ = 0;
145  meLedL1Ampl_ = 0;
146  meLedL1Timing_ = 0;
147  meLedL1AmplOverPN_ = 0;
148 
149  meLedL2_[0] = 0;
150  meLedL2_[1] = 0;
151  meLedL2PN_ = 0;
152  meLedL2Ampl_ = 0;
153  meLedL2Timing_ = 0;
154  meLedL2AmplOverPN_ = 0;
155 
156  mePedestalG01_[0] = 0;
157  mePedestalG01_[1] = 0;
158  mePedestalG06_[0] = 0;
159  mePedestalG06_[1] = 0;
160  mePedestalG12_[0] = 0;
161  mePedestalG12_[1] = 0;
162  mePedestalPNG01_ = 0;
163  mePedestalPNG16_ = 0;
164  meTestPulseG01_[0] = 0;
165  meTestPulseG01_[1] = 0;
166  meTestPulseG06_[0] = 0;
167  meTestPulseG06_[1] = 0;
168  meTestPulseG12_[0] = 0;
169  meTestPulseG12_[1] = 0;
170  meTestPulsePNG01_ = 0;
171  meTestPulsePNG16_ = 0;
175  meGlobalSummary_[0] = 0;
176  meGlobalSummary_[1] = 0;
177 
178  meRecHitEnergy_[0] = 0;
179  meRecHitEnergy_[1] = 0;
180  meTiming_[0] = 0;
181  meTiming_[1] = 0;
182  meTimingMean1D_[0] = 0;
183  meTimingMean1D_[1] = 0;
184  meTimingRMS1D_[0] = 0;
185  meTimingRMS1D_[1] = 0;
186  meTimingMean_ = 0;
187  meTimingRMS_ = 0;
188 
189  meTriggerTowerEt_[0] = 0;
190  meTriggerTowerEt_[1] = 0;
193  meTriggerTowerTiming_[0] = 0;
194  meTriggerTowerTiming_[1] = 0;
197 
198  // summary errors
199  meIntegrityErr_ = 0;
200  meOccupancy1D_ = 0;
201  meStatusFlagsErr_ = 0;
203  meLaserL1Err_ = 0;
204  meLaserL1PNErr_ = 0;
205  meLaserL2Err_ = 0;
206  meLaserL2PNErr_ = 0;
207  meLaserL3Err_ = 0;
208  meLaserL3PNErr_ = 0;
209  meLaserL4Err_ = 0;
210  meLaserL4PNErr_ = 0;
211  meLedL1Err_ = 0;
212  meLedL1PNErr_ = 0;
213  meLedL2Err_ = 0;
214  meLedL2PNErr_ = 0;
215 
216  meSummaryErr_ = 0;
217 
218  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
219 
220  int ism = superModules_[i];
221 
222  hpot01_[ism-1] = 0;
223  httt01_[ism-1] = 0;
224 
225  }
226 
227 }
228 
230 
231 }
232 
234 
236 
237  if ( debug_ ) std::cout << "EESummaryClient: beginJob" << std::endl;
238 
239  ievt_ = 0;
240  jevt_ = 0;
241 
242 }
243 
245 
246  if ( debug_ ) std::cout << "EESummaryClient: beginRun" << std::endl;
247 
248  jevt_ = 0;
249 
250  this->setup();
251 
252 }
253 
255 
256  if ( debug_ ) std::cout << "EESummaryClient: endJob, ievt = " << ievt_ << std::endl;
257 
258  this->cleanup();
259 
260 }
261 
263 
264  if ( debug_ ) std::cout << "EESummaryClient: endRun, jevt = " << jevt_ << std::endl;
265 
266  this->cleanup();
267 
268 }
269 
271 
272  bool integrityClient(false);
273  bool occupancyClient(false);
274  bool statusFlagsClient(false);
275  bool pedestalOnlineClient(false);
276  bool laserClient(false);
277  bool ledClient(false);
278  bool pedestalClient(false);
279  bool testPulseClient(false);
280  bool timingClient(false);
281  bool triggerTowerClient(false);
282 
283  for(unsigned i = 0; i < clients_.size(); i++){
284 
285  if(dynamic_cast<EEIntegrityClient*>(clients_[i])) integrityClient = true;
286  if(dynamic_cast<EEOccupancyClient*>(clients_[i])) occupancyClient = true;
287  if(dynamic_cast<EEStatusFlagsClient*>(clients_[i])) statusFlagsClient = true;
288  if(dynamic_cast<EEPedestalOnlineClient*>(clients_[i])) pedestalOnlineClient = true;
289  if(dynamic_cast<EELaserClient*>(clients_[i])) laserClient = true;
290  if(dynamic_cast<EELedClient*>(clients_[i])) ledClient = true;
291  if(dynamic_cast<EEPedestalClient*>(clients_[i])) pedestalClient = true;
292  if(dynamic_cast<EETestPulseClient*>(clients_[i])) testPulseClient = true;
293  if(dynamic_cast<EETimingClient*>(clients_[i])) timingClient = true;
294  if(dynamic_cast<EETriggerTowerClient*>(clients_[i])) triggerTowerClient = true;
295 
296  }
297 
299 
300  dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );
301 
302  if(integrityClient){
303  if(produceReports_){
304  if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
305  name = "EEIT EE - integrity quality summary";
306  meIntegrity_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
307  meIntegrity_[0]->setAxisTitle("ix", 1);
308  meIntegrity_[0]->setAxisTitle("iy", 2);
309 
310  if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[1]->getName() );
311  name = "EEIT EE + integrity quality summary";
312  meIntegrity_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
313  meIntegrity_[1]->setAxisTitle("ix", 1);
314  meIntegrity_[1]->setAxisTitle("iy", 2);
315 
317  name = "EEIT integrity quality errors summary";
318  meIntegrityErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
319  for (int i = 0; i < 18; i++) {
321  }
322  }
323  if(laserClient){
325  name = "EEIT PN integrity quality summary";
326  meIntegrityPN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
327  meIntegrityPN_->setAxisTitle("jchannel", 1);
328  meIntegrityPN_->setAxisTitle("jpseudo-strip", 2);
329  }
330  }
331 
332  if(occupancyClient){
333  if(produceReports_){
334  if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
335  name = "EEOT EE - digi occupancy summary";
336  meOccupancy_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
337  meOccupancy_[0]->setAxisTitle("ix", 1);
338  meOccupancy_[0]->setAxisTitle("iy", 2);
339 
340  if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
341  name = "EEOT EE + digi occupancy summary";
342  meOccupancy_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
343  meOccupancy_[1]->setAxisTitle("ix", 1);
344  meOccupancy_[1]->setAxisTitle("iy", 2);
345 
347  name = "EEIT digi occupancy summary 1D";
348  meOccupancy1D_ = dqmStore_->book1D(name, name, 18, 1, 19);
349  for (int i = 0; i < 18; i++) {
351  }
352 
353  if( meRecHitEnergy_[0] ) dqmStore_->removeElement( meRecHitEnergy_[0]->getName() );
354  name = "EEOT EE - energy summary";
355  meRecHitEnergy_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
356  meRecHitEnergy_[0]->setAxisTitle("ix", 1);
357  meRecHitEnergy_[0]->setAxisTitle("iy", 2);
358  meRecHitEnergy_[0]->setAxisTitle("energy (GeV)", 3);
359 
360  if( meRecHitEnergy_[1] ) dqmStore_->removeElement( meRecHitEnergy_[1]->getName() );
361  name = "EEOT EE + energy summary";
362  meRecHitEnergy_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
363  meRecHitEnergy_[1]->setAxisTitle("ix", 1);
364  meRecHitEnergy_[1]->setAxisTitle("iy", 2);
365  meRecHitEnergy_[1]->setAxisTitle("energy (GeV)", 3);
366  }
367  if(laserClient){
369  name = "EEOT PN digi occupancy summary";
370  meOccupancyPN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
371  meOccupancyPN_->setAxisTitle("channel", 1);
372  meOccupancyPN_->setAxisTitle("pseudo-strip", 2);
373  }
374  }
375 
376  if(statusFlagsClient && produceReports_){
377  if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
378  name = "EESFT EE - front-end status summary";
379  meStatusFlags_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
380  meStatusFlags_[0]->setAxisTitle("ix", 1);
381  meStatusFlags_[0]->setAxisTitle("iy", 2);
382 
383  if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
384  name = "EESFT EE + front-end status summary";
385  meStatusFlags_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
386  meStatusFlags_[1]->setAxisTitle("ix", 1);
387  meStatusFlags_[1]->setAxisTitle("iy", 2);
388 
390  name = "EESFT front-end status errors summary";
391  meStatusFlagsErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
392  for (int i = 0; i < 18; i++) {
394  }
395  }
396 
397  if(pedestalOnlineClient && produceReports_){
398  if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
399  name = "EEPOT EE - pedestal quality summary G12";
400  mePedestalOnline_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
401  mePedestalOnline_[0]->setAxisTitle("ix", 1);
402  mePedestalOnline_[0]->setAxisTitle("iy", 2);
403 
404  if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
405  name = "EEPOT EE + pedestal quality summary G12";
406  mePedestalOnline_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
407  mePedestalOnline_[1]->setAxisTitle("ix", 1);
408  mePedestalOnline_[1]->setAxisTitle("iy", 2);
409 
411  name = "EEPOT EE - pedestal G12 RMS map";
412  mePedestalOnlineRMSMap_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
416 
418  name = "EEPOT EE + pedestal G12 RMS map";
419  mePedestalOnlineRMSMap_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
423 
425  name = "EEPOT pedestal G12 mean";
426  mePedestalOnlineMean_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 150., 250.);
427  for (int i = 0; i < 18; i++) {
429  }
430 
432  name = "EEPOT pedestal G12 rms";
433  mePedestalOnlineRMS_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10.);
434  for (int i = 0; i < 18; i++) {
436  }
437 
439  name = "EEPOT pedestal quality errors summary G12";
440  mePedestalOnlineErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
441  for (int i = 0; i < 18; i++) {
443  }
444  }
445 
446  if(laserClient){
447  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
448 
449  if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
450  name = "EELT EE - laser quality summary L1";
451  meLaserL1_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
452  meLaserL1_[0]->setAxisTitle("ix", 1);
453  meLaserL1_[0]->setAxisTitle("iy", 2);
454 
455  if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
456  name = "EELT EE + laser quality summary L1";
457  meLaserL1_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
458  meLaserL1_[1]->setAxisTitle("ix", 1);
459  meLaserL1_[1]->setAxisTitle("iy", 2);
460 
462  name = "EELT laser quality errors summary L1";
463  meLaserL1Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
464  for (int i = 0; i < 18; i++) {
466  }
467 
469  name = "EELT PN laser quality summary L1";
470  meLaserL1PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
471  meLaserL1PN_->setAxisTitle("jchannel", 1);
472  meLaserL1PN_->setAxisTitle("jpseudo-strip", 2);
473 
475  name = "EELT PN laser quality errors summary L1";
476  meLaserL1PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
477  for (int i = 0; i < 18; i++) {
479  }
480 
482  name = "EELT laser L1 amplitude summary";
483  meLaserL1Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
484  for (int i = 0; i < 18; i++) {
486  }
487 
489  name = "EELT laser L1 timing summary";
490  meLaserL1Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
491  for (int i = 0; i < 18; i++) {
493  }
494 
496  name = "EELT laser L1 amplitude over PN summary";
497  meLaserL1AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
498  for (int i = 0; i < 18; i++) {
500  }
501 
502  }
503 
504  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
505 
506  if ( meLaserL2_[0] ) dqmStore_->removeElement( meLaserL2_[0]->getName() );
507  name = "EELT EE - laser quality summary L2";
508  meLaserL2_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
509  meLaserL2_[0]->setAxisTitle("ix", 1);
510  meLaserL2_[0]->setAxisTitle("iy", 2);
511 
512  if ( meLaserL2_[1] ) dqmStore_->removeElement( meLaserL2_[1]->getName() );
513  name = "EELT EE + laser quality summary L2";
514  meLaserL2_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
515  meLaserL2_[1]->setAxisTitle("ix", 1);
516  meLaserL2_[1]->setAxisTitle("iy", 2);
517 
519  name = "EELT laser quality errors summary L2";
520  meLaserL2Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
521  for (int i = 0; i < 18; i++) {
523  }
524 
526  name = "EELT PN laser quality summary L2";
527  meLaserL2PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
528  meLaserL2PN_->setAxisTitle("jchannel", 1);
529  meLaserL2PN_->setAxisTitle("jpseudo-strip", 2);
530 
532  name = "EELT PN laser quality errors summary L2";
533  meLaserL2PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
534  for (int i = 0; i < 18; i++) {
536  }
537 
539  name = "EELT laser L2 amplitude summary";
540  meLaserL2Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
541  for (int i = 0; i < 18; i++) {
543  }
544 
546  name = "EELT laser L2 timing summary";
547  meLaserL2Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
548  for (int i = 0; i < 18; i++) {
550  }
551 
553  name = "EELT laser L2 amplitude over PN summary";
554  meLaserL2AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
555  for (int i = 0; i < 18; i++) {
557  }
558 
559  }
560 
561  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
562 
563  if ( meLaserL3_[0] ) dqmStore_->removeElement( meLaserL3_[0]->getName() );
564  name = "EELT EE - laser quality summary L3";
565  meLaserL3_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
566  meLaserL3_[0]->setAxisTitle("ix", 1);
567  meLaserL3_[0]->setAxisTitle("iy", 2);
568 
569  if ( meLaserL3_[1] ) dqmStore_->removeElement( meLaserL3_[1]->getName() );
570  name = "EELT EE + laser quality summary L3";
571  meLaserL3_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
572  meLaserL3_[1]->setAxisTitle("ix", 1);
573  meLaserL3_[1]->setAxisTitle("iy", 2);
574 
576  name = "EELT laser quality errors summary L3";
577  meLaserL3Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
578  for (int i = 0; i < 18; i++) {
580  }
581 
583  name = "EELT PN laser quality summary L3";
584  meLaserL3PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
585  meLaserL3PN_->setAxisTitle("jchannel", 1);
586  meLaserL3PN_->setAxisTitle("jpseudo-strip", 2);
587 
589  name = "EELT PN laser quality errors summary L3";
590  meLaserL3PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
591  for (int i = 0; i < 18; i++) {
593  }
594 
596  name = "EELT laser L3 amplitude summary";
597  meLaserL3Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
598  for (int i = 0; i < 18; i++) {
600  }
601 
603  name = "EELT laser L3 timing summary";
604  meLaserL3Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
605  for (int i = 0; i < 18; i++) {
607  }
608 
610  name = "EELT laser L3 amplitude over PN summary";
611  meLaserL3AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
612  for (int i = 0; i < 18; i++) {
614  }
615 
616  }
617 
618  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
619 
620  if ( meLaserL4_[0] ) dqmStore_->removeElement( meLaserL4_[0]->getName() );
621  name = "EELT EE - laser quality summary L4";
622  meLaserL4_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
623  meLaserL4_[0]->setAxisTitle("ix", 1);
624  meLaserL4_[0]->setAxisTitle("iy", 2);
625 
626  if ( meLaserL4_[1] ) dqmStore_->removeElement( meLaserL4_[1]->getName() );
627  name = "EELT EE + laser quality summary L4";
628  meLaserL4_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
629  meLaserL4_[1]->setAxisTitle("ix", 1);
630  meLaserL4_[1]->setAxisTitle("iy", 2);
631 
633  name = "EELT laser quality errors summary L4";
634  meLaserL4Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
635  for (int i = 0; i < 18; i++) {
637  }
638 
640  name = "EELT PN laser quality summary L4";
641  meLaserL4PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
642  meLaserL4PN_->setAxisTitle("jchannel", 1);
643  meLaserL4PN_->setAxisTitle("jpseudo-strip", 2);
644 
646  name = "EELT PN laser quality errors summary L4";
647  meLaserL4PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
648  for (int i = 0; i < 18; i++) {
650  }
651 
653  name = "EELT laser L4 amplitude summary";
654  meLaserL4Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
655  for (int i = 0; i < 18; i++) {
657  }
658 
660  name = "EELT laser L4 timing summary";
661  meLaserL4Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
662  for (int i = 0; i < 18; i++) {
664  }
665 
667  name = "EELT laser L4 amplitude over PN summary";
668  meLaserL4AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
669  for (int i = 0; i < 18; i++) {
671  }
672 
673  }
674  }
675 
676  if(ledClient){
677  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
678 
679  if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
680  name = "EELDT EE - led quality summary L1";
681  meLedL1_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
682  meLedL1_[0]->setAxisTitle("ix", 1);
683  meLedL1_[0]->setAxisTitle("iy", 2);
684 
685  if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
686  name = "EELDT EE + led quality summary L1";
687  meLedL1_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
688  meLedL1_[1]->setAxisTitle("ix", 1);
689  meLedL1_[1]->setAxisTitle("iy", 2);
690 
692  name = "EELDT led quality errors summary L1";
693  meLedL1Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
694  for (int i = 0; i < 18; i++) {
696  }
697 
699  name = "EELDT PN led quality summary L1";
700  meLedL1PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
701  meLedL1PN_->setAxisTitle("jchannel", 1);
702  meLedL1PN_->setAxisTitle("jpseudo-strip", 2);
703 
705  name = "EELDT PN led quality errors summary L1";
706  meLedL1PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
707  for (int i = 0; i < 18; i++) {
709  }
710 
712  name = "EELDT led L1 amplitude summary";
713  meLedL1Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
714  for (int i = 0; i < 18; i++) {
716  }
717 
719  name = "EELDT led L1 timing summary";
720  meLedL1Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
721  for (int i = 0; i < 18; i++) {
723  }
724 
726  name = "EELDT led L1 amplitude over PN summary";
727  meLedL1AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
728  for (int i = 0; i < 18; i++) {
730  }
731 
732  }
733 
734  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
735 
736  if ( meLedL2_[0] ) dqmStore_->removeElement( meLedL2_[0]->getName() );
737  name = "EELDT EE - led quality summary L2";
738  meLedL2_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
739  meLedL2_[0]->setAxisTitle("ix", 1);
740  meLedL2_[0]->setAxisTitle("iy", 2);
741 
742  if ( meLedL2_[1] ) dqmStore_->removeElement( meLedL2_[1]->getName() );
743  name = "EELDT EE + led quality summary L2";
744  meLedL2_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
745  meLedL2_[1]->setAxisTitle("ix", 1);
746  meLedL2_[1]->setAxisTitle("iy", 2);
747 
749  name = "EELDT led quality errors summary L2";
750  meLedL2Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
751  for (int i = 0; i < 18; i++) {
753  }
754 
756  name = "EELDT PN led quality summary L2";
757  meLedL2PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
758  meLedL2PN_->setAxisTitle("jchannel", 1);
759  meLedL2PN_->setAxisTitle("jpseudo-strip", 2);
760 
762  name = "EELDT PN led quality errors summary L2";
763  meLedL2PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
764  for (int i = 0; i < 18; i++) {
766  }
767 
769  name = "EELDT led L2 amplitude summary";
770  meLedL2Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
771  for (int i = 0; i < 18; i++) {
773  }
774 
776  name = "EELDT led L2 timing summary";
777  meLedL2Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
778  for (int i = 0; i < 18; i++) {
780  }
781 
783  name = "EELDT led L2 amplitude over PN summary";
784  meLedL2AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
785  for (int i = 0; i < 18; i++) {
787  }
788 
789  }
790  }
791 
792  if(pedestalClient){
793  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
794 
795  if( mePedestalG01_[0] ) dqmStore_->removeElement( mePedestalG01_[0]->getName() );
796  name = "EEPT EE - pedestal quality G01 summary";
797  mePedestalG01_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
798  mePedestalG01_[0]->setAxisTitle("ix", 1);
799  mePedestalG01_[0]->setAxisTitle("iy", 2);
800 
801  }
802 
803  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
804 
805  if( mePedestalG06_[0] ) dqmStore_->removeElement( mePedestalG06_[0]->getName() );
806  name = "EEPT EE - pedestal quality G06 summary";
807  mePedestalG06_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
808  mePedestalG06_[0]->setAxisTitle("ix", 1);
809  mePedestalG06_[0]->setAxisTitle("iy", 2);
810 
811  }
812 
813  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
814 
815  if( mePedestalG12_[0] ) dqmStore_->removeElement( mePedestalG12_[0]->getName() );
816  name = "EEPT EE - pedestal quality G12 summary";
817  mePedestalG12_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
818  mePedestalG12_[0]->setAxisTitle("ix", 1);
819  mePedestalG12_[0]->setAxisTitle("iy", 2);
820 
821  }
822 
823 
824  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
825 
827  name = "EEPT PN pedestal quality G01 summary";
828  mePedestalPNG01_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10, 10.);
829  mePedestalPNG01_->setAxisTitle("jchannel", 1);
830  mePedestalPNG01_->setAxisTitle("jpseudo-strip", 2);
831 
832  }
833 
834  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
835 
837  name = "EEPT PN pedestal quality G16 summary";
838  mePedestalPNG16_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10, 10.);
839  mePedestalPNG16_->setAxisTitle("jchannel", 1);
840  mePedestalPNG16_->setAxisTitle("jpseudo-strip", 2);
841 
842  }
843 
844  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
845 
846  if( mePedestalG01_[1] ) dqmStore_->removeElement( mePedestalG01_[1]->getName() );
847  name = "EEPT EE + pedestal quality G01 summary";
848  mePedestalG01_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
849  mePedestalG01_[1]->setAxisTitle("ix", 1);
850  mePedestalG01_[1]->setAxisTitle("iy", 2);
851 
852  }
853 
854 
855  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
856 
857  if( mePedestalG06_[1] ) dqmStore_->removeElement( mePedestalG06_[1]->getName() );
858  name = "EEPT EE + pedestal quality G06 summary";
859  mePedestalG06_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
860  mePedestalG06_[1]->setAxisTitle("ix", 1);
861  mePedestalG06_[1]->setAxisTitle("iy", 2);
862 
863  }
864 
865  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
866 
867  if( mePedestalG12_[1] ) dqmStore_->removeElement( mePedestalG12_[1]->getName() );
868  name = "EEPT EE + pedestal quality G12 summary";
869  mePedestalG12_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
870  mePedestalG12_[1]->setAxisTitle("ix", 1);
871  mePedestalG12_[1]->setAxisTitle("iy", 2);
872 
873  }
874  }
875 
876  if(testPulseClient){
877  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
878 
879  if( meTestPulseG01_[0] ) dqmStore_->removeElement( meTestPulseG01_[0]->getName() );
880  name = "EETPT EE - test pulse quality G01 summary";
881  meTestPulseG01_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
882  meTestPulseG01_[0]->setAxisTitle("ix", 1);
883  meTestPulseG01_[0]->setAxisTitle("iy", 2);
884 
885  }
886 
887  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
888 
889  if( meTestPulseG06_[0] ) dqmStore_->removeElement( meTestPulseG06_[0]->getName() );
890  name = "EETPT EE - test pulse quality G06 summary";
891  meTestPulseG06_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
892  meTestPulseG06_[0]->setAxisTitle("ix", 1);
893  meTestPulseG06_[0]->setAxisTitle("iy", 2);
894 
895  }
896 
897  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
898 
899  if( meTestPulseG12_[0] ) dqmStore_->removeElement( meTestPulseG12_[0]->getName() );
900  name = "EETPT EE - test pulse quality G12 summary";
901  meTestPulseG12_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
902  meTestPulseG12_[0]->setAxisTitle("ix", 1);
903  meTestPulseG12_[0]->setAxisTitle("iy", 2);
904 
905  }
906 
907 
908  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
909 
911  name = "EETPT PN test pulse quality G01 summary";
912  meTestPulsePNG01_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
913  meTestPulsePNG01_->setAxisTitle("jchannel", 1);
914  meTestPulsePNG01_->setAxisTitle("jpseudo-strip", 2);
915 
916  }
917 
918  if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
919 
921  name = "EETPT PN test pulse quality G16 summary";
922  meTestPulsePNG16_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
923  meTestPulsePNG16_->setAxisTitle("jchannel", 1);
924  meTestPulsePNG16_->setAxisTitle("jpseudo-strip", 2);
925 
926  }
927 
928  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
929 
930  if( meTestPulseG01_[1] ) dqmStore_->removeElement( meTestPulseG01_[1]->getName() );
931  name = "EETPT EE + test pulse quality G01 summary";
932  meTestPulseG01_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
933  meTestPulseG01_[1]->setAxisTitle("ix", 1);
934  meTestPulseG01_[1]->setAxisTitle("iy", 2);
935 
936  }
937 
938  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
939 
940  if( meTestPulseG06_[1] ) dqmStore_->removeElement( meTestPulseG06_[1]->getName() );
941  name = "EETPT EE + test pulse quality G06 summary";
942  meTestPulseG06_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
943  meTestPulseG06_[1]->setAxisTitle("ix", 1);
944  meTestPulseG06_[1]->setAxisTitle("iy", 2);
945 
946  }
947 
948  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
949 
950  if( meTestPulseG12_[1] ) dqmStore_->removeElement( meTestPulseG12_[1]->getName() );
951  name = "EETPT EE + test pulse quality G12 summary";
952  meTestPulseG12_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
953  meTestPulseG12_[1]->setAxisTitle("ix", 1);
954  meTestPulseG12_[1]->setAxisTitle("iy", 2);
955 
956  }
957 
958  if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
959 
961  name = "EETPT test pulse amplitude G01 summary";
962  meTestPulseAmplG01_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
963  for (int i = 0; i < 18; i++) {
965  }
966 
967  }
968 
969  if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
970 
972  name = "EETPT test pulse amplitude G06 summary";
973  meTestPulseAmplG06_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
974  for (int i = 0; i < 18; i++) {
976  }
977 
978  }
979 
980  if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
981 
983  name = "EETPT test pulse amplitude G12 summary";
984  meTestPulseAmplG12_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
985  for (int i = 0; i < 18; i++) {
987  }
988 
989  }
990  }
991 
992  if(timingClient){
993 
994  if( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
995  name = "EETMT EE - timing quality summary";
996  meTiming_[0] = dqmStore_->book2D(name, name, 20, 0., 100., 20, 0., 100.);
997  meTiming_[0]->setAxisTitle("ix", 1);
998  meTiming_[0]->setAxisTitle("iy", 2);
999 
1000  if( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
1001  name = "EETMT EE + timing quality summary";
1002  meTiming_[1] = dqmStore_->book2D(name, name, 20, 0., 100., 20, 0., 100.);
1003  meTiming_[1]->setAxisTitle("ix", 1);
1004  meTiming_[1]->setAxisTitle("iy", 2);
1005 
1006  if( meTimingMean1D_[0] ) dqmStore_->removeElement( meTimingMean1D_[0]->getName() );
1007  name = "EETMT EE - timing mean 1D summary";
1008  meTimingMean1D_[0] = dqmStore_->book1D(name, name, 100, -25., 25.);
1009  meTimingMean1D_[0]->setAxisTitle("mean (ns)", 1);
1010 
1011  if( meTimingMean1D_[1] ) dqmStore_->removeElement( meTimingMean1D_[1]->getName() );
1012  name = "EETMT EE + timing mean 1D summary";
1013  meTimingMean1D_[1] = dqmStore_->book1D(name, name, 100, -25., 25.);
1014  meTimingMean1D_[1]->setAxisTitle("mean (ns)", 1);
1015 
1016  if( meTimingRMS1D_[0] ) dqmStore_->removeElement( meTimingRMS1D_[0]->getName() );
1017  name = "EETMT EE - timing rms 1D summary";
1018  meTimingRMS1D_[0] = dqmStore_->book1D(name, name, 100, 0.0, 10.0);
1019  meTimingRMS1D_[0]->setAxisTitle("rms (ns)", 1);
1020 
1021  if( meTimingRMS1D_[1] ) dqmStore_->removeElement( meTimingRMS1D_[1]->getName() );
1022  name = "EETMT EE + timing rms 1D summary";
1023  meTimingRMS1D_[1] = dqmStore_->book1D(name, name, 100, 0.0, 10.0);
1024  meTimingRMS1D_[1]->setAxisTitle("rms (ns)", 1);
1025 
1027  name = "EETMT timing mean";
1028  meTimingMean_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, -20., 20.,"");
1029  for (int i = 0; i < 18; i++) {
1031  }
1032  meTimingMean_->setAxisTitle("mean (ns)", 2);
1033 
1035  name = "EETMT timing rms";
1036  meTimingRMS_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10.,"");
1037  for (int i = 0; i < 18; i++) {
1039  }
1040  meTimingRMS_->setAxisTitle("rms (ns)", 2);
1041  }
1042 
1043  if(triggerTowerClient){
1044  if( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
1045  name = "EETTT EE - Et trigger tower summary";
1046  meTriggerTowerEt_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1047  meTriggerTowerEt_[0]->setAxisTitle("ix", 1);
1048  meTriggerTowerEt_[0]->setAxisTitle("iy", 2);
1049  meTriggerTowerEt_[0]->setAxisTitle("Et (GeV)", 3);
1050 
1051  if( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
1052  name = "EETTT EE + Et trigger tower summary";
1053  meTriggerTowerEt_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1054  meTriggerTowerEt_[1]->setAxisTitle("ix", 1);
1055  meTriggerTowerEt_[1]->setAxisTitle("iy", 2);
1056  meTriggerTowerEt_[1]->setAxisTitle("Et (GeV)", 3);
1057 
1059  name = "EETTT EE - emulator error quality summary";
1060  meTriggerTowerEmulError_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1063 
1065  name = "EETTT EE + emulator error quality summary";
1066  meTriggerTowerEmulError_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1069 
1071  name = "EETTT EE - Trigger Primitives Timing summary";
1072  meTriggerTowerTiming_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1073  meTriggerTowerTiming_[0]->setAxisTitle("ix", 1);
1074  meTriggerTowerTiming_[0]->setAxisTitle("iy", 2);
1075  meTriggerTowerTiming_[0]->setAxisTitle("TP data matching emulator", 3);
1076 
1078  name = "EETTT EE + Trigger Primitives Timing summary";
1079  meTriggerTowerTiming_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1080  meTriggerTowerTiming_[1]->setAxisTitle("ix", 1);
1081  meTriggerTowerTiming_[1]->setAxisTitle("iy", 2);
1082  meTriggerTowerTiming_[1]->setAxisTitle("TP data matching emulator", 3);
1083 
1085  name = "EETTT EE - Trigger Primitives Non Single Timing summary";
1086  meTriggerTowerNonSingleTiming_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1089  meTriggerTowerNonSingleTiming_[0]->setAxisTitle("fraction", 3);
1090 
1092  name = "EETTT EE + Trigger Primitives Non Single Timing summary";
1093  meTriggerTowerNonSingleTiming_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1096  meTriggerTowerNonSingleTiming_[1]->setAxisTitle("fraction", 3);
1097  }
1098 
1100  if( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
1101  name = "EE global summary EE -";
1102  meGlobalSummary_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1103  meGlobalSummary_[0]->setAxisTitle("ix", 1);
1104  meGlobalSummary_[0]->setAxisTitle("iy", 2);
1105  }
1106 
1108  if( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
1109  name = "EE global summary EE +";
1110  meGlobalSummary_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
1111  meGlobalSummary_[1]->setAxisTitle("ix", 1);
1112  meGlobalSummary_[1]->setAxisTitle("iy", 2);
1113  }
1114 
1115  if(meGlobalSummary_[0] && meGlobalSummary_[1]){
1117  name = "EE global summary errors";
1118  meSummaryErr_ = dqmStore_->book1D(name, name, 1, 0., 1.);
1119  }
1120 }
1121 
1123 
1124  if ( ! enableCleanup_ ) return;
1125 
1126  dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );
1127 
1128  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
1129 
1130  int ism = superModules_[i];
1131 
1132  if ( cloneME_ ) {
1133  if ( hpot01_[ism-1] ) delete hpot01_[ism-1];
1134  if ( httt01_[ism-1] ) delete httt01_[ism-1];
1135  }
1136 
1137  hpot01_[ism-1] = 0;
1138  httt01_[ism-1] = 0;
1139 
1140  }
1141 
1142  if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
1143  meIntegrity_[0] = 0;
1144 
1145  if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[1]->getName() );
1146  meIntegrity_[1] = 0;
1147 
1149  meIntegrityErr_ = 0;
1150 
1152  meIntegrityPN_ = 0;
1153 
1154  if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
1155  meOccupancy_[0] = 0;
1156 
1157  if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
1158  meOccupancy_[1] = 0;
1159 
1161  meOccupancy1D_ = 0;
1162 
1164  meOccupancyPN_ = 0;
1165 
1166  if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
1167  meStatusFlags_[0] = 0;
1168 
1169  if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
1170  meStatusFlags_[1] = 0;
1171 
1173  meStatusFlagsErr_ = 0;
1174 
1175  if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
1176  mePedestalOnline_[0] = 0;
1177 
1178  if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
1179  mePedestalOnline_[1] = 0;
1180 
1183 
1186 
1189 
1191  mePedestalOnlineRMSMap_[0] = 0;
1192 
1194  mePedestalOnlineRMSMap_[1] = 0;
1195 
1196  if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
1197  meLaserL1_[0] = 0;
1198 
1199  if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
1200  meLaserL1_[1] = 0;
1201 
1203  meLaserL1Err_ = 0;
1204 
1206  meLaserL1PN_ = 0;
1207 
1209  meLaserL1PNErr_ = 0;
1210 
1212  meLaserL1Ampl_ = 0;
1213 
1215  meLaserL1Timing_ = 0;
1216 
1219 
1220  if ( meLaserL2_[0] ) dqmStore_->removeElement( meLaserL2_[0]->getName() );
1221  meLaserL2_[0] = 0;
1222 
1223  if ( meLaserL2_[1] ) dqmStore_->removeElement( meLaserL2_[1]->getName() );
1224  meLaserL2_[1] = 0;
1225 
1227  meLaserL2Err_ = 0;
1228 
1230  meLaserL2PN_ = 0;
1231 
1233  meLaserL2PNErr_ = 0;
1234 
1236  meLaserL2Ampl_ = 0;
1237 
1239  meLaserL2Timing_ = 0;
1240 
1243 
1244  if ( meLaserL3_[0] ) dqmStore_->removeElement( meLaserL3_[0]->getName() );
1245  meLaserL3_[0] = 0;
1246 
1247  if ( meLaserL3_[1] ) dqmStore_->removeElement( meLaserL3_[1]->getName() );
1248  meLaserL3_[1] = 0;
1249 
1251  meLaserL3Err_ = 0;
1252 
1254  meLaserL3PN_ = 0;
1255 
1257  meLaserL3PNErr_ = 0;
1258 
1260  meLaserL3Ampl_ = 0;
1261 
1263  meLaserL3Timing_ = 0;
1264 
1267 
1268  if ( meLaserL4_[0] ) dqmStore_->removeElement( meLaserL4_[0]->getName() );
1269  meLaserL4_[0] = 0;
1270 
1271  if ( meLaserL4_[1] ) dqmStore_->removeElement( meLaserL4_[1]->getName() );
1272  meLaserL4_[1] = 0;
1273 
1275  meLaserL4Err_ = 0;
1276 
1278  meLaserL4PN_ = 0;
1279 
1281  meLaserL4PNErr_ = 0;
1282 
1284  meLaserL4Ampl_ = 0;
1285 
1287  meLaserL4Timing_ = 0;
1288 
1291 
1292  if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
1293  meLedL1_[0] = 0;
1294 
1295  if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
1296  meLedL1_[1] = 0;
1297 
1299  meLedL1Err_ = 0;
1300 
1302  meLedL1PN_ = 0;
1303 
1305  meLedL1PNErr_ = 0;
1306 
1308  meLedL1Ampl_ = 0;
1309 
1311  meLedL1Timing_ = 0;
1312 
1314  meLedL1AmplOverPN_ = 0;
1315 
1316  if ( meLedL2_[0] ) dqmStore_->removeElement( meLedL2_[0]->getName() );
1317  meLedL2_[0] = 0;
1318 
1319  if ( meLedL2_[1] ) dqmStore_->removeElement( meLedL2_[1]->getName() );
1320  meLedL2_[1] = 0;
1321 
1323  meLedL2Err_ = 0;
1324 
1326  meLedL2PN_ = 0;
1327 
1329  meLedL2PNErr_ = 0;
1330 
1332  meLedL2Ampl_ = 0;
1333 
1335  meLedL2Timing_ = 0;
1336 
1338  meLedL2AmplOverPN_ = 0;
1339 
1340  if ( mePedestalG01_[0] ) dqmStore_->removeElement( mePedestalG01_[0]->getName() );
1341  mePedestalG01_[0] = 0;
1342 
1343  if ( mePedestalG01_[1] ) dqmStore_->removeElement( mePedestalG01_[1]->getName() );
1344  mePedestalG01_[1] = 0;
1345 
1346  if ( mePedestalG06_[0] ) dqmStore_->removeElement( mePedestalG06_[0]->getName() );
1347  mePedestalG06_[0] = 0;
1348 
1349  if ( mePedestalG06_[1] ) dqmStore_->removeElement( mePedestalG06_[1]->getName() );
1350  mePedestalG06_[1] = 0;
1351 
1352  if ( mePedestalG12_[0] ) dqmStore_->removeElement( mePedestalG12_[0]->getName() );
1353  mePedestalG12_[0] = 0;
1354 
1355  if ( mePedestalG12_[1] ) dqmStore_->removeElement( mePedestalG12_[1]->getName() );
1356  mePedestalG12_[1] = 0;
1357 
1359  mePedestalPNG01_ = 0;
1360 
1362  mePedestalPNG16_ = 0;
1363 
1364  if ( meTestPulseG01_[0] ) dqmStore_->removeElement( meTestPulseG01_[0]->getName() );
1365  meTestPulseG01_[0] = 0;
1366 
1367  if ( meTestPulseG01_[1] ) dqmStore_->removeElement( meTestPulseG01_[1]->getName() );
1368  meTestPulseG01_[1] = 0;
1369 
1370  if ( meTestPulseG06_[0] ) dqmStore_->removeElement( meTestPulseG06_[0]->getName() );
1371  meTestPulseG06_[0] = 0;
1372 
1373  if ( meTestPulseG06_[1] ) dqmStore_->removeElement( meTestPulseG06_[1]->getName() );
1374  meTestPulseG06_[1] = 0;
1375 
1376  if ( meTestPulseG12_[0] ) dqmStore_->removeElement( meTestPulseG12_[0]->getName() );
1377  meTestPulseG12_[0] = 0;
1378 
1379  if ( meTestPulseG12_[1] ) dqmStore_->removeElement( meTestPulseG12_[1]->getName() );
1380  meTestPulseG12_[1] = 0;
1381 
1383  meTestPulsePNG01_ = 0;
1384 
1386  meTestPulsePNG16_ = 0;
1387 
1389  meTestPulseAmplG01_ = 0;
1390 
1392  meTestPulseAmplG06_ = 0;
1393 
1395  meTestPulseAmplG12_ = 0;
1396 
1397  if ( meRecHitEnergy_[0] ) dqmStore_->removeElement( meRecHitEnergy_[0]->getName() );
1398  meRecHitEnergy_[0] = 0;
1399 
1400  if ( meRecHitEnergy_[1] ) dqmStore_->removeElement( meRecHitEnergy_[1]->getName() );
1401  meRecHitEnergy_[1] = 0;
1402 
1403  if ( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
1404  meTiming_[0] = 0;
1405 
1406  if ( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
1407  meTiming_[1] = 0;
1408 
1409  if ( meTimingMean1D_[0] ) dqmStore_->removeElement( meTimingMean1D_[0]->getName() );
1410  meTimingMean1D_[0] = 0;
1411 
1412  if ( meTimingMean1D_[1] ) dqmStore_->removeElement( meTimingMean1D_[1]->getName() );
1413  meTimingMean1D_[1] = 0;
1414 
1415  if ( meTimingRMS1D_[0] ) dqmStore_->removeElement( meTimingRMS1D_[0]->getName() );
1416  meTimingRMS1D_[0] = 0;
1417 
1418  if ( meTimingRMS1D_[1] ) dqmStore_->removeElement( meTimingRMS1D_[1]->getName() );
1419  meTimingRMS1D_[1] = 0;
1420 
1421  if ( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
1422  meTriggerTowerEt_[0] = 0;
1423 
1424  if ( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
1425  meTriggerTowerEt_[1] = 0;
1426 
1428  meTriggerTowerEmulError_[0] = 0;
1429 
1431  meTriggerTowerEmulError_[1] = 0;
1432 
1434  meTriggerTowerTiming_[0] = 0;
1435 
1437  meTriggerTowerTiming_[1] = 0;
1438 
1441 
1444 
1445  if ( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
1446  meGlobalSummary_[0] = 0;
1447 
1448  if ( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
1449  meGlobalSummary_[1] = 0;
1450 
1452  meSummaryErr_ = 0;
1453 
1454 }
1455 
1456 #ifdef WITH_ECAL_COND_DB
1457 bool EESummaryClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status) {
1458 
1459  status = true;
1460 
1461  return true;
1462 
1463 }
1464 #endif
1465 
1467 
1468  ievt_++;
1469  jevt_++;
1470  if ( ievt_ % 10 == 0 ) {
1471  if ( debug_ ) std::cout << "EESummaryClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
1472  }
1473 
1474  uint32_t chWarnBit = 1 << EcalDQMStatusHelper::PHYSICS_BAD_CHANNEL_WARNING;
1475 
1476  for ( int ix = 1; ix <= 100; ix++ ) {
1477  for ( int iy = 1; iy <= 100; iy++ ) {
1478 
1479  if ( meIntegrity_[0] ) meIntegrity_[0]->setBinContent( ix, iy, 6. );
1480  if ( meIntegrity_[1] ) meIntegrity_[1]->setBinContent( ix, iy, 6. );
1481  if ( meOccupancy_[0] ) meOccupancy_[0]->setBinContent( ix, iy, 0. );
1482  if ( meOccupancy_[1] ) meOccupancy_[1]->setBinContent( ix, iy, 0. );
1483  if ( meStatusFlags_[0] ) meStatusFlags_[0]->setBinContent( ix, iy, 6. );
1484  if ( meStatusFlags_[1] ) meStatusFlags_[1]->setBinContent( ix, iy, 6. );
1485  if ( mePedestalOnline_[0] ) mePedestalOnline_[0]->setBinContent( ix, iy, 6. );
1486  if ( mePedestalOnline_[1] ) mePedestalOnline_[1]->setBinContent( ix, iy, 6. );
1487  if ( mePedestalOnlineRMSMap_[0] ) mePedestalOnlineRMSMap_[0]->setBinContent( ix, iy, -1. );
1488  if ( mePedestalOnlineRMSMap_[1] ) mePedestalOnlineRMSMap_[1]->setBinContent( ix, iy, -1. );
1489 
1490  if ( meLaserL1_[0] ) meLaserL1_[0]->setBinContent( ix, iy, 6. );
1491  if ( meLaserL1_[1] ) meLaserL1_[1]->setBinContent( ix, iy, 6. );
1492  if ( meLaserL2_[0] ) meLaserL2_[0]->setBinContent( ix, iy, 6. );
1493  if ( meLaserL2_[1] ) meLaserL2_[1]->setBinContent( ix, iy, 6. );
1494  if ( meLaserL3_[0] ) meLaserL3_[0]->setBinContent( ix, iy, 6. );
1495  if ( meLaserL3_[1] ) meLaserL3_[1]->setBinContent( ix, iy, 6. );
1496  if ( meLaserL4_[0] ) meLaserL4_[0]->setBinContent( ix, iy, 6. );
1497  if ( meLaserL4_[1] ) meLaserL4_[1]->setBinContent( ix, iy, 6. );
1498  if ( meLedL1_[0] ) meLedL1_[0]->setBinContent( ix, iy, 6. );
1499  if ( meLedL1_[1] ) meLedL1_[1]->setBinContent( ix, iy, 6. );
1500  if ( meLedL2_[0] ) meLedL2_[0]->setBinContent( ix, iy, 6. );
1501  if ( meLedL2_[1] ) meLedL2_[1]->setBinContent( ix, iy, 6. );
1502  if ( mePedestalG01_[0] ) mePedestalG01_[0]->setBinContent( ix, iy, 6. );
1503  if ( mePedestalG01_[1] ) mePedestalG01_[1]->setBinContent( ix, iy, 6. );
1504  if ( mePedestalG06_[0] ) mePedestalG06_[0]->setBinContent( ix, iy, 6. );
1505  if ( mePedestalG06_[1] ) mePedestalG06_[1]->setBinContent( ix, iy, 6. );
1506  if ( mePedestalG12_[0] ) mePedestalG12_[0]->setBinContent( ix, iy, 6. );
1507  if ( mePedestalG12_[1] ) mePedestalG12_[1]->setBinContent( ix, iy, 6. );
1508  if ( meTestPulseG01_[0] ) meTestPulseG01_[0]->setBinContent( ix, iy, 6. );
1509  if ( meTestPulseG01_[1] ) meTestPulseG01_[1]->setBinContent( ix, iy, 6. );
1510  if ( meTestPulseG06_[0] ) meTestPulseG06_[0]->setBinContent( ix, iy, 6. );
1511  if ( meTestPulseG06_[1] ) meTestPulseG06_[1]->setBinContent( ix, iy, 6. );
1512  if ( meTestPulseG12_[0] ) meTestPulseG12_[0]->setBinContent( ix, iy, 6. );
1513  if ( meTestPulseG12_[1] ) meTestPulseG12_[1]->setBinContent( ix, iy, 6. );
1514  if ( meRecHitEnergy_[0] ) meRecHitEnergy_[0]->setBinContent( ix, iy, 0. );
1515  if ( meRecHitEnergy_[1] ) meRecHitEnergy_[1]->setBinContent( ix, iy, 0. );
1516 
1517  if( meGlobalSummary_[0] ) meGlobalSummary_[0]->setBinContent( ix, iy, 6. );
1518  if( meGlobalSummary_[1] ) meGlobalSummary_[1]->setBinContent( ix, iy, 6. );
1519 
1520  }
1521  }
1522 
1523  // default is 6 because we want white for the non existing MEM
1524  for ( int ix = 1; ix <= 45; ix++ ) {
1525  for ( int iy = 1; iy <= 20; iy++ ) {
1526 
1527  if ( meIntegrityPN_ ) meIntegrityPN_->setBinContent( ix, iy, 6. );
1528  if ( meOccupancyPN_ ) meOccupancyPN_->setBinContent( ix, iy, 0. );
1529  if ( meLaserL1PN_ ) meLaserL1PN_->setBinContent( ix, iy, 6. );
1530  if ( meLaserL2PN_ ) meLaserL2PN_->setBinContent( ix, iy, 6. );
1531  if ( meLaserL3PN_ ) meLaserL3PN_->setBinContent( ix, iy, 6. );
1532  if ( meLaserL4PN_ ) meLaserL4PN_->setBinContent( ix, iy, 6. );
1533  if ( meLedL1PN_ ) meLedL1PN_->setBinContent( ix, iy, 6. );
1534  if ( meLedL2PN_ ) meLedL2PN_->setBinContent( ix, iy, 6. );
1535  if ( mePedestalPNG01_ ) mePedestalPNG01_->setBinContent( ix, iy, 6. );
1536  if ( mePedestalPNG16_ ) mePedestalPNG16_->setBinContent( ix, iy, 6. );
1537  if ( meTestPulsePNG01_ ) meTestPulsePNG01_->setBinContent( ix, iy, 6. );
1538  if ( meTestPulsePNG16_ ) meTestPulsePNG16_->setBinContent( ix, iy, 6. );
1539 
1540  }
1541  }
1542 
1543  for ( int ix = 1; ix <= 100; ix++ ) {
1544  for ( int iy = 1; iy <= 100; iy++ ) {
1545  if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setBinContent( ix, iy, 0. );
1546  if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setBinContent( ix, iy, 0. );
1549  if ( meTriggerTowerTiming_[0] ) meTriggerTowerTiming_[0]->setBinContent( ix, iy, 0. );
1550  if ( meTriggerTowerTiming_[1] ) meTriggerTowerTiming_[1]->setBinContent( ix, iy, 0. );
1553  }
1554  }
1555 
1556  for ( int ix = 1; ix <= 20; ix++ ) {
1557  for ( int iy = 1; iy <= 20; iy++ ) {
1558  if ( meTiming_[0] ) meTiming_[0]->setBinContent( ix, iy, 6. );
1559  if ( meTiming_[1] ) meTiming_[1]->setBinContent( ix, iy, 6. );
1560  }
1561  }
1562 
1563  if ( meIntegrity_[0] ) meIntegrity_[0]->setEntries( 0 );
1564  if ( meIntegrity_[1] ) meIntegrity_[1]->setEntries( 0 );
1567  if ( meOccupancy_[0] ) meOccupancy_[0]->setEntries( 0 );
1568  if ( meOccupancy_[1] ) meOccupancy_[1]->setEntries( 0 );
1571  if ( meStatusFlags_[0] ) meStatusFlags_[0]->setEntries( 0 );
1572  if ( meStatusFlags_[1] ) meStatusFlags_[1]->setEntries( 0 );
1574  if ( mePedestalOnline_[0] ) mePedestalOnline_[0]->setEntries( 0 );
1575  if ( mePedestalOnline_[1] ) mePedestalOnline_[1]->setEntries( 0 );
1579  if ( meLaserL1_[0] ) meLaserL1_[0]->setEntries( 0 );
1580  if ( meLaserL1_[1] ) meLaserL1_[1]->setEntries( 0 );
1581  if ( meLaserL1Err_ ) meLaserL1Err_->Reset();
1582  if ( meLaserL1PN_ ) meLaserL1PN_->setEntries( 0 );
1587  if ( meLaserL2_[0] ) meLaserL2_[0]->setEntries( 0 );
1588  if ( meLaserL2_[1] ) meLaserL2_[1]->setEntries( 0 );
1589  if ( meLaserL2Err_ ) meLaserL2Err_->Reset();
1590  if ( meLaserL2PN_ ) meLaserL2PN_->setEntries( 0 );
1595  if ( meLaserL3_[0] ) meLaserL3_[0]->setEntries( 0 );
1596  if ( meLaserL3_[1] ) meLaserL3_[1]->setEntries( 0 );
1597  if ( meLaserL3Err_ ) meLaserL3Err_->Reset();
1598  if ( meLaserL3PN_ ) meLaserL3PN_->setEntries( 0 );
1603  if ( meLaserL4_[0] ) meLaserL4_[0]->setEntries( 0 );
1604  if ( meLaserL4_[1] ) meLaserL4_[1]->setEntries( 0 );
1605  if ( meLaserL4Err_ ) meLaserL4Err_->Reset();
1606  if ( meLaserL4PN_ ) meLaserL4PN_->setEntries( 0 );
1611  if ( meLedL1_[0] ) meLedL1_[0]->setEntries( 0 );
1612  if ( meLedL1_[1] ) meLedL1_[1]->setEntries( 0 );
1613  if ( meLedL1Err_ ) meLedL1Err_->Reset();
1614  if ( meLedL1PN_ ) meLedL1PN_->setEntries( 0 );
1615  if ( meLedL1PNErr_ ) meLedL1PNErr_->Reset();
1616  if ( meLedL1Ampl_ ) meLedL1Ampl_->Reset();
1619  if ( meLedL2_[0] ) meLedL2_[0]->setEntries( 0 );
1620  if ( meLedL2_[1] ) meLedL2_[1]->setEntries( 0 );
1621  if ( meLedL2Err_ ) meLedL2Err_->Reset();
1622  if ( meLedL2PN_ ) meLedL2PN_->setEntries( 0 );
1623  if ( meLedL2PNErr_ ) meLedL2PNErr_->Reset();
1624  if ( meLedL2Ampl_ ) meLedL2Ampl_->Reset();
1627  if ( mePedestalG01_[0] ) mePedestalG01_[0]->setEntries( 0 );
1628  if ( mePedestalG01_[1] ) mePedestalG01_[1]->setEntries( 0 );
1629  if ( mePedestalG06_[0] ) mePedestalG06_[0]->setEntries( 0 );
1630  if ( mePedestalG06_[1] ) mePedestalG06_[1]->setEntries( 0 );
1631  if ( mePedestalG12_[0] ) mePedestalG12_[0]->setEntries( 0 );
1632  if ( mePedestalG12_[1] ) mePedestalG12_[1]->setEntries( 0 );
1635  if ( meTestPulseG01_[0] ) meTestPulseG01_[0]->setEntries( 0 );
1636  if ( meTestPulseG01_[1] ) meTestPulseG01_[1]->setEntries( 0 );
1637  if ( meTestPulseG06_[0] ) meTestPulseG06_[0]->setEntries( 0 );
1638  if ( meTestPulseG06_[1] ) meTestPulseG06_[1]->setEntries( 0 );
1639  if ( meTestPulseG12_[0] ) meTestPulseG12_[0]->setEntries( 0 );
1640  if ( meTestPulseG12_[1] ) meTestPulseG12_[1]->setEntries( 0 );
1646 
1647  if ( meRecHitEnergy_[0] ) meRecHitEnergy_[0]->setEntries( 0 );
1648  if ( meRecHitEnergy_[1] ) meRecHitEnergy_[1]->setEntries( 0 );
1649  if ( meTiming_[0] ) meTiming_[0]->setEntries( 0 );
1650  if ( meTiming_[1] ) meTiming_[1]->setEntries( 0 );
1651  if ( meTimingMean1D_[0] ) meTimingMean1D_[0]->Reset();
1652  if ( meTimingMean1D_[1] ) meTimingMean1D_[1]->Reset();
1653  if ( meTimingRMS1D_[0] ) meTimingRMS1D_[0]->Reset();
1654  if ( meTimingRMS1D_[1] ) meTimingRMS1D_[1]->Reset();
1655  if ( meTimingMean_ ) meTimingMean_->Reset();
1656  if ( meTimingRMS_ ) meTimingRMS_->Reset();
1657  if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setEntries( 0 );
1658  if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setEntries( 0 );
1665 
1666  if( meGlobalSummary_[0] ) meGlobalSummary_[0]->setEntries( 0 );
1668 
1670 
1671  MonitorElement *me(0);
1672  me = dqmStore_->get(prefixME_ + "/EETimingTask/EETMT timing map EE +");
1673  TProfile2D *htmtp(0);
1674  htmtp = UtilsClient::getHisto(me, false, htmtp);
1675 
1676  me = dqmStore_->get(prefixME_ + "/EETimingTask/EETMT timing map EE -");
1677  TProfile2D *htmtm(0);
1678  htmtm = UtilsClient::getHisto(me, false, htmtm);
1679 
1680  std::string subdir(subfolder_ == "" ? "" : subfolder_ + "/");
1681 
1682  TH1F* oosTrend(0);
1683 
1684  for ( unsigned int i=0; i<clients_.size(); i++ ) {
1685 
1686  EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
1687  EEStatusFlagsClient* eesfc = dynamic_cast<EEStatusFlagsClient*>(clients_[i]);
1688  if(!produceReports_) eesfc = 0;
1689  EEPedestalOnlineClient* eepoc = dynamic_cast<EEPedestalOnlineClient*>(clients_[i]);
1690  if(!produceReports_) eepoc = 0;
1691 
1692  EELaserClient* eelc = dynamic_cast<EELaserClient*>(clients_[i]);
1693  EELedClient* eeldc = dynamic_cast<EELedClient*>(clients_[i]);
1694  EEPedestalClient* eepc = dynamic_cast<EEPedestalClient*>(clients_[i]);
1695  EETestPulseClient* eetpc = dynamic_cast<EETestPulseClient*>(clients_[i]);
1696 
1697  EETimingClient* eetmc = dynamic_cast<EETimingClient*>(clients_[i]);
1698  EETriggerTowerClient* eetttc = dynamic_cast<EETriggerTowerClient*>(clients_[i]);
1699 
1700  MonitorElement *me_01, *me_02, *me_03;
1701  MonitorElement *me_04, *me_05;
1702  // MonitorElement *me_f[6], *me_fg[2];
1703  TH2F* h2;
1704  TH2F* h3;
1705 
1706  me = dqmStore_->get( prefixME_ + "/EcalInfo/EEMM DCC" );
1708 
1709  me = dqmStore_->get( prefixME_ + "/EERawDataTask/" + subdir + "EERDT L1A FE errors" );
1711 
1712  me = dqmStore_->get(prefixME_ + "/EERawDataTask/" + subdir + "EERDT accumulated FE synchronization errors");
1713  oosTrend = UtilsClient::getHisto(me, cloneME_, oosTrend);
1714 
1715  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
1716 
1717  int ism = superModules_[i];
1718 
1719  me = dqmStore_->get( prefixME_ + "/EEOccupancyTask/" + subdir + "EEOT rec hit energy " + Numbers::sEE(ism) );
1720  hot01_[ism-1] = UtilsClient::getHisto( me, cloneME_, hot01_[ism-1] );
1721 
1722  me = dqmStore_->get( prefixME_ + "/EEPedestalOnlineTask/" + subdir + "Gain12/EEPOT pedestal " + Numbers::sEE(ism) + " G12" );
1723  hpot01_[ism-1] = UtilsClient::getHisto( me, cloneME_, hpot01_[ism-1] );
1724 
1725  me = dqmStore_->get( prefixME_ + "/EETriggerTowerTask/EETTT Et map Real Digis " + Numbers::sEE(ism) );
1726  httt01_[ism-1] = UtilsClient::getHisto( me, cloneME_, httt01_[ism-1] );
1727 
1728  me = dqmStore_->get( prefixME_ + "/EETimingTask/EETMT timing " + Numbers::sEE(ism) );
1729  htmt01_[ism-1] = UtilsClient::getHisto( me, cloneME_, htmt01_[ism-1] );
1730 
1731  for ( int ix = 1; ix <= 50; ix++ ) {
1732  for ( int iy = 1; iy <= 50; iy++ ) {
1733 
1734  int jx = ix + Numbers::ix0EE(ism);
1735  int jy = iy + Numbers::iy0EE(ism);
1736 
1737  if ( ism >= 1 && ism <= 9 ) {
1738  if ( ! Numbers::validEE(ism, 101 - jx, jy) ) continue;
1739  } else {
1740  if ( ! Numbers::validEE(ism, jx, jy) ) continue;
1741  }
1742 
1743  if ( eeic ) {
1744 
1745  me = eeic->meg01_[ism-1];
1746 
1747  if ( me ) {
1748 
1749  float xval = me->getBinContent( ix, iy );
1750 
1751  if ( ism >= 1 && ism <= 9 ) {
1752  if(meIntegrity_[0]) meIntegrity_[0]->setBinContent( 101 - jx, jy, xval );
1753  } else {
1754  if(meIntegrity_[1]) meIntegrity_[1]->setBinContent( jx, jy, xval );
1755  }
1756 
1757  if ( xval == 0 && meIntegrityErr_) meIntegrityErr_->Fill( ism );
1758 
1759  }
1760 
1761  h2 = eeic->h_[ism-1];
1762 
1763  if ( h2 ) {
1764 
1765  float xval = h2->GetBinContent( ix, iy );
1766 
1767  if ( ism >= 1 && ism <= 9 ) {
1768  if ( xval != 0 && meOccupancy_[0]) meOccupancy_[0]->setBinContent( 101 - jx, jy, xval );
1769  } else {
1770  if ( xval != 0 && meOccupancy_[1]) meOccupancy_[1]->setBinContent( jx, jy, xval );
1771  }
1772 
1773  if(meOccupancy1D_) meOccupancy1D_->Fill( ism, xval );
1774 
1775  }
1776 
1777  }
1778 
1779  if ( eepoc ) {
1780 
1781  me = eepoc->meg03_[ism-1];
1782 
1783  if ( me ) {
1784 
1785  float xval = me->getBinContent( ix, iy );
1786 
1787  if ( ism >= 1 && ism <= 9 ) {
1788  if(mePedestalOnline_[0]) mePedestalOnline_[0]->setBinContent( 101 - jx, jy, xval );
1789  } else {
1790  if(mePedestalOnline_[1]) mePedestalOnline_[1]->setBinContent( jx, jy, xval );
1791  }
1792 
1793  if ( xval == 0 && mePedestalOnlineErr_) mePedestalOnlineErr_->Fill( ism );
1794 
1795  }
1796 
1797  float num01, mean01, rms01;
1798  bool update01 = UtilsClient::getBinStatistics(hpot01_[ism-1], ix, iy, num01, mean01, rms01);
1799 
1800  if ( update01 ) {
1801 
1802  if(mePedestalOnlineRMS_) mePedestalOnlineRMS_->Fill( ism, rms01 );
1803  if(mePedestalOnlineMean_) mePedestalOnlineMean_->Fill( ism, mean01 );
1804 
1805  if ( ism >= 1 && ism <= 9 ) {
1806  if(mePedestalOnlineRMSMap_[0]) mePedestalOnlineRMSMap_[0]->setBinContent( 101 - jx, jy, rms01 );
1807  } else {
1809  }
1810 
1811  }
1812 
1813  }
1814 
1815  if ( eelc ) {
1816 
1817  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
1818 
1819  me = eelc->meg01_[ism-1];
1820 
1821  if ( me ) {
1822 
1823  float xval = me->getBinContent( ix, iy );
1824 
1825  if ( me->getEntries() != 0 ) {
1826  if ( ism >= 1 && ism <= 9 ) {
1827  meLaserL1_[0]->setBinContent( 101 - jx, jy, xval );
1828  } else {
1829  meLaserL1_[1]->setBinContent( jx, jy, xval );
1830  }
1831 
1832  if ( xval == 0 ) meLaserL1Err_->Fill( ism );
1833  }
1834 
1835  }
1836 
1837  }
1838 
1839  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
1840 
1841  me = eelc->meg02_[ism-1];
1842 
1843  if ( me ) {
1844 
1845  float xval = me->getBinContent( ix, iy );
1846 
1847  if ( me->getEntries() != 0 ) {
1848  if ( ism >= 1 && ism <= 9 ) {
1849  meLaserL2_[0]->setBinContent( 101 - jx, jy, xval );
1850  } else {
1851  meLaserL2_[1]->setBinContent( jx, jy, xval );
1852  }
1853 
1854  if ( xval == 0 ) meLaserL2Err_->Fill( ism );
1855  }
1856 
1857  }
1858 
1859  }
1860 
1861  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
1862 
1863  me = eelc->meg03_[ism-1];
1864 
1865  if ( me ) {
1866 
1867  float xval = me->getBinContent( ix, iy );
1868 
1869  if ( me->getEntries() != 0 ) {
1870  if ( ism >= 1 && ism <= 9 ) {
1871  meLaserL3_[0]->setBinContent( 101 - jx, jy, xval );
1872  } else {
1873  meLaserL3_[1]->setBinContent( jx, jy, xval );
1874  }
1875 
1876  if ( xval == 0 ) meLaserL3Err_->Fill( ism );
1877  }
1878 
1879  }
1880 
1881  }
1882 
1883  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
1884 
1885  me = eelc->meg04_[ism-1];
1886 
1887  if ( me ) {
1888 
1889  float xval = me->getBinContent( ix, iy );
1890 
1891  if ( me->getEntries() != 0 ) {
1892  if ( ism >= 1 && ism <= 9 ) {
1893  meLaserL4_[0]->setBinContent( 101 - jx, jy, xval );
1894  } else {
1895  meLaserL4_[1]->setBinContent( jx, jy, xval );
1896  }
1897 
1898  if ( xval == 0 ) meLaserL4Err_->Fill( ism );
1899  }
1900 
1901  }
1902 
1903  }
1904 
1905  }
1906 
1907  if ( eeldc ) {
1908 
1909  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
1910 
1911  me = eeldc->meg01_[ism-1];
1912 
1913  if ( me ) {
1914 
1915  float xval = me->getBinContent( ix, iy );
1916 
1917  if ( me->getEntries() != 0 ) {
1918  if ( ism >= 1 && ism <= 9 ) {
1919  meLedL1_[0]->setBinContent( 101 - jx, jy, xval );
1920  } else {
1921  meLedL1_[1]->setBinContent( jx, jy, xval );
1922  }
1923 
1924  if ( xval == 0 ) meLedL1Err_->Fill( ism );
1925  }
1926 
1927  }
1928 
1929  }
1930 
1931  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
1932 
1933  me = eeldc->meg02_[ism-1];
1934 
1935  if ( me ) {
1936 
1937  float xval = me->getBinContent( ix, iy );
1938 
1939  if ( me->getEntries() != 0 ) {
1940  if ( ism >= 1 && ism <= 9 ) {
1941  meLedL2_[0]->setBinContent( 101 - jx, jy, xval );
1942  } else {
1943  meLedL2_[1]->setBinContent( jx, jy, xval );
1944  }
1945 
1946  if ( xval == 0 ) meLedL2Err_->Fill( ism );
1947  }
1948 
1949  }
1950 
1951  }
1952 
1953  }
1954 
1955  if ( eepc ) {
1956 
1957  me_01 = eepc->meg01_[ism-1];
1958  me_02 = eepc->meg02_[ism-1];
1959  me_03 = eepc->meg03_[ism-1];
1960 
1961  if ( me_01 ) {
1962  float val_01=me_01->getBinContent(ix,iy);
1963  if ( me_01->getEntries() != 0 ) {
1964  if ( ism >= 1 && ism <= 9 ) {
1965  mePedestalG01_[0]->setBinContent( 101 - jx, jy, val_01 );
1966  } else {
1967  mePedestalG01_[1]->setBinContent( jx, jy, val_01 );
1968  }
1969  }
1970  }
1971  if ( me_02 ) {
1972  float val_02=me_02->getBinContent(ix,iy);
1973  if ( me_02->getEntries() != 0 ) {
1974  if ( ism >= 1 && ism <= 9 ) {
1975  mePedestalG06_[0]->setBinContent( 101 - jx, jy, val_02 );
1976  } else {
1977  mePedestalG06_[1]->setBinContent( jx, jy, val_02 );
1978  }
1979  }
1980  }
1981  if ( me_03 ) {
1982  float val_03=me_03->getBinContent(ix,iy);
1983  if ( me_03->getEntries() != 0 ) {
1984  if ( ism >= 1 && ism <= 9 ) {
1985  mePedestalG12_[0]->setBinContent( 101 - jx, jy, val_03 );
1986  } else {
1987  mePedestalG12_[1]->setBinContent( jx, jy, val_03 );
1988  }
1989  }
1990  }
1991 
1992  }
1993 
1994  if ( eetpc ) {
1995 
1996  me_01 = eetpc->meg01_[ism-1];
1997  me_02 = eetpc->meg02_[ism-1];
1998  me_03 = eetpc->meg03_[ism-1];
1999 
2000  if ( me_01 ) {
2001  float val_01=me_01->getBinContent(ix,iy);
2002  if ( me_01->getEntries() != 0 ) {
2003  if ( ism >= 1 && ism <= 9 ) {
2004  meTestPulseG01_[0]->setBinContent( 101 - jx, jy, val_01 );
2005  } else {
2006  meTestPulseG01_[1]->setBinContent( jx, jy, val_01 );
2007  }
2008  }
2009  }
2010  if ( me_02 ) {
2011  float val_02=me_02->getBinContent(ix,iy);
2012  if ( me_02->getEntries() != 0 ) {
2013  if ( ism >= 1 && ism <= 9 ) {
2014  meTestPulseG06_[0]->setBinContent( 101 - jx, jy, val_02 );
2015  } else {
2016  meTestPulseG06_[1]->setBinContent( jx, jy, val_02 );
2017  }
2018  }
2019  }
2020  if ( me_03 ) {
2021  float val_03=me_03->getBinContent(ix,iy);
2022  if ( me_03->getEntries() != 0 ) {
2023  if ( ism >= 1 && ism <= 9 ) {
2024  meTestPulseG12_[0]->setBinContent( 101 - jx, jy, val_03 );
2025  } else {
2026  meTestPulseG12_[1]->setBinContent( jx, jy, val_03 );
2027  }
2028  }
2029  }
2030 
2031  }
2032 
2033  if ( hot01_[ism-1] ) {
2034 
2035  float xval = hot01_[ism-1]->GetBinContent( ix, iy );
2036 
2037  if ( ism >= 1 && ism <= 9 ) {
2038  if(meRecHitEnergy_[0]) meRecHitEnergy_[0]->setBinContent( 101 - jx, jy, xval );
2039  } else {
2040  if(meRecHitEnergy_[1]) meRecHitEnergy_[1]->setBinContent( jx, jy, xval );
2041  }
2042 
2043  }
2044 
2045  }
2046  }
2047 
2048  for ( int ix = 1; ix <= 50; ix++ ) {
2049  for ( int iy = 1; iy <= 50; iy++ ) {
2050 
2051  int jx = ix + Numbers::ix0EE(ism);
2052  int jy = iy + Numbers::iy0EE(ism);
2053 
2054  if ( ism >= 1 && ism <= 9 ) {
2055  if ( ! Numbers::validEE(ism, 101 - jx, jy) ) continue;
2056  } else {
2057  if ( ! Numbers::validEE(ism, jx, jy) ) continue;
2058  }
2059 
2060  if ( eesfc ) {
2061 
2062  me = dqmStore_->get(prefixME_ + "/EcalInfo/EEMM DCC");
2063 
2064  float xval = 6;
2065 
2066  if ( me ) {
2067 
2068  xval = 2;
2069  if ( me->getBinContent( ism ) > 0 ) xval = 1;
2070 
2071  }
2072 
2073  me = eesfc->meh01_[ism-1];
2074 
2075  if ( me ) {
2076 
2077  if ( me->getBinContent( ix, iy ) > 0 ) xval = 0;
2078 
2079  if ( ism >= 1 && ism <= 9 ) {
2080 
2081  meStatusFlags_[0]->setBinContent( 101 - jx, jy, xval );
2082 
2083  if ( me->getBinError( ix, iy ) > 0 && me->getBinError( ix, iy ) < 0.1 ) {
2084  UtilsClient::maskBinContent( meStatusFlags_[0], 101 - jx, jy );
2085  }
2086  } else {
2087 
2088  meStatusFlags_[1]->setBinContent( jx, jy, xval );
2089 
2090  if ( me->getBinError( ix, iy ) > 0 && me->getBinError( ix, iy ) < 0.1 ) {
2092  }
2093  }
2094 
2095  if ( xval == 0 ) meStatusFlagsErr_->Fill( ism );
2096 
2097  }
2098 
2099  }
2100 
2101  }
2102  }
2103 
2104  for ( int ix = 1; ix <= 50; ix++ ) {
2105  for ( int iy = 1; iy <= 50; iy++ ) {
2106 
2107  int jx = ix + Numbers::ix0EE(ism);
2108  int jy = iy + Numbers::iy0EE(ism);
2109 
2110  if ( eetttc ) {
2111 
2112  float mean01 = 0;
2113  bool hadNonZeroInterest = false;
2114 
2115  if ( httt01_[ism-1] ) {
2116 
2117  mean01 = httt01_[ism-1]->GetBinContent( ix, iy );
2118 
2119  if ( mean01 != 0. ) {
2120  if ( ism >= 1 && ism <= 9 ) {
2121  if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setBinContent( 101 - jx, jy, mean01 );
2122  } else {
2123  if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setBinContent( jx, jy, mean01 );
2124  }
2125  }
2126 
2127  }
2128 
2129  me = eetttc->me_o01_[ism-1];
2130 
2131  if ( me ) {
2132 
2133  float xval = me->getBinContent( ix, iy );
2134 
2135  if ( xval != 0. ) {
2136  if ( ism >= 1 && ism <= 9 ) {
2137  meTriggerTowerTiming_[0]->setBinContent( 101 - jx, jy, xval );
2138  } else {
2139  meTriggerTowerTiming_[1]->setBinContent( jx, jy, xval );
2140  }
2141  hadNonZeroInterest = true;
2142  }
2143 
2144  }
2145 
2146  me = eetttc->me_o02_[ism-1];
2147 
2148  if ( me ) {
2149 
2150  float xval = me->getBinContent( ix, iy );
2151 
2152  if ( xval != 0. ) {
2153  if ( ism >= 1 && ism <= 9 ) {
2154  meTriggerTowerNonSingleTiming_[0]->setBinContent( 101 - jx, jy, xval );
2155  } else {
2156  meTriggerTowerNonSingleTiming_[1]->setBinContent( jx, jy, xval );
2157  }
2158  }
2159 
2160  }
2161 
2162  float xval = 2;
2163  if( mean01 > 0. ) {
2164 
2165  h2 = eetttc->l01_[ism-1];
2166  h3 = eetttc->l02_[ism-1];
2167 
2168  if ( h2 && h3 ) {
2169 
2170  // float emulErrorVal = h2->GetBinContent( ix, iy ) + h3->GetBinContent( ix, iy );
2171  float emulErrorVal = h2->GetBinContent( ix, iy );
2172 
2173  float errorThresh(0.01);
2174  if((ix - 50) * (ix - 50) + (iy - 50) * (iy - 50) < 400.) errorThresh = 0.05;
2175 
2176  if( emulErrorVal > errorThresh * ievt_ && hadNonZeroInterest ) xval = 0;
2177 
2178  }
2179 
2180  if ( xval!=0 && hadNonZeroInterest ) xval = 1;
2181 
2182  }
2183 
2184  // see fix below
2185  if ( xval == 2 ) continue;
2186 
2187  if ( ism >= 1 && ism <= 9 ) {
2188  meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, xval );
2189  } else {
2190  meTriggerTowerEmulError_[1]->setBinContent( jx, jy, xval );
2191  }
2192 
2193  }
2194 
2195  if ( eetmc ) {
2196 
2197  float num01, mean01, rms01;
2198  bool update01 = UtilsClient::getBinStatistics(htmt01_[ism-1], ix, iy, num01, mean01, rms01, timingNHitThreshold_);
2199  mean01 -= 50.;
2200 
2201  if( update01 ){
2202 
2203  if ( ism >= 1 && ism <= 9 ) {
2204  meTimingMean1D_[0]->Fill(mean01);
2205  meTimingRMS1D_[0]->Fill(rms01);
2206  } else {
2207  meTimingMean1D_[1]->Fill(mean01);
2208  meTimingRMS1D_[1]->Fill(rms01);
2209  }
2210 
2211  meTimingMean_->Fill( ism, mean01 );
2212 
2213  meTimingRMS_->Fill( ism, rms01 );
2214 
2215  }
2216 
2217  }
2218 
2219  }
2220  }
2221 
2222  for ( int ix = 1; ix <= 10; ix++ ) {
2223  for( int iy = 1; iy <= 10; iy++ ) {
2224 
2225  int jx = ix + Numbers::ix0EE(ism) / 5;
2226  int jy = iy + Numbers::iy0EE(ism) / 5;
2227 
2228  if( jx <= 0 || jx >= 21 || jy <= 0 || jy >= 21 ) continue;
2229 
2230  if ( ism >= 1 && ism <= 9 ) {
2231  if ( ! Numbers::validEESc(ism, 21 - jx, jy) ) continue;
2232  } else {
2233  if ( ! Numbers::validEESc(ism, jx, jy) ) continue;
2234  }
2235 
2236  if ( eetmc ) {
2237 
2238  if ( htmt01_[ism-1] ) {
2239 
2240  int ixedge = (ix-1) * 5;
2241  int iyedge = (iy-1) * 5;
2242  int jxedge = (jx-1) * 5;
2243  int jyedge = (jy-1) * 5;
2244 
2245  float num(0);
2246  int nValid(0);
2247  bool mask(false);
2248 
2249  for(int cx=1; cx<=5; cx++){
2250  for(int cy=1; cy<=5; cy++){
2251  int scjx = (ism >= 1 && ism <= 9) ? 101 - (jxedge + cx) : jxedge + cx;
2252  int scjy = jyedge + cy;
2253  int scix = ixedge + cx;
2254  int sciy = iyedge + cy;
2255 
2256  if ( ! Numbers::validEE(ism, scjx, scjy) ) continue;
2257 
2258  nValid += 1;
2259 
2260  num += htmt01_[ism-1]->GetBinEntries(htmt01_[ism-1]->GetBin(scix, sciy));
2261 
2262  if(Masks::maskChannel(ism, scix, sciy, chWarnBit, EcalEndcap) ) mask = true;
2263  }
2264  }
2265 
2266  float nHitThreshold(timingNHitThreshold_ * 15. * nValid / 25.);
2267 
2268  bool update01(false);
2269  float num01, mean01, rms01;
2270  if(ism >= 1 && ism <= 9)
2271  update01 = UtilsClient::getBinStatistics(htmtm, 21 - jx, jy, num01, mean01, rms01, nHitThreshold);
2272  else
2273  update01 = UtilsClient::getBinStatistics(htmtp, jx, jy, num01, mean01, rms01, nHitThreshold);
2274 
2275  mean01 -= 50.;
2276 
2277  if(!update01){
2278  mean01 = 0.;
2279  rms01 = 0.;
2280  }
2281 
2282  update01 |= num > 1.4 * nHitThreshold; // allow 40% outliers
2283 
2284  float xval = 2.;
2285 
2286  if( update01 ){
2287 
2288  float rmsThresh(6.);
2289  float meanThresh(3.);
2290  if((ix - 50) * (ix - 50) + (iy - 50) * (iy - 50) < 400.){
2291  rmsThresh = 10.;
2292  meanThresh = 6.;
2293  }
2294 
2295  // quality BAD if mean large, rms large, or significantly more outliers (num: # events in +-20 ns time window)
2296  if( std::abs(mean01) > meanThresh || rms01 > rmsThresh || num > 1.4 * num01 ) xval = 0.;
2297  else xval = 1.;
2298 
2299  }
2300 
2301  int ind;
2302  if ( ism >= 1 && ism <= 9 ){
2303  jx = 21 - jx;
2304  ind = 0;
2305  }else{
2306  ind = 1;
2307  }
2308 
2309  meTiming_[ind]->setBinContent( jx, jy, xval );
2310  if ( mask ) UtilsClient::maskBinContent( meTiming_[ind], jx, jy );
2311 
2312  }
2313 
2314  }
2315 
2316  }
2317  }
2318  // PN's summaries
2319  for( int i = 1; i <= 10; i++ ) {
2320  for( int j = 1; j <= 5; j++ ) {
2321 
2322  int ichanx;
2323  int ipseudostripx;
2324 
2325  if(ism<=9) {
2326  ichanx = i;
2327  ipseudostripx = (ism<=3) ? j+5*(ism-1+6) : j+5*(ism-1-3);
2328  } else {
2329  ichanx = i+10;
2330  ipseudostripx = (ism<=12) ? j+5*(ism-10+6) : j+5*(ism-10-3);
2331  }
2332 
2333  if ( eeic ) {
2334 
2335  me_04 = eeic->meg02_[ism-1];
2336  h2 = eeic->hmem_[ism-1];
2337 
2338 
2339  if( me_04 ) {
2340 
2341  float xval = me_04->getBinContent(i,j);
2342  if(meIntegrityPN_) meIntegrityPN_->setBinContent( ipseudostripx, ichanx, xval );
2343 
2344  }
2345 
2346  if ( h2 ) {
2347 
2348  float xval = h2->GetBinContent(i,1);
2349  if(meOccupancyPN_) meOccupancyPN_->setBinContent( ipseudostripx, ichanx, xval );
2350 
2351  }
2352 
2353  }
2354 
2355  if ( eepc ) {
2356 
2357  me_04 = eepc->meg04_[ism-1];
2358  me_05 = eepc->meg05_[ism-1];
2359 
2360  if( me_04 ) {
2361  float val_04=me_04->getBinContent(i,1);
2362  mePedestalPNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
2363  }
2364  if( me_05 ) {
2365  float val_05=me_05->getBinContent(i,1);
2366  mePedestalPNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
2367  }
2368 
2369  }
2370 
2371  if ( eetpc ) {
2372 
2373  me_04 = eetpc->meg04_[ism-1];
2374  me_05 = eetpc->meg05_[ism-1];
2375 
2376  if( me_04 ) {
2377  float val_04=me_04->getBinContent(i,1);
2378  meTestPulsePNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
2379  }
2380  if( me_05 ) {
2381  float val_05=me_05->getBinContent(i,1);
2382  meTestPulsePNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
2383  }
2384 
2385  }
2386 
2387  if ( eelc ) {
2388 
2389  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
2390 
2391  me = eelc->meg09_[ism-1];
2392 
2393  if( me ) {
2394 
2395  float xval = me->getBinContent(i,1);
2396 
2397  if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
2398  meLaserL1PN_->setBinContent( ipseudostripx, ichanx, xval );
2399  if ( xval == 0 ) meLaserL1PNErr_->Fill( ism );
2400  }
2401 
2402  }
2403 
2404  }
2405 
2406  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
2407 
2408  me = eelc->meg10_[ism-1];
2409 
2410  if( me ) {
2411 
2412  float xval = me->getBinContent(i,1);
2413 
2414  if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
2415  meLaserL2PN_->setBinContent( ipseudostripx, ichanx, xval );
2416  if ( xval == 0 ) meLaserL2PNErr_->Fill( ism );
2417  }
2418 
2419  }
2420 
2421  }
2422 
2423  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
2424 
2425  me = eelc->meg11_[ism-1];
2426 
2427  if( me ) {
2428 
2429  float xval = me->getBinContent(i,1);
2430 
2431  if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
2432  meLaserL3PN_->setBinContent( ipseudostripx, ichanx, xval );
2433  if ( xval == 0 ) meLaserL3PNErr_->Fill( ism );
2434  }
2435 
2436  }
2437 
2438  }
2439 
2440  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
2441 
2442  me = eelc->meg12_[ism-1];
2443 
2444  if( me ) {
2445 
2446  float xval = me->getBinContent(i,1);
2447 
2448  if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
2449  meLaserL4PN_->setBinContent( ipseudostripx, ichanx, xval );
2450  if ( xval == 0 ) meLaserL4PNErr_->Fill( ism );
2451  }
2452 
2453  }
2454 
2455  }
2456 
2457  }
2458 
2459  if ( eeldc ) {
2460 
2461  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
2462 
2463  me = eeldc->meg09_[ism-1];
2464 
2465  if( me ) {
2466 
2467  float xval = me->getBinContent(i,1);
2468 
2469  if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
2470  meLedL1PN_->setBinContent( ipseudostripx, ichanx, xval );
2471  if ( xval == 0 ) meLedL1PNErr_->Fill( ism );
2472  }
2473 
2474  }
2475 
2476  }
2477 
2478  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
2479 
2480  me = eeldc->meg10_[ism-1];
2481 
2482  if( me ) {
2483 
2484  float xval = me->getBinContent(i,1);
2485 
2486  if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
2487  meLedL2PN_->setBinContent( ipseudostripx, ichanx, xval );
2488  if ( xval == 0 ) meLedL2PNErr_->Fill( ism );
2489  }
2490 
2491  }
2492 
2493  }
2494 
2495  }
2496 
2497  }
2498  }
2499 
2500  for ( int ix=1; ix<=50; ix++ ) {
2501  for (int iy=1; iy<=50; iy++ ) {
2502 
2503  int jx = ix + Numbers::ix0EE(ism);
2504  int jy = iy + Numbers::iy0EE(ism);
2505  if( ism >= 1 && ism <= 9 ) jx = 101 - jx;
2506 
2507  if( !Numbers::validEE(ism, jx, jy) ) continue;
2508 
2509  int ic = Numbers::icEE(ism, jx, jy);
2510 
2511  if ( eelc ) {
2512 
2513  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
2514 
2515  MonitorElement *meg = eelc->meg01_[ism-1];
2516 
2517  float xval = 2;
2518  if ( meg ) xval = meg->getBinContent( ix, iy );
2519 
2520  // exclude channels without laser data (yellow in the quality map)
2521  if( xval != 2 && xval != 5 ) {
2522 
2523  MonitorElement* mea01 = eelc->mea01_[ism-1];
2524  MonitorElement* met01 = eelc->met01_[ism-1];
2525  MonitorElement* meaopn01 = eelc->meaopn01_[ism-1];
2526 
2527  if( mea01 && met01 && meaopn01 ) {
2528  meLaserL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
2529  if( met01->getBinContent( ic ) > 0. ) meLaserL1Timing_->Fill( ism, met01->getBinContent( ic ) );
2530  meLaserL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
2531  }
2532 
2533  }
2534 
2535  }
2536 
2537  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
2538 
2539  MonitorElement *meg = eelc->meg02_[ism-1];
2540 
2541  float xval = 2;
2542  if ( meg ) xval = meg->getBinContent( ix, iy );
2543 
2544  // exclude channels without laser data (yellow in the quality map)
2545  if( xval != 2 && xval != 5 ) {
2546 
2547  MonitorElement* mea02 = eelc->mea02_[ism-1];
2548  MonitorElement* met02 = eelc->met02_[ism-1];
2549  MonitorElement* meaopn02 = eelc->meaopn02_[ism-1];
2550 
2551  if( mea02 && met02 && meaopn02 ) {
2552  meLaserL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
2553  if( met02->getBinContent( ic ) > 0. ) meLaserL2Timing_->Fill( ism, met02->getBinContent( ic ) );
2554  meLaserL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
2555  }
2556 
2557  }
2558 
2559  }
2560 
2561  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
2562 
2563  MonitorElement *meg = eelc->meg03_[ism-1];
2564 
2565  float xval = 2;
2566  if ( meg ) xval = meg->getBinContent( ix, iy );
2567 
2568  // exclude channels without laser data (yellow in the quality map)
2569  if( xval != 2 && xval != 5 ) {
2570 
2571  MonitorElement* mea03 = eelc->mea03_[ism-1];
2572  MonitorElement* met03 = eelc->met03_[ism-1];
2573  MonitorElement* meaopn03 = eelc->meaopn03_[ism-1];
2574 
2575  if( mea03 && met03 && meaopn03 ) {
2576  meLaserL3Ampl_->Fill( ism, mea03->getBinContent( ic ) );
2577  if( met03->getBinContent( ic ) > 0. ) meLaserL3Timing_->Fill( ism, met03->getBinContent( ic ) );
2578  meLaserL3AmplOverPN_->Fill( ism, meaopn03->getBinContent( ic ) );
2579  }
2580 
2581  }
2582 
2583  }
2584 
2585  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
2586 
2587  MonitorElement *meg = eelc->meg04_[ism-1];
2588 
2589  float xval = 2;
2590  if ( meg ) xval = meg->getBinContent( ix, iy );
2591 
2592  // exclude channels without laser data (yellow in the quality map)
2593  if( xval != 2 && xval != 5 ) {
2594 
2595  MonitorElement* mea04 = eelc->mea04_[ism-1];
2596  MonitorElement* met04 = eelc->met04_[ism-1];
2597  MonitorElement* meaopn04 = eelc->meaopn04_[ism-1];
2598 
2599  if( mea04 && met04 && meaopn04 ) {
2600  meLaserL4Ampl_->Fill( ism, mea04->getBinContent( ic ) );
2601  if( met04->getBinContent( ic ) > 0. ) meLaserL4Timing_->Fill( ism, met04->getBinContent( ic ) );
2602  meLaserL4AmplOverPN_->Fill( ism, meaopn04->getBinContent( ic ) );
2603  }
2604 
2605  }
2606 
2607  }
2608 
2609  }
2610 
2611  if ( eeldc ) {
2612 
2613  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
2614 
2615  MonitorElement *meg = eeldc->meg01_[ism-1];
2616 
2617  float xval = 2;
2618  if ( meg ) xval = meg->getBinContent( ix, iy );
2619 
2620  // exclude channels without led data (yellow in the quality map)
2621  if( xval != 2 && xval != 5 ) {
2622 
2623  MonitorElement* mea01 = eeldc->mea01_[ism-1];
2624  MonitorElement* met01 = eeldc->met01_[ism-1];
2625  MonitorElement* meaopn01 = eeldc->meaopn01_[ism-1];
2626 
2627  if( mea01 && met01 && meaopn01 ) {
2628  meLedL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
2629  if( met01->getBinContent( ic ) > 0. ) meLedL1Timing_->Fill( ism, met01->getBinContent( ic ) );
2630  meLedL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
2631  }
2632 
2633  }
2634 
2635  }
2636 
2637  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
2638 
2639  MonitorElement *meg = eeldc->meg02_[ism-1];
2640 
2641  float xval = 2;
2642  if ( meg ) xval = meg->getBinContent( ix, iy );
2643 
2644  // exclude channels without led data (yellow in the quality map)
2645  if( xval != 2 && xval != 5 ) {
2646 
2647  MonitorElement* mea02 = eeldc->mea02_[ism-1];
2648  MonitorElement* met02 = eeldc->met02_[ism-1];
2649  MonitorElement* meaopn02 = eeldc->meaopn02_[ism-1];
2650 
2651  if( mea02 && met02 && meaopn02 ) {
2652  meLedL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
2653  if( met02->getBinContent( ic ) > 0. ) meLedL2Timing_->Fill( ism, met02->getBinContent( ic ) );
2654  meLedL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
2655  }
2656 
2657  }
2658 
2659  }
2660 
2661  }
2662 
2663  if ( eetpc ) {
2664 
2665  MonitorElement *meg01 = eetpc->meg01_[ism-1];
2666  MonitorElement *meg02 = eetpc->meg02_[ism-1];
2667  MonitorElement *meg03 = eetpc->meg03_[ism-1];
2668 
2669  if ( meg01 ) {
2670 
2671  float xval01 = meg01->getBinContent( ix, iy );
2672 
2673  if ( xval01 != 2 && xval01 != 5 ) {
2674 
2675  me = eetpc->mea01_[ism-1];
2676 
2677  if ( me ) {
2678 
2679  meTestPulseAmplG01_->Fill( ism, me->getBinContent( ic ) );
2680 
2681  }
2682 
2683  }
2684 
2685  }
2686 
2687  if ( meg02 ) {
2688 
2689  float xval02 = meg02->getBinContent( ix, iy );
2690 
2691  if ( xval02 != 2 && xval02 != 5 ) {
2692 
2693  me = eetpc->mea02_[ism-1];
2694 
2695  if ( me ) {
2696 
2697  meTestPulseAmplG06_->Fill( ism, me->getBinContent( ic ) );
2698 
2699  }
2700 
2701  }
2702 
2703  }
2704 
2705  if ( meg03 ) {
2706 
2707  float xval03 = meg03->getBinContent( ix, iy );
2708 
2709  if ( xval03 != 2 && xval03 != 5 ) {
2710 
2711  me = eetpc->mea03_[ism-1];
2712 
2713  if ( me ) {
2714 
2715  meTestPulseAmplG12_->Fill( ism, me->getBinContent( ic ) );
2716 
2717  }
2718 
2719  }
2720 
2721  }
2722 
2723  } //etpc
2724 
2725 
2726  } // loop on iy
2727  } // loop on ix
2728 
2729  } // loop on SM
2730 
2731  // fix TPG quality plots
2732 
2733  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
2734 
2735  int ism = superModules_[i];
2736 
2737  for ( int ix = 1; ix <= 50; ix++ ) {
2738  for ( int iy = 1; iy <= 50; iy++ ) {
2739 
2740  int jx = ix + Numbers::ix0EE(ism);
2741  int jy = iy + Numbers::iy0EE(ism);
2742 
2743  if ( eetttc ) {
2744 
2745  if ( ism >= 1 && ism <= 9 ) {
2746  if ( meTriggerTowerEmulError_[0]->getBinContent( 101 - jx, jy ) == 6 ) {
2747  if ( Numbers::validEE(ism, 101 - jx, jy) ) meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, 2 );
2748  }
2749  } else {
2750  if ( meTriggerTowerEmulError_[1]->getBinContent( jx, jy ) == 6 ) {
2751  if ( Numbers::validEE(ism, jx, jy) ) meTriggerTowerEmulError_[1]->setBinContent( jx, jy, 2 );
2752  }
2753  }
2754 
2755  }
2756 
2757  }
2758  }
2759 
2760  }
2761 
2762  } // loop on clients
2763 
2764  // The global-summary
2765  int nGlobalErrors = 0;
2766  int nGlobalErrorsEE[18];
2767  int nValidChannels = 0;
2768  int nValidChannelsEE[18];
2769 
2770  for (int i = 0; i < 18; i++) {
2771  nGlobalErrorsEE[i] = 0;
2772  nValidChannelsEE[i] = 0;
2773  }
2774 
2775  for ( int jx = 1; jx <= 100; jx++ ) {
2776  for ( int jy = 1; jy <= 100; jy++ ) {
2777 
2778  if(meGlobalSummary_[0]) {
2779 
2780  float xval = 6;
2781  float val_in = meIntegrity_[0]->getBinContent(jx,jy);
2782  float val_po = mePedestalOnline_[0]->getBinContent(jx,jy);
2783  float val_tm = reducedReports_ ? 1. : meTiming_[0]->getBinContent((jx-1)/5+1,(jy-1)/5+1);
2784  float val_sf = meStatusFlags_[0]->getBinContent(jx,jy);
2785  float val_ee = reducedReports_ ? 1. : meTriggerTowerEmulError_[0]->getBinContent(jx,jy); // removed temporarily from the global summary
2786  // float val_ee = 1;
2787 
2788  // combine all the available wavelenghts in unique laser status
2789  // for each laser turn dark color and yellow into bright green
2790  float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
2791  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
2792  if ( meLaserL1_[0] ) val_ls_1 = meLaserL1_[0]->getBinContent(jx,jy);
2793  if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
2794  }
2795  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
2796  if ( meLaserL2_[0] ) val_ls_2 = meLaserL2_[0]->getBinContent(jx,jy);
2797  if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
2798  }
2799  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
2800  if ( meLaserL3_[0] ) val_ls_3 = meLaserL3_[0]->getBinContent(jx,jy);
2801  if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
2802  }
2803  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
2804  if ( meLaserL4_[0] ) val_ls_4 = meLaserL4_[0]->getBinContent(jx,jy);
2805  if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
2806  }
2807 
2808  float val_ls = 1;
2809  if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
2810 
2811  // combine all the available wavelenghts in unique led status
2812  // for each laser turn dark color and yellow into bright green
2813  float val_ld_1=2, val_ld_2=2;
2814  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
2815  if ( meLedL1_[0] ) val_ld_1 = meLedL1_[0]->getBinContent(jx,jy);
2816  if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
2817  }
2818  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
2819  if ( meLedL2_[0] ) val_ld_2 = meLedL2_[0]->getBinContent(jx,jy);
2820  if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
2821  }
2822 
2823  float val_ld = 1;
2824  if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;
2825 
2826  // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY FOR NOW
2827  val_ls = 1;
2828  val_ld = 1;
2829 
2830  // turn each dark color (masked channel) to bright green
2831  // for laser & timing & trigger turn also yellow into bright green
2832  // for pedestal online too because is not computed in calibration events
2833 
2834  // 0/3 = red/dark red
2835  // 1/4 = green/dark green
2836  // 2/5 = yellow/dark yellow
2837  // 6 = unknown
2838 
2839  if( val_in==3 || val_in==4 || val_in==5) val_in=1;
2840  if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
2841  if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
2842  if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
2843  if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
2844  if( val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
2845  if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
2846 
2847  if(val_in==6) xval=6;
2848  else if(val_in==0) xval=0;
2849  else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
2850  else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
2851  else xval=1;
2852 
2853  bool validCry = false;
2854 
2855  // if the SM is entirely not read, the masked channels
2856  // are reverted back to yellow
2857  float iEntries=0;
2858 
2859  for(int ism = 1; ism <= 9; ism++) {
2860  std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
2861  if (iter != superModules_.end()) {
2862  if ( Numbers::validEE(ism, jx, jy) ) {
2863  validCry = true;
2864 
2865  // recycle the validEE for the synch check of the DCC
2866  if(norm01_ && synch01_) {
2867  float frac_synch_errors = 0.;
2868  float norm = norm01_->GetBinContent(ism);
2869  if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
2870  if(frac_synch_errors > synchErrorThreshold_){
2871  xval = 0;
2872  if(oosTrend && oosTrend->GetBinContent(oosTrend->GetNbinsX()) - oosTrend->GetBinContent(1) < 1.) xval += 3.;
2873  }
2874  }
2875 
2876  for ( unsigned int i=0; i<clients_.size(); i++ ) {
2877  EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
2878  if ( eeic ) {
2879  TH2F* h2 = eeic->h_[ism-1];
2880  if ( h2 ) {
2881  iEntries = h2->GetEntries();
2882  }
2883  }
2884  }
2885  }
2886  }
2887  }
2888 
2889  if ( validCry && iEntries==0 ) {
2890  xval=2;
2891  }
2892 
2893  meGlobalSummary_[0]->setBinContent( jx, jy, xval );
2894 
2895  if ( xval >= 0 && xval <= 5 ) {
2896  if ( xval != 2 && xval != 5 ) ++nValidChannels;
2897  for (int i = 1; i <= 9; i++) {
2898  if ( xval != 2 && xval != 5 ) {
2899  if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
2900  }
2901  }
2902  if ( xval == 0 ) ++nGlobalErrors;
2903  for (int i = 1; i <= 9; i++) {
2904  if ( xval == 0 ) {
2905  if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
2906  }
2907  }
2908  }
2909 
2910  }
2911 
2912  if(meGlobalSummary_[1]) {
2913 
2914  float xval = 6;
2915  float val_in = meIntegrity_[1]->getBinContent(jx,jy);
2916  float val_po = mePedestalOnline_[1]->getBinContent(jx,jy);
2917  float val_tm = reducedReports_ ? 1. : meTiming_[1]->getBinContent((jx-1)/5+1,(jy-1)/5+1);
2918  float val_sf = meStatusFlags_[1]->getBinContent(jx,jy);
2919  float val_ee = reducedReports_ ? 1. : meTriggerTowerEmulError_[1]->getBinContent(jx,jy); // removed temporarily from the global summary
2920  // float val_ee = 1;
2921 
2922  // combine all the available wavelenghts in unique laser status
2923  // for each laser turn dark color and yellow into bright green
2924  float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
2925  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
2926  if ( meLaserL1_[1] ) val_ls_1 = meLaserL1_[1]->getBinContent(jx,jy);
2927  if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
2928  }
2929  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
2930  if ( meLaserL2_[1] ) val_ls_2 = meLaserL2_[1]->getBinContent(jx,jy);
2931  if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
2932  }
2933  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
2934  if ( meLaserL3_[1] ) val_ls_3 = meLaserL3_[1]->getBinContent(jx,jy);
2935  if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
2936  }
2937  if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
2938  if ( meLaserL4_[1] ) val_ls_4 = meLaserL4_[1]->getBinContent(jx,jy);
2939  if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
2940  }
2941 
2942  float val_ls = 1;
2943  if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
2944 
2945  // combine all the available wavelenghts in unique laser status
2946  // for each laser turn dark color and yellow into bright green
2947  float val_ld_1=2, val_ld_2=2;
2948  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
2949  if ( meLedL1_[1] ) val_ld_1 = meLedL1_[1]->getBinContent(jx,jy);
2950  if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
2951  }
2952  if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
2953  if ( meLedL2_[1] ) val_ld_2 = meLedL2_[1]->getBinContent(jx,jy);
2954  if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
2955  }
2956 
2957  float val_ld = 1;
2958  if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;
2959 
2960  // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY FOR NOW
2961  val_ls = 1;
2962  val_ld = 1;
2963 
2964  // turn each dark color to bright green
2965  // for laser & timing & trigger turn also yellow into bright green
2966  // for pedestal online too because is not computed in calibration events
2967 
2968  // 0/3 = red/dark red
2969  // 1/4 = green/dark green
2970  // 2/5 = yellow/dark yellow
2971  // 6 = unknown
2972 
2973  if( val_in==3 || val_in==4 || val_in==5) val_in=1;
2974  if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
2975  if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
2976  if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
2977  if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
2978  if( val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
2979  if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
2980 
2981  if(val_in==6) xval=6;
2982  else if(val_in==0) xval=0;
2983  else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
2984  else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
2985  else xval=1;
2986 
2987  bool validCry = false;
2988 
2989  // if the SM is entirely not read, the masked channels
2990  // are reverted back in yellow
2991  float iEntries=0;
2992 
2993  for(int ism = 10; ism <= 18; ism++) {
2994  std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
2995  if (iter != superModules_.end()) {
2996  if ( Numbers::validEE(ism, jx, jy) ) {
2997  validCry = true;
2998 
2999  // recycle the validEE for the synch check of the DCC
3000  if(norm01_ && synch01_) {
3001  float frac_synch_errors = 0.;
3002  float norm = norm01_->GetBinContent(ism);
3003  if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
3004  if(frac_synch_errors > synchErrorThreshold_){
3005  xval = 0.;
3006  if(oosTrend && oosTrend->GetBinContent(oosTrend->GetNbinsX()) - oosTrend->GetBinContent(1) < 1.) xval += 3.;
3007  }
3008  }
3009 
3010  for ( unsigned int i=0; i<clients_.size(); i++ ) {
3011  EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
3012  if ( eeic ) {
3013  TH2F* h2 = eeic->h_[ism-1];
3014  if ( h2 ) {
3015  iEntries = h2->GetEntries();
3016  }
3017  }
3018  }
3019  }
3020  }
3021  }
3022 
3023  if ( validCry && iEntries==0 ) {
3024  xval=2;
3025  }
3026 
3027  meGlobalSummary_[1]->setBinContent( jx, jy, xval );
3028 
3029  if ( xval >= 0 && xval <= 5 ) {
3030  if ( xval != 2 && xval != 5 ) ++nValidChannels;
3031  for (int i = 10; i <= 18; i++) {
3032  if ( xval != 2 && xval != 5 ) {
3033  if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
3034  }
3035  }
3036  if ( xval == 0 ) ++nGlobalErrors;
3037  for (int i = 10; i <= 18; i++) {
3038  if ( xval == 0 ) {
3039  if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
3040  }
3041  }
3042  }
3043 
3044  }
3045 
3046  }
3047  }
3048 
3049  if(meSummaryErr_)
3050  meSummaryErr_->setBinContent(1, double(nGlobalErrors) / double(nValidChannels));
3051 
3052  float reportSummary = -1.0;
3053  if ( nValidChannels != 0 )
3054  reportSummary = 1.0 - float(nGlobalErrors)/float(nValidChannels);
3055  me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummary");
3056  if ( me ) me->Fill(reportSummary);
3057 
3058  for (int i = 0; i < 18; i++) {
3059  float reportSummaryEE = -1.0;
3060  if ( nValidChannelsEE[i] != 0 )
3061  reportSummaryEE = 1.0 - float(nGlobalErrorsEE[i])/float(nValidChannelsEE[i]);
3062  me = dqmStore_->get( prefixME_ + "/EventInfo/reportSummaryContents/EcalEndcap_" + Numbers::sEE(i+1) );
3063  if ( me ) me->Fill(reportSummaryEE);
3064  }
3065 
3066  if(meGlobalSummary_[0] && meGlobalSummary_[1]){
3067 
3068  me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryMap");
3069  if ( me ) {
3070 
3071  int nValidChannelsSC[2][20][20];
3072  int nGlobalErrorsSC[2][20][20];
3073  for ( int iside = 0; iside < 2; iside++ ) {
3074  for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
3075  for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
3076  nValidChannelsSC[iside][jxdcc][jydcc] = 0;
3077  nGlobalErrorsSC[iside][jxdcc][jydcc] = 0;
3078  }
3079  }
3080  }
3081 
3082  for (int iside = 0; iside < 2; iside++ ) {
3083  for ( int ix = 1; ix <= 100; ix++ ) {
3084  for ( int iy = 1; iy <= 100; iy++ ) {
3085 
3086  int jxsc = (ix-1)/5;
3087  int jysc = (iy-1)/5;
3088 
3089  float xval = meGlobalSummary_[iside]->getBinContent( ix, iy );
3090 
3091  if ( xval >= 0 && xval <= 5 ) {
3092  if ( xval != 2 && xval != 5 ) ++nValidChannelsSC[iside][jxsc][jysc];
3093  if ( xval == 0 ) ++nGlobalErrorsSC[iside][jxsc][jysc];
3094  }
3095 
3096  }
3097  }
3098  }
3099 
3100  // Countermeasure to partial TR failure
3101  // make the whole Dee red if more than 2 towers within a 2x2 matrix fails
3102 
3103  for(int iside(0); iside < 2; iside++){
3104  for(int jy(1); jy < 20; jy++){
3105  for(int jx(1); jx < 20; jx++){
3106  if(jy > 6 && jy < 14 && jx > 6 && jx < 14) continue;
3107  int nErr(0);
3108  if(nValidChannelsSC[iside][jx - 1][jy - 1] > 0 && nGlobalErrorsSC[iside][jx - 1][jy - 1] == nValidChannelsSC[iside][jx - 1][jy - 1]) nErr += 1;
3109  if(nValidChannelsSC[iside][jx][jy - 1] > 0 && nGlobalErrorsSC[iside][jx][jy - 1] == nValidChannelsSC[iside][jx][jy - 1]) nErr += 1;
3110  if(nValidChannelsSC[iside][jx - 1][jy] > 0 && nGlobalErrorsSC[iside][jx - 1][jy] == nValidChannelsSC[iside][jx - 1][jy]) nErr += 1;
3111  if(nValidChannelsSC[iside][jx][jy] > 0 && nGlobalErrorsSC[iside][jx][jy] == nValidChannelsSC[iside][jx][jy]) nErr += 1;
3112  if(nErr > 2){
3113  int jx0(((jx - 1) / 10) * 10);
3114  for(int jjx(jx0); jjx < jx0 + 10; jjx++){
3115  for(int jjy(0); jjy < 20; jjy++){
3116  nGlobalErrorsSC[iside][jjx][jjy] = nValidChannelsSC[iside][jjx][jjy];
3117  }
3118  }
3119  }
3120  }
3121  }
3122  }
3123 
3124  for (int iside = 0; iside < 2; iside++ ) {
3125  for ( int jxsc = 0; jxsc < 20; jxsc++ ) {
3126  for ( int jysc = 0; jysc < 20; jysc++ ) {
3127 
3128  float scval = -1;
3129 
3130  if( nValidChannelsSC[iside][jxsc][jysc] != 0 )
3131  scval = 1.0 - float(nGlobalErrorsSC[iside][jxsc][jysc])/float(nValidChannelsSC[iside][jxsc][jysc]);
3132 
3133  me->setBinContent( jxsc+iside*20+1, jysc+1, scval );
3134 
3135  }
3136  }
3137  }
3138  }
3139 
3140 // for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
3141 // for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
3142 // for ( int iside = 0; iside < 2; iside++ ) {
3143 
3144 // float xval = -1.0;
3145 // if ( nOutOfGeometryTT[iside][jxdcc][jydcc] < 25 ) {
3146 // if ( nValidChannelsTT[iside][jxdcc][jydcc] != 0 )
3147 // xval = 1.0 - float(nGlobalErrorsTT[iside][jxdcc][jydcc])/float(nValidChannelsTT[iside][jxdcc][jydcc]);
3148 // }
3149 
3150 // me->setBinContent( 20*iside+jxdcc+1, jydcc+1, xval );
3151 
3152 // }
3153 // }
3154 // }
3155 
3156  }
3157 
3158 }
3159 
void beginJob(void)
BeginJob.
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:226
MonitorElement * meg09_[18]
Definition: EELedClient.h:110
int i
Definition: DBlmapReader.cc:9
MonitorElement * mea03_[18]
static bool validEE(const unsigned ism, const unsigned ix, const unsigned iy)
Definition: Numbers.cc:832
float synchErrorThreshold_
MonitorElement * met01_[18]
void setBinContent(int binx, double content)
set content of bin (1-D)
TProfile2D * httt01_[18]
static bool maskChannel(int ism, int i1, int i2, uint32_t bits, const EcalSubdetector subdet)
Definition: Masks.cc:60
MonitorElement * meLaserL4Ampl_
MonitorElement * meTestPulseG12_[2]
MonitorElement * meLaserL4Timing_
MonitorElement * meg04_[18]
void cleanup(void)
Cleanup.
static unsigned icEE(const unsigned ism, const unsigned ix, const unsigned iy)
Definition: Numbers.cc:739
static const int PHYSICS_BAD_CHANNEL_WARNING
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
MonitorElement * meLaserL3Err_
MonitorElement * meTimingRMS_
std::vector< int > MGPAGainsPN_
static T getHisto(const MonitorElement *me, bool clone=false, T ret=0)
Returns the histogram contained by the Monitor Element.
Definition: UtilsClient.h:91
std::vector< int > superModules_
void analyze(void)
Analyze.
MonitorElement * meTestPulsePNG01_
MonitorElement * mePedestalOnlineErr_
MonitorElement * me_o01_[18]
Some &quot;id&quot; conversions.
TProfile2D * hpot01_[18]
MonitorElement * meTiming_[2]
MonitorElement * meg05_[18]
MonitorElement * meLaserL1Ampl_
MonitorElement * met02_[18]
Definition: EELedClient.h:117
MonitorElement * meLedL1AmplOverPN_
MonitorElement * mePedestalOnlineRMSMap_[2]
TProfile2D * htmt01_[18]
MonitorElement * meLedL1_[2]
static bool validEESc(const unsigned ism, const unsigned ix, const unsigned iy)
Definition: Numbers.cc:855
MonitorElement * mePedestalPNG16_
MonitorElement * meLaserL3AmplOverPN_
MonitorElement * meLaserL3Timing_
MonitorElement * meTestPulseAmplG01_
MonitorElement * meTestPulseAmplG06_
MonitorElement * meg04_[18]
virtual ~EESummaryClient()
Destructor.
MonitorElement * mePedestalG01_[2]
MonitorElement * meLaserL4_[2]
MonitorElement * meTestPulseG01_[2]
MonitorElement * meLedL1Err_
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * met02_[18]
#define abs(x)
Definition: mlp_lapack.h:159
MonitorElement * meLaserL4AmplOverPN_
MonitorElement * meg01_[18]
MonitorElement * meg10_[18]
Definition: EELedClient.h:111
MonitorElement * meg11_[18]
MonitorElement * meg03_[18]
MonitorElement * meLaserL3PNErr_
MonitorElement * meOccupancy_[2]
void setup(void)
Setup.
MonitorElement * meLaserL2AmplOverPN_
MonitorElement * met01_[18]
Definition: EELedClient.h:116
MonitorElement * mePedestalG12_[2]
static int ix0EE(const unsigned ism)
Definition: Numbers.cc:773
MonitorElement * mea01_[18]
MonitorElement * meTriggerTowerEmulError_[2]
MonitorElement * meSummaryErr_
MonitorElement * meLaserL2_[2]
MonitorElement * met04_[18]
double getEntries(void) const
get # of entries
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
MonitorElement * meLedL2PN_
MonitorElement * meIntegrityPN_
MonitorElement * meg12_[18]
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
Definition: UtilsClient.cc:231
MonitorElement * meg09_[18]
MonitorElement * meIntegrity_[2]
MonitorElement * meaopn02_[18]
Definition: EELedClient.h:126
MonitorElement * meh01_[18]
static int iy0EE(const unsigned ism)
Definition: Numbers.cc:812
MonitorElement * meg01_[18]
MonitorElement * meg05_[18]
MonitorElement * meLaserL4PN_
void Fill(long long x)
MonitorElement * meRecHitEnergy_[2]
MonitorElement * meg02_[18]
MonitorElement * mea04_[18]
MonitorElement * meLaserL3_[2]
MonitorElement * meaopn01_[18]
MonitorElement * meTimingRMS1D_[2]
MonitorElement * mePedestalOnline_[2]
MonitorElement * meStatusFlags_[2]
MonitorElement * meg03_[18]
MonitorElement * meLaserL4Err_
MonitorElement * meaopn03_[18]
MonitorElement * meLedL2PNErr_
MonitorElement * meTriggerTowerTiming_[2]
MonitorElement * meLaserL1PNErr_
MonitorElement * meg04_[18]
void beginRun(void)
BeginRun.
void removeElement(const std::string &name)
Definition: DQMStore.cc:2577
MonitorElement * meLaserL1Timing_
channel masking
int j
Definition: DBlmapReader.cc:9
MonitorElement * meLaserL3PN_
MonitorElement * meg03_[18]
MonitorElement * meaopn04_[18]
MonitorElement * meLedL1Ampl_
MonitorElement * mea02_[18]
MonitorElement * meLaserL1_[2]
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1036
MonitorElement * meTimingMean_
void setEntries(double nentries)
set # of entries
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1473
MonitorElement * meTriggerTowerNonSingleTiming_[2]
std::string subfolder_
MonitorElement * meg02_[18]
MonitorElement * mea03_[18]
MonitorElement * meg03_[18]
MonitorElement * meaopn01_[18]
Definition: EELedClient.h:125
MonitorElement * meLedL2Timing_
std::string prefixME_
MonitorElement * meLedL1PN_
void endRun(void)
EndRun.
MonitorElement * mea01_[18]
MonitorElement * meLaserL4PNErr_
std::vector< EEClient * > clients_
MonitorElement * me_o02_[18]
MonitorElement * meTimingMean1D_[2]
Ecal Monitor Utils for Client.
static bool getBinStatistics(TH1 *histo, const int ix, const int iy, float &num, float &mean, float &rms, float minEntries=1.)
Returns true if the bin contains good statistical data.
Definition: UtilsClient.cc:74
std::vector< int > laserWavelengths_
MonitorElement * mea02_[18]
MonitorElement * meg01_[18]
Definition: EELedClient.h:104
MonitorElement * meTestPulsePNG16_
MonitorElement * meLedL1Timing_
MonitorElement * mePedestalPNG01_
EESummaryClient(const edm::ParameterSet &ps)
Constructor.
double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
MonitorElement * meg02_[18]
MonitorElement * meLedL1PNErr_
MonitorElement * meStatusFlagsErr_
MonitorElement * meTriggerTowerEt_[2]
long long int num
Definition: procUtils.cc:71
MonitorElement * meg02_[18]
std::vector< int > MGPAGains_
MonitorElement * mePedestalG06_[2]
MonitorElement * meOccupancyPN_
MonitorElement * mea02_[18]
Definition: EELedClient.h:114
MonitorElement * meLedL2AmplOverPN_
MonitorElement * mePedestalOnlineRMS_
MonitorElement * meg10_[18]
MonitorElement * meLaserL2Timing_
MonitorElement * meLaserL2Err_
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * meLaserL2Ampl_
MonitorElement * meLaserL1AmplOverPN_
MonitorElement * meLaserL2PN_
std::vector< int > ledWavelengths_
TProfile2D * hot01_[18]
tuple cout
Definition: gather_cfg.py:121
MonitorElement * meLedL2Err_
MonitorElement * meTestPulseG06_[2]
MonitorElement * meLaserL3Ampl_
MonitorElement * met03_[18]
MonitorElement * meg01_[18]
tuple status
Definition: ntuplemaker.py:245
MonitorElement * meLaserL1PN_
MonitorElement * meaopn02_[18]
MonitorElement * meLedL2Ampl_
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:850
MonitorElement * meGlobalSummary_[2]
MonitorElement * mePedestalOnlineMean_
Definition: RunIOV.h:13
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
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)
MonitorElement * meOccupancy1D_
DQMStore * dqmStore_
MonitorElement * meg02_[18]
Definition: EELedClient.h:105
MonitorElement * meLedL2_[2]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
MonitorElement * meTestPulseAmplG12_
MonitorElement * meLaserL2PNErr_
MonitorElement * meLaserL1Err_
MonitorElement * meIntegrityErr_
MonitorElement * mea01_[18]
Definition: EELedClient.h:113
void endJob(void)
EndJob.
MonitorElement * meg01_[18]