CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 /*
00002  * \file EESummaryClient.cc
00003  *
00004  * $Date: 2012/06/11 22:57:16 $
00005  * $Revision: 1.224 $
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                 if( emulErrorVal > 0.01 * ievt_ && hadNonZeroInterest ) xval = 0;
02174 
02175               }
02176 
02177               if ( xval!=0 && hadNonZeroInterest ) xval = 1;
02178 
02179             }
02180 
02181             // see fix below
02182             if ( xval == 2 ) continue;
02183 
02184             if ( ism >= 1 && ism <= 9 ) {
02185               meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, xval );
02186             } else {
02187               meTriggerTowerEmulError_[1]->setBinContent( jx, jy, xval );
02188             }
02189 
02190           }
02191 
02192           if ( eetmc ) {
02193 
02194             float num01, mean01, rms01;
02195             bool update01 = UtilsClient::getBinStatistics(htmt01_[ism-1], ix, iy, num01, mean01, rms01, timingNHitThreshold_);
02196             mean01 -= 50.;
02197 
02198             if( update01 ){
02199 
02200               if ( ism >= 1 && ism <= 9 ) {
02201                 meTimingMean1D_[0]->Fill(mean01);
02202                 meTimingRMS1D_[0]->Fill(rms01);
02203               } else {
02204                 meTimingMean1D_[1]->Fill(mean01);
02205                 meTimingRMS1D_[1]->Fill(rms01);
02206               }
02207 
02208               meTimingMean_->Fill( ism, mean01 );
02209 
02210               meTimingRMS_->Fill( ism, rms01 );
02211 
02212             }
02213 
02214           }
02215 
02216         }
02217       }
02218 
02219       for ( int ix = 1; ix <= 10; ix++ ) {
02220         for( int iy = 1; iy <= 10; iy++ ) {
02221 
02222           int jx = ix + Numbers::ix0EE(ism) / 5;
02223           int jy = iy + Numbers::iy0EE(ism) / 5;
02224 
02225           if( jx <= 0 || jx >= 21 || jy <= 0 || jy >= 21 ) continue;
02226 
02227           if ( ism >= 1 && ism <= 9 ) {
02228             if ( ! Numbers::validEESc(ism, 21 - jx, jy) ) continue;
02229           } else {
02230             if ( ! Numbers::validEESc(ism, jx, jy) ) continue;
02231           }
02232 
02233           if ( eetmc ) {
02234 
02235             if ( htmt01_[ism-1] ) {
02236 
02237               int ixedge = (ix-1) * 5;
02238               int iyedge = (iy-1) * 5;
02239               int jxedge = (jx-1) * 5;
02240               int jyedge = (jy-1) * 5;
02241 
02242               float num(0);
02243               int nValid(0);
02244               bool mask(false);
02245 
02246               for(int cx=1; cx<=5; cx++){
02247                 for(int cy=1; cy<=5; cy++){
02248                   int scjx = (ism >= 1 && ism <= 9) ? 101 - (jxedge + cx) : jxedge + cx;
02249                   int scjy = jyedge + cy;
02250                   int scix = ixedge + cx;
02251                   int sciy = iyedge + cy;
02252 
02253                   if ( ! Numbers::validEE(ism, scjx, scjy) ) continue;
02254 
02255                   nValid += 1;
02256 
02257                   num += htmt01_[ism-1]->GetBinEntries(htmt01_[ism-1]->GetBin(scix, sciy));
02258 
02259                   if(Masks::maskChannel(ism, scix, sciy, chWarnBit, EcalEndcap) ) mask = true;
02260                 }
02261               }
02262 
02263               float nHitThreshold(timingNHitThreshold_ * 15. * nValid / 25.);
02264 
02265               bool update01(false);
02266               float num01, mean01, rms01;
02267               if(ism >= 1 && ism <= 9)
02268                 update01 = UtilsClient::getBinStatistics(htmtm, 21 - jx, jy, num01, mean01, rms01, nHitThreshold);
02269               else
02270                 update01 = UtilsClient::getBinStatistics(htmtp, jx, jy, num01, mean01, rms01, nHitThreshold);
02271  
02272               mean01 -= 50.;
02273  
02274               if(!update01){
02275                 mean01 = 0.;
02276                 rms01 = 0.;
02277               }
02278 
02279               update01 |= num > 1.4 * nHitThreshold; // allow 40% outliers
02280 
02281               float xval = 2.;
02282 
02283               if( update01 ){
02284 
02285                 // quality BAD if mean large, rms large, or significantly more outliers (num: # events in +-20 ns time window)
02286                 if( std::abs(mean01) > 3. || rms01 > 6. || num > 1.4 * num01 ) xval = 0.;
02287                 else xval = 1.;
02288 
02289               }
02290 
02291               int ind;
02292               if ( ism >= 1 && ism <= 9 ){
02293                 jx = 21 - jx;
02294                 ind = 0;
02295               }else{
02296                 ind = 1;
02297               }
02298 
02299               meTiming_[ind]->setBinContent( jx, jy, xval );
02300               if ( mask ) UtilsClient::maskBinContent( meTiming_[ind], jx, jy );
02301 
02302             }
02303 
02304           }
02305 
02306         }
02307       }
02308       // PN's summaries
02309       for( int i = 1; i <= 10; i++ ) {
02310         for( int j = 1; j <= 5; j++ ) {
02311 
02312           int ichanx;
02313           int ipseudostripx;
02314 
02315           if(ism<=9) {
02316             ichanx = i;
02317             ipseudostripx = (ism<=3) ? j+5*(ism-1+6) : j+5*(ism-1-3);
02318           } else {
02319             ichanx = i+10;
02320             ipseudostripx = (ism<=12) ? j+5*(ism-10+6) : j+5*(ism-10-3);
02321           }
02322 
02323           if ( eeic ) {
02324 
02325             me_04 = eeic->meg02_[ism-1];
02326             h2 = eeic->hmem_[ism-1];
02327 
02328 
02329             if( me_04 ) {
02330 
02331               float xval = me_04->getBinContent(i,j);
02332               if(meIntegrityPN_) meIntegrityPN_->setBinContent( ipseudostripx, ichanx, xval );
02333 
02334             }
02335 
02336             if ( h2 ) {
02337 
02338               float xval = h2->GetBinContent(i,1);
02339               if(meOccupancyPN_) meOccupancyPN_->setBinContent( ipseudostripx, ichanx, xval );
02340 
02341             }
02342 
02343           }
02344         
02345           if ( eepc ) {
02346 
02347             me_04 = eepc->meg04_[ism-1];
02348             me_05 = eepc->meg05_[ism-1];
02349 
02350             if( me_04 ) {
02351               float val_04=me_04->getBinContent(i,1);
02352               mePedestalPNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
02353             }
02354             if( me_05 ) {
02355               float val_05=me_05->getBinContent(i,1);
02356               mePedestalPNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
02357             }
02358 
02359           }
02360 
02361           if ( eetpc ) {
02362 
02363             me_04 = eetpc->meg04_[ism-1];
02364             me_05 = eetpc->meg05_[ism-1];
02365 
02366             if( me_04 ) {
02367               float val_04=me_04->getBinContent(i,1);
02368               meTestPulsePNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
02369             }
02370             if( me_05 ) {
02371               float val_05=me_05->getBinContent(i,1);
02372               meTestPulsePNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
02373             }
02374 
02375           }
02376 
02377           if ( eelc ) {
02378 
02379             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02380 
02381               me = eelc->meg09_[ism-1];
02382 
02383               if( me ) {
02384 
02385                 float xval = me->getBinContent(i,1);
02386 
02387                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02388                   meLaserL1PN_->setBinContent( ipseudostripx, ichanx, xval );
02389                   if ( xval == 0 ) meLaserL1PNErr_->Fill( ism );
02390                 }
02391 
02392               }
02393 
02394             }
02395 
02396             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02397 
02398               me = eelc->meg10_[ism-1];
02399 
02400               if( me ) {
02401 
02402                 float xval = me->getBinContent(i,1);
02403 
02404                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02405                   meLaserL2PN_->setBinContent( ipseudostripx, ichanx, xval );
02406                   if ( xval == 0 ) meLaserL2PNErr_->Fill( ism );
02407                 }
02408 
02409               }
02410 
02411             }
02412 
02413             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02414 
02415               me = eelc->meg11_[ism-1];
02416 
02417               if( me ) {
02418 
02419                 float xval = me->getBinContent(i,1);
02420 
02421                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02422                   meLaserL3PN_->setBinContent( ipseudostripx, ichanx, xval );
02423                   if ( xval == 0 ) meLaserL3PNErr_->Fill( ism );
02424                 }
02425 
02426               }
02427 
02428             }
02429 
02430             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02431 
02432               me = eelc->meg12_[ism-1];
02433 
02434               if( me ) {
02435 
02436                 float xval = me->getBinContent(i,1);
02437 
02438                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02439                   meLaserL4PN_->setBinContent( ipseudostripx, ichanx, xval );
02440                   if ( xval == 0 ) meLaserL4PNErr_->Fill( ism );
02441                 }
02442 
02443               }
02444 
02445             }
02446 
02447           }
02448 
02449           if ( eeldc ) {
02450 
02451             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02452 
02453               me = eeldc->meg09_[ism-1];
02454 
02455               if( me ) {
02456 
02457                 float xval = me->getBinContent(i,1);
02458 
02459                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02460                   meLedL1PN_->setBinContent( ipseudostripx, ichanx, xval );
02461                   if ( xval == 0 ) meLedL1PNErr_->Fill( ism );
02462                 }
02463 
02464               }
02465 
02466             }
02467 
02468             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02469 
02470               me = eeldc->meg10_[ism-1];
02471 
02472               if( me ) {
02473 
02474                 float xval = me->getBinContent(i,1);
02475 
02476                 if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
02477                   meLedL2PN_->setBinContent( ipseudostripx, ichanx, xval );
02478                   if ( xval == 0 ) meLedL2PNErr_->Fill( ism );
02479                 }
02480 
02481               }
02482 
02483             }
02484 
02485           }
02486 
02487         }
02488       }
02489 
02490       for ( int ix=1; ix<=50; ix++ ) {
02491         for (int iy=1; iy<=50; iy++ ) {
02492 
02493           int jx = ix + Numbers::ix0EE(ism);
02494           int jy = iy + Numbers::iy0EE(ism);
02495           if( ism >= 1 && ism <= 9 ) jx = 101 - jx;
02496 
02497           if( !Numbers::validEE(ism, jx, jy) ) continue;
02498 
02499           int ic = Numbers::icEE(ism, jx, jy);
02500 
02501           if ( eelc ) {
02502 
02503             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02504 
02505               MonitorElement *meg = eelc->meg01_[ism-1];
02506 
02507               float xval = 2;
02508               if ( meg ) xval = meg->getBinContent( ix, iy );
02509 
02510               // exclude channels without laser data (yellow in the quality map)
02511               if( xval != 2 && xval != 5 ) {
02512 
02513                 MonitorElement* mea01 = eelc->mea01_[ism-1];
02514                 MonitorElement* met01 = eelc->met01_[ism-1];
02515                 MonitorElement* meaopn01 = eelc->meaopn01_[ism-1];
02516 
02517                 if( mea01 && met01 && meaopn01 ) {
02518                   meLaserL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
02519                   if( met01->getBinContent( ic ) > 0. ) meLaserL1Timing_->Fill( ism, met01->getBinContent( ic ) );
02520                   meLaserL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
02521                 }
02522 
02523               }
02524 
02525             }
02526 
02527             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02528 
02529               MonitorElement *meg = eelc->meg02_[ism-1];
02530 
02531               float xval = 2;
02532               if ( meg ) xval = meg->getBinContent( ix, iy );
02533 
02534               // exclude channels without laser data (yellow in the quality map)
02535               if( xval != 2 && xval != 5 ) {
02536 
02537                 MonitorElement* mea02 = eelc->mea02_[ism-1];
02538                 MonitorElement* met02 = eelc->met02_[ism-1];
02539                 MonitorElement* meaopn02 = eelc->meaopn02_[ism-1];
02540 
02541                 if( mea02 && met02 && meaopn02 ) {
02542                   meLaserL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
02543                   if( met02->getBinContent( ic ) > 0. ) meLaserL2Timing_->Fill( ism, met02->getBinContent( ic ) );
02544                   meLaserL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
02545                 }
02546 
02547               }
02548 
02549             }
02550 
02551             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02552 
02553               MonitorElement *meg = eelc->meg03_[ism-1];
02554 
02555               float xval = 2;
02556               if ( meg ) xval = meg->getBinContent( ix, iy );
02557 
02558               // exclude channels without laser data (yellow in the quality map)
02559               if( xval != 2 && xval != 5 ) {
02560 
02561                 MonitorElement* mea03 = eelc->mea03_[ism-1];
02562                 MonitorElement* met03 = eelc->met03_[ism-1];
02563                 MonitorElement* meaopn03 = eelc->meaopn03_[ism-1];
02564 
02565                 if( mea03 && met03 && meaopn03 ) {
02566                   meLaserL3Ampl_->Fill( ism, mea03->getBinContent( ic ) );
02567                   if( met03->getBinContent( ic ) > 0. ) meLaserL3Timing_->Fill( ism, met03->getBinContent( ic ) );
02568                   meLaserL3AmplOverPN_->Fill( ism, meaopn03->getBinContent( ic ) );
02569                 }
02570 
02571               }
02572 
02573             }
02574 
02575             if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02576 
02577               MonitorElement *meg = eelc->meg04_[ism-1];
02578 
02579               float xval = 2;
02580               if ( meg ) xval = meg->getBinContent( ix, iy );
02581 
02582               // exclude channels without laser data (yellow in the quality map)
02583               if( xval != 2 && xval != 5 ) {
02584 
02585                 MonitorElement* mea04 = eelc->mea04_[ism-1];
02586                 MonitorElement* met04 = eelc->met04_[ism-1];
02587                 MonitorElement* meaopn04 = eelc->meaopn04_[ism-1];
02588 
02589                 if( mea04 && met04 && meaopn04 ) {
02590                   meLaserL4Ampl_->Fill( ism, mea04->getBinContent( ic ) );
02591                   if( met04->getBinContent( ic ) > 0. ) meLaserL4Timing_->Fill( ism, met04->getBinContent( ic ) );
02592                   meLaserL4AmplOverPN_->Fill( ism, meaopn04->getBinContent( ic ) );
02593                 }
02594 
02595               }
02596 
02597             }
02598 
02599           }
02600 
02601           if ( eeldc ) {
02602 
02603             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02604 
02605               MonitorElement *meg = eeldc->meg01_[ism-1];
02606 
02607               float xval = 2;
02608               if ( meg )  xval = meg->getBinContent( ix, iy );
02609 
02610               // exclude channels without led data (yellow in the quality map)
02611               if( xval != 2 && xval != 5 ) {
02612 
02613                 MonitorElement* mea01 = eeldc->mea01_[ism-1];
02614                 MonitorElement* met01 = eeldc->met01_[ism-1];
02615                 MonitorElement* meaopn01 = eeldc->meaopn01_[ism-1];
02616 
02617                 if( mea01 && met01 && meaopn01 ) {
02618                   meLedL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
02619                   if( met01->getBinContent( ic ) > 0. ) meLedL1Timing_->Fill( ism, met01->getBinContent( ic ) );
02620                   meLedL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
02621                 }
02622 
02623               }
02624 
02625             }
02626 
02627             if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02628 
02629               MonitorElement *meg = eeldc->meg02_[ism-1];
02630 
02631               float xval = 2;
02632               if ( meg )  xval = meg->getBinContent( ix, iy );
02633 
02634               // exclude channels without led data (yellow in the quality map)
02635               if( xval != 2 && xval != 5 ) {
02636 
02637                 MonitorElement* mea02 = eeldc->mea02_[ism-1];
02638                 MonitorElement* met02 = eeldc->met02_[ism-1];
02639                 MonitorElement* meaopn02 = eeldc->meaopn02_[ism-1];
02640 
02641                 if( mea02 && met02 && meaopn02 ) {
02642                   meLedL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
02643                   if( met02->getBinContent( ic ) > 0. ) meLedL2Timing_->Fill( ism, met02->getBinContent( ic ) );
02644                   meLedL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
02645                 }
02646 
02647               }
02648 
02649             }
02650 
02651           }
02652 
02653           if ( eetpc ) {
02654 
02655             MonitorElement *meg01 = eetpc->meg01_[ism-1];
02656             MonitorElement *meg02 = eetpc->meg02_[ism-1];
02657             MonitorElement *meg03 = eetpc->meg03_[ism-1];
02658 
02659             if ( meg01 ) {
02660 
02661               float xval01 = meg01->getBinContent( ix, iy );
02662 
02663               if ( xval01 != 2 && xval01 != 5 ) {
02664 
02665                 me = eetpc->mea01_[ism-1];
02666 
02667                 if ( me ) {
02668 
02669                   meTestPulseAmplG01_->Fill( ism, me->getBinContent( ic ) );
02670 
02671                 }
02672 
02673               }
02674 
02675             }
02676 
02677             if ( meg02 ) {
02678 
02679               float xval02 = meg02->getBinContent( ix, iy );
02680 
02681               if ( xval02 != 2 && xval02 != 5 ) {
02682 
02683                 me = eetpc->mea02_[ism-1];
02684 
02685                 if ( me ) {
02686 
02687                   meTestPulseAmplG06_->Fill( ism, me->getBinContent( ic ) );
02688 
02689                 }
02690 
02691               }
02692 
02693             }
02694 
02695             if ( meg03 ) {
02696 
02697               float xval03 = meg03->getBinContent( ix, iy );
02698 
02699               if ( xval03 != 2 && xval03 != 5 ) {
02700 
02701                 me = eetpc->mea03_[ism-1];
02702 
02703                 if ( me ) {
02704 
02705                   meTestPulseAmplG12_->Fill( ism, me->getBinContent( ic ) );
02706 
02707                 }
02708 
02709               }
02710 
02711             }
02712 
02713           } //etpc
02714 
02715 
02716         } // loop on iy
02717       } // loop on ix
02718 
02719     } // loop on SM
02720 
02721     // fix TPG quality plots
02722 
02723     for ( unsigned int i=0; i<superModules_.size(); i++ ) {
02724 
02725       int ism = superModules_[i];
02726 
02727       for ( int ix = 1; ix <= 50; ix++ ) {
02728         for ( int iy = 1; iy <= 50; iy++ ) {
02729 
02730           int jx = ix + Numbers::ix0EE(ism);
02731           int jy = iy + Numbers::iy0EE(ism);
02732 
02733           if ( eetttc ) {
02734 
02735             if ( ism >= 1 && ism <= 9 ) {
02736               if ( meTriggerTowerEmulError_[0]->getBinContent( 101 - jx, jy ) == 6 ) {
02737                 if ( Numbers::validEE(ism, 101 - jx, jy) ) meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, 2 );
02738               }
02739             } else {
02740               if ( meTriggerTowerEmulError_[1]->getBinContent( jx, jy ) == 6 ) {
02741                 if ( Numbers::validEE(ism, jx, jy) ) meTriggerTowerEmulError_[1]->setBinContent( jx, jy, 2 );
02742               }
02743             }
02744 
02745           }
02746 
02747         }
02748       }
02749 
02750     }
02751 
02752   } // loop on clients
02753 
02754   // The global-summary
02755   int nGlobalErrors = 0;
02756   int nGlobalErrorsEE[18];
02757   int nValidChannels = 0;
02758   int nValidChannelsEE[18];
02759 
02760   for (int i = 0; i < 18; i++) {
02761     nGlobalErrorsEE[i] = 0;
02762     nValidChannelsEE[i] = 0;
02763   }
02764 
02765   for ( int jx = 1; jx <= 100; jx++ ) {
02766     for ( int jy = 1; jy <= 100; jy++ ) {
02767 
02768       if(meGlobalSummary_[0]) {
02769 
02770         float xval = 6;
02771         float val_in = meIntegrity_[0]->getBinContent(jx,jy);
02772         float val_po = mePedestalOnline_[0]->getBinContent(jx,jy);
02773         float val_tm = reducedReports_ ? 1. : meTiming_[0]->getBinContent((jx-1)/5+1,(jy-1)/5+1);
02774         float val_sf = meStatusFlags_[0]->getBinContent(jx,jy);
02775         float val_ee = reducedReports_ ? 1. : meTriggerTowerEmulError_[0]->getBinContent(jx,jy); // removed temporarily from the global summary
02776         // float val_ee = 1;
02777 
02778         // combine all the available wavelenghts in unique laser status
02779         // for each laser turn dark color and yellow into bright green
02780         float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
02781         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02782           if ( meLaserL1_[0] ) val_ls_1 = meLaserL1_[0]->getBinContent(jx,jy);
02783           if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
02784         }
02785         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02786           if ( meLaserL2_[0] ) val_ls_2 = meLaserL2_[0]->getBinContent(jx,jy);
02787           if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
02788         }
02789         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02790           if ( meLaserL3_[0] ) val_ls_3 = meLaserL3_[0]->getBinContent(jx,jy);
02791           if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
02792         }
02793         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02794           if ( meLaserL4_[0] ) val_ls_4 = meLaserL4_[0]->getBinContent(jx,jy);
02795           if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
02796         }
02797 
02798         float val_ls = 1;
02799         if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
02800 
02801         // combine all the available wavelenghts in unique led status
02802         // for each laser turn dark color and yellow into bright green
02803         float val_ld_1=2, val_ld_2=2;
02804         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02805           if ( meLedL1_[0] ) val_ld_1 = meLedL1_[0]->getBinContent(jx,jy);
02806           if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
02807         }
02808         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02809           if ( meLedL2_[0] ) val_ld_2 = meLedL2_[0]->getBinContent(jx,jy);
02810           if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
02811         }
02812 
02813         float val_ld = 1;
02814         if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;
02815 
02816         // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY FOR NOW
02817         val_ls = 1;
02818         val_ld = 1;
02819 
02820         // turn each dark color (masked channel) to bright green
02821         // for laser & timing & trigger turn also yellow into bright green
02822         // for pedestal online too because is not computed in calibration events
02823 
02824         //  0/3 = red/dark red
02825         //  1/4 = green/dark green
02826         //  2/5 = yellow/dark yellow
02827         //  6   = unknown
02828 
02829         if(             val_in==3 || val_in==4 || val_in==5) val_in=1;
02830         if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
02831         if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
02832         if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
02833         if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
02834         if(             val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
02835         if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
02836 
02837         if(val_in==6) xval=6;
02838         else if(val_in==0) xval=0;
02839         else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
02840         else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
02841         else xval=1;
02842 
02843         bool validCry = false;
02844 
02845         // if the SM is entirely not read, the masked channels
02846         // are reverted back to yellow
02847         float iEntries=0;
02848 
02849         for(int ism = 1; ism <= 9; ism++) {
02850           std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
02851           if (iter != superModules_.end()) {
02852             if ( Numbers::validEE(ism, jx, jy) ) {
02853               validCry = true;
02854 
02855               // recycle the validEE for the synch check of the DCC
02856               if(norm01_ && synch01_) {
02857                 float frac_synch_errors = 0.;
02858                 float norm = norm01_->GetBinContent(ism);
02859                 if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
02860                 if(frac_synch_errors > synchErrorThreshold_){
02861                   xval = 0;
02862                   if(oosTrend && oosTrend->GetBinContent(oosTrend->GetNbinsX()) - oosTrend->GetBinContent(1) < 1.) xval += 3.;
02863                 }
02864               }
02865 
02866               for ( unsigned int i=0; i<clients_.size(); i++ ) {
02867                 EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
02868                 if ( eeic ) {
02869                   TH2F* h2 = eeic->h_[ism-1];
02870                   if ( h2 ) {
02871                     iEntries = h2->GetEntries();
02872                   }
02873                 }
02874               }
02875             }
02876           }
02877         }
02878 
02879         if ( validCry && iEntries==0 ) {
02880           xval=2;
02881         }
02882 
02883         meGlobalSummary_[0]->setBinContent( jx, jy, xval );
02884 
02885         if ( xval >= 0 && xval <= 5 ) {
02886           if ( xval != 2 && xval != 5 ) ++nValidChannels;
02887           for (int i = 1; i <= 9; i++) {
02888             if ( xval != 2 && xval != 5 ) {
02889               if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
02890             }
02891           }
02892           if ( xval == 0 ) ++nGlobalErrors;
02893           for (int i = 1; i <= 9; i++) {
02894             if ( xval == 0 ) {
02895               if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
02896             }
02897           }
02898         }
02899 
02900       }
02901 
02902       if(meGlobalSummary_[1]) {
02903 
02904         float xval = 6;
02905         float val_in = meIntegrity_[1]->getBinContent(jx,jy);
02906         float val_po = mePedestalOnline_[1]->getBinContent(jx,jy);
02907         float val_tm = reducedReports_ ? 1. : meTiming_[1]->getBinContent((jx-1)/5+1,(jy-1)/5+1);
02908         float val_sf = meStatusFlags_[1]->getBinContent(jx,jy);
02909         float val_ee = reducedReports_ ? 1. : meTriggerTowerEmulError_[1]->getBinContent(jx,jy); // removed temporarily from the global summary
02910         // float val_ee = 1;
02911 
02912         // combine all the available wavelenghts in unique laser status
02913         // for each laser turn dark color and yellow into bright green
02914         float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
02915         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
02916           if ( meLaserL1_[1] ) val_ls_1 = meLaserL1_[1]->getBinContent(jx,jy);
02917           if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
02918         }
02919         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
02920           if ( meLaserL2_[1] ) val_ls_2 = meLaserL2_[1]->getBinContent(jx,jy);
02921           if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
02922         }
02923         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
02924           if ( meLaserL3_[1] ) val_ls_3 = meLaserL3_[1]->getBinContent(jx,jy);
02925           if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
02926         }
02927         if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
02928           if ( meLaserL4_[1] ) val_ls_4 = meLaserL4_[1]->getBinContent(jx,jy);
02929           if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
02930         }
02931 
02932         float val_ls = 1;
02933         if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;
02934 
02935         // combine all the available wavelenghts in unique laser status
02936         // for each laser turn dark color and yellow into bright green
02937         float val_ld_1=2, val_ld_2=2;
02938         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
02939           if ( meLedL1_[1] ) val_ld_1 = meLedL1_[1]->getBinContent(jx,jy);
02940           if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
02941         }
02942         if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
02943           if ( meLedL2_[1] ) val_ld_2 = meLedL2_[1]->getBinContent(jx,jy);
02944           if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
02945         }
02946 
02947         float val_ld = 1;
02948         if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;
02949 
02950         // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY FOR NOW
02951         val_ls = 1;
02952         val_ld = 1;
02953 
02954         // turn each dark color to bright green
02955         // for laser & timing & trigger turn also yellow into bright green
02956         // for pedestal online too because is not computed in calibration events
02957 
02958         //  0/3 = red/dark red
02959         //  1/4 = green/dark green
02960         //  2/5 = yellow/dark yellow
02961         //  6   = unknown
02962 
02963         if(             val_in==3 || val_in==4 || val_in==5) val_in=1;
02964         if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
02965         if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
02966         if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
02967         if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
02968         if(             val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
02969         if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;
02970 
02971         if(val_in==6) xval=6;
02972         else if(val_in==0) xval=0;
02973         else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
02974         else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
02975         else xval=1;
02976 
02977         bool validCry = false;
02978 
02979         // if the SM is entirely not read, the masked channels
02980         // are reverted back in yellow
02981         float iEntries=0;
02982 
02983         for(int ism = 10; ism <= 18; ism++) {
02984           std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
02985           if (iter != superModules_.end()) {
02986             if ( Numbers::validEE(ism, jx, jy) ) {
02987               validCry = true;
02988 
02989               // recycle the validEE for the synch check of the DCC
02990               if(norm01_ && synch01_) {
02991                 float frac_synch_errors = 0.;
02992                 float norm = norm01_->GetBinContent(ism);
02993                 if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
02994                 if(frac_synch_errors > synchErrorThreshold_){
02995                   xval = 0.;
02996                   if(oosTrend && oosTrend->GetBinContent(oosTrend->GetNbinsX()) - oosTrend->GetBinContent(1) < 1.) xval += 3.;
02997                 }
02998               }
02999 
03000               for ( unsigned int i=0; i<clients_.size(); i++ ) {
03001                 EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
03002                 if ( eeic ) {
03003                   TH2F* h2 = eeic->h_[ism-1];
03004                   if ( h2 ) {
03005                     iEntries = h2->GetEntries();
03006                   }
03007                 }
03008               }
03009             }
03010           }
03011         }
03012 
03013         if ( validCry && iEntries==0 ) {
03014           xval=2;
03015         }
03016 
03017         meGlobalSummary_[1]->setBinContent( jx, jy, xval );
03018 
03019         if ( xval >= 0 && xval <= 5 ) {
03020           if ( xval != 2 && xval != 5 ) ++nValidChannels;
03021           for (int i = 10; i <= 18; i++) {
03022             if ( xval != 2 && xval != 5 ) {
03023               if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
03024             }
03025           }
03026           if ( xval == 0 ) ++nGlobalErrors;
03027           for (int i = 10; i <= 18; i++) {
03028             if ( xval == 0 ) {
03029               if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
03030             }
03031           }
03032         }
03033 
03034       }
03035 
03036     }
03037   }
03038 
03039   if(meSummaryErr_)
03040     meSummaryErr_->setBinContent(1, double(nGlobalErrors) / double(nValidChannels));
03041 
03042   float reportSummary = -1.0;
03043   if ( nValidChannels != 0 )
03044     reportSummary = 1.0 - float(nGlobalErrors)/float(nValidChannels);
03045   me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummary");
03046   if ( me ) me->Fill(reportSummary);
03047 
03048   for (int i = 0; i < 18; i++) {
03049     float reportSummaryEE = -1.0;
03050     if ( nValidChannelsEE[i] != 0 )
03051       reportSummaryEE = 1.0 - float(nGlobalErrorsEE[i])/float(nValidChannelsEE[i]);
03052     me = dqmStore_->get( prefixME_ + "/EventInfo/reportSummaryContents/EcalEndcap_" + Numbers::sEE(i+1) );
03053     if ( me ) me->Fill(reportSummaryEE);
03054   }
03055 
03056   if(meGlobalSummary_[0] && meGlobalSummary_[1]){
03057 
03058     me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryMap");
03059     if ( me ) {
03060 
03061       int nValidChannelsSC[2][20][20];
03062       int nGlobalErrorsSC[2][20][20];
03063       for ( int iside = 0; iside < 2; iside++ ) {
03064         for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
03065           for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
03066             nValidChannelsSC[iside][jxdcc][jydcc] = 0;
03067             nGlobalErrorsSC[iside][jxdcc][jydcc] = 0;
03068           }
03069         }
03070       }
03071 
03072       for (int iside = 0; iside < 2; iside++ ) {
03073         for ( int ix = 1; ix <= 100; ix++ ) {
03074           for ( int iy = 1; iy <= 100; iy++ ) {
03075 
03076             int jxsc = (ix-1)/5;
03077             int jysc = (iy-1)/5;
03078 
03079             float xval = meGlobalSummary_[iside]->getBinContent( ix, iy );
03080 
03081             if ( xval >= 0 && xval <= 5 ) {
03082               if ( xval != 2 && xval != 5 ) ++nValidChannelsSC[iside][jxsc][jysc];
03083               if ( xval == 0 ) ++nGlobalErrorsSC[iside][jxsc][jysc];
03084             }
03085 
03086           }
03087         }
03088       }
03089 
03090       // Countermeasure to partial TR failure
03091       // make the whole Dee red if more than 2 towers within a 2x2 matrix fails
03092 
03093       for(int iside(0); iside < 2; iside++){
03094         for(int jy(1); jy <= 20; jy++){
03095           for(int jx(1); jx <= 20; jx++){
03096             int nErr(0);
03097             if(nValidChannelsSC[iside][jx - 1][jy - 1] > 0 && nGlobalErrorsSC[iside][jx - 1][jy - 1] == nValidChannelsSC[iside][jx - 1][jy - 1]) nErr += 1;
03098             if(nValidChannelsSC[iside][jx][jy - 1] > 0 && nGlobalErrorsSC[iside][jx][jy - 1] == nValidChannelsSC[iside][jx][jy - 1]) nErr += 1;
03099             if(nValidChannelsSC[iside][jx - 1][jy] > 0 && nGlobalErrorsSC[iside][jx - 1][jy] == nValidChannelsSC[iside][jx - 1][jy]) nErr += 1;
03100             if(nValidChannelsSC[iside][jx][jy] > 0 && nGlobalErrorsSC[iside][jx][jy] == nValidChannelsSC[iside][jx][jy]) nErr += 1;
03101             if(nErr > 2){
03102               int jx0(((jx - 1) / 10) * 10);
03103               for(int jjx(jx0); jjx < jx0 + 10; jjx++){
03104                 for(int jjy(0); jjy < 20; jjy++){
03105                   nGlobalErrorsSC[iside][jjx][jjy] = nValidChannelsSC[iside][jjx][jjy];
03106                 }
03107               }
03108             }
03109           }
03110         }
03111       }
03112 
03113       for (int iside = 0; iside < 2; iside++ ) {
03114         for ( int jxsc = 0; jxsc < 20; jxsc++ ) {
03115           for ( int jysc = 0; jysc < 20; jysc++ ) {
03116 
03117             float scval = -1;
03118 
03119             if( nValidChannelsSC[iside][jxsc][jysc] != 0 )
03120               scval = 1.0 - float(nGlobalErrorsSC[iside][jxsc][jysc])/float(nValidChannelsSC[iside][jxsc][jysc]);
03121 
03122             me->setBinContent( jxsc+iside*20+1, jysc+1, scval );
03123 
03124           }
03125         }
03126       }
03127     }
03128 
03129 //     for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
03130 //       for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
03131 //         for ( int iside = 0; iside < 2; iside++ ) {
03132 
03133 //           float xval = -1.0;
03134 //           if ( nOutOfGeometryTT[iside][jxdcc][jydcc] < 25 ) {
03135 //             if ( nValidChannelsTT[iside][jxdcc][jydcc] != 0 )
03136 //               xval = 1.0 - float(nGlobalErrorsTT[iside][jxdcc][jydcc])/float(nValidChannelsTT[iside][jxdcc][jydcc]);
03137 //           }
03138 
03139 //           me->setBinContent( 20*iside+jxdcc+1, jydcc+1, xval );
03140 
03141 //         }
03142 //       }
03143 //     }
03144 
03145   }
03146 
03147 }
03148