CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQM/EcalEndcapMonitorClient/src/EESummaryClient.cc

Go to the documentation of this file.
00001 /*
00002  * \file EESummaryClient.cc
00003  *
00004  * $Date: 2011/06/27 12:16:03 $
00005  * $Revision: 1.209.4.1 $
00006  * \author G. Della Ricca
00007  *
00008 */
00009 
00010 #include <memory>
00011 #include <iostream>
00012 #include <fstream>
00013 #include <iomanip>
00014 #include <math.h>
00015 
00016 #include "FWCore/ServiceRegistry/interface/Service.h"
00017 
00018 #include "DQMServices/Core/interface/DQMStore.h"
00019 
00020 #ifdef WITH_ECAL_COND_DB
00021 #include "OnlineDB/EcalCondDB/interface/RunTag.h"
00022 #include "OnlineDB/EcalCondDB/interface/RunIOV.h"
00023 #endif
00024 
00025 #include "DataFormats/EcalDetId/interface/EcalScDetId.h"
00026 
00027 #include "DQM/EcalCommon/interface/UtilsClient.h"
00028 #include "DQM/EcalCommon/interface/Numbers.h"
00029 
00030 #include "DQM/EcalEndcapMonitorClient/interface/EEStatusFlagsClient.h"
00031 #include "DQM/EcalEndcapMonitorClient/interface/EEIntegrityClient.h"
00032 #include "DQM/EcalEndcapMonitorClient/interface/EELaserClient.h"
00033 #include "DQM/EcalEndcapMonitorClient/interface/EELedClient.h"
00034 #include "DQM/EcalEndcapMonitorClient/interface/EEPedestalClient.h"
00035 #include "DQM/EcalEndcapMonitorClient/interface/EEPedestalOnlineClient.h"
00036 #include "DQM/EcalEndcapMonitorClient/interface/EETestPulseClient.h"
00037 #include "DQM/EcalEndcapMonitorClient/interface/EEBeamCaloClient.h"
00038 #include "DQM/EcalEndcapMonitorClient/interface/EEBeamHodoClient.h"
00039 #include "DQM/EcalEndcapMonitorClient/interface/EETriggerTowerClient.h"
00040 #include "DQM/EcalEndcapMonitorClient/interface/EEClusterClient.h"
00041 #include "DQM/EcalEndcapMonitorClient/interface/EETimingClient.h"
00042 
00043 #include "DQM/EcalEndcapMonitorClient/interface/EESummaryClient.h"
00044 
00045 EESummaryClient::EESummaryClient(const edm::ParameterSet& ps) {
00046 
00047   // cloneME switch
00048   cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00049 
00050   // verbose switch
00051   verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
00052 
00053   // debug switch
00054   debug_ = ps.getUntrackedParameter<bool>("debug", false);
00055 
00056   // prefixME path
00057   prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
00058 
00059   // enableCleanup_ switch
00060   enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00061 
00062   // vector of selected Super Modules (Defaults to all 18).
00063   superModules_.reserve(18);
00064   for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i);
00065   superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
00066 
00067   laserWavelengths_.reserve(4);
00068   for ( unsigned int i = 1; i <= 4; i++ ) laserWavelengths_.push_back(i);
00069   laserWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("laserWavelengths", laserWavelengths_);
00070 
00071   ledWavelengths_.reserve(2);
00072   for ( unsigned int i = 1; i <= 2; i++ ) ledWavelengths_.push_back(i);
00073   ledWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("ledWavelengths", ledWavelengths_);
00074 
00075   MGPAGains_.reserve(3);
00076   for ( unsigned int i = 1; i <= 3; i++ ) MGPAGains_.push_back(i);
00077   MGPAGains_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGains", MGPAGains_);
00078 
00079   MGPAGainsPN_.reserve(2);
00080   for ( unsigned int i = 1; i <= 3; i++ ) MGPAGainsPN_.push_back(i);
00081   MGPAGainsPN_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGainsPN", MGPAGainsPN_);
00082 
00083   // summary maps
00084   meIntegrity_[0]      = 0;
00085   meIntegrity_[1]      = 0;
00086   meIntegrityPN_       = 0;
00087   meOccupancy_[0]      = 0;
00088   meOccupancy_[1]      = 0;
00089   meOccupancyPN_       = 0;
00090   meStatusFlags_[0]    = 0;
00091   meStatusFlags_[1]    = 0;
00092   mePedestalOnline_[0] = 0;
00093   mePedestalOnline_[1] = 0;
00094   mePedestalOnlineRMSMap_[0] = 0;
00095   mePedestalOnlineRMSMap_[1] = 0;
00096   mePedestalOnlineMean_   = 0;
00097   mePedestalOnlineRMS_    = 0;
00098 
00099   meLaserL1_[0]        = 0;
00100   meLaserL1_[1]        = 0;
00101   meLaserL1PN_         = 0;
00102   meLaserL1Ampl_       = 0;
00103   meLaserL1Timing_     = 0;
00104   meLaserL1AmplOverPN_ = 0;
00105 
00106   meLaserL2_[0]        = 0;
00107   meLaserL2_[1]        = 0;
00108   meLaserL2PN_         = 0;
00109   meLaserL2Ampl_       = 0;
00110   meLaserL2Timing_     = 0;
00111   meLaserL2AmplOverPN_ = 0;
00112 
00113   meLaserL3_[0]        = 0;
00114   meLaserL3_[1]        = 0;
00115   meLaserL3PN_         = 0;
00116   meLaserL3Ampl_       = 0;
00117   meLaserL3Timing_     = 0;
00118   meLaserL3AmplOverPN_ = 0;
00119 
00120   meLaserL4_[0]        = 0;
00121   meLaserL4_[1]        = 0;
00122   meLaserL4PN_         = 0;
00123   meLaserL4Ampl_       = 0;
00124   meLaserL4Timing_     = 0;
00125   meLaserL4AmplOverPN_ = 0;
00126 
00127   meLedL1_[0]          = 0;
00128   meLedL1_[1]          = 0;
00129   meLedL1PN_           = 0;
00130   meLedL1Ampl_         = 0;
00131   meLedL1Timing_       = 0;
00132   meLedL1AmplOverPN_   = 0;
00133 
00134   meLedL2_[0]          = 0;
00135   meLedL2_[1]          = 0;
00136   meLedL2PN_           = 0;
00137   meLedL2Ampl_         = 0;
00138   meLedL2Timing_       = 0;
00139   meLedL2AmplOverPN_   = 0;
00140 
00141   mePedestalG01_[0]       = 0;
00142   mePedestalG01_[1]       = 0;
00143   mePedestalG06_[0]       = 0;
00144   mePedestalG06_[1]       = 0;
00145   mePedestalG12_[0]       = 0;
00146   mePedestalG12_[1]       = 0;
00147   mePedestalPNG01_        = 0;
00148   mePedestalPNG16_        = 0;
00149   meTestPulseG01_[0]      = 0;
00150   meTestPulseG01_[1]      = 0;
00151   meTestPulseG06_[0]      = 0;
00152   meTestPulseG06_[1]      = 0;
00153   meTestPulseG12_[0]      = 0;
00154   meTestPulseG12_[1]      = 0;
00155   meTestPulsePNG01_       = 0;
00156   meTestPulsePNG16_       = 0;
00157   meTestPulseAmplG01_ = 0;
00158   meTestPulseAmplG06_ = 0;
00159   meTestPulseAmplG12_ = 0;
00160   meGlobalSummary_[0]  = 0;
00161   meGlobalSummary_[1]  = 0;
00162 
00163   meRecHitEnergy_[0]   = 0;
00164   meRecHitEnergy_[1]   = 0;
00165   meTiming_[0]         = 0;
00166   meTiming_[1]         = 0;
00167   meTimingMean1D_[0]   = 0;
00168   meTimingMean1D_[1]   = 0;
00169   meTimingRMS1D_[0]   = 0;
00170   meTimingRMS1D_[1]   = 0;
00171   meTimingMean_ = 0;
00172   meTimingRMS_  = 0;
00173 
00174   meTriggerTowerEt_[0]        = 0;
00175   meTriggerTowerEt_[1]        = 0;
00176   meTriggerTowerEmulError_[0] = 0;
00177   meTriggerTowerEmulError_[1] = 0;
00178   meTriggerTowerTiming_[0] = 0;
00179   meTriggerTowerTiming_[1] = 0;
00180   meTriggerTowerNonSingleTiming_[0] = 0;
00181   meTriggerTowerNonSingleTiming_[1] = 0;
00182 
00183   // summary errors
00184   meIntegrityErr_       = 0;
00185   meOccupancy1D_        = 0;
00186   meStatusFlagsErr_     = 0;
00187   mePedestalOnlineErr_  = 0;
00188   meLaserL1Err_         = 0;
00189   meLaserL1PNErr_       = 0;
00190   meLaserL2Err_         = 0;
00191   meLaserL2PNErr_       = 0;
00192   meLaserL3Err_         = 0;
00193   meLaserL3PNErr_       = 0;
00194   meLaserL4Err_         = 0;
00195   meLaserL4PNErr_       = 0;
00196   meLedL1Err_           = 0;
00197   meLedL1PNErr_         = 0;
00198   meLedL2Err_           = 0;
00199   meLedL2PNErr_         = 0;
00200 
00201   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00202 
00203     int ism = superModules_[i];
00204 
00205     hpot01_[ism-1] = 0;
00206     httt01_[ism-1] = 0;
00207 
00208   }
00209 
00210   synchErrorThreshold_ = 0.0;
00211 
00212 }
00213 
00214 EESummaryClient::~EESummaryClient() {
00215 
00216 }
00217 
00218 void EESummaryClient::beginJob(void) {
00219 
00220   dqmStore_ = edm::Service<DQMStore>().operator->();
00221 
00222   if ( debug_ ) std::cout << "EESummaryClient: beginJob" << std::endl;
00223 
00224   ievt_ = 0;
00225   jevt_ = 0;
00226 
00227 }
00228 
00229 void EESummaryClient::beginRun(void) {
00230 
00231   if ( debug_ ) std::cout << "EESummaryClient: beginRun" << std::endl;
00232 
00233   jevt_ = 0;
00234 
00235   this->setup();
00236 
00237 }
00238 
00239 void EESummaryClient::endJob(void) {
00240 
00241   if ( debug_ ) std::cout << "EESummaryClient: endJob, ievt = " << ievt_ << std::endl;
00242 
00243   this->cleanup();
00244 
00245 }
00246 
00247 void EESummaryClient::endRun(void) {
00248 
00249   if ( debug_ ) std::cout << "EESummaryClient: endRun, jevt = " << jevt_ << std::endl;
00250 
00251   this->cleanup();
00252 
00253 }
00254 
00255 void EESummaryClient::setup(void) {
00256 
00257   char histo[200];
00258 
00259   dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );
00260 
00261   if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
00262   sprintf(histo, "EEIT EE - integrity quality summary");
00263   meIntegrity_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00264   meIntegrity_[0]->setAxisTitle("ix", 1);
00265   meIntegrity_[0]->setAxisTitle("iy", 2);
00266 
00267   if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[1]->getName() );
00268   sprintf(histo, "EEIT EE + integrity quality summary");
00269   meIntegrity_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00270   meIntegrity_[1]->setAxisTitle("ix", 1);
00271   meIntegrity_[1]->setAxisTitle("iy", 2);
00272 
00273   if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
00274   sprintf(histo, "EEIT integrity quality errors summary");
00275   meIntegrityErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00276   for (int i = 0; i < 18; i++) {
00277     meIntegrityErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00278   }
00279 
00280   if ( meIntegrityPN_ ) dqmStore_->removeElement( meIntegrityPN_->getName() );
00281   sprintf(histo, "EEIT PN integrity quality summary");
00282   meIntegrityPN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00283   meIntegrityPN_->setAxisTitle("jchannel", 1);
00284   meIntegrityPN_->setAxisTitle("jpseudo-strip", 2);
00285 
00286   if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
00287   sprintf(histo, "EEOT EE - digi occupancy summary");
00288   meOccupancy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00289   meOccupancy_[0]->setAxisTitle("ix", 1);
00290   meOccupancy_[0]->setAxisTitle("iy", 2);
00291 
00292   if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
00293   sprintf(histo, "EEOT EE + digi occupancy summary");
00294   meOccupancy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00295   meOccupancy_[1]->setAxisTitle("ix", 1);
00296   meOccupancy_[1]->setAxisTitle("iy", 2);
00297 
00298   if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
00299   sprintf(histo, "EEIT digi occupancy summary 1D");
00300   meOccupancy1D_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00301   for (int i = 0; i < 18; i++) {
00302     meOccupancy1D_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00303   }
00304 
00305   if ( meOccupancyPN_ ) dqmStore_->removeElement( meOccupancyPN_->getName() );
00306   sprintf(histo, "EEOT PN digi occupancy summary");
00307   meOccupancyPN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00308   meOccupancyPN_->setAxisTitle("channel", 1);
00309   meOccupancyPN_->setAxisTitle("pseudo-strip", 2);
00310 
00311   if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
00312   sprintf(histo, "EESFT EE - front-end status summary");
00313   meStatusFlags_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00314   meStatusFlags_[0]->setAxisTitle("ix", 1);
00315   meStatusFlags_[0]->setAxisTitle("iy", 2);
00316 
00317   if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
00318   sprintf(histo, "EESFT EE + front-end status summary");
00319   meStatusFlags_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00320   meStatusFlags_[1]->setAxisTitle("ix", 1);
00321   meStatusFlags_[1]->setAxisTitle("iy", 2);
00322 
00323   if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
00324   sprintf(histo, "EESFT front-end status errors summary");
00325   meStatusFlagsErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00326   for (int i = 0; i < 18; i++) {
00327     meStatusFlagsErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00328   }
00329 
00330   if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
00331   sprintf(histo, "EEPOT EE - pedestal quality summary G12");
00332   mePedestalOnline_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00333   mePedestalOnline_[0]->setAxisTitle("ix", 1);
00334   mePedestalOnline_[0]->setAxisTitle("iy", 2);
00335 
00336   if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
00337   sprintf(histo, "EEPOT EE + pedestal quality summary G12");
00338   mePedestalOnline_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00339   mePedestalOnline_[1]->setAxisTitle("ix", 1);
00340   mePedestalOnline_[1]->setAxisTitle("iy", 2);
00341 
00342   if ( mePedestalOnlineRMSMap_[0] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[0]->getName() );
00343   sprintf(histo, "EEPOT EE - pedestal G12 RMS map");
00344   mePedestalOnlineRMSMap_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00345   mePedestalOnlineRMSMap_[0]->setAxisTitle("ix", 1);
00346   mePedestalOnlineRMSMap_[0]->setAxisTitle("iy", 2);
00347 
00348   if ( mePedestalOnlineRMSMap_[1] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[1]->getName() );
00349   sprintf(histo, "EEPOT EE + pedestal G12 RMS map");
00350   mePedestalOnlineRMSMap_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00351   mePedestalOnlineRMSMap_[1]->setAxisTitle("ix", 1);
00352   mePedestalOnlineRMSMap_[1]->setAxisTitle("iy", 2);
00353 
00354   if ( mePedestalOnlineMean_ ) dqmStore_->removeElement( mePedestalOnlineMean_->getName() );
00355   sprintf(histo, "EEPOT pedestal G12 mean");
00356   mePedestalOnlineMean_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 150., 250.);
00357   for (int i = 0; i < 18; i++) {
00358     mePedestalOnlineMean_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00359   }
00360 
00361   if ( mePedestalOnlineRMS_ ) dqmStore_->removeElement( mePedestalOnlineRMS_->getName() );
00362   sprintf(histo, "EEPOT pedestal G12 rms");
00363   mePedestalOnlineRMS_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 10.);
00364   for (int i = 0; i < 18; i++) {
00365     mePedestalOnlineRMS_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00366   }
00367 
00368   if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
00369   sprintf(histo, "EEPOT pedestal quality errors summary G12");
00370   mePedestalOnlineErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00371   for (int i = 0; i < 18; i++) {
00372     mePedestalOnlineErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00373   }
00374 
00375   if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
00376 
00377     if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
00378     sprintf(histo, "EELT EE - laser quality summary L1");
00379     meLaserL1_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00380     meLaserL1_[0]->setAxisTitle("ix", 1);
00381     meLaserL1_[0]->setAxisTitle("iy", 2);
00382 
00383     if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
00384     sprintf(histo, "EELT EE + laser quality summary L1");
00385     meLaserL1_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00386     meLaserL1_[1]->setAxisTitle("ix", 1);
00387     meLaserL1_[1]->setAxisTitle("iy", 2);
00388 
00389     if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
00390     sprintf(histo, "EELT laser quality errors summary L1");
00391     meLaserL1Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00392     for (int i = 0; i < 18; i++) {
00393       meLaserL1Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00394     }
00395 
00396     if ( meLaserL1PN_ ) dqmStore_->removeElement( meLaserL1PN_->getName() );
00397     sprintf(histo, "EELT PN laser quality summary L1");
00398     meLaserL1PN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00399     meLaserL1PN_->setAxisTitle("jchannel", 1);
00400     meLaserL1PN_->setAxisTitle("jpseudo-strip", 2);
00401 
00402     if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
00403     sprintf(histo, "EELT PN laser quality errors summary L1");
00404     meLaserL1PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00405     for (int i = 0; i < 18; i++) {
00406       meLaserL1PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00407     }
00408 
00409     if ( meLaserL1Ampl_ ) dqmStore_->removeElement( meLaserL1Ampl_->getName() );
00410     sprintf(histo, "EELT laser L1 amplitude summary");
00411     meLaserL1Ampl_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096., "s");
00412     for (int i = 0; i < 18; i++) {
00413       meLaserL1Ampl_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00414     }
00415 
00416     if ( meLaserL1Timing_ ) dqmStore_->removeElement( meLaserL1Timing_->getName() );
00417     sprintf(histo, "EELT laser L1 timing summary");
00418     meLaserL1Timing_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 10., "s");
00419     for (int i = 0; i < 18; i++) {
00420       meLaserL1Timing_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00421     }
00422 
00423     if ( meLaserL1AmplOverPN_ ) dqmStore_->removeElement( meLaserL1AmplOverPN_->getName() );
00424     sprintf(histo, "EELT laser L1 amplitude over PN summary");
00425     meLaserL1AmplOverPN_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00426     for (int i = 0; i < 18; i++) {
00427       meLaserL1AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00428     }
00429 
00430   }
00431 
00432   if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
00433 
00434     if ( meLaserL2_[0] ) dqmStore_->removeElement( meLaserL2_[0]->getName() );
00435     sprintf(histo, "EELT EE - laser quality summary L2");
00436     meLaserL2_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00437     meLaserL2_[0]->setAxisTitle("ix", 1);
00438     meLaserL2_[0]->setAxisTitle("iy", 2);
00439 
00440     if ( meLaserL2_[1] ) dqmStore_->removeElement( meLaserL2_[1]->getName() );
00441     sprintf(histo, "EELT EE + laser quality summary L2");
00442     meLaserL2_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00443     meLaserL2_[1]->setAxisTitle("ix", 1);
00444     meLaserL2_[1]->setAxisTitle("iy", 2);
00445 
00446     if ( meLaserL2Err_ ) dqmStore_->removeElement( meLaserL2Err_->getName() );
00447     sprintf(histo, "EELT laser quality errors summary L2");
00448     meLaserL2Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00449     for (int i = 0; i < 18; i++) {
00450       meLaserL2Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00451     }
00452 
00453     if ( meLaserL2PN_ ) dqmStore_->removeElement( meLaserL2PN_->getName() );
00454     sprintf(histo, "EELT PN laser quality summary L2");
00455     meLaserL2PN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00456     meLaserL2PN_->setAxisTitle("jchannel", 1);
00457     meLaserL2PN_->setAxisTitle("jpseudo-strip", 2);
00458 
00459     if ( meLaserL2PNErr_ ) dqmStore_->removeElement( meLaserL2PNErr_->getName() );
00460     sprintf(histo, "EELT PN laser quality errors summary L2");
00461     meLaserL2PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00462     for (int i = 0; i < 18; i++) {
00463       meLaserL2PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00464     }
00465 
00466     if ( meLaserL2Ampl_ ) dqmStore_->removeElement( meLaserL2Ampl_->getName() );
00467     sprintf(histo, "EELT laser L2 amplitude summary");
00468     meLaserL2Ampl_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096., "s");
00469     for (int i = 0; i < 18; i++) {
00470       meLaserL2Ampl_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00471     }
00472 
00473     if ( meLaserL2Timing_ ) dqmStore_->removeElement( meLaserL2Timing_->getName() );
00474     sprintf(histo, "EELT laser L2 timing summary");
00475     meLaserL2Timing_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 10., "s");
00476     for (int i = 0; i < 18; i++) {
00477       meLaserL2Timing_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00478     }
00479 
00480     if ( meLaserL2AmplOverPN_ ) dqmStore_->removeElement( meLaserL2AmplOverPN_->getName() );
00481     sprintf(histo, "EELT laser L2 amplitude over PN summary");
00482     meLaserL2AmplOverPN_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00483     for (int i = 0; i < 18; i++) {
00484       meLaserL2AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00485     }
00486 
00487   }
00488 
00489   if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
00490 
00491     if ( meLaserL3_[0] ) dqmStore_->removeElement( meLaserL3_[0]->getName() );
00492     sprintf(histo, "EELT EE - laser quality summary L3");
00493     meLaserL3_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00494     meLaserL3_[0]->setAxisTitle("ix", 1);
00495     meLaserL3_[0]->setAxisTitle("iy", 2);
00496 
00497     if ( meLaserL3_[1] ) dqmStore_->removeElement( meLaserL3_[1]->getName() );
00498     sprintf(histo, "EELT EE + laser quality summary L3");
00499     meLaserL3_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00500     meLaserL3_[1]->setAxisTitle("ix", 1);
00501     meLaserL3_[1]->setAxisTitle("iy", 2);
00502 
00503     if ( meLaserL3Err_ ) dqmStore_->removeElement( meLaserL3Err_->getName() );
00504     sprintf(histo, "EELT laser quality errors summary L3");
00505     meLaserL3Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00506     for (int i = 0; i < 18; i++) {
00507       meLaserL3Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00508     }
00509 
00510     if ( meLaserL3PN_ ) dqmStore_->removeElement( meLaserL3PN_->getName() );
00511     sprintf(histo, "EELT PN laser quality summary L3");
00512     meLaserL3PN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00513     meLaserL3PN_->setAxisTitle("jchannel", 1);
00514     meLaserL3PN_->setAxisTitle("jpseudo-strip", 2);
00515 
00516     if ( meLaserL3PNErr_ ) dqmStore_->removeElement( meLaserL3PNErr_->getName() );
00517     sprintf(histo, "EELT PN laser quality errors summary L3");
00518     meLaserL3PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00519     for (int i = 0; i < 18; i++) {
00520       meLaserL3PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00521     }
00522 
00523     if ( meLaserL3Ampl_ ) dqmStore_->removeElement( meLaserL3Ampl_->getName() );
00524     sprintf(histo, "EELT laser L3 amplitude summary");
00525     meLaserL3Ampl_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096., "s");
00526     for (int i = 0; i < 18; i++) {
00527       meLaserL3Ampl_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00528     }
00529 
00530     if ( meLaserL3Timing_ ) dqmStore_->removeElement( meLaserL3Timing_->getName() );
00531     sprintf(histo, "EELT laser L3 timing summary");
00532     meLaserL3Timing_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 10., "s");
00533     for (int i = 0; i < 18; i++) {
00534       meLaserL3Timing_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00535     }
00536 
00537     if ( meLaserL3AmplOverPN_ ) dqmStore_->removeElement( meLaserL3AmplOverPN_->getName() );
00538     sprintf(histo, "EELT laser L3 amplitude over PN summary");
00539     meLaserL3AmplOverPN_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00540     for (int i = 0; i < 18; i++) {
00541       meLaserL3AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00542     }
00543 
00544   }
00545 
00546   if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
00547 
00548     if ( meLaserL4_[0] ) dqmStore_->removeElement( meLaserL4_[0]->getName() );
00549     sprintf(histo, "EELT EE - laser quality summary L4");
00550     meLaserL4_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00551     meLaserL4_[0]->setAxisTitle("ix", 1);
00552     meLaserL4_[0]->setAxisTitle("iy", 2);
00553 
00554     if ( meLaserL4_[1] ) dqmStore_->removeElement( meLaserL4_[1]->getName() );
00555     sprintf(histo, "EELT EE + laser quality summary L4");
00556     meLaserL4_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00557     meLaserL4_[1]->setAxisTitle("ix", 1);
00558     meLaserL4_[1]->setAxisTitle("iy", 2);
00559 
00560     if ( meLaserL4Err_ ) dqmStore_->removeElement( meLaserL4Err_->getName() );
00561     sprintf(histo, "EELT laser quality errors summary L4");
00562     meLaserL4Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00563     for (int i = 0; i < 18; i++) {
00564       meLaserL4Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00565     }
00566 
00567     if ( meLaserL4PN_ ) dqmStore_->removeElement( meLaserL4PN_->getName() );
00568     sprintf(histo, "EELT PN laser quality summary L4");
00569     meLaserL4PN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00570     meLaserL4PN_->setAxisTitle("jchannel", 1);
00571     meLaserL4PN_->setAxisTitle("jpseudo-strip", 2);
00572 
00573     if ( meLaserL4PNErr_ ) dqmStore_->removeElement( meLaserL4PNErr_->getName() );
00574     sprintf(histo, "EELT PN laser quality errors summary L4");
00575     meLaserL4PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00576     for (int i = 0; i < 18; i++) {
00577       meLaserL4PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00578     }
00579 
00580     if ( meLaserL4Ampl_ ) dqmStore_->removeElement( meLaserL4Ampl_->getName() );
00581     sprintf(histo, "EELT laser L4 amplitude summary");
00582     meLaserL4Ampl_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096., "s");
00583     for (int i = 0; i < 18; i++) {
00584       meLaserL4Ampl_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00585     }
00586 
00587     if ( meLaserL4Timing_ ) dqmStore_->removeElement( meLaserL4Timing_->getName() );
00588     sprintf(histo, "EELT laser L4 timing summary");
00589     meLaserL4Timing_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 10., "s");
00590     for (int i = 0; i < 18; i++) {
00591       meLaserL4Timing_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00592     }
00593 
00594     if ( meLaserL4AmplOverPN_ ) dqmStore_->removeElement( meLaserL4AmplOverPN_->getName() );
00595     sprintf(histo, "EELT laser L4 amplitude over PN summary");
00596     meLaserL4AmplOverPN_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00597     for (int i = 0; i < 18; i++) {
00598       meLaserL4AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00599     }
00600 
00601   }
00602 
00603   if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
00604 
00605     if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
00606     sprintf(histo, "EELDT EE - led quality summary L1");
00607     meLedL1_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00608     meLedL1_[0]->setAxisTitle("ix", 1);
00609     meLedL1_[0]->setAxisTitle("iy", 2);
00610 
00611     if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
00612     sprintf(histo, "EELDT EE + led quality summary L1");
00613     meLedL1_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00614     meLedL1_[1]->setAxisTitle("ix", 1);
00615     meLedL1_[1]->setAxisTitle("iy", 2);
00616 
00617     if ( meLedL1Err_ ) dqmStore_->removeElement( meLedL1Err_->getName() );
00618     sprintf(histo, "EELDT led quality errors summary L1");
00619     meLedL1Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00620     for (int i = 0; i < 18; i++) {
00621       meLedL1Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00622     }
00623 
00624     if ( meLedL1PN_ ) dqmStore_->removeElement( meLedL1PN_->getName() );
00625     sprintf(histo, "EELDT PN led quality summary L1");
00626     meLedL1PN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00627     meLedL1PN_->setAxisTitle("jchannel", 1);
00628     meLedL1PN_->setAxisTitle("jpseudo-strip", 2);
00629 
00630     if ( meLedL1PNErr_ ) dqmStore_->removeElement( meLedL1PNErr_->getName() );
00631     sprintf(histo, "EELDT PN led quality errors summary L1");
00632     meLedL1PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00633     for (int i = 0; i < 18; i++) {
00634       meLedL1PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00635     }
00636 
00637     if ( meLedL1Ampl_ ) dqmStore_->removeElement( meLedL1Ampl_->getName() );
00638     sprintf(histo, "EELDT led L1 amplitude summary");
00639     meLedL1Ampl_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096., "s");
00640     for (int i = 0; i < 18; i++) {
00641       meLedL1Ampl_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00642     }
00643 
00644     if ( meLedL1Timing_ ) dqmStore_->removeElement( meLedL1Timing_->getName() );
00645     sprintf(histo, "EELDT led L1 timing summary");
00646     meLedL1Timing_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 10., "s");
00647     for (int i = 0; i < 18; i++) {
00648       meLedL1Timing_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00649     }
00650 
00651     if ( meLedL1AmplOverPN_ ) dqmStore_->removeElement( meLedL1AmplOverPN_->getName() );
00652     sprintf(histo, "EELDT led L1 amplitude over PN summary");
00653     meLedL1AmplOverPN_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00654     for (int i = 0; i < 18; i++) {
00655       meLedL1AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00656     }
00657 
00658   }
00659 
00660   if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
00661 
00662     if ( meLedL2_[0] ) dqmStore_->removeElement( meLedL2_[0]->getName() );
00663     sprintf(histo, "EELDT EE - led quality summary L2");
00664     meLedL2_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00665     meLedL2_[0]->setAxisTitle("ix", 1);
00666     meLedL2_[0]->setAxisTitle("iy", 2);
00667 
00668     if ( meLedL2_[1] ) dqmStore_->removeElement( meLedL2_[1]->getName() );
00669     sprintf(histo, "EELDT EE + led quality summary L2");
00670     meLedL2_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00671     meLedL2_[1]->setAxisTitle("ix", 1);
00672     meLedL2_[1]->setAxisTitle("iy", 2);
00673 
00674     if ( meLedL2Err_ ) dqmStore_->removeElement( meLedL2Err_->getName() );
00675     sprintf(histo, "EELDT led quality errors summary L2");
00676     meLedL2Err_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00677     for (int i = 0; i < 18; i++) {
00678       meLedL2Err_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00679     }
00680 
00681     if ( meLedL2PN_ ) dqmStore_->removeElement( meLedL2PN_->getName() );
00682     sprintf(histo, "EELDT PN led quality summary L2");
00683     meLedL2PN_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00684     meLedL2PN_->setAxisTitle("jchannel", 1);
00685     meLedL2PN_->setAxisTitle("jpseudo-strip", 2);
00686 
00687     if ( meLedL2PNErr_ ) dqmStore_->removeElement( meLedL2PNErr_->getName() );
00688     sprintf(histo, "EELDT PN led quality errors summary L2");
00689     meLedL2PNErr_ = dqmStore_->book1D(histo, histo, 18, 1, 19);
00690     for (int i = 0; i < 18; i++) {
00691       meLedL2PNErr_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00692     }
00693 
00694     if ( meLedL2Ampl_ ) dqmStore_->removeElement( meLedL2Ampl_->getName() );
00695     sprintf(histo, "EELDT led L2 amplitude summary");
00696     meLedL2Ampl_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096., "s");
00697     for (int i = 0; i < 18; i++) {
00698       meLedL2Ampl_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00699     }
00700 
00701     if ( meLedL2Timing_ ) dqmStore_->removeElement( meLedL2Timing_->getName() );
00702     sprintf(histo, "EELDT led L2 timing summary");
00703     meLedL2Timing_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 10., "s");
00704     for (int i = 0; i < 18; i++) {
00705       meLedL2Timing_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00706     }
00707 
00708     if ( meLedL2AmplOverPN_ ) dqmStore_->removeElement( meLedL2AmplOverPN_->getName() );
00709     sprintf(histo, "EELDT led L2 amplitude over PN summary");
00710     meLedL2AmplOverPN_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00711     for (int i = 0; i < 18; i++) {
00712       meLedL2AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00713     }
00714 
00715   }
00716 
00717   if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00718 
00719     if( mePedestalG01_[0] ) dqmStore_->removeElement( mePedestalG01_[0]->getName() );
00720     sprintf(histo, "EEPT EE - pedestal quality G01 summary");
00721     mePedestalG01_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00722     mePedestalG01_[0]->setAxisTitle("ix", 1);
00723     mePedestalG01_[0]->setAxisTitle("iy", 2);
00724 
00725   }
00726 
00727   if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00728 
00729     if( mePedestalG06_[0] ) dqmStore_->removeElement( mePedestalG06_[0]->getName() );
00730     sprintf(histo, "EEPT EE - pedestal quality G06 summary");
00731     mePedestalG06_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00732     mePedestalG06_[0]->setAxisTitle("ix", 1);
00733     mePedestalG06_[0]->setAxisTitle("iy", 2);
00734 
00735   }
00736 
00737   if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00738 
00739     if( mePedestalG12_[0] ) dqmStore_->removeElement( mePedestalG12_[0]->getName() );
00740     sprintf(histo, "EEPT EE - pedestal quality G12 summary");
00741     mePedestalG12_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00742     mePedestalG12_[0]->setAxisTitle("ix", 1);
00743     mePedestalG12_[0]->setAxisTitle("iy", 2);
00744 
00745   }
00746 
00747 
00748   if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
00749 
00750     if( mePedestalPNG01_ ) dqmStore_->removeElement( mePedestalPNG01_->getName() );
00751     sprintf(histo, "EEPT PN pedestal quality G01 summary");
00752     mePedestalPNG01_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10, 10.);
00753     mePedestalPNG01_->setAxisTitle("jchannel", 1);
00754     mePedestalPNG01_->setAxisTitle("jpseudo-strip", 2);
00755 
00756   }
00757 
00758   if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
00759 
00760     if( mePedestalPNG16_ ) dqmStore_->removeElement( mePedestalPNG16_->getName() );
00761     sprintf(histo, "EEPT PN pedestal quality G16 summary");
00762     mePedestalPNG16_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10, 10.);
00763     mePedestalPNG16_->setAxisTitle("jchannel", 1);
00764     mePedestalPNG16_->setAxisTitle("jpseudo-strip", 2);
00765 
00766   }
00767 
00768   if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00769 
00770     if( mePedestalG01_[1] ) dqmStore_->removeElement( mePedestalG01_[1]->getName() );
00771     sprintf(histo, "EEPT EE + pedestal quality G01 summary");
00772     mePedestalG01_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00773     mePedestalG01_[1]->setAxisTitle("ix", 1);
00774     mePedestalG01_[1]->setAxisTitle("iy", 2);
00775 
00776   }
00777 
00778 
00779   if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00780 
00781     if( mePedestalG06_[1] ) dqmStore_->removeElement( mePedestalG06_[1]->getName() );
00782     sprintf(histo, "EEPT EE + pedestal quality G06 summary");
00783     mePedestalG06_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00784     mePedestalG06_[1]->setAxisTitle("ix", 1);
00785     mePedestalG06_[1]->setAxisTitle("iy", 2);
00786 
00787   }
00788 
00789   if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00790 
00791     if( mePedestalG12_[1] ) dqmStore_->removeElement( mePedestalG12_[1]->getName() );
00792     sprintf(histo, "EEPT EE + pedestal quality G12 summary");
00793     mePedestalG12_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00794     mePedestalG12_[1]->setAxisTitle("ix", 1);
00795     mePedestalG12_[1]->setAxisTitle("iy", 2);
00796 
00797   }
00798 
00799   if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00800 
00801     if( meTestPulseG01_[0] ) dqmStore_->removeElement( meTestPulseG01_[0]->getName() );
00802     sprintf(histo, "EETPT EE - test pulse quality G01 summary");
00803     meTestPulseG01_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00804     meTestPulseG01_[0]->setAxisTitle("ix", 1);
00805     meTestPulseG01_[0]->setAxisTitle("iy", 2);
00806 
00807   }
00808 
00809   if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00810 
00811     if( meTestPulseG06_[0] ) dqmStore_->removeElement( meTestPulseG06_[0]->getName() );
00812     sprintf(histo, "EETPT EE - test pulse quality G06 summary");
00813     meTestPulseG06_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00814     meTestPulseG06_[0]->setAxisTitle("ix", 1);
00815     meTestPulseG06_[0]->setAxisTitle("iy", 2);
00816 
00817   }
00818 
00819   if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00820 
00821     if( meTestPulseG12_[0] ) dqmStore_->removeElement( meTestPulseG12_[0]->getName() );
00822     sprintf(histo, "EETPT EE - test pulse quality G12 summary");
00823     meTestPulseG12_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00824     meTestPulseG12_[0]->setAxisTitle("ix", 1);
00825     meTestPulseG12_[0]->setAxisTitle("iy", 2);
00826 
00827   }
00828 
00829 
00830   if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {
00831 
00832     if( meTestPulsePNG01_ ) dqmStore_->removeElement( meTestPulsePNG01_->getName() );
00833     sprintf(histo, "EETPT PN test pulse quality G01 summary");
00834     meTestPulsePNG01_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00835     meTestPulsePNG01_->setAxisTitle("jchannel", 1);
00836     meTestPulsePNG01_->setAxisTitle("jpseudo-strip", 2);
00837 
00838   }
00839 
00840   if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {
00841 
00842     if( meTestPulsePNG16_ ) dqmStore_->removeElement( meTestPulsePNG16_->getName() );
00843     sprintf(histo, "EETPT PN test pulse quality G16 summary");
00844     meTestPulsePNG16_ = dqmStore_->book2D(histo, histo, 45, 0., 45., 20, -10., 10.);
00845     meTestPulsePNG16_->setAxisTitle("jchannel", 1);
00846     meTestPulsePNG16_->setAxisTitle("jpseudo-strip", 2);
00847 
00848   }
00849 
00850   if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00851 
00852     if( meTestPulseG01_[1] ) dqmStore_->removeElement( meTestPulseG01_[1]->getName() );
00853     sprintf(histo, "EETPT EE + test pulse quality G01 summary");
00854     meTestPulseG01_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00855     meTestPulseG01_[1]->setAxisTitle("ix", 1);
00856     meTestPulseG01_[1]->setAxisTitle("iy", 2);
00857 
00858   }
00859 
00860   if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00861 
00862     if( meTestPulseG06_[1] ) dqmStore_->removeElement( meTestPulseG06_[1]->getName() );
00863     sprintf(histo, "EETPT EE + test pulse quality G06 summary");
00864     meTestPulseG06_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00865     meTestPulseG06_[1]->setAxisTitle("ix", 1);
00866     meTestPulseG06_[1]->setAxisTitle("iy", 2);
00867 
00868   }
00869 
00870   if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00871 
00872     if( meTestPulseG12_[1] ) dqmStore_->removeElement( meTestPulseG12_[1]->getName() );
00873     sprintf(histo, "EETPT EE + test pulse quality G12 summary");
00874     meTestPulseG12_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00875     meTestPulseG12_[1]->setAxisTitle("ix", 1);
00876     meTestPulseG12_[1]->setAxisTitle("iy", 2);
00877 
00878   }
00879 
00880   if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {
00881 
00882     if( meTestPulseAmplG01_ ) dqmStore_->removeElement( meTestPulseAmplG01_->getName() );
00883     sprintf(histo, "EETPT test pulse amplitude G01 summary");
00884     meTestPulseAmplG01_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00885     for (int i = 0; i < 18; i++) {
00886       meTestPulseAmplG01_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00887     }
00888 
00889   }
00890 
00891   if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {
00892 
00893     if( meTestPulseAmplG06_ ) dqmStore_->removeElement( meTestPulseAmplG06_->getName() );
00894     sprintf(histo, "EETPT test pulse amplitude G06 summary");
00895     meTestPulseAmplG06_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00896     for (int i = 0; i < 18; i++) {
00897       meTestPulseAmplG06_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00898     }
00899 
00900   }
00901 
00902   if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {
00903 
00904     if( meTestPulseAmplG12_ ) dqmStore_->removeElement( meTestPulseAmplG12_->getName() );
00905     sprintf(histo, "EETPT test pulse amplitude G12 summary");
00906     meTestPulseAmplG12_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 4096, 0., 4096.*12., "s");
00907     for (int i = 0; i < 18; i++) {
00908       meTestPulseAmplG12_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00909     }
00910 
00911   }
00912 
00913   if( meRecHitEnergy_[0] ) dqmStore_->removeElement( meRecHitEnergy_[0]->getName() );
00914   sprintf(histo, "EEOT EE - energy summary");
00915   meRecHitEnergy_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00916   meRecHitEnergy_[0]->setAxisTitle("ix", 1);
00917   meRecHitEnergy_[0]->setAxisTitle("iy", 2);
00918 
00919   if( meRecHitEnergy_[1] ) dqmStore_->removeElement( meRecHitEnergy_[1]->getName() );
00920   sprintf(histo, "EEOT EE + energy summary");
00921   meRecHitEnergy_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00922   meRecHitEnergy_[1]->setAxisTitle("ix", 1);
00923   meRecHitEnergy_[1]->setAxisTitle("iy", 2);
00924 
00925   if( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
00926   sprintf(histo, "EETMT EE - timing quality summary");
00927   meTiming_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00928   meTiming_[0]->setAxisTitle("ix", 1);
00929   meTiming_[0]->setAxisTitle("iy", 2);
00930 
00931   if( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
00932   sprintf(histo, "EETMT EE + timing quality summary");
00933   meTiming_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00934   meTiming_[1]->setAxisTitle("ix", 1);
00935   meTiming_[1]->setAxisTitle("iy", 2);
00936 
00937   if( meTimingMean1D_[0] ) dqmStore_->removeElement( meTimingMean1D_[0]->getName() );
00938   sprintf(histo, "EETMT EE - timing mean 1D summary");
00939   meTimingMean1D_[0] = dqmStore_->book1D(histo, histo, 100, -50., 50.);
00940   meTimingMean1D_[0]->setAxisTitle("mean (ns)", 1);
00941 
00942   if( meTimingMean1D_[1] ) dqmStore_->removeElement( meTimingMean1D_[1]->getName() );
00943   sprintf(histo, "EETMT EE + timing mean 1D summary");
00944   meTimingMean1D_[1] = dqmStore_->book1D(histo, histo, 100, -50., 50.);
00945   meTimingMean1D_[1]->setAxisTitle("mean (ns)", 1);
00946 
00947   if( meTimingRMS1D_[0] ) dqmStore_->removeElement( meTimingRMS1D_[0]->getName() );
00948   sprintf(histo, "EETMT EE - timing rms 1D summary");
00949   meTimingRMS1D_[0] = dqmStore_->book1D(histo, histo, 100, 0.0, 150.0);
00950   meTimingRMS1D_[0]->setAxisTitle("rms (ns)", 1);
00951 
00952   if( meTimingRMS1D_[1] ) dqmStore_->removeElement( meTimingRMS1D_[1]->getName() );
00953   sprintf(histo, "EETMT EE + timing rms 1D summary");
00954   meTimingRMS1D_[1] = dqmStore_->book1D(histo, histo, 100, 0.0, 150.0);
00955   meTimingRMS1D_[1]->setAxisTitle("rms (ns)", 1);
00956 
00957   if ( meTimingMean_ ) dqmStore_->removeElement( meTimingMean_->getName() );
00958   sprintf(histo, "EETMT timing mean");
00959   meTimingMean_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, -50., 50.);
00960   for (int i = 0; i < 18; i++) {
00961     meTimingMean_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00962   }
00963   meTimingMean_->setAxisTitle("mean (ns)", 2);
00964 
00965   if ( meTimingRMS_ ) dqmStore_->removeElement( meTimingRMS_->getName() );
00966   sprintf(histo, "EETMT timing rms");
00967   meTimingRMS_ = dqmStore_->bookProfile(histo, histo, 18, 1, 19, 100, 0., 35.);
00968   for (int i = 0; i < 18; i++) {
00969     meTimingRMS_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
00970   }
00971   meTimingRMS_->setAxisTitle("rms (ns)", 2);
00972 
00973   if( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
00974   sprintf(histo, "EETTT EE - Et trigger tower summary");
00975   meTriggerTowerEt_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00976   meTriggerTowerEt_[0]->setAxisTitle("ix", 1);
00977   meTriggerTowerEt_[0]->setAxisTitle("iy", 2);
00978 
00979   if( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
00980   sprintf(histo, "EETTT EE + Et trigger tower summary");
00981   meTriggerTowerEt_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00982   meTriggerTowerEt_[1]->setAxisTitle("ix", 1);
00983   meTriggerTowerEt_[1]->setAxisTitle("iy", 2);
00984 
00985   if( meTriggerTowerEmulError_[0] ) dqmStore_->removeElement( meTriggerTowerEmulError_[0]->getName() );
00986   sprintf(histo, "EETTT EE - emulator error quality summary");
00987   meTriggerTowerEmulError_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00988   meTriggerTowerEmulError_[0]->setAxisTitle("ix", 1);
00989   meTriggerTowerEmulError_[0]->setAxisTitle("iy", 2);
00990 
00991   if( meTriggerTowerEmulError_[1] ) dqmStore_->removeElement( meTriggerTowerEmulError_[1]->getName() );
00992   sprintf(histo, "EETTT EE + emulator error quality summary");
00993   meTriggerTowerEmulError_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
00994   meTriggerTowerEmulError_[1]->setAxisTitle("ix", 1);
00995   meTriggerTowerEmulError_[1]->setAxisTitle("iy", 2);
00996 
00997   if( meTriggerTowerTiming_[0] ) dqmStore_->removeElement( meTriggerTowerTiming_[0]->getName() );
00998   sprintf(histo, "EETTT EE - Trigger Primitives Timing summary");
00999   meTriggerTowerTiming_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
01000   meTriggerTowerTiming_[0]->setAxisTitle("ix", 1);
01001   meTriggerTowerTiming_[0]->setAxisTitle("iy", 2);
01002   meTriggerTowerTiming_[0]->setAxisTitle("TP data matching emulator", 3);
01003 
01004   if( meTriggerTowerTiming_[1] ) dqmStore_->removeElement( meTriggerTowerTiming_[1]->getName() );
01005   sprintf(histo, "EETTT EE + Trigger Primitives Timing summary");
01006   meTriggerTowerTiming_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
01007   meTriggerTowerTiming_[1]->setAxisTitle("ix", 1);
01008   meTriggerTowerTiming_[1]->setAxisTitle("iy", 2);
01009   meTriggerTowerTiming_[1]->setAxisTitle("TP data matching emulator", 3);
01010 
01011   if( meTriggerTowerNonSingleTiming_[0] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[0]->getName() );
01012   sprintf(histo, "EETTT EE - Trigger Primitives Non Single Timing summary");
01013   meTriggerTowerNonSingleTiming_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
01014   meTriggerTowerNonSingleTiming_[0]->setAxisTitle("ix", 1);
01015   meTriggerTowerNonSingleTiming_[0]->setAxisTitle("iy", 2);
01016   meTriggerTowerNonSingleTiming_[0]->setAxisTitle("fraction", 3);
01017 
01018   if( meTriggerTowerNonSingleTiming_[1] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[1]->getName() );
01019   sprintf(histo, "EETTT EE + Trigger Primitives Non Single Timing summary");
01020   meTriggerTowerNonSingleTiming_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
01021   meTriggerTowerNonSingleTiming_[1]->setAxisTitle("ix", 1);
01022   meTriggerTowerNonSingleTiming_[1]->setAxisTitle("iy", 2);
01023   meTriggerTowerNonSingleTiming_[1]->setAxisTitle("fraction", 3);
01024 
01025   if( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
01026   sprintf(histo, "EE global summary EE -");
01027   meGlobalSummary_[0] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
01028   meGlobalSummary_[0]->setAxisTitle("ix", 1);
01029   meGlobalSummary_[0]->setAxisTitle("iy", 2);
01030 
01031   if( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
01032   sprintf(histo, "EE global summary EE +");
01033   meGlobalSummary_[1] = dqmStore_->book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
01034   meGlobalSummary_[1]->setAxisTitle("ix", 1);
01035   meGlobalSummary_[1]->setAxisTitle("iy", 2);
01036 
01037 }
01038 
01039 void EESummaryClient::cleanup(void) {
01040 
01041   if ( ! enableCleanup_ ) return;
01042 
01043   dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );
01044 
01045   for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01046 
01047     int ism = superModules_[i];
01048 
01049     if ( cloneME_ ) {
01050       if ( hpot01_[ism-1] ) delete hpot01_[ism-1];
01051       if ( httt01_[ism-1] ) delete httt01_[ism-1];
01052     }
01053 
01054     hpot01_[ism-1] = 0;
01055     httt01_[ism-1] = 0;
01056 
01057   }
01058 
01059   if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
01060   meIntegrity_[0] = 0;
01061 
01062   if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[1]->getName() );
01063   meIntegrity_[1] = 0;
01064 
01065   if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
01066   meIntegrityErr_ = 0;
01067 
01068   if ( meIntegrityPN_ ) dqmStore_->removeElement( meIntegrityPN_->getName() );
01069   meIntegrityPN_ = 0;
01070 
01071   if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
01072   meOccupancy_[0] = 0;
01073 
01074   if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
01075   meOccupancy_[1] = 0;
01076 
01077   if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
01078   meOccupancy1D_ = 0;
01079 
01080   if ( meOccupancyPN_ ) dqmStore_->removeElement( meOccupancyPN_->getName() );
01081   meOccupancyPN_ = 0;
01082 
01083   if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
01084   meStatusFlags_[0] = 0;
01085 
01086   if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
01087   meStatusFlags_[1] = 0;
01088 
01089   if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
01090   meStatusFlagsErr_ = 0;
01091 
01092   if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
01093   mePedestalOnline_[0] = 0;
01094 
01095   if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
01096   mePedestalOnline_[1] = 0;
01097 
01098   if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
01099   mePedestalOnlineErr_ = 0;
01100 
01101   if ( mePedestalOnlineMean_ ) dqmStore_->removeElement( mePedestalOnlineMean_->getName() );
01102   mePedestalOnlineMean_ = 0;
01103 
01104   if ( mePedestalOnlineRMS_ ) dqmStore_->removeElement( mePedestalOnlineRMS_->getName() );
01105   mePedestalOnlineRMS_ = 0;
01106 
01107   if ( mePedestalOnlineRMSMap_[0] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[0]->getName() );
01108   mePedestalOnlineRMSMap_[0] = 0;
01109 
01110   if ( mePedestalOnlineRMSMap_[1] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[1]->getName() );
01111   mePedestalOnlineRMSMap_[1] = 0;
01112 
01113   if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
01114   meLaserL1_[0] = 0;
01115 
01116   if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
01117   meLaserL1_[1] = 0;
01118 
01119   if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
01120   meLaserL1Err_ = 0;
01121 
01122   if ( meLaserL1PN_ ) dqmStore_->removeElement( meLaserL1PN_->getName() );
01123   meLaserL1PN_ = 0;
01124 
01125   if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
01126   meLaserL1PNErr_ = 0;
01127 
01128   if ( meLaserL1Ampl_ ) dqmStore_->removeElement( meLaserL1Ampl_->getName() );
01129   meLaserL1Ampl_ = 0;
01130 
01131   if ( meLaserL1Timing_ ) dqmStore_->removeElement( meLaserL1Timing_->getName() );
01132   meLaserL1Timing_ = 0;
01133 
01134   if ( meLaserL1AmplOverPN_ ) dqmStore_->removeElement( meLaserL1AmplOverPN_->getName() );
01135   meLaserL1AmplOverPN_ = 0;
01136 
01137   if ( meLaserL2_[0] ) dqmStore_->removeElement( meLaserL2_[0]->getName() );
01138   meLaserL2_[0] = 0;
01139 
01140   if ( meLaserL2_[1] ) dqmStore_->removeElement( meLaserL2_[1]->getName() );
01141   meLaserL2_[1] = 0;
01142 
01143   if ( meLaserL2Err_ ) dqmStore_->removeElement( meLaserL2Err_->getName() );
01144   meLaserL2Err_ = 0;
01145 
01146   if ( meLaserL2PN_ ) dqmStore_->removeElement( meLaserL2PN_->getName() );
01147   meLaserL2PN_ = 0;
01148 
01149   if ( meLaserL2PNErr_ ) dqmStore_->removeElement( meLaserL2PNErr_->getName() );
01150   meLaserL2PNErr_ = 0;
01151 
01152   if ( meLaserL2Ampl_ ) dqmStore_->removeElement( meLaserL2Ampl_->getName() );
01153   meLaserL2Ampl_ = 0;
01154 
01155   if ( meLaserL2Timing_ ) dqmStore_->removeElement( meLaserL2Timing_->getName() );
01156   meLaserL2Timing_ = 0;
01157 
01158   if ( meLaserL2AmplOverPN_ ) dqmStore_->removeElement( meLaserL2AmplOverPN_->getName() );
01159   meLaserL2AmplOverPN_ = 0;
01160 
01161   if ( meLaserL3_[0] ) dqmStore_->removeElement( meLaserL3_[0]->getName() );
01162   meLaserL3_[0] = 0;
01163 
01164   if ( meLaserL3_[1] ) dqmStore_->removeElement( meLaserL3_[1]->getName() );
01165   meLaserL3_[1] = 0;
01166 
01167   if ( meLaserL3Err_ ) dqmStore_->removeElement( meLaserL3Err_->getName() );
01168   meLaserL3Err_ = 0;
01169 
01170   if ( meLaserL3PN_ ) dqmStore_->removeElement( meLaserL3PN_->getName() );
01171   meLaserL3PN_ = 0;
01172 
01173   if ( meLaserL3PNErr_ ) dqmStore_->removeElement( meLaserL3PNErr_->getName() );
01174   meLaserL3PNErr_ = 0;
01175 
01176   if ( meLaserL3Ampl_ ) dqmStore_->removeElement( meLaserL3Ampl_->getName() );
01177   meLaserL3Ampl_ = 0;
01178 
01179   if ( meLaserL3Timing_ ) dqmStore_->removeElement( meLaserL3Timing_->getName() );
01180   meLaserL3Timing_ = 0;
01181 
01182   if ( meLaserL3AmplOverPN_ ) dqmStore_->removeElement( meLaserL3AmplOverPN_->getName() );
01183   meLaserL3AmplOverPN_ = 0;
01184 
01185   if ( meLaserL4_[0] ) dqmStore_->removeElement( meLaserL4_[0]->getName() );
01186   meLaserL4_[0] = 0;
01187 
01188   if ( meLaserL4_[1] ) dqmStore_->removeElement( meLaserL4_[1]->getName() );
01189   meLaserL4_[1] = 0;
01190 
01191   if ( meLaserL4Err_ ) dqmStore_->removeElement( meLaserL4Err_->getName() );
01192   meLaserL4Err_ = 0;
01193 
01194   if ( meLaserL4PN_ ) dqmStore_->removeElement( meLaserL4PN_->getName() );
01195   meLaserL4PN_ = 0;
01196 
01197   if ( meLaserL4PNErr_ ) dqmStore_->removeElement( meLaserL4PNErr_->getName() );
01198   meLaserL4PNErr_ = 0;
01199 
01200   if ( meLaserL4Ampl_ ) dqmStore_->removeElement( meLaserL4Ampl_->getName() );
01201   meLaserL4Ampl_ = 0;
01202 
01203   if ( meLaserL4Timing_ ) dqmStore_->removeElement( meLaserL4Timing_->getName() );
01204   meLaserL4Timing_ = 0;
01205 
01206   if ( meLaserL4AmplOverPN_ ) dqmStore_->removeElement( meLaserL4AmplOverPN_->getName() );
01207   meLaserL4AmplOverPN_ = 0;
01208 
01209   if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
01210   meLedL1_[0] = 0;
01211 
01212   if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
01213   meLedL1_[1] = 0;
01214 
01215   if ( meLedL1Err_ ) dqmStore_->removeElement( meLedL1Err_->getName() );
01216   meLedL1Err_ = 0;
01217 
01218   if ( meLedL1PN_ ) dqmStore_->removeElement( meLedL1PN_->getName() );
01219   meLedL1PN_ = 0;
01220 
01221   if ( meLedL1PNErr_ ) dqmStore_->removeElement( meLedL1PNErr_->getName() );
01222   meLedL1PNErr_ = 0;
01223 
01224   if ( meLedL1Ampl_ ) dqmStore_->removeElement( meLedL1Ampl_->getName() );
01225   meLedL1Ampl_ = 0;
01226 
01227   if ( meLedL1Timing_ ) dqmStore_->removeElement( meLedL1Timing_->getName() );
01228   meLedL1Timing_ = 0;
01229 
01230   if ( meLedL1AmplOverPN_ ) dqmStore_->removeElement( meLedL1AmplOverPN_->getName() );
01231   meLedL1AmplOverPN_ = 0;
01232 
01233   if ( meLedL2_[0] ) dqmStore_->removeElement( meLedL2_[0]->getName() );
01234   meLedL2_[0] = 0;
01235 
01236   if ( meLedL2_[1] ) dqmStore_->removeElement( meLedL2_[1]->getName() );
01237   meLedL2_[1] = 0;
01238 
01239   if ( meLedL2Err_ ) dqmStore_->removeElement( meLedL2Err_->getName() );
01240   meLedL2Err_ = 0;
01241 
01242   if ( meLedL2PN_ ) dqmStore_->removeElement( meLedL2PN_->getName() );
01243   meLedL2PN_ = 0;
01244 
01245   if ( meLedL2PNErr_ ) dqmStore_->removeElement( meLedL2PNErr_->getName() );
01246   meLedL2PNErr_ = 0;
01247 
01248   if ( meLedL2Ampl_ ) dqmStore_->removeElement( meLedL2Ampl_->getName() );
01249   meLedL2Ampl_ = 0;
01250 
01251   if ( meLedL2Timing_ ) dqmStore_->removeElement( meLedL2Timing_->getName() );
01252   meLedL2Timing_ = 0;
01253 
01254   if ( meLedL2AmplOverPN_ ) dqmStore_->removeElement( meLedL2AmplOverPN_->getName() );
01255   meLedL2AmplOverPN_ = 0;
01256 
01257   if ( mePedestalG01_[0] ) dqmStore_->removeElement( mePedestalG01_[0]->getName() );
01258   mePedestalG01_[0] = 0;
01259 
01260   if ( mePedestalG01_[1] ) dqmStore_->removeElement( mePedestalG01_[1]->getName() );
01261   mePedestalG01_[1] = 0;
01262 
01263   if ( mePedestalG06_[0] ) dqmStore_->removeElement( mePedestalG06_[0]->getName() );
01264   mePedestalG06_[0] = 0;
01265 
01266   if ( mePedestalG06_[1] ) dqmStore_->removeElement( mePedestalG06_[1]->getName() );
01267   mePedestalG06_[1] = 0;
01268 
01269   if ( mePedestalG12_[0] ) dqmStore_->removeElement( mePedestalG12_[0]->getName() );
01270   mePedestalG12_[0] = 0;
01271 
01272   if ( mePedestalG12_[1] ) dqmStore_->removeElement( mePedestalG12_[1]->getName() );
01273   mePedestalG12_[1] = 0;
01274 
01275   if ( mePedestalPNG01_ ) dqmStore_->removeElement( mePedestalPNG01_->getName() );
01276   mePedestalPNG01_ = 0;
01277 
01278   if ( mePedestalPNG16_ ) dqmStore_->removeElement( mePedestalPNG16_->getName() );
01279   mePedestalPNG16_ = 0;
01280 
01281   if ( meTestPulseG01_[0] ) dqmStore_->removeElement( meTestPulseG01_[0]->getName() );
01282   meTestPulseG01_[0] = 0;
01283 
01284   if ( meTestPulseG01_[1] ) dqmStore_->removeElement( meTestPulseG01_[1]->getName() );
01285   meTestPulseG01_[1] = 0;
01286 
01287   if ( meTestPulseG06_[0] ) dqmStore_->removeElement( meTestPulseG06_[0]->getName() );
01288   meTestPulseG06_[0] = 0;
01289 
01290   if ( meTestPulseG06_[1] ) dqmStore_->removeElement( meTestPulseG06_[1]->getName() );
01291   meTestPulseG06_[1] = 0;
01292 
01293   if ( meTestPulseG12_[0] ) dqmStore_->removeElement( meTestPulseG12_[0]->getName() );
01294   meTestPulseG12_[0] = 0;
01295 
01296   if ( meTestPulseG12_[1] ) dqmStore_->removeElement( meTestPulseG12_[1]->getName() );
01297   meTestPulseG12_[1] = 0;
01298 
01299   if ( meTestPulsePNG01_ ) dqmStore_->removeElement( meTestPulsePNG01_->getName() );
01300   meTestPulsePNG01_ = 0;
01301 
01302   if ( meTestPulsePNG16_ ) dqmStore_->removeElement( meTestPulsePNG16_->getName() );
01303   meTestPulsePNG16_ = 0;
01304 
01305   if ( meTestPulseAmplG01_ ) dqmStore_->removeElement( meTestPulseAmplG01_->getName() );
01306   meTestPulseAmplG01_ = 0;
01307 
01308   if ( meTestPulseAmplG06_ ) dqmStore_->removeElement( meTestPulseAmplG06_->getName() );
01309   meTestPulseAmplG06_ = 0;
01310 
01311   if ( meTestPulseAmplG12_ ) dqmStore_->removeElement( meTestPulseAmplG12_->getName() );
01312   meTestPulseAmplG12_ = 0;
01313 
01314   if ( meRecHitEnergy_[0] ) dqmStore_->removeElement( meRecHitEnergy_[0]->getName() );
01315   meRecHitEnergy_[0] = 0;
01316 
01317   if ( meRecHitEnergy_[1] ) dqmStore_->removeElement( meRecHitEnergy_[1]->getName() );
01318   meRecHitEnergy_[1] = 0;
01319 
01320   if ( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
01321   meTiming_[0] = 0;
01322 
01323   if ( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
01324   meTiming_[1] = 0;
01325 
01326   if ( meTimingMean1D_[0] ) dqmStore_->removeElement( meTimingMean1D_[0]->getName() );
01327   meTimingMean1D_[0] = 0;
01328 
01329   if ( meTimingMean1D_[1] ) dqmStore_->removeElement( meTimingMean1D_[1]->getName() );
01330   meTimingMean1D_[1] = 0;
01331 
01332   if ( meTimingRMS1D_[0] ) dqmStore_->removeElement( meTimingRMS1D_[0]->getName() );
01333   meTimingRMS1D_[0] = 0;
01334 
01335   if ( meTimingRMS1D_[1] ) dqmStore_->removeElement( meTimingRMS1D_[1]->getName() );
01336   meTimingRMS1D_[1] = 0;
01337 
01338   if ( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
01339   meTriggerTowerEt_[0] = 0;
01340 
01341   if ( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
01342   meTriggerTowerEt_[1] = 0;
01343 
01344   if ( meTriggerTowerEmulError_[0] ) dqmStore_->removeElement( meTriggerTowerEmulError_[0]->getName() );
01345   meTriggerTowerEmulError_[0] = 0;
01346 
01347   if ( meTriggerTowerEmulError_[1] ) dqmStore_->removeElement( meTriggerTowerEmulError_[1]->getName() );
01348   meTriggerTowerEmulError_[1] = 0;
01349 
01350   if ( meTriggerTowerTiming_[0] ) dqmStore_->removeElement( meTriggerTowerTiming_[0]->getName() );
01351   meTriggerTowerTiming_[0] = 0;
01352 
01353   if ( meTriggerTowerTiming_[1] ) dqmStore_->removeElement( meTriggerTowerTiming_[1]->getName() );
01354   meTriggerTowerTiming_[1] = 0;
01355 
01356   if ( meTriggerTowerNonSingleTiming_[0] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[0]->getName() );
01357   meTriggerTowerNonSingleTiming_[0] = 0;
01358 
01359   if ( meTriggerTowerNonSingleTiming_[1] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[1]->getName() );
01360   meTriggerTowerNonSingleTiming_[1] = 0;
01361 
01362   if ( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
01363   meGlobalSummary_[0] = 0;
01364 
01365   if ( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
01366   meGlobalSummary_[1] = 0;
01367 
01368 }
01369 
01370 #ifdef WITH_ECAL_COND_DB
01371 bool EESummaryClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status) {
01372 
01373   status = true;
01374 
01375   return true;
01376 
01377 }
01378 #endif
01379 
01380 void EESummaryClient::analyze(void) {
01381 
01382   ievt_++;
01383   jevt_++;
01384   if ( ievt_ % 10 == 0 ) {
01385     if ( debug_ ) std::cout << "EESummaryClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
01386   }
01387 
01388   for ( int ix = 1; ix <= 100; ix++ ) {
01389     for ( int iy = 1; iy <= 100; iy++ ) {
01390 
01391       if ( meIntegrity_[0] ) meIntegrity_[0]->setBinContent( ix, iy, 6. );
01392       if ( meIntegrity_[1] ) meIntegrity_[1]->setBinContent( ix, iy, 6. );
01393       if ( meOccupancy_[0] ) meOccupancy_[0]->setBinContent( ix, iy, 0. );
01394       if ( meOccupancy_[1] ) meOccupancy_[1]->setBinContent( ix, iy, 0. );
01395       if ( meStatusFlags_[0] ) meStatusFlags_[0]->setBinContent( ix, iy, 6. );
01396       if ( meStatusFlags_[1] ) meStatusFlags_[1]->setBinContent( ix, iy, 6. );
01397       if ( mePedestalOnline_[0] ) mePedestalOnline_[0]->setBinContent( ix, iy, 6. );
01398       if ( mePedestalOnline_[1] ) mePedestalOnline_[1]->setBinContent( ix, iy, 6. );
01399       if ( mePedestalOnlineRMSMap_[0] ) mePedestalOnlineRMSMap_[0]->setBinContent( ix, iy, -1. );
01400       if ( mePedestalOnlineRMSMap_[1] ) mePedestalOnlineRMSMap_[1]->setBinContent( ix, iy, -1. );
01401 
01402       if ( meLaserL1_[0] ) meLaserL1_[0]->setBinContent( ix, iy, 6. );
01403       if ( meLaserL1_[1] ) meLaserL1_[1]->setBinContent( ix, iy, 6. );
01404       if ( meLaserL2_[0] ) meLaserL2_[0]->setBinContent( ix, iy, 6. );
01405       if ( meLaserL2_[1] ) meLaserL2_[1]->setBinContent( ix, iy, 6. );
01406       if ( meLaserL3_[0] ) meLaserL3_[0]->setBinContent( ix, iy, 6. );
01407       if ( meLaserL3_[1] ) meLaserL3_[1]->setBinContent( ix, iy, 6. );
01408       if ( meLaserL4_[0] ) meLaserL4_[0]->setBinContent( ix, iy, 6. );
01409       if ( meLaserL4_[1] ) meLaserL4_[1]->setBinContent( ix, iy, 6. );
01410       if ( meLedL1_[0] ) meLedL1_[0]->setBinContent( ix, iy, 6. );
01411       if ( meLedL1_[1] ) meLedL1_[1]->setBinContent( ix, iy, 6. );
01412       if ( meLedL2_[0] ) meLedL2_[0]->setBinContent( ix, iy, 6. );
01413       if ( meLedL2_[1] ) meLedL2_[1]->setBinContent( ix, iy, 6. );
01414       if ( mePedestalG01_[0] ) mePedestalG01_[0]->setBinContent( ix, iy, 6. );
01415       if ( mePedestalG01_[1] ) mePedestalG01_[1]->setBinContent( ix, iy, 6. );
01416       if ( mePedestalG06_[0] ) mePedestalG06_[0]->setBinContent( ix, iy, 6. );
01417       if ( mePedestalG06_[1] ) mePedestalG06_[1]->setBinContent( ix, iy, 6. );
01418       if ( mePedestalG12_[0] ) mePedestalG12_[0]->setBinContent( ix, iy, 6. );
01419       if ( mePedestalG12_[1] ) mePedestalG12_[1]->setBinContent( ix, iy, 6. );
01420       if ( meTestPulseG01_[0] ) meTestPulseG01_[0]->setBinContent( ix, iy, 6. );
01421       if ( meTestPulseG01_[1] ) meTestPulseG01_[1]->setBinContent( ix, iy, 6. );
01422       if ( meTestPulseG06_[0] ) meTestPulseG06_[0]->setBinContent( ix, iy, 6. );
01423       if ( meTestPulseG06_[1] ) meTestPulseG06_[1]->setBinContent( ix, iy, 6. );
01424       if ( meTestPulseG12_[0] ) meTestPulseG12_[0]->setBinContent( ix, iy, 6. );
01425       if ( meTestPulseG12_[1] ) meTestPulseG12_[1]->setBinContent( ix, iy, 6. );
01426       if ( meRecHitEnergy_[0] ) meRecHitEnergy_[0]->setBinContent( ix, iy, 0. );
01427       if ( meRecHitEnergy_[1] ) meRecHitEnergy_[1]->setBinContent( ix, iy, 0. );
01428       if ( meTiming_[0] ) meTiming_[0]->setBinContent( ix, iy, 6. );
01429       if ( meTiming_[1] ) meTiming_[1]->setBinContent( ix, iy, 6. );
01430 
01431       if ( meGlobalSummary_[0] ) meGlobalSummary_[0]->setBinContent( ix, iy, 6. );
01432       if ( meGlobalSummary_[1] ) meGlobalSummary_[1]->setBinContent( ix, iy, 6. );
01433 
01434     }
01435   }
01436 
01437   // default is 6 because we want white for the non existing MEM
01438   for ( int ix = 1; ix <= 45; ix++ ) {
01439     for ( int iy = 1; iy <= 20; iy++ ) {
01440 
01441       if ( meIntegrityPN_ ) meIntegrityPN_->setBinContent( ix, iy, 6. );
01442       if ( meOccupancyPN_ ) meOccupancyPN_->setBinContent( ix, iy, 0. );
01443       if ( meLaserL1PN_ ) meLaserL1PN_->setBinContent( ix, iy, 6. );
01444       if ( meLaserL2PN_ ) meLaserL2PN_->setBinContent( ix, iy, 6. );
01445       if ( meLaserL3PN_ ) meLaserL3PN_->setBinContent( ix, iy, 6. );
01446       if ( meLaserL4PN_ ) meLaserL4PN_->setBinContent( ix, iy, 6. );
01447       if ( meLedL1PN_ ) meLedL1PN_->setBinContent( ix, iy, 6. );
01448       if ( meLedL2PN_ ) meLedL2PN_->setBinContent( ix, iy, 6. );
01449       if ( mePedestalPNG01_ ) mePedestalPNG01_->setBinContent( ix, iy, 6. );
01450       if ( mePedestalPNG16_ ) mePedestalPNG16_->setBinContent( ix, iy, 6. );
01451       if ( meTestPulsePNG01_ ) meTestPulsePNG01_->setBinContent( ix, iy, 6. );
01452       if ( meTestPulsePNG16_ ) meTestPulsePNG16_->setBinContent( ix, iy, 6. );
01453 
01454     }
01455   }
01456 
01457   for ( int ix = 1; ix <= 100; ix++ ) {
01458     for ( int iy = 1; iy <= 100; iy++ ) {
01459       if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setBinContent( ix, iy, 0. );
01460       if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setBinContent( ix, iy, 0. );
01461       if ( meTriggerTowerEmulError_[0] ) meTriggerTowerEmulError_[0]->setBinContent( ix, iy, 6. );
01462       if ( meTriggerTowerEmulError_[1] ) meTriggerTowerEmulError_[1]->setBinContent( ix, iy, 6. );
01463       if ( meTriggerTowerTiming_[0] ) meTriggerTowerTiming_[0]->setBinContent( ix, iy, 0. );
01464       if ( meTriggerTowerTiming_[1] ) meTriggerTowerTiming_[1]->setBinContent( ix, iy, 0. );
01465       if ( meTriggerTowerNonSingleTiming_[0] ) meTriggerTowerNonSingleTiming_[0]->setBinContent( ix, iy, -1 );
01466       if ( meTriggerTowerNonSingleTiming_[1] ) meTriggerTowerNonSingleTiming_[1]->setBinContent( ix, iy, -1 );
01467     }
01468   }
01469 
01470   if ( meIntegrity_[0] ) meIntegrity_[0]->setEntries( 0 );
01471   if ( meIntegrity_[1] ) meIntegrity_[1]->setEntries( 0 );
01472   if ( meIntegrityErr_ ) meIntegrityErr_->Reset();
01473   if ( meIntegrityPN_ ) meIntegrityPN_->setEntries( 0 );
01474   if ( meOccupancy_[0] ) meOccupancy_[0]->setEntries( 0 );
01475   if ( meOccupancy_[1] ) meOccupancy_[1]->setEntries( 0 );
01476   if ( meOccupancy1D_ ) meOccupancy1D_->Reset();
01477   if ( meOccupancyPN_ ) meOccupancyPN_->setEntries( 0 );
01478   if ( meStatusFlags_[0] ) meStatusFlags_[0]->setEntries( 0 );
01479   if ( meStatusFlags_[1] ) meStatusFlags_[1]->setEntries( 0 );
01480   if ( meStatusFlagsErr_ ) meStatusFlagsErr_->Reset();
01481   if ( mePedestalOnline_[0] ) mePedestalOnline_[0]->setEntries( 0 );
01482   if ( mePedestalOnline_[1] ) mePedestalOnline_[1]->setEntries( 0 );
01483   if ( mePedestalOnlineErr_ ) mePedestalOnlineErr_->Reset();
01484   if ( mePedestalOnlineMean_ ) mePedestalOnlineMean_->Reset();
01485   if ( mePedestalOnlineRMS_ ) mePedestalOnlineRMS_->Reset();
01486   if ( meLaserL1_[0] ) meLaserL1_[0]->setEntries( 0 );
01487   if ( meLaserL1_[1] ) meLaserL1_[1]->setEntries( 0 );
01488   if ( meLaserL1Err_ ) meLaserL1Err_->Reset();
01489   if ( meLaserL1PN_ ) meLaserL1PN_->setEntries( 0 );
01490   if ( meLaserL1PNErr_ ) meLaserL1PNErr_->Reset();
01491   if ( meLaserL1Ampl_ ) meLaserL1Ampl_->Reset();
01492   if ( meLaserL1Timing_ ) meLaserL1Timing_->Reset();
01493   if ( meLaserL1AmplOverPN_ ) meLaserL1AmplOverPN_->Reset();
01494   if ( meLaserL2_[0] ) meLaserL2_[0]->setEntries( 0 );
01495   if ( meLaserL2_[1] ) meLaserL2_[1]->setEntries( 0 );
01496   if ( meLaserL2Err_ ) meLaserL2Err_->Reset();
01497   if ( meLaserL2PN_ ) meLaserL2PN_->setEntries( 0 );
01498   if ( meLaserL2PNErr_ ) meLaserL2PNErr_->Reset();
01499   if ( meLaserL2Ampl_ ) meLaserL2Ampl_->Reset();
01500   if ( meLaserL2Timing_ ) meLaserL2Timing_->Reset();
01501   if ( meLaserL2AmplOverPN_ ) meLaserL2AmplOverPN_->Reset();
01502   if ( meLaserL3_[0] ) meLaserL3_[0]->setEntries( 0 );
01503   if ( meLaserL3_[1] ) meLaserL3_[1]->setEntries( 0 );
01504   if ( meLaserL3Err_ ) meLaserL3Err_->Reset();
01505   if ( meLaserL3PN_ ) meLaserL3PN_->setEntries( 0 );
01506   if ( meLaserL3PNErr_ ) meLaserL3PNErr_->Reset();
01507   if ( meLaserL3Ampl_ ) meLaserL3Ampl_->Reset();
01508   if ( meLaserL3Timing_ ) meLaserL3Timing_->Reset();
01509   if ( meLaserL3AmplOverPN_ ) meLaserL3AmplOverPN_->Reset();
01510   if ( meLaserL4_[0] ) meLaserL4_[0]->setEntries( 0 );
01511   if ( meLaserL4_[1] ) meLaserL4_[1]->setEntries( 0 );
01512   if ( meLaserL4Err_ ) meLaserL4Err_->Reset();
01513   if ( meLaserL4PN_ ) meLaserL4PN_->setEntries( 0 );
01514   if ( meLaserL4PNErr_ ) meLaserL4PNErr_->Reset();
01515   if ( meLaserL4Ampl_ ) meLaserL4Ampl_->Reset();
01516   if ( meLaserL4Timing_ ) meLaserL4Timing_->Reset();
01517   if ( meLaserL4AmplOverPN_ ) meLaserL4AmplOverPN_->Reset();
01518   if ( meLedL1_[0] ) meLedL1_[0]->setEntries( 0 );
01519   if ( meLedL1_[1] ) meLedL1_[1]->setEntries( 0 );
01520   if ( meLedL1Err_ ) meLedL1Err_->Reset();
01521   if ( meLedL1PN_ ) meLedL1PN_->setEntries( 0 );
01522   if ( meLedL1PNErr_ ) meLedL1PNErr_->Reset();
01523   if ( meLedL1Ampl_ ) meLedL1Ampl_->Reset();
01524   if ( meLedL1Timing_ ) meLedL1Timing_->Reset();
01525   if ( meLedL1AmplOverPN_ ) meLedL1AmplOverPN_->Reset();
01526   if ( meLedL2_[0] ) meLedL2_[0]->setEntries( 0 );
01527   if ( meLedL2_[1] ) meLedL2_[1]->setEntries( 0 );
01528   if ( meLedL2Err_ ) meLedL2Err_->Reset();
01529   if ( meLedL2PN_ ) meLedL2PN_->setEntries( 0 );
01530   if ( meLedL2PNErr_ ) meLedL2PNErr_->Reset();
01531   if ( meLedL2Ampl_ ) meLedL2Ampl_->Reset();
01532   if ( meLedL2Timing_ ) meLedL2Timing_->Reset();
01533   if ( meLedL2AmplOverPN_ ) meLedL2AmplOverPN_->Reset();
01534   if ( mePedestalG01_[0] ) mePedestalG01_[0]->setEntries( 0 );
01535   if ( mePedestalG01_[1] ) mePedestalG01_[1]->setEntries( 0 );
01536   if ( mePedestalG06_[0] ) mePedestalG06_[0]->setEntries( 0 );
01537   if ( mePedestalG06_[1] ) mePedestalG06_[1]->setEntries( 0 );
01538   if ( mePedestalG12_[0] ) mePedestalG12_[0]->setEntries( 0 );
01539   if ( mePedestalG12_[1] ) mePedestalG12_[1]->setEntries( 0 );
01540   if ( mePedestalPNG01_ ) mePedestalPNG01_->setEntries( 0 );
01541   if ( mePedestalPNG16_ ) mePedestalPNG16_->setEntries( 0 );
01542   if ( meTestPulseG01_[0] ) meTestPulseG01_[0]->setEntries( 0 );
01543   if ( meTestPulseG01_[1] ) meTestPulseG01_[1]->setEntries( 0 );
01544   if ( meTestPulseG06_[0] ) meTestPulseG06_[0]->setEntries( 0 );
01545   if ( meTestPulseG06_[1] ) meTestPulseG06_[1]->setEntries( 0 );
01546   if ( meTestPulseG12_[0] ) meTestPulseG12_[0]->setEntries( 0 );
01547   if ( meTestPulseG12_[1] ) meTestPulseG12_[1]->setEntries( 0 );
01548   if ( meTestPulsePNG01_ ) meTestPulsePNG01_->setEntries( 0 );
01549   if ( meTestPulsePNG16_ ) meTestPulsePNG16_->setEntries( 0 );
01550   if ( meTestPulseAmplG01_ ) meTestPulseAmplG01_->Reset();
01551   if ( meTestPulseAmplG06_ ) meTestPulseAmplG06_->Reset();
01552   if ( meTestPulseAmplG12_ ) meTestPulseAmplG12_->Reset();
01553 
01554   if ( meRecHitEnergy_[0] ) meRecHitEnergy_[0]->setEntries( 0 );
01555   if ( meRecHitEnergy_[1] ) meRecHitEnergy_[1]->setEntries( 0 );
01556   if ( meTiming_[0] ) meTiming_[0]->setEntries( 0 );
01557   if ( meTiming_[1] ) meTiming_[1]->setEntries( 0 );
01558   if ( meTimingMean1D_[0] ) meTimingMean1D_[0]->Reset();
01559   if ( meTimingMean1D_[1] ) meTimingMean1D_[1]->Reset();
01560   if ( meTimingRMS1D_[0] ) meTimingRMS1D_[0]->Reset();
01561   if ( meTimingRMS1D_[1] ) meTimingRMS1D_[1]->Reset();
01562   if ( meTimingMean_ ) meTimingMean_->Reset();
01563   if ( meTimingRMS_ ) meTimingRMS_->Reset();
01564   if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setEntries( 0 );
01565   if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setEntries( 0 );
01566   if ( meTriggerTowerEmulError_[0] ) meTriggerTowerEmulError_[0]->setEntries( 0 );
01567   if ( meTriggerTowerEmulError_[1] ) meTriggerTowerEmulError_[1]->setEntries( 0 );
01568   if ( meTriggerTowerTiming_[0] ) meTriggerTowerTiming_[0]->setEntries( 0 );
01569   if ( meTriggerTowerTiming_[1] ) meTriggerTowerTiming_[1]->setEntries( 0 );
01570   if ( meTriggerTowerNonSingleTiming_[0] ) meTriggerTowerNonSingleTiming_[0]->setEntries( 0 );
01571   if ( meTriggerTowerNonSingleTiming_[1] ) meTriggerTowerNonSingleTiming_[1]->setEntries( 0 );
01572 
01573   if ( meGlobalSummary_[0] ) meGlobalSummary_[0]->setEntries( 0 );
01574   if ( meGlobalSummary_[1] ) meGlobalSummary_[1]->setEntries( 0 );
01575 
01576   for ( unsigned int i=0; i<clients_.size(); i++ ) {
01577 
01578     EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
01579     EEStatusFlagsClient* eesfc = dynamic_cast<EEStatusFlagsClient*>(clients_[i]);
01580     EEPedestalOnlineClient* eepoc = dynamic_cast<EEPedestalOnlineClient*>(clients_[i]);
01581 
01582     EELaserClient* eelc = dynamic_cast<EELaserClient*>(clients_[i]);
01583     EELedClient* eeldc = dynamic_cast<EELedClient*>(clients_[i]);
01584     EEPedestalClient* eepc = dynamic_cast<EEPedestalClient*>(clients_[i]);
01585     EETestPulseClient* eetpc = dynamic_cast<EETestPulseClient*>(clients_[i]);
01586 
01587     EETimingClient* eetmc = dynamic_cast<EETimingClient*>(clients_[i]);
01588     EETriggerTowerClient* eetttc = dynamic_cast<EETriggerTowerClient*>(clients_[i]);
01589 
01590     MonitorElement *me;
01591     MonitorElement *me_01, *me_02, *me_03;
01592     MonitorElement *me_04, *me_05;
01593     //    MonitorElement *me_f[6], *me_fg[2];
01594     TH2F* h2;
01595     TH2F* h3;
01596 
01597     for ( unsigned int i=0; i<superModules_.size(); i++ ) {
01598 
01599       int ism = superModules_[i];
01600 
01601       char histo[200];
01602 
01603       sprintf(histo, (prefixME_ + "/EEOccupancyTask/EEOT rec hit energy %s").c_str(), Numbers::sEE(ism).c_str());
01604       me = dqmStore_->get(histo);
01605       hot01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hot01_[ism-1] );
01606 
01607       sprintf(histo, (prefixME_ + "/EEPedestalOnlineTask/Gain12/EEPOT pedestal %s G12").c_str(), Numbers::sEE(ism).c_str());
01608       me = dqmStore_->get(histo);
01609       hpot01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, hpot01_[ism-1] );
01610 
01611       sprintf(histo, (prefixME_ + "/EETriggerTowerTask/EETTT Et map Real Digis %s").c_str(), Numbers::sEE(ism).c_str());
01612       me = dqmStore_->get(histo);
01613       httt01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, httt01_[ism-1] );
01614 
01615       sprintf(histo, (prefixME_ + "/EETimingTask/EETMT timing %s").c_str(), Numbers::sEE(ism).c_str());
01616       me = dqmStore_->get(histo);
01617       htmt01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, htmt01_[ism-1] );
01618 
01619       sprintf(histo, (prefixME_ + "/EcalInfo/EEMM DCC").c_str());
01620       me = dqmStore_->get(histo);
01621       norm01_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, norm01_ );
01622 
01623       sprintf(histo, (prefixME_ + "/EERawDataTask/EERDT L1A FE errors").c_str());
01624       me = dqmStore_->get(histo);
01625       synch01_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, synch01_ );
01626 
01627       for ( int ix = 1; ix <= 50; ix++ ) {
01628         for ( int iy = 1; iy <= 50; iy++ ) {
01629 
01630           int jx = ix + Numbers::ix0EE(ism);
01631           int jy = iy + Numbers::iy0EE(ism);
01632 
01633           if ( ism >= 1 && ism <= 9 ) {
01634             if ( ! Numbers::validEE(ism, 101 - jx, jy) ) continue;
01635           } else {
01636             if ( ! Numbers::validEE(ism, jx, jy) ) continue;
01637           }
01638 
01639           if ( eeic ) {
01640 
01641             me = eeic->meg01_[ism-1];
01642 
01643             if ( me ) {
01644 
01645               float xval = me->getBinContent( ix, iy );
01646 
01647               if ( ism >= 1 && ism <= 9 ) {
01648                 meIntegrity_[0]->setBinContent( 101 - jx, jy, xval );
01649               } else {
01650                 meIntegrity_[1]->setBinContent( jx, jy, xval );
01651               }
01652 
01653               if ( xval == 0 ) meIntegrityErr_->Fill( ism );
01654 
01655             }
01656 
01657             h2 = eeic->h_[ism-1];
01658 
01659             if ( h2 ) {
01660 
01661               float xval = h2->GetBinContent( ix, iy );
01662 
01663               if ( ism >= 1 && ism <= 9 ) {
01664                 if ( xval != 0 ) meOccupancy_[0]->setBinContent( 101 - jx, jy, xval );
01665               } else {
01666                 if ( xval != 0 ) meOccupancy_[1]->setBinContent( jx, jy, xval );
01667               }
01668 
01669               meOccupancy1D_->Fill( ism, xval );
01670 
01671             }
01672 
01673           }
01674 
01675           if ( eepoc ) {
01676 
01677             me = eepoc->meg03_[ism-1];
01678 
01679             if ( me ) {
01680 
01681               float xval = me->getBinContent( ix, iy );
01682 
01683               if ( ism >= 1 && ism <= 9 ) {
01684                 mePedestalOnline_[0]->setBinContent( 101 - jx, jy, xval );
01685               } else {
01686                 mePedestalOnline_[1]->setBinContent( jx, jy, xval );
01687               }
01688 
01689               if ( xval == 0 ) mePedestalOnlineErr_->Fill( ism );
01690 
01691             }
01692 
01693             float num01, mean01, rms01;
01694             bool update01 = UtilsClient::getBinStatistics(hpot01_[ism-1], ix, iy, num01, mean01, rms01);
01695 
01696             if ( update01 ) {
01697 
01698               mePedestalOnlineRMS_->Fill( ism, rms01 );
01699               mePedestalOnlineMean_->Fill( ism, mean01 );
01700 
01701               if ( ism >= 1 && ism <= 9 ) {
01702                 mePedestalOnlineRMSMap_[0]->setBinContent( 101 - jx, jy, rms01 );
01703               } else {
01704                 mePedestalOnlineRMSMap_[1]->setBinContent( jx, jy, rms01 );
01705               }
01706 
01707             }
01708 
01709           }
01710 
01711           if ( eelc ) {
01712 
01713             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
01714 
01715               me = eelc->meg01_[ism-1];
01716 
01717               if ( me ) {
01718 
01719                 float xval = me->getBinContent( ix, iy );
01720 
01721                 if ( me->getEntries() != 0 ) {
01722                   if ( ism >= 1 && ism <= 9 ) {
01723                     meLaserL1_[0]->setBinContent( 101 - jx, jy, xval );
01724                   } else {
01725                     meLaserL1_[1]->setBinContent( jx, jy, xval );
01726                   }
01727 
01728                   if ( xval == 0 ) meLaserL1Err_->Fill( ism );
01729                 }
01730 
01731               }
01732 
01733             }
01734 
01735             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
01736 
01737               me = eelc->meg02_[ism-1];
01738 
01739               if ( me ) {
01740 
01741                 float xval = me->getBinContent( ix, iy );
01742 
01743                 if ( me->getEntries() != 0 ) {
01744                   if ( ism >= 1 && ism <= 9 ) {
01745                     meLaserL2_[0]->setBinContent( 101 - jx, jy, xval );
01746                   } else {
01747                     meLaserL2_[1]->setBinContent( jx, jy, xval );
01748                   }
01749 
01750                   if ( xval == 0 ) meLaserL2Err_->Fill( ism );
01751                 }
01752 
01753               }
01754 
01755             }
01756 
01757             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
01758 
01759               me = eelc->meg03_[ism-1];
01760 
01761               if ( me ) {
01762 
01763                 float xval = me->getBinContent( ix, iy );
01764 
01765                 if ( me->getEntries() != 0 ) {
01766                   if ( ism >= 1 && ism <= 9 ) {
01767                     meLaserL3_[0]->setBinContent( 101 - jx, jy, xval );
01768                   } else {
01769                     meLaserL3_[1]->setBinContent( jx, jy, xval );
01770                   }
01771 
01772                   if ( xval == 0 ) meLaserL3Err_->Fill( ism );
01773                 }
01774 
01775               }
01776 
01777             }
01778 
01779             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
01780 
01781               me = eelc->meg04_[ism-1];
01782 
01783               if ( me ) {
01784 
01785                 float xval = me->getBinContent( ix, iy );
01786 
01787                 if ( me->getEntries() != 0 ) {
01788                   if ( ism >= 1 && ism <= 9 ) {
01789                     meLaserL4_[0]->setBinContent( 101 - jx, jy, xval );
01790                   } else {
01791                     meLaserL4_[1]->setBinContent( jx, jy, xval );
01792                   }
01793 
01794                   if ( xval == 0 ) meLaserL4Err_->Fill( ism );
01795                 }
01796 
01797               }
01798 
01799             }
01800 
01801           }
01802 
01803           if ( eeldc ) {
01804 
01805             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
01806 
01807               me = eeldc->meg01_[ism-1];
01808 
01809               if ( me ) {
01810 
01811                 float xval = me->getBinContent( ix, iy );
01812 
01813                 if ( me->getEntries() != 0 ) {
01814                   if ( ism >= 1 && ism <= 9 ) {
01815                     meLedL1_[0]->setBinContent( 101 - jx, jy, xval );
01816                   } else {
01817                     meLedL1_[1]->setBinContent( jx, jy, xval );
01818                   }
01819 
01820                   if ( xval == 0 ) meLedL1Err_->Fill( ism );
01821                 }
01822 
01823               }
01824 
01825             }
01826 
01827             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
01828 
01829               me = eeldc->meg02_[ism-1];
01830 
01831               if ( me ) {
01832 
01833                 float xval = me->getBinContent( ix, iy );
01834 
01835                 if ( me->getEntries() != 0 ) {
01836                   if ( ism >= 1 && ism <= 9 ) {
01837                     meLedL2_[0]->setBinContent( 101 - jx, jy, xval );
01838                   } else {
01839                     meLedL2_[1]->setBinContent( jx, jy, xval );
01840                   }
01841 
01842                   if ( xval == 0 ) meLedL2Err_->Fill( ism );
01843                 }
01844 
01845               }
01846 
01847             }
01848 
01849           }
01850 
01851           if ( eepc ) {
01852 
01853             me_01 = eepc->meg01_[ism-1];
01854             me_02 = eepc->meg02_[ism-1];
01855             me_03 = eepc->meg03_[ism-1];
01856 
01857             if ( me_01 ) {
01858               float val_01=me_01->getBinContent(ix,iy);
01859               if ( me_01->getEntries() != 0 ) {
01860                 if ( ism >= 1 && ism <= 9 ) {
01861                   mePedestalG01_[0]->setBinContent( 101 - jx, jy, val_01 );
01862                 } else {
01863                   mePedestalG01_[1]->setBinContent( jx, jy, val_01 );
01864                 }
01865               }
01866             }
01867             if ( me_02 ) {
01868               float val_02=me_02->getBinContent(ix,iy);
01869               if ( me_02->getEntries() != 0 ) {
01870                 if ( ism >= 1 && ism <= 9 ) {
01871                   mePedestalG06_[0]->setBinContent( 101 - jx, jy, val_02 );
01872                 } else {
01873                   mePedestalG06_[1]->setBinContent( jx, jy, val_02 );
01874                 }
01875               }
01876             }
01877             if ( me_03 ) {
01878               float val_03=me_03->getBinContent(ix,iy);
01879               if ( me_03->getEntries() != 0 ) {
01880                 if ( ism >= 1 && ism <= 9 ) {
01881                   mePedestalG12_[0]->setBinContent( 101 - jx, jy, val_03 );
01882                 } else {
01883                   mePedestalG12_[1]->setBinContent( jx, jy, val_03 );
01884                 }
01885               }
01886             }
01887 
01888           }
01889 
01890           if ( eetpc ) {
01891 
01892             me_01 = eetpc->meg01_[ism-1];
01893             me_02 = eetpc->meg02_[ism-1];
01894             me_03 = eetpc->meg03_[ism-1];
01895 
01896             if ( me_01 ) {
01897               float val_01=me_01->getBinContent(ix,iy);
01898               if ( me_01->getEntries() != 0 ) {
01899                 if ( ism >= 1 && ism <= 9 ) {
01900                   meTestPulseG01_[0]->setBinContent( 101 - jx, jy, val_01 );
01901                 } else {
01902                   meTestPulseG01_[1]->setBinContent( jx, jy, val_01 );
01903                 }
01904               }
01905             }
01906             if ( me_02 ) {
01907               float val_02=me_02->getBinContent(ix,iy);
01908               if ( me_02->getEntries() != 0 ) {
01909                 if ( ism >= 1 && ism <= 9 ) {
01910                   meTestPulseG06_[0]->setBinContent( 101 - jx, jy, val_02 );
01911                 } else {
01912                   meTestPulseG06_[1]->setBinContent( jx, jy, val_02 );
01913                 }
01914               }
01915             }
01916             if ( me_03 ) {
01917               float val_03=me_03->getBinContent(ix,iy);
01918               if ( me_03->getEntries() != 0 ) {
01919                 if ( ism >= 1 && ism <= 9 ) {
01920                   meTestPulseG12_[0]->setBinContent( 101 - jx, jy, val_03 );
01921                 } else {
01922                   meTestPulseG12_[1]->setBinContent( jx, jy, val_03 );
01923                 }
01924               }
01925             }
01926 
01927           }
01928 
01929           if ( hot01_[ism-1] ) {
01930 
01931             float xval = hot01_[ism-1]->GetBinContent( ix, iy );
01932 
01933             if ( ism >= 1 && ism <= 9 ) {
01934               meRecHitEnergy_[0]->setBinContent( 101 - jx, jy, xval );
01935             } else {
01936               meRecHitEnergy_[1]->setBinContent( jx, jy, xval );
01937             }
01938 
01939           }
01940 
01941           if ( eetmc ) {
01942 
01943             me = eetmc->meg01_[ism-1];
01944 
01945             if ( me ) {
01946 
01947               float xval = me->getBinContent( ix, iy );
01948 
01949               if ( ism >= 1 && ism <= 9 ) {
01950                 meTiming_[0]->setBinContent( 101 - jx, jy, xval );
01951               } else {
01952                 meTiming_[1]->setBinContent( jx, jy, xval );
01953               }
01954 
01955             }
01956 
01957             float num02, mean02, rms02;
01958             bool update02 = UtilsClient::getBinStatistics(htmt01_[ism-1], ix, iy, num02, mean02, rms02);
01959             // Task timing map is shifted of +50 ns for graphical reasons. Shift back it.
01960             mean02 -= 50.;
01961 
01962             if ( update02 ) {
01963 
01964               if ( ism >= 1 && ism <= 9 ) {
01965                 meTimingMean1D_[0]->Fill(mean02);
01966                 meTimingRMS1D_[0]->Fill(rms02);
01967               } else {
01968                 meTimingMean1D_[1]->Fill(mean02);
01969                 meTimingRMS1D_[1]->Fill(rms02);
01970               }
01971 
01972               meTimingMean_->Fill( ism, mean02 );
01973 
01974               meTimingRMS_->Fill( ism, rms02 );
01975 
01976             }
01977 
01978           }
01979 
01980         }
01981       }
01982 
01983       for ( int ix = 1; ix <= 50; ix++ ) {
01984         for ( int iy = 1; iy <= 50; iy++ ) {
01985 
01986           int jx = ix + Numbers::ix0EE(ism);
01987           int jy = iy + Numbers::iy0EE(ism);
01988 
01989           if ( ism >= 1 && ism <= 9 ) {
01990             if ( ! Numbers::validEE(ism, 101 - jx, jy) ) continue;
01991           } else {
01992             if ( ! Numbers::validEE(ism, jx, jy) ) continue;
01993           }
01994 
01995           if ( eesfc ) {
01996 
01997             me = dqmStore_->get(prefixME_ + "/EcalInfo/EEMM DCC");
01998 
01999             float xval = 6;
02000 
02001             if ( me ) {
02002 
02003               xval = 2;
02004               if ( me->getBinContent( ism ) > 0 ) xval = 1;
02005 
02006             }
02007 
02008             me = eesfc->meh01_[ism-1];
02009 
02010             if ( me ) {
02011 
02012               if ( me->getBinContent( ix, iy ) > 0 ) xval = 0;
02013 
02014               if ( ism >= 1 && ism <= 9 ) {
02015 
02016                 meStatusFlags_[0]->setBinContent( 101 - jx, jy, xval );
02017 
02018                 if ( me->getBinError( ix, iy ) > 0 && me->getBinError( ix, iy ) < 0.1 ) {
02019                   UtilsClient::maskBinContent( meStatusFlags_[0], 101 - jx, jy );
02020                 }
02021               } else {
02022 
02023                 meStatusFlags_[1]->setBinContent( jx, jy, xval );
02024 
02025                 if ( me->getBinError( ix, iy ) > 0 && me->getBinError( ix, iy ) < 0.1 ) {
02026                   UtilsClient::maskBinContent( meStatusFlags_[1], jx, jy );
02027                 }
02028               }
02029 
02030               if ( xval == 0 ) meStatusFlagsErr_->Fill( ism );
02031 
02032             }
02033 
02034           }
02035 
02036         }
02037       }
02038 
02039       for ( int ix = 1; ix <= 50; ix++ ) {
02040         for ( int iy = 1; iy <= 50; iy++ ) {
02041 
02042           int jx = ix + Numbers::ix0EE(ism);
02043           int jy = iy + Numbers::iy0EE(ism);
02044 
02045           if ( eetttc ) {
02046 
02047             float mean01 = 0;
02048             bool hadNonZeroInterest = false;
02049 
02050             if ( httt01_[ism-1] ) {
02051 
02052               mean01 = httt01_[ism-1]->GetBinContent( ix, iy );
02053 
02054               if ( mean01 != 0. ) {
02055                 if ( ism >= 1 && ism <= 9 ) {
02056                   if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setBinContent( 101 - jx, jy, mean01 );
02057                 } else {
02058                   if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setBinContent( jx, jy, mean01 );
02059                 }
02060               }
02061 
02062             }
02063 
02064             me = eetttc->me_o01_[ism-1];
02065 
02066             if ( me ) {
02067 
02068               float xval = me->getBinContent( ix, iy );
02069 
02070               if ( xval != 0. ) {
02071                 if ( ism >= 1 && ism <= 9 ) {
02072                   meTriggerTowerTiming_[0]->setBinContent( 101 - jx, jy, xval );
02073                 } else {
02074                   meTriggerTowerTiming_[1]->setBinContent( jx, jy, xval );
02075                 }
02076                 hadNonZeroInterest = true;
02077               }
02078 
02079             }
02080 
02081             me = eetttc->me_o02_[ism-1];
02082 
02083             if ( me ) {
02084 
02085               float xval = me->getBinContent( ix, iy );
02086 
02087               if ( xval != 0. ) {
02088                 if ( ism >= 1 && ism <= 9 ) {
02089                   meTriggerTowerNonSingleTiming_[0]->setBinContent( 101 - jx, jy, xval );
02090                 } else {
02091                   meTriggerTowerNonSingleTiming_[1]->setBinContent( jx, jy, xval );
02092                 }
02093               }
02094 
02095             }
02096 
02097             float xval = 2;
02098             if( mean01 > 0. ) {
02099 
02100               h2 = eetttc->l01_[ism-1];
02101               h3 = eetttc->l02_[ism-1];
02102 
02103               if ( h2 && h3 ) {
02104 
02105                 // float emulErrorVal = h2->GetBinContent( ix, iy ) + h3->GetBinContent( ix, iy );
02106                 float emulErrorVal = h2->GetBinContent( ix, iy );
02107 
02108                 if( emulErrorVal!=0 && hadNonZeroInterest ) xval = 0;
02109 
02110               }
02111 
02112               if ( xval!=0 && hadNonZeroInterest ) xval = 1;
02113 
02114             }
02115 
02116             // see fix below
02117             if ( xval == 2 ) continue;
02118 
02119             if ( ism >= 1 && ism <= 9 ) {
02120               meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, xval );
02121             } else {
02122               meTriggerTowerEmulError_[1]->setBinContent( jx, jy, xval );
02123             }
02124 
02125           }
02126 
02127         }
02128       }
02129 
02130       // PN's summaries
02131       for( int i = 1; i <= 10; i++ ) {
02132         for( int j = 1; j <= 5; j++ ) {
02133 
02134           int ichanx;
02135           int ipseudostripx;
02136 
02137           if(ism<=9) {
02138             ichanx = i;
02139             ipseudostripx = (ism<=3) ? j+5*(ism-1+6) : j+5*(ism-1-3);
02140           } else {
02141             ichanx = i+10;
02142             ipseudostripx = (ism<=12) ? j+5*(ism-10+6) : j+5*(ism-10-3);
02143           }
02144 
02145           if ( eeic ) {
02146 
02147             me_04 = eeic->meg02_[ism-1];
02148             h2 = eeic->hmem_[ism-1];
02149 
02150 
02151             if( me_04 ) {
02152 
02153               float xval = me_04->getBinContent(i,j);
02154               meIntegrityPN_->setBinContent( ipseudostripx, ichanx, xval );
02155 
02156             }
02157 
02158             if ( h2 ) {
02159 
02160               float xval = h2->GetBinContent(i,1);
02161               meOccupancyPN_->setBinContent( ipseudostripx, ichanx, xval );
02162 
02163             }
02164 
02165           }
02166 
02167           if ( eepc ) {
02168 
02169             me_04 = eepc->meg04_[ism-1];
02170             me_05 = eepc->meg05_[ism-1];
02171 
02172             if( me_04 ) {
02173               float val_04=me_04->getBinContent(i,1);
02174               mePedestalPNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
02175             }
02176             if( me_05 ) {
02177               float val_05=me_05->getBinContent(i,1);
02178               mePedestalPNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
02179             }
02180 
02181           }
02182 
02183           if ( eetpc ) {
02184 
02185             me_04 = eetpc->meg04_[ism-1];
02186             me_05 = eetpc->meg05_[ism-1];
02187 
02188             if( me_04 ) {
02189               float val_04=me_04->getBinContent(i,1);
02190               meTestPulsePNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
02191             }
02192             if( me_05 ) {
02193               float val_05=me_05->getBinContent(i,1);
02194               meTestPulsePNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
02195             }
02196 
02197           }
02198 
02199           if ( eelc ) {
02200 
02201             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02202 
02203               me = eelc->meg09_[ism-1];
02204 
02205               if( me ) {
02206 
02207                 float xval = me->getBinContent(i,1);
02208 
02209                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02210                   meLaserL1PN_->setBinContent( ipseudostripx, ichanx, xval );
02211                   if ( xval == 0 ) meLaserL1PNErr_->Fill( ism );
02212                 }
02213 
02214               }
02215 
02216             }
02217 
02218             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02219 
02220               me = eelc->meg10_[ism-1];
02221 
02222               if( me ) {
02223 
02224                 float xval = me->getBinContent(i,1);
02225 
02226                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02227                   meLaserL2PN_->setBinContent( ipseudostripx, ichanx, xval );
02228                   if ( xval == 0 ) meLaserL2PNErr_->Fill( ism );
02229                 }
02230 
02231               }
02232 
02233             }
02234 
02235             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02236 
02237               me = eelc->meg11_[ism-1];
02238 
02239               if( me ) {
02240 
02241                 float xval = me->getBinContent(i,1);
02242 
02243                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02244                   meLaserL3PN_->setBinContent( ipseudostripx, ichanx, xval );
02245                   if ( xval == 0 ) meLaserL3PNErr_->Fill( ism );
02246                 }
02247 
02248               }
02249 
02250             }
02251 
02252             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02253 
02254               me = eelc->meg12_[ism-1];
02255 
02256               if( me ) {
02257 
02258                 float xval = me->getBinContent(i,1);
02259 
02260                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02261                   meLaserL4PN_->setBinContent( ipseudostripx, ichanx, xval );
02262                   if ( xval == 0 ) meLaserL4PNErr_->Fill( ism );
02263                 }
02264 
02265               }
02266 
02267             }
02268 
02269           }
02270 
02271           if ( eeldc ) {
02272 
02273             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02274 
02275               me = eeldc->meg09_[ism-1];
02276 
02277               if( me ) {
02278 
02279                 float xval = me->getBinContent(i,1);
02280 
02281                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02282                   meLedL1PN_->setBinContent( ipseudostripx, ichanx, xval );
02283                   if ( xval == 0 ) meLedL1PNErr_->Fill( ism );
02284                 }
02285 
02286               }
02287 
02288             }
02289 
02290             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02291 
02292               me = eeldc->meg10_[ism-1];
02293 
02294               if( me ) {
02295 
02296                 float xval = me->getBinContent(i,1);
02297 
02298                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02299                   meLedL2PN_->setBinContent( ipseudostripx, ichanx, xval );
02300                   if ( xval == 0 ) meLedL2PNErr_->Fill( ism );
02301                 }
02302 
02303               }
02304 
02305             }
02306 
02307           }
02308 
02309         }
02310       }
02311 
02312       for ( int ix=1; ix<=50; ix++ ) {
02313         for (int iy=1; iy<=50; iy++ ) {
02314 
02315           int jx = ix + Numbers::ix0EE(ism);
02316           int jy = iy + Numbers::iy0EE(ism);
02317 
02318           int ic = -1;
02319           if ( ism >= 1 && ism <= 9 ) {
02320             ic = Numbers::icEE(ism, 101 - jx, jy);
02321           } else {
02322             ic = Numbers::icEE(ism, jx, jy);
02323           }
02324 
02325           if( ic != -1 ) {
02326 
02327             if ( eelc ) {
02328 
02329               if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02330 
02331                 MonitorElement *meg = eelc->meg01_[ism-1];
02332 
02333                 float xval = 2;
02334                 if ( meg ) xval = meg->getBinContent( ix, iy );
02335 
02336                 // exclude channels without laser data (yellow in the quality map)
02337                 if( xval != 2 && xval != 5 ) {
02338 
02339                   MonitorElement* mea01 = eelc->mea01_[ism-1];
02340                   MonitorElement* met01 = eelc->met01_[ism-1];
02341                   MonitorElement* meaopn01 = eelc->meaopn01_[ism-1];
02342 
02343                   if( mea01 && met01 && meaopn01 ) {
02344                     meLaserL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
02345                     if( met01->getBinContent( ic ) > 0. ) meLaserL1Timing_->Fill( ism, met01->getBinContent( ic ) );
02346                     meLaserL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
02347                   }
02348 
02349                 }
02350 
02351               }
02352 
02353               if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02354 
02355                 MonitorElement *meg = eelc->meg02_[ism-1];
02356 
02357                 float xval = 2;
02358                 if ( meg ) xval = meg->getBinContent( ix, iy );
02359 
02360                 // exclude channels without laser data (yellow in the quality map)
02361                 if( xval != 2 && xval != 5 ) {
02362 
02363                   MonitorElement* mea02 = eelc->mea02_[ism-1];
02364                   MonitorElement* met02 = eelc->met02_[ism-1];
02365                   MonitorElement* meaopn02 = eelc->meaopn02_[ism-1];
02366 
02367                   if( mea02 && met02 && meaopn02 ) {
02368                     meLaserL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
02369                     if( met02->getBinContent( ic ) > 0. ) meLaserL2Timing_->Fill( ism, met02->getBinContent( ic ) );
02370                     meLaserL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
02371                   }
02372 
02373                 }
02374 
02375               }
02376 
02377               if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02378 
02379                 MonitorElement *meg = eelc->meg03_[ism-1];
02380 
02381                 float xval = 2;
02382                 if ( meg ) xval = meg->getBinContent( ix, iy );
02383 
02384                 // exclude channels without laser data (yellow in the quality map)
02385                 if( xval != 2 && xval != 5 ) {
02386 
02387                   MonitorElement* mea03 = eelc->mea03_[ism-1];
02388                   MonitorElement* met03 = eelc->met03_[ism-1];
02389                   MonitorElement* meaopn03 = eelc->meaopn03_[ism-1];
02390 
02391                   if( mea03 && met03 && meaopn03 ) {
02392                     meLaserL3Ampl_->Fill( ism, mea03->getBinContent( ic ) );
02393                     if( met03->getBinContent( ic ) > 0. ) meLaserL3Timing_->Fill( ism, met03->getBinContent( ic ) );
02394                     meLaserL3AmplOverPN_->Fill( ism, meaopn03->getBinContent( ic ) );
02395                   }
02396 
02397                 }
02398 
02399               }
02400 
02401               if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02402 
02403                 MonitorElement *meg = eelc->meg04_[ism-1];
02404 
02405                 float xval = 2;
02406                 if ( meg ) xval = meg->getBinContent( ix, iy );
02407 
02408                 // exclude channels without laser data (yellow in the quality map)
02409                 if( xval != 2 && xval != 5 ) {
02410 
02411                   MonitorElement* mea04 = eelc->mea04_[ism-1];
02412                   MonitorElement* met04 = eelc->met04_[ism-1];
02413                   MonitorElement* meaopn04 = eelc->meaopn04_[ism-1];
02414 
02415                   if( mea04 && met04 && meaopn04 ) {
02416                     meLaserL4Ampl_->Fill( ism, mea04->getBinContent( ic ) );
02417                     if( met04->getBinContent( ic ) > 0. ) meLaserL4Timing_->Fill( ism, met04->getBinContent( ic ) );
02418                     meLaserL4AmplOverPN_->Fill( ism, meaopn04->getBinContent( ic ) );
02419                   }
02420 
02421                 }
02422 
02423               }
02424 
02425             }
02426 
02427             if ( eeldc ) {
02428 
02429               if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02430 
02431                 MonitorElement *meg = eeldc->meg01_[ism-1];
02432 
02433                 float xval = 2;
02434                 if ( meg )  xval = meg->getBinContent( ix, iy );
02435 
02436                 // exclude channels without led data (yellow in the quality map)
02437                 if( xval != 2 && xval != 5 ) {
02438 
02439                   MonitorElement* mea01 = eeldc->mea01_[ism-1];
02440                   MonitorElement* met01 = eeldc->met01_[ism-1];
02441                   MonitorElement* meaopn01 = eeldc->meaopn01_[ism-1];
02442 
02443                   if( mea01 && met01 && meaopn01 ) {
02444                     meLedL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
02445                     if( met01->getBinContent( ic ) > 0. ) meLedL1Timing_->Fill( ism, met01->getBinContent( ic ) );
02446                     meLedL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
02447                   }
02448 
02449                 }
02450 
02451               }
02452 
02453               if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02454 
02455                 MonitorElement *meg = eeldc->meg02_[ism-1];
02456 
02457                 float xval = 2;
02458                 if ( meg )  xval = meg->getBinContent( ix, iy );
02459 
02460                 // exclude channels without led data (yellow in the quality map)
02461                 if( xval != 2 && xval != 5 ) {
02462 
02463                   MonitorElement* mea02 = eeldc->mea02_[ism-1];
02464                   MonitorElement* met02 = eeldc->met02_[ism-1];
02465                   MonitorElement* meaopn02 = eeldc->meaopn02_[ism-1];
02466 
02467                   if( mea02 && met02 && meaopn02 ) {
02468                     meLedL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
02469                     if( met02->getBinContent( ic ) > 0. ) meLedL2Timing_->Fill( ism, met02->getBinContent( ic ) );
02470                     meLedL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
02471                   }
02472 
02473                 }
02474 
02475               }
02476 
02477             }
02478 
02479             if ( eetpc ) {
02480 
02481               MonitorElement *meg01 = eetpc->meg01_[ism-1];
02482               MonitorElement *meg02 = eetpc->meg02_[ism-1];
02483               MonitorElement *meg03 = eetpc->meg03_[ism-1];
02484 
02485               if ( meg01 ) {
02486 
02487                 float xval01 = meg01->getBinContent( ix, iy );
02488 
02489                 if ( xval01 != 2 && xval01 != 5 ) {
02490 
02491                   me = eetpc->mea01_[ism-1];
02492 
02493                   if ( me ) {
02494 
02495                     meTestPulseAmplG01_->Fill( ism, me->getBinContent( ic ) );
02496 
02497                   }
02498 
02499                 }
02500 
02501               }
02502 
02503               if ( meg02 ) {
02504 
02505                 float xval02 = meg02->getBinContent( ix, iy );
02506 
02507                 if ( xval02 != 2 && xval02 != 5 ) {
02508 
02509                   me = eetpc->mea02_[ism-1];
02510 
02511                   if ( me ) {
02512 
02513                     meTestPulseAmplG06_->Fill( ism, me->getBinContent( ic ) );
02514 
02515                   }
02516 
02517                 }
02518 
02519               }
02520 
02521               if ( meg03 ) {
02522 
02523                 float xval03 = meg03->getBinContent( ix, iy );
02524 
02525                 if ( xval03 != 2 && xval03 != 5 ) {
02526 
02527                   me = eetpc->mea03_[ism-1];
02528 
02529                   if ( me ) {
02530 
02531                     meTestPulseAmplG12_->Fill( ism, me->getBinContent( ic ) );
02532 
02533                   }
02534 
02535                 }
02536 
02537               }
02538 
02539             } //etpc
02540 
02541           }
02542 
02543         } // loop on jy
02544       } // loop on jx
02545 
02546     } // loop on SM
02547 
02548     // fix TPG quality plots
02549 
02550     for ( unsigned int i=0; i<superModules_.size(); i++ ) {
02551 
02552       int ism = superModules_[i];
02553 
02554       for ( int ix = 1; ix <= 50; ix++ ) {
02555         for ( int iy = 1; iy <= 50; iy++ ) {
02556 
02557           int jx = ix + Numbers::ix0EE(ism);
02558           int jy = iy + Numbers::iy0EE(ism);
02559 
02560           if ( eetttc ) {
02561 
02562             if ( ism >= 1 && ism <= 9 ) {
02563               if ( meTriggerTowerEmulError_[0]->getBinContent( 101 - jx, jy ) == 6 ) {
02564                 if ( Numbers::validEE(ism, 101 - jx, jy) ) meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, 2 );
02565               }
02566             } else {
02567               if ( meTriggerTowerEmulError_[1]->getBinContent( jx, jy ) == 6 ) {
02568                 if ( Numbers::validEE(ism, jx, jy) ) meTriggerTowerEmulError_[1]->setBinContent( jx, jy, 2 );
02569               }
02570             }
02571 
02572           }
02573 
02574         }
02575       }
02576 
02577     }
02578 
02579   } // loop on clients
02580 
02581   // The global-summary
02582   int nGlobalErrors = 0;
02583   int nGlobalErrorsEE[18];
02584   int nValidChannels = 0;
02585   int nValidChannelsEE[18];
02586 
02587   for (int i = 0; i < 18; i++) {
02588     nGlobalErrorsEE[i] = 0;
02589     nValidChannelsEE[i] = 0;
02590   }
02591 
02592   for ( int jx = 1; jx <= 100; jx++ ) {
02593     for ( int jy = 1; jy <= 100; jy++ ) {
02594 
02595       if(meIntegrity_[0] && mePedestalOnline_[0] && meTiming_[0] && meStatusFlags_[0] && meTriggerTowerEmulError_[0]) {
02596 
02597         float xval = 6;
02598         float val_in = meIntegrity_[0]->getBinContent(jx,jy);
02599         float val_po = mePedestalOnline_[0]->getBinContent(jx,jy);
02600         float val_tm = meTiming_[0]->getBinContent(jx,jy);
02601         float val_sf = meStatusFlags_[0]->getBinContent(jx,jy);
02602         // float val_ee = meTriggerTowerEmulError_[0]->getBinContent(jx,jy); // removed temporarily from the global summary
02603         float val_ee = 1;
02604 
02605         // combine all the available wavelenghts in unique laser status
02606         // for each laser turn dark color and yellow into bright green
02607         float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
02608         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02609           if ( meLaserL1_[0] ) val_ls_1 = meLaserL1_[0]->getBinContent(jx,jy);
02610           if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
02611         }
02612         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02613           if ( meLaserL2_[0] ) val_ls_2 = meLaserL2_[0]->getBinContent(jx,jy);
02614           if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
02615         }
02616         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02617           if ( meLaserL3_[0] ) val_ls_3 = meLaserL3_[0]->getBinContent(jx,jy);
02618           if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
02619         }
02620         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02621           if ( meLaserL4_[0] ) val_ls_4 = meLaserL4_[0]->getBinContent(jx,jy);
02622           if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
02623         }
02624 
02625         float val_ls = 1;
02626         if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
02627 
02628         // combine all the available wavelenghts in unique led status
02629         // for each laser turn dark color and yellow into bright green
02630         float val_ld_1=2, val_ld_2=2;
02631         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02632           if ( meLedL1_[0] ) val_ld_1 = meLedL1_[0]->getBinContent(jx,jy);
02633           if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
02634         }
02635         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02636           if ( meLedL2_[0] ) val_ld_2 = meLedL2_[0]->getBinContent(jx,jy);
02637           if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
02638         }
02639 
02640         float val_ld = 1;
02641         if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;
02642 
02643         // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY UNTIL LHC COLLISIONS
02644         val_ls = 1;
02645         val_ld = 1;
02646 
02647         // turn each dark color (masked channel) to bright green
02648         // for laser & timing & trigger turn also yellow into bright green
02649         // for pedestal online too because is not computed in calibration events
02650 
02651         //  0/3 = red/dark red
02652         //  1/4 = green/dark green
02653         //  2/5 = yellow/dark yellow
02654         //  6   = unknown
02655 
02656         if(             val_in==3 || val_in==4 || val_in==5) val_in=1;
02657         if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
02658         if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
02659         if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
02660         if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
02661         if(             val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
02662         if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
02663 
02664         if(val_in==6) xval=6;
02665         else if(val_in==0) xval=0;
02666         else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
02667         else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
02668         else xval=1;
02669 
02670         bool validCry = false;
02671 
02672         // if the SM is entirely not read, the masked channels
02673         // are reverted back to yellow
02674         float iEntries=0;
02675 
02676         for(int ism = 1; ism <= 9; ism++) {
02677           std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
02678           if (iter != superModules_.end()) {
02679             if ( Numbers::validEE(ism, jx, jy) ) {
02680               validCry = true;
02681 
02682               // recycle the validEE for the synch check of the DCC
02683               if(norm01_ && synch01_) {
02684                 float frac_synch_errors = 0.;
02685                 float norm = norm01_->GetBinContent(ism);
02686                 if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
02687                 float val_sy = (frac_synch_errors <= synchErrorThreshold_);
02688                 if(val_sy==0) xval=0;
02689               }
02690 
02691               for ( unsigned int i=0; i<clients_.size(); i++ ) {
02692                 EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
02693                 if ( eeic ) {
02694                   TH2F* h2 = eeic->h_[ism-1];
02695                   if ( h2 ) {
02696                     iEntries = h2->GetEntries();
02697                   }
02698                 }
02699               }
02700             }
02701           }
02702         }
02703 
02704         if ( validCry && iEntries==0 ) {
02705           xval=2;
02706         }
02707 
02708         meGlobalSummary_[0]->setBinContent( jx, jy, xval );
02709 
02710         if ( xval >= 0 && xval <= 5 ) {
02711           if ( xval != 2 && xval != 5 ) ++nValidChannels;
02712           for (int i = 1; i <= 9; i++) {
02713             if ( xval != 2 && xval != 5 ) {
02714               if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
02715             }
02716           }
02717           if ( xval == 0 ) ++nGlobalErrors;
02718           for (int i = 1; i <= 9; i++) {
02719             if ( xval == 0 ) {
02720               if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
02721             }
02722           }
02723         }
02724 
02725       }
02726 
02727       if(meIntegrity_[1] && mePedestalOnline_[1] && meTiming_[1] && meStatusFlags_[1] && meTriggerTowerEmulError_[1]) {
02728 
02729         float xval = 6;
02730         float val_in = meIntegrity_[1]->getBinContent(jx,jy);
02731         float val_po = mePedestalOnline_[1]->getBinContent(jx,jy);
02732         float val_tm = meTiming_[1]->getBinContent(jx,jy);
02733         float val_sf = meStatusFlags_[1]->getBinContent(jx,jy);
02734         // float val_ee = meTriggerTowerEmulError_[1]->getBinContent(jx,jy); // removed temporarily from the global summary
02735         float val_ee = 1;
02736 
02737         // combine all the available wavelenghts in unique laser status
02738         // for each laser turn dark color and yellow into bright green
02739         float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
02740         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02741           if ( meLaserL1_[1] ) val_ls_1 = meLaserL1_[1]->getBinContent(jx,jy);
02742           if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
02743         }
02744         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02745           if ( meLaserL2_[1] ) val_ls_2 = meLaserL2_[1]->getBinContent(jx,jy);
02746           if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
02747         }
02748         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02749           if ( meLaserL3_[1] ) val_ls_3 = meLaserL3_[1]->getBinContent(jx,jy);
02750           if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
02751         }
02752         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02753           if ( meLaserL4_[1] ) val_ls_4 = meLaserL4_[1]->getBinContent(jx,jy);
02754           if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
02755         }
02756 
02757         float val_ls = 1;
02758         if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
02759 
02760         // combine all the available wavelenghts in unique laser status
02761         // for each laser turn dark color and yellow into bright green
02762         float val_ld_1=2, val_ld_2=2;
02763         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02764           if ( meLedL1_[1] ) val_ld_1 = meLedL1_[1]->getBinContent(jx,jy);
02765           if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
02766         }
02767         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02768           if ( meLedL2_[1] ) val_ld_2 = meLedL2_[1]->getBinContent(jx,jy);
02769           if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
02770         }
02771 
02772         float val_ld = 1;
02773         if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;
02774 
02775         // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY UNTIL LHC COLLISIONS
02776         val_ls = 1;
02777         val_ld = 1;
02778 
02779         // turn each dark color to bright green
02780         // for laser & timing & trigger turn also yellow into bright green
02781         // for pedestal online too because is not computed in calibration events
02782 
02783         //  0/3 = red/dark red
02784         //  1/4 = green/dark green
02785         //  2/5 = yellow/dark yellow
02786         //  6   = unknown
02787 
02788         if(             val_in==3 || val_in==4 || val_in==5) val_in=1;
02789         if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
02790         if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
02791         if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
02792         if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
02793         if(             val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
02794         if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
02795 
02796         if(val_in==6) xval=6;
02797         else if(val_in==0) xval=0;
02798         else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
02799         else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
02800         else xval=1;
02801 
02802         bool validCry = false;
02803 
02804         // if the SM is entirely not read, the masked channels
02805         // are reverted back in yellow
02806         float iEntries=0;
02807 
02808         for(int ism = 10; ism <= 18; ism++) {
02809           std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
02810           if (iter != superModules_.end()) {
02811             if ( Numbers::validEE(ism, jx, jy) ) {
02812               validCry = true;
02813 
02814               // recycle the validEE for the synch check of the DCC
02815               if(norm01_ && synch01_) {
02816                 float frac_synch_errors = 0.;
02817                 float norm = norm01_->GetBinContent(ism);
02818                 if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
02819                 float val_sy = (frac_synch_errors <= synchErrorThreshold_);
02820                 if(val_sy==0) xval=0;
02821               }
02822 
02823               for ( unsigned int i=0; i<clients_.size(); i++ ) {
02824                 EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
02825                 if ( eeic ) {
02826                   TH2F* h2 = eeic->h_[ism-1];
02827                   if ( h2 ) {
02828                     iEntries = h2->GetEntries();
02829                   }
02830                 }
02831               }
02832             }
02833           }
02834         }
02835 
02836         if ( validCry && iEntries==0 ) {
02837           xval=2;
02838         }
02839 
02840         meGlobalSummary_[1]->setBinContent( jx, jy, xval );
02841 
02842         if ( xval >= 0 && xval <= 5 ) {
02843           if ( xval != 2 && xval != 5 ) ++nValidChannels;
02844           for (int i = 10; i <= 18; i++) {
02845             if ( xval != 2 && xval != 5 ) {
02846               if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
02847             }
02848           }
02849           if ( xval == 0 ) ++nGlobalErrors;
02850           for (int i = 10; i <= 18; i++) {
02851             if ( xval == 0 ) {
02852               if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
02853             }
02854           }
02855         }
02856 
02857       }
02858 
02859     }
02860   }
02861 
02862   MonitorElement* me;
02863 
02864   float reportSummary = -1.0;
02865   if ( nValidChannels != 0 )
02866     reportSummary = 1.0 - float(nGlobalErrors)/float(nValidChannels);
02867   me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummary");
02868   if ( me ) me->Fill(reportSummary);
02869 
02870   char histo[200];
02871 
02872   for (int i = 0; i < 18; i++) {
02873     float reportSummaryEE = -1.0;
02874     if ( nValidChannelsEE[i] != 0 )
02875       reportSummaryEE = 1.0 - float(nGlobalErrorsEE[i])/float(nValidChannelsEE[i]);
02876     sprintf(histo, "EcalEndcap_%s", Numbers::sEE(i+1).c_str());
02877     me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryContents/" + histo);
02878     if ( me ) me->Fill(reportSummaryEE);
02879   }
02880 
02881   me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryMap");
02882   if ( me ) {
02883 
02884     int nValidChannelsSC[2][20][20];
02885     int nGlobalErrorsSC[2][20][20];
02886     for ( int iside = 0; iside < 2; iside++ ) {
02887       for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
02888         for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
02889           nValidChannelsSC[iside][jxdcc][jydcc] = 0;
02890           nGlobalErrorsSC[iside][jxdcc][jydcc] = 0;
02891         }
02892       }
02893     }
02894 
02895     for (int iside = 0; iside < 2; iside++ ) {
02896       for ( int ix = 1; ix <= 100; ix++ ) {
02897         for ( int iy = 1; iy <= 100; iy++ ) {
02898 
02899           int jxsc = (ix-1)/5;
02900           int jysc = (iy-1)/5;
02901 
02902           float xval = meGlobalSummary_[iside]->getBinContent( ix, iy );
02903 
02904           if ( xval >= 0 && xval <= 5 ) {
02905             if ( xval != 2 && xval != 5 ) ++nValidChannelsSC[iside][jxsc][jysc];
02906             if ( xval == 0 ) ++nGlobalErrorsSC[iside][jxsc][jysc];
02907           }
02908 
02909         }
02910       }
02911     }
02912 
02913     for (int iside = 0; iside < 2; iside++ ) {
02914       for ( int jxsc = 0; jxsc < 20; jxsc++ ) {
02915         for ( int jysc = 0; jysc < 20; jysc++ ) {
02916 
02917           float scval = -1;
02918 
02919           if( nValidChannelsSC[iside][jxsc][jysc] != 0 )
02920             scval = 1.0 - float(nGlobalErrorsSC[iside][jxsc][jysc])/float(nValidChannelsSC[iside][jxsc][jysc]);
02921 
02922           me->setBinContent( jxsc+iside*20+1, jysc+1, scval );
02923 
02924         }
02925       }
02926     }
02927 
02928 //     for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
02929 //       for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
02930 //         for ( int iside = 0; iside < 2; iside++ ) {
02931 
02932 //           float xval = -1.0;
02933 //           if ( nOutOfGeometryTT[iside][jxdcc][jydcc] < 25 ) {
02934 //             if ( nValidChannelsTT[iside][jxdcc][jydcc] != 0 )
02935 //               xval = 1.0 - float(nGlobalErrorsTT[iside][jxdcc][jydcc])/float(nValidChannelsTT[iside][jxdcc][jydcc]);
02936 //           }
02937 
02938 //           me->setBinContent( 20*iside+jxdcc+1, jydcc+1, xval );
02939 
02940 //         }
02941 //       }
02942 //     }
02943 
02944   }
02945 
02946 }
02947