CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/DQM/EcalEndcapMonitorClient/src/EESummaryClient.cc

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