CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/DQM/EcalEndcapMonitorClient/src/EESummaryClient.cc

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