CMS 3D CMS Logo

Public Member Functions | Private Attributes

EESummaryClient Class Reference

#include <EESummaryClient.h>

Inheritance diagram for EESummaryClient:
EEClient

List of all members.

Public Member Functions

void analyze (void)
 Analyze.
void beginJob (void)
 BeginJob.
void beginRun (void)
 BeginRun.
void cleanup (void)
 Cleanup.
 EESummaryClient (const edm::ParameterSet &ps)
 Constructor.
void endJob (void)
 EndJob.
void endRun (void)
 EndRun.
int getEvtPerJob ()
 Get Functions.
int getEvtPerRun ()
 Returns the number of processed events in this Run.
void setFriends (const std::vector< EEClient * > &clients)
 Set Clients.
void setup (void)
 Setup.
virtual ~EESummaryClient ()
 Destructor.

Private Attributes

std::vector< EEClient * > clients_
bool cloneME_
bool debug_
DQMStoredqmStore_
bool enableCleanup_
TProfile2D * hot01_ [18]
TProfile2D * hpot01_ [18]
TProfile2D * htmt01_ [18]
TProfile2D * httt01_ [18]
int ievt_
int jevt_
std::vector< int > laserWavelengths_
std::vector< int > ledWavelengths_
MonitorElementmeGlobalSummary_ [2]
MonitorElementmeIntegrity_ [2]
MonitorElementmeIntegrityErr_
MonitorElementmeIntegrityPN_
MonitorElementmeLaserL1_ [2]
MonitorElementmeLaserL1Ampl_
MonitorElementmeLaserL1AmplOverPN_
MonitorElementmeLaserL1Err_
MonitorElementmeLaserL1PN_
MonitorElementmeLaserL1PNErr_
MonitorElementmeLaserL1Timing_
MonitorElementmeLaserL2_ [2]
MonitorElementmeLaserL2Ampl_
MonitorElementmeLaserL2AmplOverPN_
MonitorElementmeLaserL2Err_
MonitorElementmeLaserL2PN_
MonitorElementmeLaserL2PNErr_
MonitorElementmeLaserL2Timing_
MonitorElementmeLaserL3_ [2]
MonitorElementmeLaserL3Ampl_
MonitorElementmeLaserL3AmplOverPN_
MonitorElementmeLaserL3Err_
MonitorElementmeLaserL3PN_
MonitorElementmeLaserL3PNErr_
MonitorElementmeLaserL3Timing_
MonitorElementmeLaserL4_ [2]
MonitorElementmeLaserL4Ampl_
MonitorElementmeLaserL4AmplOverPN_
MonitorElementmeLaserL4Err_
MonitorElementmeLaserL4PN_
MonitorElementmeLaserL4PNErr_
MonitorElementmeLaserL4Timing_
MonitorElementmeLedL1_ [2]
MonitorElementmeLedL1Ampl_
MonitorElementmeLedL1AmplOverPN_
MonitorElementmeLedL1Err_
MonitorElementmeLedL1PN_
MonitorElementmeLedL1PNErr_
MonitorElementmeLedL1Timing_
MonitorElementmeLedL2_ [2]
MonitorElementmeLedL2Ampl_
MonitorElementmeLedL2AmplOverPN_
MonitorElementmeLedL2Err_
MonitorElementmeLedL2PN_
MonitorElementmeLedL2PNErr_
MonitorElementmeLedL2Timing_
MonitorElementmeOccupancy1D_
MonitorElementmeOccupancy_ [2]
MonitorElementmeOccupancyPN_
MonitorElementmePedestalG01_ [2]
MonitorElementmePedestalG06_ [2]
MonitorElementmePedestalG12_ [2]
MonitorElementmePedestalOnline_ [2]
MonitorElementmePedestalOnlineErr_
MonitorElementmePedestalOnlineMean_
MonitorElementmePedestalOnlineRMS_
MonitorElementmePedestalOnlineRMSMap_ [2]
MonitorElementmePedestalPNG01_
MonitorElementmePedestalPNG16_
MonitorElementmeRecHitEnergy_ [2]
MonitorElementmeStatusFlags_ [2]
MonitorElementmeStatusFlagsErr_
MonitorElementmeSummaryErr_
MonitorElementmeTestPulseAmplG01_
MonitorElementmeTestPulseAmplG06_
MonitorElementmeTestPulseAmplG12_
MonitorElementmeTestPulseG01_ [2]
MonitorElementmeTestPulseG06_ [2]
MonitorElementmeTestPulseG12_ [2]
MonitorElementmeTestPulsePNG01_
MonitorElementmeTestPulsePNG16_
MonitorElementmeTiming_ [2]
MonitorElementmeTimingMean1D_ [2]
MonitorElementmeTimingMean_
MonitorElementmeTimingRMS1D_ [2]
MonitorElementmeTimingRMS_
MonitorElementmeTriggerTowerEmulError_ [2]
MonitorElementmeTriggerTowerEt_ [2]
MonitorElementmeTriggerTowerEtSpectrum_ [2]
MonitorElementmeTriggerTowerNonSingleTiming_ [2]
MonitorElementmeTriggerTowerTiming_ [2]
std::vector< int > MGPAGains_
std::vector< int > MGPAGainsPN_
TH1F * norm01_
std::string prefixME_
bool produceReports_
bool reducedReports_
std::string subfolder_
std::vector< int > superModules_
TH1F * synch01_
float synchErrorThreshold_
float timingNHitThreshold_
bool verbose_

Detailed Description

Definition at line 31 of file EESummaryClient.h.


Constructor & Destructor Documentation

EESummaryClient::EESummaryClient ( const edm::ParameterSet ps)

Constructor.

Definition at line 51 of file EESummaryClient.cc.

References cloneME_, debug_, enableCleanup_, edm::ParameterSet::getUntrackedParameter(), hpot01_, httt01_, i, ecalpyutils::ism(), laserWavelengths_, ledWavelengths_, meGlobalSummary_, meIntegrity_, meIntegrityErr_, meIntegrityPN_, meLaserL1_, meLaserL1Ampl_, meLaserL1AmplOverPN_, meLaserL1Err_, meLaserL1PN_, meLaserL1PNErr_, meLaserL1Timing_, meLaserL2_, meLaserL2Ampl_, meLaserL2AmplOverPN_, meLaserL2Err_, meLaserL2PN_, meLaserL2PNErr_, meLaserL2Timing_, meLaserL3_, meLaserL3Ampl_, meLaserL3AmplOverPN_, meLaserL3Err_, meLaserL3PN_, meLaserL3PNErr_, meLaserL3Timing_, meLaserL4_, meLaserL4Ampl_, meLaserL4AmplOverPN_, meLaserL4Err_, meLaserL4PN_, meLaserL4PNErr_, meLaserL4Timing_, meLedL1_, meLedL1Ampl_, meLedL1AmplOverPN_, meLedL1Err_, meLedL1PN_, meLedL1PNErr_, meLedL1Timing_, meLedL2_, meLedL2Ampl_, meLedL2AmplOverPN_, meLedL2Err_, meLedL2PN_, meLedL2PNErr_, meLedL2Timing_, meOccupancy1D_, meOccupancy_, meOccupancyPN_, mePedestalG01_, mePedestalG06_, mePedestalG12_, mePedestalOnline_, mePedestalOnlineErr_, mePedestalOnlineMean_, mePedestalOnlineRMS_, mePedestalOnlineRMSMap_, mePedestalPNG01_, mePedestalPNG16_, meRecHitEnergy_, meStatusFlags_, meStatusFlagsErr_, meSummaryErr_, meTestPulseAmplG01_, meTestPulseAmplG06_, meTestPulseAmplG12_, meTestPulseG01_, meTestPulseG06_, meTestPulseG12_, meTestPulsePNG01_, meTestPulsePNG16_, meTiming_, meTimingMean1D_, meTimingMean_, meTimingRMS1D_, meTimingRMS_, meTriggerTowerEmulError_, meTriggerTowerEt_, meTriggerTowerNonSingleTiming_, meTriggerTowerTiming_, MGPAGains_, MGPAGainsPN_, prefixME_, produceReports_, reducedReports_, subfolder_, superModules_, synchErrorThreshold_, timingNHitThreshold_, and verbose_.

                                                          {

  // cloneME switch
  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);

  // verbose switch
  verbose_ = ps.getUntrackedParameter<bool>("verbose", true);

  // debug switch
  debug_ = ps.getUntrackedParameter<bool>("debug", false);

  // prefixME path
  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");

  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");

  // enableCleanup_ switch
  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);

  produceReports_ = ps.getUntrackedParameter<bool>("produceReports", true);

  reducedReports_ = ps.getUntrackedParameter<bool>("reducedReports", false);

  // vector of selected Super Modules (Defaults to all 18).
  superModules_.reserve(18);
  for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i);
  superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);

  laserWavelengths_.reserve(4);
  for ( unsigned int i = 1; i <= 4; i++ ) laserWavelengths_.push_back(i);
  laserWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("laserWavelengths", laserWavelengths_);

  ledWavelengths_.reserve(2);
  for ( unsigned int i = 1; i <= 2; i++ ) ledWavelengths_.push_back(i);
  ledWavelengths_ = ps.getUntrackedParameter<std::vector<int> >("ledWavelengths", ledWavelengths_);

  MGPAGains_.reserve(3);
  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGains_.push_back(i);
  MGPAGains_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGains", MGPAGains_);

  MGPAGainsPN_.reserve(2);
  for ( unsigned int i = 1; i <= 3; i++ ) MGPAGainsPN_.push_back(i);
  MGPAGainsPN_ = ps.getUntrackedParameter<std::vector<int> >("MGPAGainsPN", MGPAGainsPN_);

  timingNHitThreshold_ = ps.getUntrackedParameter<int>("timingNHitThreshold", 5);
  synchErrorThreshold_ = ps.getUntrackedParameter<double>("synchErrorThreshold", 0.01);

  // summary maps
  meIntegrity_[0]      = 0;
  meIntegrity_[1]      = 0;
  meIntegrityPN_       = 0;
  meOccupancy_[0]      = 0;
  meOccupancy_[1]      = 0;
  meOccupancyPN_       = 0;
  meStatusFlags_[0]    = 0;
  meStatusFlags_[1]    = 0;
  mePedestalOnline_[0] = 0;
  mePedestalOnline_[1] = 0;
  mePedestalOnlineRMSMap_[0] = 0;
  mePedestalOnlineRMSMap_[1] = 0;
  mePedestalOnlineMean_   = 0;
  mePedestalOnlineRMS_    = 0;

  meLaserL1_[0]        = 0;
  meLaserL1_[1]        = 0;
  meLaserL1PN_         = 0;
  meLaserL1Ampl_       = 0;
  meLaserL1Timing_     = 0;
  meLaserL1AmplOverPN_ = 0;

  meLaserL2_[0]        = 0;
  meLaserL2_[1]        = 0;
  meLaserL2PN_         = 0;
  meLaserL2Ampl_       = 0;
  meLaserL2Timing_     = 0;
  meLaserL2AmplOverPN_ = 0;

  meLaserL3_[0]        = 0;
  meLaserL3_[1]        = 0;
  meLaserL3PN_         = 0;
  meLaserL3Ampl_       = 0;
  meLaserL3Timing_     = 0;
  meLaserL3AmplOverPN_ = 0;

  meLaserL4_[0]        = 0;
  meLaserL4_[1]        = 0;
  meLaserL4PN_         = 0;
  meLaserL4Ampl_       = 0;
  meLaserL4Timing_     = 0;
  meLaserL4AmplOverPN_ = 0;

  meLedL1_[0]          = 0;
  meLedL1_[1]          = 0;
  meLedL1PN_           = 0;
  meLedL1Ampl_         = 0;
  meLedL1Timing_       = 0;
  meLedL1AmplOverPN_   = 0;

  meLedL2_[0]          = 0;
  meLedL2_[1]          = 0;
  meLedL2PN_           = 0;
  meLedL2Ampl_         = 0;
  meLedL2Timing_       = 0;
  meLedL2AmplOverPN_   = 0;

  mePedestalG01_[0]       = 0;
  mePedestalG01_[1]       = 0;
  mePedestalG06_[0]       = 0;
  mePedestalG06_[1]       = 0;
  mePedestalG12_[0]       = 0;
  mePedestalG12_[1]       = 0;
  mePedestalPNG01_        = 0;
  mePedestalPNG16_        = 0;
  meTestPulseG01_[0]      = 0;
  meTestPulseG01_[1]      = 0;
  meTestPulseG06_[0]      = 0;
  meTestPulseG06_[1]      = 0;
  meTestPulseG12_[0]      = 0;
  meTestPulseG12_[1]      = 0;
  meTestPulsePNG01_       = 0;
  meTestPulsePNG16_       = 0;
  meTestPulseAmplG01_ = 0;
  meTestPulseAmplG06_ = 0;
  meTestPulseAmplG12_ = 0;
  meGlobalSummary_[0]  = 0;
  meGlobalSummary_[1]  = 0;

  meRecHitEnergy_[0]   = 0;
  meRecHitEnergy_[1]   = 0;
  meTiming_[0]         = 0;
  meTiming_[1]         = 0;
  meTimingMean1D_[0]   = 0;
  meTimingMean1D_[1]   = 0;
  meTimingRMS1D_[0]   = 0;
  meTimingRMS1D_[1]   = 0;
  meTimingMean_ = 0;
  meTimingRMS_  = 0;

  meTriggerTowerEt_[0]        = 0;
  meTriggerTowerEt_[1]        = 0;
  meTriggerTowerEmulError_[0] = 0;
  meTriggerTowerEmulError_[1] = 0;
  meTriggerTowerTiming_[0] = 0;
  meTriggerTowerTiming_[1] = 0;
  meTriggerTowerNonSingleTiming_[0] = 0;
  meTriggerTowerNonSingleTiming_[1] = 0;

  // summary errors
  meIntegrityErr_       = 0;
  meOccupancy1D_        = 0;
  meStatusFlagsErr_     = 0;
  mePedestalOnlineErr_  = 0;
  meLaserL1Err_         = 0;
  meLaserL1PNErr_       = 0;
  meLaserL2Err_         = 0;
  meLaserL2PNErr_       = 0;
  meLaserL3Err_         = 0;
  meLaserL3PNErr_       = 0;
  meLaserL4Err_         = 0;
  meLaserL4PNErr_       = 0;
  meLedL1Err_           = 0;
  meLedL1PNErr_         = 0;
  meLedL2Err_           = 0;
  meLedL2PNErr_         = 0;

  meSummaryErr_ = 0;

  for ( unsigned int i=0; i<superModules_.size(); i++ ) {

    int ism = superModules_[i];

    hpot01_[ism-1] = 0;
    httt01_[ism-1] = 0;

  }

}
EESummaryClient::~EESummaryClient ( ) [virtual]

Destructor.

Definition at line 229 of file EESummaryClient.cc.

                                  {

}

Member Function Documentation

void EESummaryClient::analyze ( void  ) [virtual]

Analyze.

Implements EEClient.

Definition at line 1466 of file EESummaryClient.cc.

References abs, clients_, cloneME_, gather_cfg::cout, debug_, dqmStore_, EcalEndcap, MonitorElement::Fill(), spr::find(), DQMStore::get(), MonitorElement::getBinContent(), MonitorElement::getBinError(), UtilsClient::getBinStatistics(), MonitorElement::getEntries(), getHisto(), EEIntegrityClient::h_, EEIntegrityClient::hmem_, hot01_, hpot01_, htmt01_, httt01_, i, Numbers::icEE(), ievt_, ecalpyutils::ism(), Numbers::ix0EE(), Numbers::iy0EE(), j, jevt_, EETriggerTowerClient::l01_, EETriggerTowerClient::l02_, laserWavelengths_, ledWavelengths_, UtilsClient::maskBinContent(), Masks::maskChannel(), EETriggerTowerClient::me_o01_, EETriggerTowerClient::me_o02_, EETestPulseClient::mea01_, EELaserClient::mea01_, EELedClient::mea01_, EETestPulseClient::mea02_, EELaserClient::mea02_, EELedClient::mea02_, EETestPulseClient::mea03_, EELaserClient::mea03_, EELaserClient::mea04_, EELedClient::meaopn01_, EELaserClient::meaopn01_, EELedClient::meaopn02_, EELaserClient::meaopn02_, EELaserClient::meaopn03_, EELaserClient::meaopn04_, EELaserClient::meg01_, EELedClient::meg01_, EEPedestalClient::meg01_, EETestPulseClient::meg01_, EEIntegrityClient::meg01_, EELaserClient::meg02_, EELedClient::meg02_, EEPedestalClient::meg02_, EETestPulseClient::meg02_, EEIntegrityClient::meg02_, EEPedestalOnlineClient::meg03_, EELaserClient::meg03_, EETestPulseClient::meg03_, EEPedestalClient::meg03_, EELaserClient::meg04_, EETestPulseClient::meg04_, EEPedestalClient::meg04_, EETestPulseClient::meg05_, EEPedestalClient::meg05_, EELedClient::meg09_, EELaserClient::meg09_, EELedClient::meg10_, EELaserClient::meg10_, EELaserClient::meg11_, EELaserClient::meg12_, meGlobalSummary_, EEStatusFlagsClient::meh01_, meIntegrity_, meIntegrityErr_, meIntegrityPN_, meLaserL1_, meLaserL1Ampl_, meLaserL1AmplOverPN_, meLaserL1Err_, meLaserL1PN_, meLaserL1PNErr_, meLaserL1Timing_, meLaserL2_, meLaserL2Ampl_, meLaserL2AmplOverPN_, meLaserL2Err_, meLaserL2PN_, meLaserL2PNErr_, meLaserL2Timing_, meLaserL3_, meLaserL3Ampl_, meLaserL3AmplOverPN_, meLaserL3Err_, meLaserL3PN_, meLaserL3PNErr_, meLaserL3Timing_, meLaserL4_, meLaserL4Ampl_, meLaserL4AmplOverPN_, meLaserL4Err_, meLaserL4PN_, meLaserL4PNErr_, meLaserL4Timing_, meLedL1_, meLedL1Ampl_, meLedL1AmplOverPN_, meLedL1Err_, meLedL1PN_, meLedL1PNErr_, meLedL1Timing_, meLedL2_, meLedL2Ampl_, meLedL2AmplOverPN_, meLedL2Err_, meLedL2PN_, meLedL2PNErr_, meLedL2Timing_, meOccupancy1D_, meOccupancy_, meOccupancyPN_, mePedestalG01_, mePedestalG06_, mePedestalG12_, mePedestalOnline_, mePedestalOnlineErr_, mePedestalOnlineMean_, mePedestalOnlineRMS_, mePedestalOnlineRMSMap_, mePedestalPNG01_, mePedestalPNG16_, meRecHitEnergy_, meStatusFlags_, meStatusFlagsErr_, meSummaryErr_, EELaserClient::met01_, EELedClient::met01_, EELaserClient::met02_, EELedClient::met02_, EELaserClient::met03_, EELaserClient::met04_, meTestPulseAmplG01_, meTestPulseAmplG06_, meTestPulseAmplG12_, meTestPulseG01_, meTestPulseG06_, meTestPulseG12_, meTestPulsePNG01_, meTestPulsePNG16_, meTiming_, meTimingMean1D_, meTimingMean_, meTimingRMS1D_, meTimingRMS_, meTriggerTowerEmulError_, meTriggerTowerEt_, meTriggerTowerNonSingleTiming_, meTriggerTowerTiming_, norm01_, EcalDQMStatusHelper::PHYSICS_BAD_CHANNEL_WARNING, prefixME_, produceReports_, reducedReports_, MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setBinContent(), MonitorElement::setEntries(), subfolder_, superModules_, synch01_, synchErrorThreshold_, timingNHitThreshold_, Numbers::validEE(), and Numbers::validEESc().

Referenced by EcalEndcapMonitorClient::analyze(), and EcalEndcapMonitorClient::endRun().

                                  {

  ievt_++;
  jevt_++;
  if ( ievt_ % 10 == 0 ) {
    if ( debug_ ) std::cout << "EESummaryClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
  }

  uint32_t chWarnBit = 1 << EcalDQMStatusHelper::PHYSICS_BAD_CHANNEL_WARNING;

  for ( int ix = 1; ix <= 100; ix++ ) {
    for ( int iy = 1; iy <= 100; iy++ ) {

      if ( meIntegrity_[0] ) meIntegrity_[0]->setBinContent( ix, iy, 6. );
      if ( meIntegrity_[1] ) meIntegrity_[1]->setBinContent( ix, iy, 6. );
      if ( meOccupancy_[0] ) meOccupancy_[0]->setBinContent( ix, iy, 0. );
      if ( meOccupancy_[1] ) meOccupancy_[1]->setBinContent( ix, iy, 0. );
      if ( meStatusFlags_[0] ) meStatusFlags_[0]->setBinContent( ix, iy, 6. );
      if ( meStatusFlags_[1] ) meStatusFlags_[1]->setBinContent( ix, iy, 6. );
      if ( mePedestalOnline_[0] ) mePedestalOnline_[0]->setBinContent( ix, iy, 6. );
      if ( mePedestalOnline_[1] ) mePedestalOnline_[1]->setBinContent( ix, iy, 6. );
      if ( mePedestalOnlineRMSMap_[0] ) mePedestalOnlineRMSMap_[0]->setBinContent( ix, iy, -1. );
      if ( mePedestalOnlineRMSMap_[1] ) mePedestalOnlineRMSMap_[1]->setBinContent( ix, iy, -1. );

      if ( meLaserL1_[0] ) meLaserL1_[0]->setBinContent( ix, iy, 6. );
      if ( meLaserL1_[1] ) meLaserL1_[1]->setBinContent( ix, iy, 6. );
      if ( meLaserL2_[0] ) meLaserL2_[0]->setBinContent( ix, iy, 6. );
      if ( meLaserL2_[1] ) meLaserL2_[1]->setBinContent( ix, iy, 6. );
      if ( meLaserL3_[0] ) meLaserL3_[0]->setBinContent( ix, iy, 6. );
      if ( meLaserL3_[1] ) meLaserL3_[1]->setBinContent( ix, iy, 6. );
      if ( meLaserL4_[0] ) meLaserL4_[0]->setBinContent( ix, iy, 6. );
      if ( meLaserL4_[1] ) meLaserL4_[1]->setBinContent( ix, iy, 6. );
      if ( meLedL1_[0] ) meLedL1_[0]->setBinContent( ix, iy, 6. );
      if ( meLedL1_[1] ) meLedL1_[1]->setBinContent( ix, iy, 6. );
      if ( meLedL2_[0] ) meLedL2_[0]->setBinContent( ix, iy, 6. );
      if ( meLedL2_[1] ) meLedL2_[1]->setBinContent( ix, iy, 6. );
      if ( mePedestalG01_[0] ) mePedestalG01_[0]->setBinContent( ix, iy, 6. );
      if ( mePedestalG01_[1] ) mePedestalG01_[1]->setBinContent( ix, iy, 6. );
      if ( mePedestalG06_[0] ) mePedestalG06_[0]->setBinContent( ix, iy, 6. );
      if ( mePedestalG06_[1] ) mePedestalG06_[1]->setBinContent( ix, iy, 6. );
      if ( mePedestalG12_[0] ) mePedestalG12_[0]->setBinContent( ix, iy, 6. );
      if ( mePedestalG12_[1] ) mePedestalG12_[1]->setBinContent( ix, iy, 6. );
      if ( meTestPulseG01_[0] ) meTestPulseG01_[0]->setBinContent( ix, iy, 6. );
      if ( meTestPulseG01_[1] ) meTestPulseG01_[1]->setBinContent( ix, iy, 6. );
      if ( meTestPulseG06_[0] ) meTestPulseG06_[0]->setBinContent( ix, iy, 6. );
      if ( meTestPulseG06_[1] ) meTestPulseG06_[1]->setBinContent( ix, iy, 6. );
      if ( meTestPulseG12_[0] ) meTestPulseG12_[0]->setBinContent( ix, iy, 6. );
      if ( meTestPulseG12_[1] ) meTestPulseG12_[1]->setBinContent( ix, iy, 6. );
      if ( meRecHitEnergy_[0] ) meRecHitEnergy_[0]->setBinContent( ix, iy, 0. );
      if ( meRecHitEnergy_[1] ) meRecHitEnergy_[1]->setBinContent( ix, iy, 0. );

      if( meGlobalSummary_[0] ) meGlobalSummary_[0]->setBinContent( ix, iy, 6. );
      if( meGlobalSummary_[1] ) meGlobalSummary_[1]->setBinContent( ix, iy, 6. );

    }
  }

  // default is 6 because we want white for the non existing MEM
  for ( int ix = 1; ix <= 45; ix++ ) {
    for ( int iy = 1; iy <= 20; iy++ ) {

      if ( meIntegrityPN_ ) meIntegrityPN_->setBinContent( ix, iy, 6. );
      if ( meOccupancyPN_ ) meOccupancyPN_->setBinContent( ix, iy, 0. );
      if ( meLaserL1PN_ ) meLaserL1PN_->setBinContent( ix, iy, 6. );
      if ( meLaserL2PN_ ) meLaserL2PN_->setBinContent( ix, iy, 6. );
      if ( meLaserL3PN_ ) meLaserL3PN_->setBinContent( ix, iy, 6. );
      if ( meLaserL4PN_ ) meLaserL4PN_->setBinContent( ix, iy, 6. );
      if ( meLedL1PN_ ) meLedL1PN_->setBinContent( ix, iy, 6. );
      if ( meLedL2PN_ ) meLedL2PN_->setBinContent( ix, iy, 6. );
      if ( mePedestalPNG01_ ) mePedestalPNG01_->setBinContent( ix, iy, 6. );
      if ( mePedestalPNG16_ ) mePedestalPNG16_->setBinContent( ix, iy, 6. );
      if ( meTestPulsePNG01_ ) meTestPulsePNG01_->setBinContent( ix, iy, 6. );
      if ( meTestPulsePNG16_ ) meTestPulsePNG16_->setBinContent( ix, iy, 6. );

    }
  }

  for ( int ix = 1; ix <= 100; ix++ ) {
    for ( int iy = 1; iy <= 100; iy++ ) {
      if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setBinContent( ix, iy, 0. );
      if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setBinContent( ix, iy, 0. );
      if ( meTriggerTowerEmulError_[0] ) meTriggerTowerEmulError_[0]->setBinContent( ix, iy, 6. );
      if ( meTriggerTowerEmulError_[1] ) meTriggerTowerEmulError_[1]->setBinContent( ix, iy, 6. );
      if ( meTriggerTowerTiming_[0] ) meTriggerTowerTiming_[0]->setBinContent( ix, iy, 0. );
      if ( meTriggerTowerTiming_[1] ) meTriggerTowerTiming_[1]->setBinContent( ix, iy, 0. );
      if ( meTriggerTowerNonSingleTiming_[0] ) meTriggerTowerNonSingleTiming_[0]->setBinContent( ix, iy, -1 );
      if ( meTriggerTowerNonSingleTiming_[1] ) meTriggerTowerNonSingleTiming_[1]->setBinContent( ix, iy, -1 );
    }
  }

  for ( int ix = 1; ix <= 20; ix++ ) {
    for ( int iy = 1; iy <= 20; iy++ ) {
      if ( meTiming_[0] ) meTiming_[0]->setBinContent( ix, iy, 6. );
      if ( meTiming_[1] ) meTiming_[1]->setBinContent( ix, iy, 6. );
    }
  }

  if ( meIntegrity_[0] ) meIntegrity_[0]->setEntries( 0 );
  if ( meIntegrity_[1] ) meIntegrity_[1]->setEntries( 0 );
  if ( meIntegrityErr_ ) meIntegrityErr_->Reset();
  if ( meIntegrityPN_ ) meIntegrityPN_->setEntries( 0 );
  if ( meOccupancy_[0] ) meOccupancy_[0]->setEntries( 0 );
  if ( meOccupancy_[1] ) meOccupancy_[1]->setEntries( 0 );
  if ( meOccupancy1D_ ) meOccupancy1D_->Reset();
  if ( meOccupancyPN_ ) meOccupancyPN_->setEntries( 0 );
  if ( meStatusFlags_[0] ) meStatusFlags_[0]->setEntries( 0 );
  if ( meStatusFlags_[1] ) meStatusFlags_[1]->setEntries( 0 );
  if ( meStatusFlagsErr_ ) meStatusFlagsErr_->Reset();
  if ( mePedestalOnline_[0] ) mePedestalOnline_[0]->setEntries( 0 );
  if ( mePedestalOnline_[1] ) mePedestalOnline_[1]->setEntries( 0 );
  if ( mePedestalOnlineErr_ ) mePedestalOnlineErr_->Reset();
  if ( mePedestalOnlineMean_ ) mePedestalOnlineMean_->Reset();
  if ( mePedestalOnlineRMS_ ) mePedestalOnlineRMS_->Reset();
  if ( meLaserL1_[0] ) meLaserL1_[0]->setEntries( 0 );
  if ( meLaserL1_[1] ) meLaserL1_[1]->setEntries( 0 );
  if ( meLaserL1Err_ ) meLaserL1Err_->Reset();
  if ( meLaserL1PN_ ) meLaserL1PN_->setEntries( 0 );
  if ( meLaserL1PNErr_ ) meLaserL1PNErr_->Reset();
  if ( meLaserL1Ampl_ ) meLaserL1Ampl_->Reset();
  if ( meLaserL1Timing_ ) meLaserL1Timing_->Reset();
  if ( meLaserL1AmplOverPN_ ) meLaserL1AmplOverPN_->Reset();
  if ( meLaserL2_[0] ) meLaserL2_[0]->setEntries( 0 );
  if ( meLaserL2_[1] ) meLaserL2_[1]->setEntries( 0 );
  if ( meLaserL2Err_ ) meLaserL2Err_->Reset();
  if ( meLaserL2PN_ ) meLaserL2PN_->setEntries( 0 );
  if ( meLaserL2PNErr_ ) meLaserL2PNErr_->Reset();
  if ( meLaserL2Ampl_ ) meLaserL2Ampl_->Reset();
  if ( meLaserL2Timing_ ) meLaserL2Timing_->Reset();
  if ( meLaserL2AmplOverPN_ ) meLaserL2AmplOverPN_->Reset();
  if ( meLaserL3_[0] ) meLaserL3_[0]->setEntries( 0 );
  if ( meLaserL3_[1] ) meLaserL3_[1]->setEntries( 0 );
  if ( meLaserL3Err_ ) meLaserL3Err_->Reset();
  if ( meLaserL3PN_ ) meLaserL3PN_->setEntries( 0 );
  if ( meLaserL3PNErr_ ) meLaserL3PNErr_->Reset();
  if ( meLaserL3Ampl_ ) meLaserL3Ampl_->Reset();
  if ( meLaserL3Timing_ ) meLaserL3Timing_->Reset();
  if ( meLaserL3AmplOverPN_ ) meLaserL3AmplOverPN_->Reset();
  if ( meLaserL4_[0] ) meLaserL4_[0]->setEntries( 0 );
  if ( meLaserL4_[1] ) meLaserL4_[1]->setEntries( 0 );
  if ( meLaserL4Err_ ) meLaserL4Err_->Reset();
  if ( meLaserL4PN_ ) meLaserL4PN_->setEntries( 0 );
  if ( meLaserL4PNErr_ ) meLaserL4PNErr_->Reset();
  if ( meLaserL4Ampl_ ) meLaserL4Ampl_->Reset();
  if ( meLaserL4Timing_ ) meLaserL4Timing_->Reset();
  if ( meLaserL4AmplOverPN_ ) meLaserL4AmplOverPN_->Reset();
  if ( meLedL1_[0] ) meLedL1_[0]->setEntries( 0 );
  if ( meLedL1_[1] ) meLedL1_[1]->setEntries( 0 );
  if ( meLedL1Err_ ) meLedL1Err_->Reset();
  if ( meLedL1PN_ ) meLedL1PN_->setEntries( 0 );
  if ( meLedL1PNErr_ ) meLedL1PNErr_->Reset();
  if ( meLedL1Ampl_ ) meLedL1Ampl_->Reset();
  if ( meLedL1Timing_ ) meLedL1Timing_->Reset();
  if ( meLedL1AmplOverPN_ ) meLedL1AmplOverPN_->Reset();
  if ( meLedL2_[0] ) meLedL2_[0]->setEntries( 0 );
  if ( meLedL2_[1] ) meLedL2_[1]->setEntries( 0 );
  if ( meLedL2Err_ ) meLedL2Err_->Reset();
  if ( meLedL2PN_ ) meLedL2PN_->setEntries( 0 );
  if ( meLedL2PNErr_ ) meLedL2PNErr_->Reset();
  if ( meLedL2Ampl_ ) meLedL2Ampl_->Reset();
  if ( meLedL2Timing_ ) meLedL2Timing_->Reset();
  if ( meLedL2AmplOverPN_ ) meLedL2AmplOverPN_->Reset();
  if ( mePedestalG01_[0] ) mePedestalG01_[0]->setEntries( 0 );
  if ( mePedestalG01_[1] ) mePedestalG01_[1]->setEntries( 0 );
  if ( mePedestalG06_[0] ) mePedestalG06_[0]->setEntries( 0 );
  if ( mePedestalG06_[1] ) mePedestalG06_[1]->setEntries( 0 );
  if ( mePedestalG12_[0] ) mePedestalG12_[0]->setEntries( 0 );
  if ( mePedestalG12_[1] ) mePedestalG12_[1]->setEntries( 0 );
  if ( mePedestalPNG01_ ) mePedestalPNG01_->setEntries( 0 );
  if ( mePedestalPNG16_ ) mePedestalPNG16_->setEntries( 0 );
  if ( meTestPulseG01_[0] ) meTestPulseG01_[0]->setEntries( 0 );
  if ( meTestPulseG01_[1] ) meTestPulseG01_[1]->setEntries( 0 );
  if ( meTestPulseG06_[0] ) meTestPulseG06_[0]->setEntries( 0 );
  if ( meTestPulseG06_[1] ) meTestPulseG06_[1]->setEntries( 0 );
  if ( meTestPulseG12_[0] ) meTestPulseG12_[0]->setEntries( 0 );
  if ( meTestPulseG12_[1] ) meTestPulseG12_[1]->setEntries( 0 );
  if ( meTestPulsePNG01_ ) meTestPulsePNG01_->setEntries( 0 );
  if ( meTestPulsePNG16_ ) meTestPulsePNG16_->setEntries( 0 );
  if ( meTestPulseAmplG01_ ) meTestPulseAmplG01_->Reset();
  if ( meTestPulseAmplG06_ ) meTestPulseAmplG06_->Reset();
  if ( meTestPulseAmplG12_ ) meTestPulseAmplG12_->Reset();

  if ( meRecHitEnergy_[0] ) meRecHitEnergy_[0]->setEntries( 0 );
  if ( meRecHitEnergy_[1] ) meRecHitEnergy_[1]->setEntries( 0 );
  if ( meTiming_[0] ) meTiming_[0]->setEntries( 0 );
  if ( meTiming_[1] ) meTiming_[1]->setEntries( 0 );
  if ( meTimingMean1D_[0] ) meTimingMean1D_[0]->Reset();
  if ( meTimingMean1D_[1] ) meTimingMean1D_[1]->Reset();
  if ( meTimingRMS1D_[0] ) meTimingRMS1D_[0]->Reset();
  if ( meTimingRMS1D_[1] ) meTimingRMS1D_[1]->Reset();
  if ( meTimingMean_ ) meTimingMean_->Reset();
  if ( meTimingRMS_ ) meTimingRMS_->Reset();
  if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setEntries( 0 );
  if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setEntries( 0 );
  if ( meTriggerTowerEmulError_[0] ) meTriggerTowerEmulError_[0]->setEntries( 0 );
  if ( meTriggerTowerEmulError_[1] ) meTriggerTowerEmulError_[1]->setEntries( 0 );
  if ( meTriggerTowerTiming_[0] ) meTriggerTowerTiming_[0]->setEntries( 0 );
  if ( meTriggerTowerTiming_[1] ) meTriggerTowerTiming_[1]->setEntries( 0 );
  if ( meTriggerTowerNonSingleTiming_[0] ) meTriggerTowerNonSingleTiming_[0]->setEntries( 0 );
  if ( meTriggerTowerNonSingleTiming_[1] ) meTriggerTowerNonSingleTiming_[1]->setEntries( 0 );

  if( meGlobalSummary_[0] ) meGlobalSummary_[0]->setEntries( 0 );
  if( meGlobalSummary_[1] ) meGlobalSummary_[1]->setEntries(0);

  if(meSummaryErr_) meSummaryErr_->Reset();

  MonitorElement *me(0);
  me = dqmStore_->get(prefixME_ + "/EETimingTask/EETMT timing map EE +");
  TProfile2D *htmtp(0);
  htmtp = UtilsClient::getHisto(me, false, htmtp);
 
  me = dqmStore_->get(prefixME_ + "/EETimingTask/EETMT timing map EE -");
  TProfile2D *htmtm(0);
  htmtm = UtilsClient::getHisto(me, false, htmtm);

  std::string subdir(subfolder_ == "" ? "" : subfolder_ + "/");

  TH1F* oosTrend(0);

  for ( unsigned int i=0; i<clients_.size(); i++ ) {

    EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
    EEStatusFlagsClient* eesfc = dynamic_cast<EEStatusFlagsClient*>(clients_[i]);
    if(!produceReports_) eesfc = 0;
    EEPedestalOnlineClient* eepoc = dynamic_cast<EEPedestalOnlineClient*>(clients_[i]);
    if(!produceReports_) eepoc = 0;

    EELaserClient* eelc = dynamic_cast<EELaserClient*>(clients_[i]);
    EELedClient* eeldc = dynamic_cast<EELedClient*>(clients_[i]);
    EEPedestalClient* eepc = dynamic_cast<EEPedestalClient*>(clients_[i]);
    EETestPulseClient* eetpc = dynamic_cast<EETestPulseClient*>(clients_[i]);

    EETimingClient* eetmc = dynamic_cast<EETimingClient*>(clients_[i]);
    EETriggerTowerClient* eetttc = dynamic_cast<EETriggerTowerClient*>(clients_[i]);

    MonitorElement *me_01, *me_02, *me_03;
    MonitorElement *me_04, *me_05;
    //    MonitorElement *me_f[6], *me_fg[2];
    TH2F* h2;
    TH2F* h3;

    me = dqmStore_->get( prefixME_ + "/EcalInfo/EEMM DCC" );
    norm01_ = UtilsClient::getHisto( me, cloneME_, norm01_ );

    me = dqmStore_->get( prefixME_ + "/EERawDataTask/" + subdir + "EERDT L1A FE errors" );
    synch01_ = UtilsClient::getHisto( me, cloneME_, synch01_ );

    me = dqmStore_->get(prefixME_ + "/EERawDataTask/" + subdir + "EERDT accumulated FE synchronization errors");
    oosTrend = UtilsClient::getHisto(me, cloneME_, oosTrend);

    for ( unsigned int i=0; i<superModules_.size(); i++ ) {

      int ism = superModules_[i];

      me = dqmStore_->get( prefixME_ + "/EEOccupancyTask/" + subdir + "EEOT rec hit energy " + Numbers::sEE(ism) );
      hot01_[ism-1] = UtilsClient::getHisto( me, cloneME_, hot01_[ism-1] );

      me = dqmStore_->get( prefixME_ + "/EEPedestalOnlineTask/" + subdir + "Gain12/EEPOT pedestal " + Numbers::sEE(ism) + " G12" );
      hpot01_[ism-1] = UtilsClient::getHisto( me, cloneME_, hpot01_[ism-1] );

      me = dqmStore_->get( prefixME_ + "/EETriggerTowerTask/EETTT Et map Real Digis " + Numbers::sEE(ism) );
      httt01_[ism-1] = UtilsClient::getHisto( me, cloneME_, httt01_[ism-1] );

      me = dqmStore_->get( prefixME_ + "/EETimingTask/EETMT timing " + Numbers::sEE(ism) );
      htmt01_[ism-1] = UtilsClient::getHisto( me, cloneME_, htmt01_[ism-1] );

      for ( int ix = 1; ix <= 50; ix++ ) {
        for ( int iy = 1; iy <= 50; iy++ ) {

          int jx = ix + Numbers::ix0EE(ism);
          int jy = iy + Numbers::iy0EE(ism);

          if ( ism >= 1 && ism <= 9 ) {
            if ( ! Numbers::validEE(ism, 101 - jx, jy) ) continue;
          } else {
            if ( ! Numbers::validEE(ism, jx, jy) ) continue;
          }

          if ( eeic ) {

            me = eeic->meg01_[ism-1];

            if ( me ) {

              float xval = me->getBinContent( ix, iy );

              if ( ism >= 1 && ism <= 9 ) {
                if(meIntegrity_[0]) meIntegrity_[0]->setBinContent( 101 - jx, jy, xval );
              } else {
                if(meIntegrity_[1]) meIntegrity_[1]->setBinContent( jx, jy, xval );
              }

              if ( xval == 0 && meIntegrityErr_) meIntegrityErr_->Fill( ism );

            }

            h2 = eeic->h_[ism-1];

            if ( h2 ) {

              float xval = h2->GetBinContent( ix, iy );

              if ( ism >= 1 && ism <= 9 ) {
                if ( xval != 0 && meOccupancy_[0]) meOccupancy_[0]->setBinContent( 101 - jx, jy, xval );
              } else {
                if ( xval != 0 && meOccupancy_[1]) meOccupancy_[1]->setBinContent( jx, jy, xval );
              }

              if(meOccupancy1D_) meOccupancy1D_->Fill( ism, xval );

            }

          }

          if ( eepoc ) {

            me = eepoc->meg03_[ism-1];

            if ( me ) {

              float xval = me->getBinContent( ix, iy );

              if ( ism >= 1 && ism <= 9 ) {
                if(mePedestalOnline_[0]) mePedestalOnline_[0]->setBinContent( 101 - jx, jy, xval );
              } else {
                if(mePedestalOnline_[1]) mePedestalOnline_[1]->setBinContent( jx, jy, xval );
              }

              if ( xval == 0 && mePedestalOnlineErr_) mePedestalOnlineErr_->Fill( ism );

            }

            float num01, mean01, rms01;
            bool update01 = UtilsClient::getBinStatistics(hpot01_[ism-1], ix, iy, num01, mean01, rms01);

            if ( update01 ) {

              if(mePedestalOnlineRMS_) mePedestalOnlineRMS_->Fill( ism, rms01 );
              if(mePedestalOnlineMean_) mePedestalOnlineMean_->Fill( ism, mean01 );

              if ( ism >= 1 && ism <= 9 ) {
                if(mePedestalOnlineRMSMap_[0]) mePedestalOnlineRMSMap_[0]->setBinContent( 101 - jx, jy, rms01 );
              } else {
                if(mePedestalOnlineRMSMap_[1]) mePedestalOnlineRMSMap_[1]->setBinContent( jx, jy, rms01 );
              }

            }

          }

          if ( eelc ) {

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {

              me = eelc->meg01_[ism-1];

              if ( me ) {

                float xval = me->getBinContent( ix, iy );

                if ( me->getEntries() != 0 ) {
                  if ( ism >= 1 && ism <= 9 ) {
                    meLaserL1_[0]->setBinContent( 101 - jx, jy, xval );
                  } else {
                    meLaserL1_[1]->setBinContent( jx, jy, xval );
                  }

                  if ( xval == 0 ) meLaserL1Err_->Fill( ism );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {

              me = eelc->meg02_[ism-1];

              if ( me ) {

                float xval = me->getBinContent( ix, iy );

                if ( me->getEntries() != 0 ) {
                  if ( ism >= 1 && ism <= 9 ) {
                    meLaserL2_[0]->setBinContent( 101 - jx, jy, xval );
                  } else {
                    meLaserL2_[1]->setBinContent( jx, jy, xval );
                  }

                  if ( xval == 0 ) meLaserL2Err_->Fill( ism );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {

              me = eelc->meg03_[ism-1];

              if ( me ) {

                float xval = me->getBinContent( ix, iy );

                if ( me->getEntries() != 0 ) {
                  if ( ism >= 1 && ism <= 9 ) {
                    meLaserL3_[0]->setBinContent( 101 - jx, jy, xval );
                  } else {
                    meLaserL3_[1]->setBinContent( jx, jy, xval );
                  }

                  if ( xval == 0 ) meLaserL3Err_->Fill( ism );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {

              me = eelc->meg04_[ism-1];

              if ( me ) {

                float xval = me->getBinContent( ix, iy );

                if ( me->getEntries() != 0 ) {
                  if ( ism >= 1 && ism <= 9 ) {
                    meLaserL4_[0]->setBinContent( 101 - jx, jy, xval );
                  } else {
                    meLaserL4_[1]->setBinContent( jx, jy, xval );
                  }

                  if ( xval == 0 ) meLaserL4Err_->Fill( ism );
                }

              }

            }

          }

          if ( eeldc ) {

            if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {

              me = eeldc->meg01_[ism-1];

              if ( me ) {

                float xval = me->getBinContent( ix, iy );

                if ( me->getEntries() != 0 ) {
                  if ( ism >= 1 && ism <= 9 ) {
                    meLedL1_[0]->setBinContent( 101 - jx, jy, xval );
                  } else {
                    meLedL1_[1]->setBinContent( jx, jy, xval );
                  }

                  if ( xval == 0 ) meLedL1Err_->Fill( ism );
                }

              }

            }

            if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {

              me = eeldc->meg02_[ism-1];

              if ( me ) {

                float xval = me->getBinContent( ix, iy );

                if ( me->getEntries() != 0 ) {
                  if ( ism >= 1 && ism <= 9 ) {
                    meLedL2_[0]->setBinContent( 101 - jx, jy, xval );
                  } else {
                    meLedL2_[1]->setBinContent( jx, jy, xval );
                  }

                  if ( xval == 0 ) meLedL2Err_->Fill( ism );
                }

              }

            }

          }

          if ( eepc ) {

            me_01 = eepc->meg01_[ism-1];
            me_02 = eepc->meg02_[ism-1];
            me_03 = eepc->meg03_[ism-1];

            if ( me_01 ) {
              float val_01=me_01->getBinContent(ix,iy);
              if ( me_01->getEntries() != 0 ) {
                if ( ism >= 1 && ism <= 9 ) {
                  mePedestalG01_[0]->setBinContent( 101 - jx, jy, val_01 );
                } else {
                  mePedestalG01_[1]->setBinContent( jx, jy, val_01 );
                }
              }
            }
            if ( me_02 ) {
              float val_02=me_02->getBinContent(ix,iy);
              if ( me_02->getEntries() != 0 ) {
                if ( ism >= 1 && ism <= 9 ) {
                  mePedestalG06_[0]->setBinContent( 101 - jx, jy, val_02 );
                } else {
                  mePedestalG06_[1]->setBinContent( jx, jy, val_02 );
                }
              }
            }
            if ( me_03 ) {
              float val_03=me_03->getBinContent(ix,iy);
              if ( me_03->getEntries() != 0 ) {
                if ( ism >= 1 && ism <= 9 ) {
                  mePedestalG12_[0]->setBinContent( 101 - jx, jy, val_03 );
                } else {
                  mePedestalG12_[1]->setBinContent( jx, jy, val_03 );
                }
              }
            }

          }

          if ( eetpc ) {

            me_01 = eetpc->meg01_[ism-1];
            me_02 = eetpc->meg02_[ism-1];
            me_03 = eetpc->meg03_[ism-1];

            if ( me_01 ) {
              float val_01=me_01->getBinContent(ix,iy);
              if ( me_01->getEntries() != 0 ) {
                if ( ism >= 1 && ism <= 9 ) {
                  meTestPulseG01_[0]->setBinContent( 101 - jx, jy, val_01 );
                } else {
                  meTestPulseG01_[1]->setBinContent( jx, jy, val_01 );
                }
              }
            }
            if ( me_02 ) {
              float val_02=me_02->getBinContent(ix,iy);
              if ( me_02->getEntries() != 0 ) {
                if ( ism >= 1 && ism <= 9 ) {
                  meTestPulseG06_[0]->setBinContent( 101 - jx, jy, val_02 );
                } else {
                  meTestPulseG06_[1]->setBinContent( jx, jy, val_02 );
                }
              }
            }
            if ( me_03 ) {
              float val_03=me_03->getBinContent(ix,iy);
              if ( me_03->getEntries() != 0 ) {
                if ( ism >= 1 && ism <= 9 ) {
                  meTestPulseG12_[0]->setBinContent( 101 - jx, jy, val_03 );
                } else {
                  meTestPulseG12_[1]->setBinContent( jx, jy, val_03 );
                }
              }
            }

          }

          if ( hot01_[ism-1] ) {

            float xval = hot01_[ism-1]->GetBinContent( ix, iy );

            if ( ism >= 1 && ism <= 9 ) {
              if(meRecHitEnergy_[0]) meRecHitEnergy_[0]->setBinContent( 101 - jx, jy, xval );
            } else {
              if(meRecHitEnergy_[1]) meRecHitEnergy_[1]->setBinContent( jx, jy, xval );
            }

          }

        }
      }

      for ( int ix = 1; ix <= 50; ix++ ) {
        for ( int iy = 1; iy <= 50; iy++ ) {

          int jx = ix + Numbers::ix0EE(ism);
          int jy = iy + Numbers::iy0EE(ism);

          if ( ism >= 1 && ism <= 9 ) {
            if ( ! Numbers::validEE(ism, 101 - jx, jy) ) continue;
          } else {
            if ( ! Numbers::validEE(ism, jx, jy) ) continue;
          }

          if ( eesfc ) {

            me = dqmStore_->get(prefixME_ + "/EcalInfo/EEMM DCC");

            float xval = 6;

            if ( me ) {

              xval = 2;
              if ( me->getBinContent( ism ) > 0 ) xval = 1;

            }

            me = eesfc->meh01_[ism-1];

            if ( me ) {

              if ( me->getBinContent( ix, iy ) > 0 ) xval = 0;

              if ( ism >= 1 && ism <= 9 ) {

                meStatusFlags_[0]->setBinContent( 101 - jx, jy, xval );

                if ( me->getBinError( ix, iy ) > 0 && me->getBinError( ix, iy ) < 0.1 ) {
                  UtilsClient::maskBinContent( meStatusFlags_[0], 101 - jx, jy );
                }
              } else {

                meStatusFlags_[1]->setBinContent( jx, jy, xval );

                if ( me->getBinError( ix, iy ) > 0 && me->getBinError( ix, iy ) < 0.1 ) {
                  UtilsClient::maskBinContent( meStatusFlags_[1], jx, jy );
                }
              }

              if ( xval == 0 ) meStatusFlagsErr_->Fill( ism );

            }

          }

        }
      }

      for ( int ix = 1; ix <= 50; ix++ ) {
        for ( int iy = 1; iy <= 50; iy++ ) {

          int jx = ix + Numbers::ix0EE(ism);
          int jy = iy + Numbers::iy0EE(ism);

          if ( eetttc ) {

            float mean01 = 0;
            bool hadNonZeroInterest = false;

            if ( httt01_[ism-1] ) {

              mean01 = httt01_[ism-1]->GetBinContent( ix, iy );

              if ( mean01 != 0. ) {
                if ( ism >= 1 && ism <= 9 ) {
                  if ( meTriggerTowerEt_[0] ) meTriggerTowerEt_[0]->setBinContent( 101 - jx, jy, mean01 );
                } else {
                  if ( meTriggerTowerEt_[1] ) meTriggerTowerEt_[1]->setBinContent( jx, jy, mean01 );
                }
              }

            }

            me = eetttc->me_o01_[ism-1];

            if ( me ) {

              float xval = me->getBinContent( ix, iy );

              if ( xval != 0. ) {
                if ( ism >= 1 && ism <= 9 ) {
                  meTriggerTowerTiming_[0]->setBinContent( 101 - jx, jy, xval );
                } else {
                  meTriggerTowerTiming_[1]->setBinContent( jx, jy, xval );
                }
                hadNonZeroInterest = true;
              }

            }

            me = eetttc->me_o02_[ism-1];

            if ( me ) {

              float xval = me->getBinContent( ix, iy );

              if ( xval != 0. ) {
                if ( ism >= 1 && ism <= 9 ) {
                  meTriggerTowerNonSingleTiming_[0]->setBinContent( 101 - jx, jy, xval );
                } else {
                  meTriggerTowerNonSingleTiming_[1]->setBinContent( jx, jy, xval );
                }
              }

            }

            float xval = 2;
            if( mean01 > 0. ) {

              h2 = eetttc->l01_[ism-1];
              h3 = eetttc->l02_[ism-1];

              if ( h2 && h3 ) {

                // float emulErrorVal = h2->GetBinContent( ix, iy ) + h3->GetBinContent( ix, iy );
                float emulErrorVal = h2->GetBinContent( ix, iy );

                if( emulErrorVal > 0.01 * ievt_ && hadNonZeroInterest ) xval = 0;

              }

              if ( xval!=0 && hadNonZeroInterest ) xval = 1;

            }

            // see fix below
            if ( xval == 2 ) continue;

            if ( ism >= 1 && ism <= 9 ) {
              meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, xval );
            } else {
              meTriggerTowerEmulError_[1]->setBinContent( jx, jy, xval );
            }

          }

          if ( eetmc ) {

            float num01, mean01, rms01;
            bool update01 = UtilsClient::getBinStatistics(htmt01_[ism-1], ix, iy, num01, mean01, rms01, timingNHitThreshold_);
            mean01 -= 50.;

            if( update01 ){

              if ( ism >= 1 && ism <= 9 ) {
                meTimingMean1D_[0]->Fill(mean01);
                meTimingRMS1D_[0]->Fill(rms01);
              } else {
                meTimingMean1D_[1]->Fill(mean01);
                meTimingRMS1D_[1]->Fill(rms01);
              }

              meTimingMean_->Fill( ism, mean01 );

              meTimingRMS_->Fill( ism, rms01 );

            }

          }

        }
      }

      for ( int ix = 1; ix <= 10; ix++ ) {
        for( int iy = 1; iy <= 10; iy++ ) {

          int jx = ix + Numbers::ix0EE(ism) / 5;
          int jy = iy + Numbers::iy0EE(ism) / 5;

          if( jx <= 0 || jx >= 21 || jy <= 0 || jy >= 21 ) continue;

          if ( ism >= 1 && ism <= 9 ) {
            if ( ! Numbers::validEESc(ism, 21 - jx, jy) ) continue;
          } else {
            if ( ! Numbers::validEESc(ism, jx, jy) ) continue;
          }

          if ( eetmc ) {

            if ( htmt01_[ism-1] ) {

              int ixedge = (ix-1) * 5;
              int iyedge = (iy-1) * 5;
              int jxedge = (jx-1) * 5;
              int jyedge = (jy-1) * 5;

              float num(0);
              int nValid(0);
              bool mask(false);

              for(int cx=1; cx<=5; cx++){
                for(int cy=1; cy<=5; cy++){
                  int scjx = (ism >= 1 && ism <= 9) ? 101 - (jxedge + cx) : jxedge + cx;
                  int scjy = jyedge + cy;
                  int scix = ixedge + cx;
                  int sciy = iyedge + cy;

                  if ( ! Numbers::validEE(ism, scjx, scjy) ) continue;

                  nValid += 1;

                  num += htmt01_[ism-1]->GetBinEntries(htmt01_[ism-1]->GetBin(scix, sciy));

                  if(Masks::maskChannel(ism, scix, sciy, chWarnBit, EcalEndcap) ) mask = true;
                }
              }

              float nHitThreshold(timingNHitThreshold_ * 15. * nValid / 25.);

              bool update01(false);
              float num01, mean01, rms01;
              if(ism >= 1 && ism <= 9)
                update01 = UtilsClient::getBinStatistics(htmtm, 21 - jx, jy, num01, mean01, rms01, nHitThreshold);
              else
                update01 = UtilsClient::getBinStatistics(htmtp, jx, jy, num01, mean01, rms01, nHitThreshold);
 
              mean01 -= 50.;
 
              if(!update01){
                mean01 = 0.;
                rms01 = 0.;
              }

              update01 |= num > 1.4 * nHitThreshold; // allow 40% outliers

              float xval = 2.;

              if( update01 ){

                // quality BAD if mean large, rms large, or significantly more outliers (num: # events in +-20 ns time window)
                if( std::abs(mean01) > 3. || rms01 > 6. || num > 1.4 * num01 ) xval = 0.;
                else xval = 1.;

              }

              int ind;
              if ( ism >= 1 && ism <= 9 ){
                jx = 21 - jx;
                ind = 0;
              }else{
                ind = 1;
              }

              meTiming_[ind]->setBinContent( jx, jy, xval );
              if ( mask ) UtilsClient::maskBinContent( meTiming_[ind], jx, jy );

            }

          }

        }
      }
      // PN's summaries
      for( int i = 1; i <= 10; i++ ) {
        for( int j = 1; j <= 5; j++ ) {

          int ichanx;
          int ipseudostripx;

          if(ism<=9) {
            ichanx = i;
            ipseudostripx = (ism<=3) ? j+5*(ism-1+6) : j+5*(ism-1-3);
          } else {
            ichanx = i+10;
            ipseudostripx = (ism<=12) ? j+5*(ism-10+6) : j+5*(ism-10-3);
          }

          if ( eeic ) {

            me_04 = eeic->meg02_[ism-1];
            h2 = eeic->hmem_[ism-1];


            if( me_04 ) {

              float xval = me_04->getBinContent(i,j);
              if(meIntegrityPN_) meIntegrityPN_->setBinContent( ipseudostripx, ichanx, xval );

            }

            if ( h2 ) {

              float xval = h2->GetBinContent(i,1);
              if(meOccupancyPN_) meOccupancyPN_->setBinContent( ipseudostripx, ichanx, xval );

            }

          }
        
          if ( eepc ) {

            me_04 = eepc->meg04_[ism-1];
            me_05 = eepc->meg05_[ism-1];

            if( me_04 ) {
              float val_04=me_04->getBinContent(i,1);
              mePedestalPNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
            }
            if( me_05 ) {
              float val_05=me_05->getBinContent(i,1);
              mePedestalPNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
            }

          }

          if ( eetpc ) {

            me_04 = eetpc->meg04_[ism-1];
            me_05 = eetpc->meg05_[ism-1];

            if( me_04 ) {
              float val_04=me_04->getBinContent(i,1);
              meTestPulsePNG01_->setBinContent( ipseudostripx, ichanx, val_04 );
            }
            if( me_05 ) {
              float val_05=me_05->getBinContent(i,1);
              meTestPulsePNG16_->setBinContent( ipseudostripx, ichanx, val_05 );
            }

          }

          if ( eelc ) {

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {

              me = eelc->meg09_[ism-1];

              if( me ) {

                float xval = me->getBinContent(i,1);

                if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
                  meLaserL1PN_->setBinContent( ipseudostripx, ichanx, xval );
                  if ( xval == 0 ) meLaserL1PNErr_->Fill( ism );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {

              me = eelc->meg10_[ism-1];

              if( me ) {

                float xval = me->getBinContent(i,1);

                if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
                  meLaserL2PN_->setBinContent( ipseudostripx, ichanx, xval );
                  if ( xval == 0 ) meLaserL2PNErr_->Fill( ism );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {

              me = eelc->meg11_[ism-1];

              if( me ) {

                float xval = me->getBinContent(i,1);

                if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
                  meLaserL3PN_->setBinContent( ipseudostripx, ichanx, xval );
                  if ( xval == 0 ) meLaserL3PNErr_->Fill( ism );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {

              me = eelc->meg12_[ism-1];

              if( me ) {

                float xval = me->getBinContent(i,1);

                if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
                  meLaserL4PN_->setBinContent( ipseudostripx, ichanx, xval );
                  if ( xval == 0 ) meLaserL4PNErr_->Fill( ism );
                }

              }

            }

          }

          if ( eeldc ) {

            if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {

              me = eeldc->meg09_[ism-1];

              if( me ) {

                float xval = me->getBinContent(i,1);

                if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
                  meLedL1PN_->setBinContent( ipseudostripx, ichanx, xval );
                  if ( xval == 0 ) meLedL1PNErr_->Fill( ism );
                }

              }

            }

            if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {

              me = eeldc->meg10_[ism-1];

              if( me ) {

                float xval = me->getBinContent(i,1);

                if ( me->getEntries() != 0 && me->getEntries() != 0 ) {
                  meLedL2PN_->setBinContent( ipseudostripx, ichanx, xval );
                  if ( xval == 0 ) meLedL2PNErr_->Fill( ism );
                }

              }

            }

          }

        }
      }

      for ( int ix=1; ix<=50; ix++ ) {
        for (int iy=1; iy<=50; iy++ ) {

          int jx = ix + Numbers::ix0EE(ism);
          int jy = iy + Numbers::iy0EE(ism);
          if( ism >= 1 && ism <= 9 ) jx = 101 - jx;

          if( !Numbers::validEE(ism, jx, jy) ) continue;

          int ic = Numbers::icEE(ism, jx, jy);

          if ( eelc ) {

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {

              MonitorElement *meg = eelc->meg01_[ism-1];

              float xval = 2;
              if ( meg ) xval = meg->getBinContent( ix, iy );

              // exclude channels without laser data (yellow in the quality map)
              if( xval != 2 && xval != 5 ) {

                MonitorElement* mea01 = eelc->mea01_[ism-1];
                MonitorElement* met01 = eelc->met01_[ism-1];
                MonitorElement* meaopn01 = eelc->meaopn01_[ism-1];

                if( mea01 && met01 && meaopn01 ) {
                  meLaserL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
                  if( met01->getBinContent( ic ) > 0. ) meLaserL1Timing_->Fill( ism, met01->getBinContent( ic ) );
                  meLaserL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {

              MonitorElement *meg = eelc->meg02_[ism-1];

              float xval = 2;
              if ( meg ) xval = meg->getBinContent( ix, iy );

              // exclude channels without laser data (yellow in the quality map)
              if( xval != 2 && xval != 5 ) {

                MonitorElement* mea02 = eelc->mea02_[ism-1];
                MonitorElement* met02 = eelc->met02_[ism-1];
                MonitorElement* meaopn02 = eelc->meaopn02_[ism-1];

                if( mea02 && met02 && meaopn02 ) {
                  meLaserL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
                  if( met02->getBinContent( ic ) > 0. ) meLaserL2Timing_->Fill( ism, met02->getBinContent( ic ) );
                  meLaserL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {

              MonitorElement *meg = eelc->meg03_[ism-1];

              float xval = 2;
              if ( meg ) xval = meg->getBinContent( ix, iy );

              // exclude channels without laser data (yellow in the quality map)
              if( xval != 2 && xval != 5 ) {

                MonitorElement* mea03 = eelc->mea03_[ism-1];
                MonitorElement* met03 = eelc->met03_[ism-1];
                MonitorElement* meaopn03 = eelc->meaopn03_[ism-1];

                if( mea03 && met03 && meaopn03 ) {
                  meLaserL3Ampl_->Fill( ism, mea03->getBinContent( ic ) );
                  if( met03->getBinContent( ic ) > 0. ) meLaserL3Timing_->Fill( ism, met03->getBinContent( ic ) );
                  meLaserL3AmplOverPN_->Fill( ism, meaopn03->getBinContent( ic ) );
                }

              }

            }

            if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {

              MonitorElement *meg = eelc->meg04_[ism-1];

              float xval = 2;
              if ( meg ) xval = meg->getBinContent( ix, iy );

              // exclude channels without laser data (yellow in the quality map)
              if( xval != 2 && xval != 5 ) {

                MonitorElement* mea04 = eelc->mea04_[ism-1];
                MonitorElement* met04 = eelc->met04_[ism-1];
                MonitorElement* meaopn04 = eelc->meaopn04_[ism-1];

                if( mea04 && met04 && meaopn04 ) {
                  meLaserL4Ampl_->Fill( ism, mea04->getBinContent( ic ) );
                  if( met04->getBinContent( ic ) > 0. ) meLaserL4Timing_->Fill( ism, met04->getBinContent( ic ) );
                  meLaserL4AmplOverPN_->Fill( ism, meaopn04->getBinContent( ic ) );
                }

              }

            }

          }

          if ( eeldc ) {

            if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {

              MonitorElement *meg = eeldc->meg01_[ism-1];

              float xval = 2;
              if ( meg )  xval = meg->getBinContent( ix, iy );

              // exclude channels without led data (yellow in the quality map)
              if( xval != 2 && xval != 5 ) {

                MonitorElement* mea01 = eeldc->mea01_[ism-1];
                MonitorElement* met01 = eeldc->met01_[ism-1];
                MonitorElement* meaopn01 = eeldc->meaopn01_[ism-1];

                if( mea01 && met01 && meaopn01 ) {
                  meLedL1Ampl_->Fill( ism, mea01->getBinContent( ic ) );
                  if( met01->getBinContent( ic ) > 0. ) meLedL1Timing_->Fill( ism, met01->getBinContent( ic ) );
                  meLedL1AmplOverPN_->Fill( ism, meaopn01->getBinContent( ic ) );
                }

              }

            }

            if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {

              MonitorElement *meg = eeldc->meg02_[ism-1];

              float xval = 2;
              if ( meg )  xval = meg->getBinContent( ix, iy );

              // exclude channels without led data (yellow in the quality map)
              if( xval != 2 && xval != 5 ) {

                MonitorElement* mea02 = eeldc->mea02_[ism-1];
                MonitorElement* met02 = eeldc->met02_[ism-1];
                MonitorElement* meaopn02 = eeldc->meaopn02_[ism-1];

                if( mea02 && met02 && meaopn02 ) {
                  meLedL2Ampl_->Fill( ism, mea02->getBinContent( ic ) );
                  if( met02->getBinContent( ic ) > 0. ) meLedL2Timing_->Fill( ism, met02->getBinContent( ic ) );
                  meLedL2AmplOverPN_->Fill( ism, meaopn02->getBinContent( ic ) );
                }

              }

            }

          }

          if ( eetpc ) {

            MonitorElement *meg01 = eetpc->meg01_[ism-1];
            MonitorElement *meg02 = eetpc->meg02_[ism-1];
            MonitorElement *meg03 = eetpc->meg03_[ism-1];

            if ( meg01 ) {

              float xval01 = meg01->getBinContent( ix, iy );

              if ( xval01 != 2 && xval01 != 5 ) {

                me = eetpc->mea01_[ism-1];

                if ( me ) {

                  meTestPulseAmplG01_->Fill( ism, me->getBinContent( ic ) );

                }

              }

            }

            if ( meg02 ) {

              float xval02 = meg02->getBinContent( ix, iy );

              if ( xval02 != 2 && xval02 != 5 ) {

                me = eetpc->mea02_[ism-1];

                if ( me ) {

                  meTestPulseAmplG06_->Fill( ism, me->getBinContent( ic ) );

                }

              }

            }

            if ( meg03 ) {

              float xval03 = meg03->getBinContent( ix, iy );

              if ( xval03 != 2 && xval03 != 5 ) {

                me = eetpc->mea03_[ism-1];

                if ( me ) {

                  meTestPulseAmplG12_->Fill( ism, me->getBinContent( ic ) );

                }

              }

            }

          } //etpc


        } // loop on iy
      } // loop on ix

    } // loop on SM

    // fix TPG quality plots

    for ( unsigned int i=0; i<superModules_.size(); i++ ) {

      int ism = superModules_[i];

      for ( int ix = 1; ix <= 50; ix++ ) {
        for ( int iy = 1; iy <= 50; iy++ ) {

          int jx = ix + Numbers::ix0EE(ism);
          int jy = iy + Numbers::iy0EE(ism);

          if ( eetttc ) {

            if ( ism >= 1 && ism <= 9 ) {
              if ( meTriggerTowerEmulError_[0]->getBinContent( 101 - jx, jy ) == 6 ) {
                if ( Numbers::validEE(ism, 101 - jx, jy) ) meTriggerTowerEmulError_[0]->setBinContent( 101 - jx, jy, 2 );
              }
            } else {
              if ( meTriggerTowerEmulError_[1]->getBinContent( jx, jy ) == 6 ) {
                if ( Numbers::validEE(ism, jx, jy) ) meTriggerTowerEmulError_[1]->setBinContent( jx, jy, 2 );
              }
            }

          }

        }
      }

    }

  } // loop on clients

  // The global-summary
  int nGlobalErrors = 0;
  int nGlobalErrorsEE[18];
  int nValidChannels = 0;
  int nValidChannelsEE[18];

  for (int i = 0; i < 18; i++) {
    nGlobalErrorsEE[i] = 0;
    nValidChannelsEE[i] = 0;
  }

  for ( int jx = 1; jx <= 100; jx++ ) {
    for ( int jy = 1; jy <= 100; jy++ ) {

      if(meGlobalSummary_[0]) {

        float xval = 6;
        float val_in = meIntegrity_[0]->getBinContent(jx,jy);
        float val_po = mePedestalOnline_[0]->getBinContent(jx,jy);
        float val_tm = reducedReports_ ? 1. : meTiming_[0]->getBinContent((jx-1)/5+1,(jy-1)/5+1);
        float val_sf = meStatusFlags_[0]->getBinContent(jx,jy);
        float val_ee = reducedReports_ ? 1. : meTriggerTowerEmulError_[0]->getBinContent(jx,jy); // removed temporarily from the global summary
        // float val_ee = 1;

        // combine all the available wavelenghts in unique laser status
        // for each laser turn dark color and yellow into bright green
        float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
          if ( meLaserL1_[0] ) val_ls_1 = meLaserL1_[0]->getBinContent(jx,jy);
          if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
        }
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
          if ( meLaserL2_[0] ) val_ls_2 = meLaserL2_[0]->getBinContent(jx,jy);
          if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
        }
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
          if ( meLaserL3_[0] ) val_ls_3 = meLaserL3_[0]->getBinContent(jx,jy);
          if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
        }
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
          if ( meLaserL4_[0] ) val_ls_4 = meLaserL4_[0]->getBinContent(jx,jy);
          if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
        }

        float val_ls = 1;
        if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;

        // combine all the available wavelenghts in unique led status
        // for each laser turn dark color and yellow into bright green
        float val_ld_1=2, val_ld_2=2;
        if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
          if ( meLedL1_[0] ) val_ld_1 = meLedL1_[0]->getBinContent(jx,jy);
          if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
        }
        if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
          if ( meLedL2_[0] ) val_ld_2 = meLedL2_[0]->getBinContent(jx,jy);
          if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
        }

        float val_ld = 1;
        if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;

        // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY FOR NOW
        val_ls = 1;
        val_ld = 1;

        // turn each dark color (masked channel) to bright green
        // for laser & timing & trigger turn also yellow into bright green
        // for pedestal online too because is not computed in calibration events

        //  0/3 = red/dark red
        //  1/4 = green/dark green
        //  2/5 = yellow/dark yellow
        //  6   = unknown

        if(             val_in==3 || val_in==4 || val_in==5) val_in=1;
        if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
        if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
        if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
        if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
        if(             val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
        if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;

        if(val_in==6) xval=6;
        else if(val_in==0) xval=0;
        else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
        else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
        else xval=1;

        bool validCry = false;

        // if the SM is entirely not read, the masked channels
        // are reverted back to yellow
        float iEntries=0;

        for(int ism = 1; ism <= 9; ism++) {
          std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
          if (iter != superModules_.end()) {
            if ( Numbers::validEE(ism, jx, jy) ) {
              validCry = true;

              // recycle the validEE for the synch check of the DCC
              if(norm01_ && synch01_) {
                float frac_synch_errors = 0.;
                float norm = norm01_->GetBinContent(ism);
                if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
                if(frac_synch_errors > synchErrorThreshold_){
                  xval = 0;
                  if(oosTrend && oosTrend->GetBinContent(oosTrend->GetNbinsX()) - oosTrend->GetBinContent(1) < 1.) xval += 3.;
                }
              }

              for ( unsigned int i=0; i<clients_.size(); i++ ) {
                EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
                if ( eeic ) {
                  TH2F* h2 = eeic->h_[ism-1];
                  if ( h2 ) {
                    iEntries = h2->GetEntries();
                  }
                }
              }
            }
          }
        }

        if ( validCry && iEntries==0 ) {
          xval=2;
        }

        meGlobalSummary_[0]->setBinContent( jx, jy, xval );

        if ( xval >= 0 && xval <= 5 ) {
          if ( xval != 2 && xval != 5 ) ++nValidChannels;
          for (int i = 1; i <= 9; i++) {
            if ( xval != 2 && xval != 5 ) {
              if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
            }
          }
          if ( xval == 0 ) ++nGlobalErrors;
          for (int i = 1; i <= 9; i++) {
            if ( xval == 0 ) {
              if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
            }
          }
        }

      }

      if(meGlobalSummary_[1]) {

        float xval = 6;
        float val_in = meIntegrity_[1]->getBinContent(jx,jy);
        float val_po = mePedestalOnline_[1]->getBinContent(jx,jy);
        float val_tm = reducedReports_ ? 1. : meTiming_[1]->getBinContent((jx-1)/5+1,(jy-1)/5+1);
        float val_sf = meStatusFlags_[1]->getBinContent(jx,jy);
        float val_ee = reducedReports_ ? 1. : meTriggerTowerEmulError_[1]->getBinContent(jx,jy); // removed temporarily from the global summary
        // float val_ee = 1;

        // combine all the available wavelenghts in unique laser status
        // for each laser turn dark color and yellow into bright green
        float val_ls_1=2, val_ls_2=2, val_ls_3=2, val_ls_4=2;
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {
          if ( meLaserL1_[1] ) val_ls_1 = meLaserL1_[1]->getBinContent(jx,jy);
          if(val_ls_1==2 || val_ls_1==3 || val_ls_1==4 || val_ls_1==5) val_ls_1=1;
        }
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {
          if ( meLaserL2_[1] ) val_ls_2 = meLaserL2_[1]->getBinContent(jx,jy);
          if(val_ls_2==2 || val_ls_2==3 || val_ls_2==4 || val_ls_2==5) val_ls_2=1;
        }
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {
          if ( meLaserL3_[1] ) val_ls_3 = meLaserL3_[1]->getBinContent(jx,jy);
          if(val_ls_3==2 || val_ls_3==3 || val_ls_3==4 || val_ls_3==5) val_ls_3=1;
        }
        if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {
          if ( meLaserL4_[1] ) val_ls_4 = meLaserL4_[1]->getBinContent(jx,jy);
          if(val_ls_4==2 || val_ls_4==3 || val_ls_4==4 || val_ls_4==5) val_ls_4=1;
        }

        float val_ls = 1;
        if (val_ls_1 == 0 || val_ls_2==0 || val_ls_3==0 || val_ls_4==0) val_ls=0;

        // combine all the available wavelenghts in unique laser status
        // for each laser turn dark color and yellow into bright green
        float val_ld_1=2, val_ld_2=2;
        if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {
          if ( meLedL1_[1] ) val_ld_1 = meLedL1_[1]->getBinContent(jx,jy);
          if(val_ld_1==2 || val_ld_1==3 || val_ld_1==4 || val_ld_1==5) val_ld_1=1;
        }
        if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {
          if ( meLedL2_[1] ) val_ld_2 = meLedL2_[1]->getBinContent(jx,jy);
          if(val_ld_2==2 || val_ld_2==3 || val_ld_2==4 || val_ld_2==5) val_ld_2=1;
        }

        float val_ld = 1;
        if (val_ld_1 == 0 || val_ld_2==0) val_ld=0;

        // DO NOT CONSIDER CALIBRATION EVENTS IN THE REPORT SUMMARY FOR NOW
        val_ls = 1;
        val_ld = 1;

        // turn each dark color to bright green
        // for laser & timing & trigger turn also yellow into bright green
        // for pedestal online too because is not computed in calibration events

        //  0/3 = red/dark red
        //  1/4 = green/dark green
        //  2/5 = yellow/dark yellow
        //  6   = unknown

        if(             val_in==3 || val_in==4 || val_in==5) val_in=1;
        if(val_po==2 || val_po==3 || val_po==4 || val_po==5) val_po=1;
        if(val_ls==2 || val_ls==3 || val_ls==4 || val_ls==5) val_ls=1;
        if(val_ld==2 || val_ld==3 || val_ld==4 || val_ld==5) val_ld=1;
        if(val_tm==2 || val_tm==3 || val_tm==4 || val_tm==5) val_tm=1;
        if(             val_sf==3 || val_sf==4 || val_sf==5) val_sf=1;
        if(val_ee==2 || val_ee==3 || val_ee==4 || val_ee==5) val_ee=1;

        if(val_in==6) xval=6;
        else if(val_in==0) xval=0;
        else if(val_po==0 || val_ls==0 || val_ld==0 || val_tm==0 || val_sf==0 || val_ee==0) xval=0;
        else if(val_po==2 || val_ls==2 || val_ld==2 || val_tm==2 || val_sf==2 || val_ee==2) xval=2;
        else xval=1;

        bool validCry = false;

        // if the SM is entirely not read, the masked channels
        // are reverted back in yellow
        float iEntries=0;

        for(int ism = 10; ism <= 18; ism++) {
          std::vector<int>::iterator iter = find(superModules_.begin(), superModules_.end(), ism);
          if (iter != superModules_.end()) {
            if ( Numbers::validEE(ism, jx, jy) ) {
              validCry = true;

              // recycle the validEE for the synch check of the DCC
              if(norm01_ && synch01_) {
                float frac_synch_errors = 0.;
                float norm = norm01_->GetBinContent(ism);
                if(norm > 0) frac_synch_errors = float(synch01_->GetBinContent(ism))/float(norm);
                if(frac_synch_errors > synchErrorThreshold_){
                  xval = 0.;
                  if(oosTrend && oosTrend->GetBinContent(oosTrend->GetNbinsX()) - oosTrend->GetBinContent(1) < 1.) xval += 3.;
                }
              }

              for ( unsigned int i=0; i<clients_.size(); i++ ) {
                EEIntegrityClient* eeic = dynamic_cast<EEIntegrityClient*>(clients_[i]);
                if ( eeic ) {
                  TH2F* h2 = eeic->h_[ism-1];
                  if ( h2 ) {
                    iEntries = h2->GetEntries();
                  }
                }
              }
            }
          }
        }

        if ( validCry && iEntries==0 ) {
          xval=2;
        }

        meGlobalSummary_[1]->setBinContent( jx, jy, xval );

        if ( xval >= 0 && xval <= 5 ) {
          if ( xval != 2 && xval != 5 ) ++nValidChannels;
          for (int i = 10; i <= 18; i++) {
            if ( xval != 2 && xval != 5 ) {
              if ( Numbers::validEE(i, jx, jy) ) ++nValidChannelsEE[i-1];
            }
          }
          if ( xval == 0 ) ++nGlobalErrors;
          for (int i = 10; i <= 18; i++) {
            if ( xval == 0 ) {
              if ( Numbers::validEE(i, jx, jy) ) ++nGlobalErrorsEE[i-1];
            }
          }
        }

      }

    }
  }

  if(meSummaryErr_)
    meSummaryErr_->setBinContent(1, double(nGlobalErrors) / double(nValidChannels));

  float reportSummary = -1.0;
  if ( nValidChannels != 0 )
    reportSummary = 1.0 - float(nGlobalErrors)/float(nValidChannels);
  me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummary");
  if ( me ) me->Fill(reportSummary);

  for (int i = 0; i < 18; i++) {
    float reportSummaryEE = -1.0;
    if ( nValidChannelsEE[i] != 0 )
      reportSummaryEE = 1.0 - float(nGlobalErrorsEE[i])/float(nValidChannelsEE[i]);
    me = dqmStore_->get( prefixME_ + "/EventInfo/reportSummaryContents/EcalEndcap_" + Numbers::sEE(i+1) );
    if ( me ) me->Fill(reportSummaryEE);
  }

  if(meGlobalSummary_[0] && meGlobalSummary_[1]){

    me = dqmStore_->get(prefixME_ + "/EventInfo/reportSummaryMap");
    if ( me ) {

      int nValidChannelsSC[2][20][20];
      int nGlobalErrorsSC[2][20][20];
      for ( int iside = 0; iside < 2; iside++ ) {
        for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
          for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
            nValidChannelsSC[iside][jxdcc][jydcc] = 0;
            nGlobalErrorsSC[iside][jxdcc][jydcc] = 0;
          }
        }
      }

      for (int iside = 0; iside < 2; iside++ ) {
        for ( int ix = 1; ix <= 100; ix++ ) {
          for ( int iy = 1; iy <= 100; iy++ ) {

            int jxsc = (ix-1)/5;
            int jysc = (iy-1)/5;

            float xval = meGlobalSummary_[iside]->getBinContent( ix, iy );

            if ( xval >= 0 && xval <= 5 ) {
              if ( xval != 2 && xval != 5 ) ++nValidChannelsSC[iside][jxsc][jysc];
              if ( xval == 0 ) ++nGlobalErrorsSC[iside][jxsc][jysc];
            }

          }
        }
      }

      // Countermeasure to partial TR failure
      // make the whole Dee red if more than 2 towers within a 2x2 matrix fails

      for(int iside(0); iside < 2; iside++){
        for(int jy(1); jy <= 20; jy++){
          for(int jx(1); jx <= 20; jx++){
            int nErr(0);
            if(nValidChannelsSC[iside][jx - 1][jy - 1] > 0 && nGlobalErrorsSC[iside][jx - 1][jy - 1] == nValidChannelsSC[iside][jx - 1][jy - 1]) nErr += 1;
            if(nValidChannelsSC[iside][jx][jy - 1] > 0 && nGlobalErrorsSC[iside][jx][jy - 1] == nValidChannelsSC[iside][jx][jy - 1]) nErr += 1;
            if(nValidChannelsSC[iside][jx - 1][jy] > 0 && nGlobalErrorsSC[iside][jx - 1][jy] == nValidChannelsSC[iside][jx - 1][jy]) nErr += 1;
            if(nValidChannelsSC[iside][jx][jy] > 0 && nGlobalErrorsSC[iside][jx][jy] == nValidChannelsSC[iside][jx][jy]) nErr += 1;
            if(nErr > 2){
              int jx0(((jx - 1) / 10) * 10);
              for(int jjx(jx0); jjx < jx0 + 10; jjx++){
                for(int jjy(0); jjy < 20; jjy++){
                  nGlobalErrorsSC[iside][jjx][jjy] = nValidChannelsSC[iside][jjx][jjy];
                }
              }
            }
          }
        }
      }

      for (int iside = 0; iside < 2; iside++ ) {
        for ( int jxsc = 0; jxsc < 20; jxsc++ ) {
          for ( int jysc = 0; jysc < 20; jysc++ ) {

            float scval = -1;

            if( nValidChannelsSC[iside][jxsc][jysc] != 0 )
              scval = 1.0 - float(nGlobalErrorsSC[iside][jxsc][jysc])/float(nValidChannelsSC[iside][jxsc][jysc]);

            me->setBinContent( jxsc+iside*20+1, jysc+1, scval );

          }
        }
      }
    }

//     for ( int jxdcc = 0; jxdcc < 20; jxdcc++ ) {
//       for ( int jydcc = 0; jydcc < 20; jydcc++ ) {
//         for ( int iside = 0; iside < 2; iside++ ) {

//           float xval = -1.0;
//           if ( nOutOfGeometryTT[iside][jxdcc][jydcc] < 25 ) {
//             if ( nValidChannelsTT[iside][jxdcc][jydcc] != 0 )
//               xval = 1.0 - float(nGlobalErrorsTT[iside][jxdcc][jydcc])/float(nValidChannelsTT[iside][jxdcc][jydcc]);
//           }

//           me->setBinContent( 20*iside+jxdcc+1, jydcc+1, xval );

//         }
//       }
//     }

  }

}
void EESummaryClient::beginJob ( void  ) [virtual]

BeginJob.

Implements EEClient.

Definition at line 233 of file EESummaryClient.cc.

References gather_cfg::cout, debug_, dqmStore_, ievt_, jevt_, and cppFunctionSkipper::operator.

Referenced by EcalEndcapMonitorClient::beginJob().

                                   {

  dqmStore_ = edm::Service<DQMStore>().operator->();

  if ( debug_ ) std::cout << "EESummaryClient: beginJob" << std::endl;

  ievt_ = 0;
  jevt_ = 0;

}
void EESummaryClient::beginRun ( void  ) [virtual]

BeginRun.

Implements EEClient.

Definition at line 244 of file EESummaryClient.cc.

References gather_cfg::cout, debug_, jevt_, and setup().

Referenced by EcalEndcapMonitorClient::beginRun().

                                   {

  if ( debug_ ) std::cout << "EESummaryClient: beginRun" << std::endl;

  jevt_ = 0;

  this->setup();

}
void EESummaryClient::cleanup ( void  ) [virtual]

Cleanup.

Implements EEClient.

Definition at line 1122 of file EESummaryClient.cc.

References cloneME_, dqmStore_, enableCleanup_, edm::getName(), MonitorElement::getName(), hpot01_, httt01_, i, ecalpyutils::ism(), meGlobalSummary_, meIntegrity_, meIntegrityErr_, meIntegrityPN_, meLaserL1_, meLaserL1Ampl_, meLaserL1AmplOverPN_, meLaserL1Err_, meLaserL1PN_, meLaserL1PNErr_, meLaserL1Timing_, meLaserL2_, meLaserL2Ampl_, meLaserL2AmplOverPN_, meLaserL2Err_, meLaserL2PN_, meLaserL2PNErr_, meLaserL2Timing_, meLaserL3_, meLaserL3Ampl_, meLaserL3AmplOverPN_, meLaserL3Err_, meLaserL3PN_, meLaserL3PNErr_, meLaserL3Timing_, meLaserL4_, meLaserL4Ampl_, meLaserL4AmplOverPN_, meLaserL4Err_, meLaserL4PN_, meLaserL4PNErr_, meLaserL4Timing_, meLedL1_, meLedL1Ampl_, meLedL1AmplOverPN_, meLedL1Err_, meLedL1PN_, meLedL1PNErr_, meLedL1Timing_, meLedL2_, meLedL2Ampl_, meLedL2AmplOverPN_, meLedL2Err_, meLedL2PN_, meLedL2PNErr_, meLedL2Timing_, meOccupancy1D_, meOccupancy_, meOccupancyPN_, mePedestalG01_, mePedestalG06_, mePedestalG12_, mePedestalOnline_, mePedestalOnlineErr_, mePedestalOnlineMean_, mePedestalOnlineRMS_, mePedestalOnlineRMSMap_, mePedestalPNG01_, mePedestalPNG16_, meRecHitEnergy_, meStatusFlags_, meStatusFlagsErr_, meSummaryErr_, meTestPulseAmplG01_, meTestPulseAmplG06_, meTestPulseAmplG12_, meTestPulseG01_, meTestPulseG06_, meTestPulseG12_, meTestPulsePNG01_, meTestPulsePNG16_, meTiming_, meTimingMean1D_, meTimingRMS1D_, meTriggerTowerEmulError_, meTriggerTowerEt_, meTriggerTowerNonSingleTiming_, meTriggerTowerTiming_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.

Referenced by endJob(), and endRun().

                                  {

  if ( ! enableCleanup_ ) return;

  dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );

  for ( unsigned int i=0; i<superModules_.size(); i++ ) {

    int ism = superModules_[i];

    if ( cloneME_ ) {
      if ( hpot01_[ism-1] ) delete hpot01_[ism-1];
      if ( httt01_[ism-1] ) delete httt01_[ism-1];
    }

    hpot01_[ism-1] = 0;
    httt01_[ism-1] = 0;

  }

  if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
  meIntegrity_[0] = 0;

  if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[1]->getName() );
  meIntegrity_[1] = 0;

  if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
  meIntegrityErr_ = 0;

  if ( meIntegrityPN_ ) dqmStore_->removeElement( meIntegrityPN_->getName() );
  meIntegrityPN_ = 0;

  if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
  meOccupancy_[0] = 0;

  if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
  meOccupancy_[1] = 0;

  if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
  meOccupancy1D_ = 0;

  if ( meOccupancyPN_ ) dqmStore_->removeElement( meOccupancyPN_->getName() );
  meOccupancyPN_ = 0;

  if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
  meStatusFlags_[0] = 0;

  if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
  meStatusFlags_[1] = 0;

  if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
  meStatusFlagsErr_ = 0;

  if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
  mePedestalOnline_[0] = 0;

  if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
  mePedestalOnline_[1] = 0;

  if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
  mePedestalOnlineErr_ = 0;

  if ( mePedestalOnlineMean_ ) dqmStore_->removeElement( mePedestalOnlineMean_->getName() );
  mePedestalOnlineMean_ = 0;

  if ( mePedestalOnlineRMS_ ) dqmStore_->removeElement( mePedestalOnlineRMS_->getName() );
  mePedestalOnlineRMS_ = 0;

  if ( mePedestalOnlineRMSMap_[0] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[0]->getName() );
  mePedestalOnlineRMSMap_[0] = 0;

  if ( mePedestalOnlineRMSMap_[1] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[1]->getName() );
  mePedestalOnlineRMSMap_[1] = 0;

  if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
  meLaserL1_[0] = 0;

  if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
  meLaserL1_[1] = 0;

  if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
  meLaserL1Err_ = 0;

  if ( meLaserL1PN_ ) dqmStore_->removeElement( meLaserL1PN_->getName() );
  meLaserL1PN_ = 0;

  if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
  meLaserL1PNErr_ = 0;

  if ( meLaserL1Ampl_ ) dqmStore_->removeElement( meLaserL1Ampl_->getName() );
  meLaserL1Ampl_ = 0;

  if ( meLaserL1Timing_ ) dqmStore_->removeElement( meLaserL1Timing_->getName() );
  meLaserL1Timing_ = 0;

  if ( meLaserL1AmplOverPN_ ) dqmStore_->removeElement( meLaserL1AmplOverPN_->getName() );
  meLaserL1AmplOverPN_ = 0;

  if ( meLaserL2_[0] ) dqmStore_->removeElement( meLaserL2_[0]->getName() );
  meLaserL2_[0] = 0;

  if ( meLaserL2_[1] ) dqmStore_->removeElement( meLaserL2_[1]->getName() );
  meLaserL2_[1] = 0;

  if ( meLaserL2Err_ ) dqmStore_->removeElement( meLaserL2Err_->getName() );
  meLaserL2Err_ = 0;

  if ( meLaserL2PN_ ) dqmStore_->removeElement( meLaserL2PN_->getName() );
  meLaserL2PN_ = 0;

  if ( meLaserL2PNErr_ ) dqmStore_->removeElement( meLaserL2PNErr_->getName() );
  meLaserL2PNErr_ = 0;

  if ( meLaserL2Ampl_ ) dqmStore_->removeElement( meLaserL2Ampl_->getName() );
  meLaserL2Ampl_ = 0;

  if ( meLaserL2Timing_ ) dqmStore_->removeElement( meLaserL2Timing_->getName() );
  meLaserL2Timing_ = 0;

  if ( meLaserL2AmplOverPN_ ) dqmStore_->removeElement( meLaserL2AmplOverPN_->getName() );
  meLaserL2AmplOverPN_ = 0;

  if ( meLaserL3_[0] ) dqmStore_->removeElement( meLaserL3_[0]->getName() );
  meLaserL3_[0] = 0;

  if ( meLaserL3_[1] ) dqmStore_->removeElement( meLaserL3_[1]->getName() );
  meLaserL3_[1] = 0;

  if ( meLaserL3Err_ ) dqmStore_->removeElement( meLaserL3Err_->getName() );
  meLaserL3Err_ = 0;

  if ( meLaserL3PN_ ) dqmStore_->removeElement( meLaserL3PN_->getName() );
  meLaserL3PN_ = 0;

  if ( meLaserL3PNErr_ ) dqmStore_->removeElement( meLaserL3PNErr_->getName() );
  meLaserL3PNErr_ = 0;

  if ( meLaserL3Ampl_ ) dqmStore_->removeElement( meLaserL3Ampl_->getName() );
  meLaserL3Ampl_ = 0;

  if ( meLaserL3Timing_ ) dqmStore_->removeElement( meLaserL3Timing_->getName() );
  meLaserL3Timing_ = 0;

  if ( meLaserL3AmplOverPN_ ) dqmStore_->removeElement( meLaserL3AmplOverPN_->getName() );
  meLaserL3AmplOverPN_ = 0;

  if ( meLaserL4_[0] ) dqmStore_->removeElement( meLaserL4_[0]->getName() );
  meLaserL4_[0] = 0;

  if ( meLaserL4_[1] ) dqmStore_->removeElement( meLaserL4_[1]->getName() );
  meLaserL4_[1] = 0;

  if ( meLaserL4Err_ ) dqmStore_->removeElement( meLaserL4Err_->getName() );
  meLaserL4Err_ = 0;

  if ( meLaserL4PN_ ) dqmStore_->removeElement( meLaserL4PN_->getName() );
  meLaserL4PN_ = 0;

  if ( meLaserL4PNErr_ ) dqmStore_->removeElement( meLaserL4PNErr_->getName() );
  meLaserL4PNErr_ = 0;

  if ( meLaserL4Ampl_ ) dqmStore_->removeElement( meLaserL4Ampl_->getName() );
  meLaserL4Ampl_ = 0;

  if ( meLaserL4Timing_ ) dqmStore_->removeElement( meLaserL4Timing_->getName() );
  meLaserL4Timing_ = 0;

  if ( meLaserL4AmplOverPN_ ) dqmStore_->removeElement( meLaserL4AmplOverPN_->getName() );
  meLaserL4AmplOverPN_ = 0;

  if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
  meLedL1_[0] = 0;

  if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
  meLedL1_[1] = 0;

  if ( meLedL1Err_ ) dqmStore_->removeElement( meLedL1Err_->getName() );
  meLedL1Err_ = 0;

  if ( meLedL1PN_ ) dqmStore_->removeElement( meLedL1PN_->getName() );
  meLedL1PN_ = 0;

  if ( meLedL1PNErr_ ) dqmStore_->removeElement( meLedL1PNErr_->getName() );
  meLedL1PNErr_ = 0;

  if ( meLedL1Ampl_ ) dqmStore_->removeElement( meLedL1Ampl_->getName() );
  meLedL1Ampl_ = 0;

  if ( meLedL1Timing_ ) dqmStore_->removeElement( meLedL1Timing_->getName() );
  meLedL1Timing_ = 0;

  if ( meLedL1AmplOverPN_ ) dqmStore_->removeElement( meLedL1AmplOverPN_->getName() );
  meLedL1AmplOverPN_ = 0;

  if ( meLedL2_[0] ) dqmStore_->removeElement( meLedL2_[0]->getName() );
  meLedL2_[0] = 0;

  if ( meLedL2_[1] ) dqmStore_->removeElement( meLedL2_[1]->getName() );
  meLedL2_[1] = 0;

  if ( meLedL2Err_ ) dqmStore_->removeElement( meLedL2Err_->getName() );
  meLedL2Err_ = 0;

  if ( meLedL2PN_ ) dqmStore_->removeElement( meLedL2PN_->getName() );
  meLedL2PN_ = 0;

  if ( meLedL2PNErr_ ) dqmStore_->removeElement( meLedL2PNErr_->getName() );
  meLedL2PNErr_ = 0;

  if ( meLedL2Ampl_ ) dqmStore_->removeElement( meLedL2Ampl_->getName() );
  meLedL2Ampl_ = 0;

  if ( meLedL2Timing_ ) dqmStore_->removeElement( meLedL2Timing_->getName() );
  meLedL2Timing_ = 0;

  if ( meLedL2AmplOverPN_ ) dqmStore_->removeElement( meLedL2AmplOverPN_->getName() );
  meLedL2AmplOverPN_ = 0;

  if ( mePedestalG01_[0] ) dqmStore_->removeElement( mePedestalG01_[0]->getName() );
  mePedestalG01_[0] = 0;

  if ( mePedestalG01_[1] ) dqmStore_->removeElement( mePedestalG01_[1]->getName() );
  mePedestalG01_[1] = 0;

  if ( mePedestalG06_[0] ) dqmStore_->removeElement( mePedestalG06_[0]->getName() );
  mePedestalG06_[0] = 0;

  if ( mePedestalG06_[1] ) dqmStore_->removeElement( mePedestalG06_[1]->getName() );
  mePedestalG06_[1] = 0;

  if ( mePedestalG12_[0] ) dqmStore_->removeElement( mePedestalG12_[0]->getName() );
  mePedestalG12_[0] = 0;

  if ( mePedestalG12_[1] ) dqmStore_->removeElement( mePedestalG12_[1]->getName() );
  mePedestalG12_[1] = 0;

  if ( mePedestalPNG01_ ) dqmStore_->removeElement( mePedestalPNG01_->getName() );
  mePedestalPNG01_ = 0;

  if ( mePedestalPNG16_ ) dqmStore_->removeElement( mePedestalPNG16_->getName() );
  mePedestalPNG16_ = 0;

  if ( meTestPulseG01_[0] ) dqmStore_->removeElement( meTestPulseG01_[0]->getName() );
  meTestPulseG01_[0] = 0;

  if ( meTestPulseG01_[1] ) dqmStore_->removeElement( meTestPulseG01_[1]->getName() );
  meTestPulseG01_[1] = 0;

  if ( meTestPulseG06_[0] ) dqmStore_->removeElement( meTestPulseG06_[0]->getName() );
  meTestPulseG06_[0] = 0;

  if ( meTestPulseG06_[1] ) dqmStore_->removeElement( meTestPulseG06_[1]->getName() );
  meTestPulseG06_[1] = 0;

  if ( meTestPulseG12_[0] ) dqmStore_->removeElement( meTestPulseG12_[0]->getName() );
  meTestPulseG12_[0] = 0;

  if ( meTestPulseG12_[1] ) dqmStore_->removeElement( meTestPulseG12_[1]->getName() );
  meTestPulseG12_[1] = 0;

  if ( meTestPulsePNG01_ ) dqmStore_->removeElement( meTestPulsePNG01_->getName() );
  meTestPulsePNG01_ = 0;

  if ( meTestPulsePNG16_ ) dqmStore_->removeElement( meTestPulsePNG16_->getName() );
  meTestPulsePNG16_ = 0;

  if ( meTestPulseAmplG01_ ) dqmStore_->removeElement( meTestPulseAmplG01_->getName() );
  meTestPulseAmplG01_ = 0;

  if ( meTestPulseAmplG06_ ) dqmStore_->removeElement( meTestPulseAmplG06_->getName() );
  meTestPulseAmplG06_ = 0;

  if ( meTestPulseAmplG12_ ) dqmStore_->removeElement( meTestPulseAmplG12_->getName() );
  meTestPulseAmplG12_ = 0;

  if ( meRecHitEnergy_[0] ) dqmStore_->removeElement( meRecHitEnergy_[0]->getName() );
  meRecHitEnergy_[0] = 0;

  if ( meRecHitEnergy_[1] ) dqmStore_->removeElement( meRecHitEnergy_[1]->getName() );
  meRecHitEnergy_[1] = 0;

  if ( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
  meTiming_[0] = 0;

  if ( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
  meTiming_[1] = 0;

  if ( meTimingMean1D_[0] ) dqmStore_->removeElement( meTimingMean1D_[0]->getName() );
  meTimingMean1D_[0] = 0;

  if ( meTimingMean1D_[1] ) dqmStore_->removeElement( meTimingMean1D_[1]->getName() );
  meTimingMean1D_[1] = 0;

  if ( meTimingRMS1D_[0] ) dqmStore_->removeElement( meTimingRMS1D_[0]->getName() );
  meTimingRMS1D_[0] = 0;

  if ( meTimingRMS1D_[1] ) dqmStore_->removeElement( meTimingRMS1D_[1]->getName() );
  meTimingRMS1D_[1] = 0;

  if ( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
  meTriggerTowerEt_[0] = 0;

  if ( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
  meTriggerTowerEt_[1] = 0;

  if ( meTriggerTowerEmulError_[0] ) dqmStore_->removeElement( meTriggerTowerEmulError_[0]->getName() );
  meTriggerTowerEmulError_[0] = 0;

  if ( meTriggerTowerEmulError_[1] ) dqmStore_->removeElement( meTriggerTowerEmulError_[1]->getName() );
  meTriggerTowerEmulError_[1] = 0;

  if ( meTriggerTowerTiming_[0] ) dqmStore_->removeElement( meTriggerTowerTiming_[0]->getName() );
  meTriggerTowerTiming_[0] = 0;

  if ( meTriggerTowerTiming_[1] ) dqmStore_->removeElement( meTriggerTowerTiming_[1]->getName() );
  meTriggerTowerTiming_[1] = 0;

  if ( meTriggerTowerNonSingleTiming_[0] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[0]->getName() );
  meTriggerTowerNonSingleTiming_[0] = 0;

  if ( meTriggerTowerNonSingleTiming_[1] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[1]->getName() );
  meTriggerTowerNonSingleTiming_[1] = 0;

  if ( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
  meGlobalSummary_[0] = 0;

  if ( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
  meGlobalSummary_[1] = 0;

  if(meSummaryErr_) dqmStore_->removeElement(meSummaryErr_->getName());
  meSummaryErr_ = 0;

}
void EESummaryClient::endJob ( void  ) [virtual]

EndJob.

Implements EEClient.

Definition at line 254 of file EESummaryClient.cc.

References cleanup(), gather_cfg::cout, debug_, and ievt_.

Referenced by EcalEndcapMonitorClient::endJob().

                                 {

  if ( debug_ ) std::cout << "EESummaryClient: endJob, ievt = " << ievt_ << std::endl;

  this->cleanup();

}
void EESummaryClient::endRun ( void  ) [virtual]

EndRun.

Implements EEClient.

Definition at line 262 of file EESummaryClient.cc.

References cleanup(), gather_cfg::cout, debug_, and jevt_.

Referenced by EcalEndcapMonitorClient::endRun().

                                 {

  if ( debug_ ) std::cout << "EESummaryClient: endRun, jevt = " << jevt_ << std::endl;

  this->cleanup();

}
int EESummaryClient::getEvtPerJob ( void  ) [inline, virtual]

Get Functions.

Implements EEClient.

Definition at line 68 of file EESummaryClient.h.

References ievt_.

{ return ievt_; }
int EESummaryClient::getEvtPerRun ( void  ) [inline, virtual]

Returns the number of processed events in this Run.

Implements EEClient.

Definition at line 69 of file EESummaryClient.h.

References jevt_.

{ return jevt_; }
void EESummaryClient::setFriends ( const std::vector< EEClient * > &  clients) [inline]

Set Clients.

Definition at line 72 of file EESummaryClient.h.

References clients_.

Referenced by EcalEndcapMonitorClient::EcalEndcapMonitorClient().

{ clients_ = clients; }
void EESummaryClient::setup ( void  ) [virtual]

Setup.

Implements EEClient.

Definition at line 270 of file EESummaryClient.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), clients_, dqmStore_, spr::find(), edm::getName(), MonitorElement::getName(), i, IntegrityClient_cfi::integrityClient, LaserClient_cfi::laserClient, laserWavelengths_, ledWavelengths_, meGlobalSummary_, meIntegrity_, meIntegrityErr_, meIntegrityPN_, meLaserL1_, meLaserL1Ampl_, meLaserL1AmplOverPN_, meLaserL1Err_, meLaserL1PN_, meLaserL1PNErr_, meLaserL1Timing_, meLaserL2_, meLaserL2Ampl_, meLaserL2AmplOverPN_, meLaserL2Err_, meLaserL2PN_, meLaserL2PNErr_, meLaserL2Timing_, meLaserL3_, meLaserL3Ampl_, meLaserL3AmplOverPN_, meLaserL3Err_, meLaserL3PN_, meLaserL3PNErr_, meLaserL3Timing_, meLaserL4_, meLaserL4Ampl_, meLaserL4AmplOverPN_, meLaserL4Err_, meLaserL4PN_, meLaserL4PNErr_, meLaserL4Timing_, meLedL1_, meLedL1Ampl_, meLedL1AmplOverPN_, meLedL1Err_, meLedL1PN_, meLedL1PNErr_, meLedL1Timing_, meLedL2_, meLedL2Ampl_, meLedL2AmplOverPN_, meLedL2Err_, meLedL2PN_, meLedL2PNErr_, meLedL2Timing_, meOccupancy1D_, meOccupancy_, meOccupancyPN_, mePedestalG01_, mePedestalG06_, mePedestalG12_, mePedestalOnline_, mePedestalOnlineErr_, mePedestalOnlineMean_, mePedestalOnlineRMS_, mePedestalOnlineRMSMap_, mePedestalPNG01_, mePedestalPNG16_, meRecHitEnergy_, meStatusFlags_, meStatusFlagsErr_, meSummaryErr_, meTestPulseAmplG01_, meTestPulseAmplG06_, meTestPulseAmplG12_, meTestPulseG01_, meTestPulseG06_, meTestPulseG12_, meTestPulsePNG01_, meTestPulsePNG16_, meTiming_, meTimingMean1D_, meTimingMean_, meTimingRMS1D_, meTimingRMS_, meTriggerTowerEmulError_, meTriggerTowerEt_, meTriggerTowerNonSingleTiming_, meTriggerTowerTiming_, MGPAGains_, MGPAGainsPN_, mergeVDriftHistosByStation::name, OccupancyClient_cfi::occupancyClient, prefixME_, produceReports_, reducedReports_, DQMStore::removeElement(), Numbers::sEE(), MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), and TimingClient_cfi::timingClient.

Referenced by beginRun().

                                {

  bool integrityClient(false);
  bool occupancyClient(false);
  bool statusFlagsClient(false);
  bool pedestalOnlineClient(false);
  bool laserClient(false);
  bool ledClient(false);
  bool pedestalClient(false);
  bool testPulseClient(false);
  bool timingClient(false);
  bool triggerTowerClient(false);

  for(unsigned i = 0; i < clients_.size(); i++){

    if(dynamic_cast<EEIntegrityClient*>(clients_[i])) integrityClient = true;
    if(dynamic_cast<EEOccupancyClient*>(clients_[i])) occupancyClient = true;
    if(dynamic_cast<EEStatusFlagsClient*>(clients_[i])) statusFlagsClient = true;
    if(dynamic_cast<EEPedestalOnlineClient*>(clients_[i])) pedestalOnlineClient = true;
    if(dynamic_cast<EELaserClient*>(clients_[i])) laserClient = true;
    if(dynamic_cast<EELedClient*>(clients_[i])) ledClient = true;
    if(dynamic_cast<EEPedestalClient*>(clients_[i])) pedestalClient = true;
    if(dynamic_cast<EETestPulseClient*>(clients_[i])) testPulseClient = true;
    if(dynamic_cast<EETimingClient*>(clients_[i])) timingClient = true;
    if(dynamic_cast<EETriggerTowerClient*>(clients_[i])) triggerTowerClient = true;

  }

  std::string name;

  dqmStore_->setCurrentFolder( prefixME_ + "/EESummaryClient" );

  if(integrityClient){
    if(produceReports_){
      if ( meIntegrity_[0] ) dqmStore_->removeElement( meIntegrity_[0]->getName() );
      name = "EEIT EE - integrity quality summary";
      meIntegrity_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meIntegrity_[0]->setAxisTitle("ix", 1);
      meIntegrity_[0]->setAxisTitle("iy", 2);

      if ( meIntegrity_[1] ) dqmStore_->removeElement( meIntegrity_[1]->getName() );
      name = "EEIT EE + integrity quality summary";
      meIntegrity_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meIntegrity_[1]->setAxisTitle("ix", 1);
      meIntegrity_[1]->setAxisTitle("iy", 2);

      if ( meIntegrityErr_ ) dqmStore_->removeElement( meIntegrityErr_->getName() );
      name = "EEIT integrity quality errors summary";
      meIntegrityErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meIntegrityErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }
    }
    if(laserClient){
      if ( meIntegrityPN_ ) dqmStore_->removeElement( meIntegrityPN_->getName() );
      name = "EEIT PN integrity quality summary";
      meIntegrityPN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meIntegrityPN_->setAxisTitle("jchannel", 1);
      meIntegrityPN_->setAxisTitle("jpseudo-strip", 2);
    }
  }

  if(occupancyClient){
    if(produceReports_){
      if ( meOccupancy_[0] ) dqmStore_->removeElement( meOccupancy_[0]->getName() );
      name = "EEOT EE - digi occupancy summary";
      meOccupancy_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meOccupancy_[0]->setAxisTitle("ix", 1);
      meOccupancy_[0]->setAxisTitle("iy", 2);

      if ( meOccupancy_[1] ) dqmStore_->removeElement( meOccupancy_[1]->getName() );
      name = "EEOT EE + digi occupancy summary";
      meOccupancy_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meOccupancy_[1]->setAxisTitle("ix", 1);
      meOccupancy_[1]->setAxisTitle("iy", 2);

      if ( meOccupancy1D_ ) dqmStore_->removeElement( meOccupancy1D_->getName() );
      name = "EEIT digi occupancy summary 1D";
      meOccupancy1D_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meOccupancy1D_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if( meRecHitEnergy_[0] ) dqmStore_->removeElement( meRecHitEnergy_[0]->getName() );
      name = "EEOT EE - energy summary";
      meRecHitEnergy_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meRecHitEnergy_[0]->setAxisTitle("ix", 1);
      meRecHitEnergy_[0]->setAxisTitle("iy", 2);
      meRecHitEnergy_[0]->setAxisTitle("energy (GeV)", 3);

      if( meRecHitEnergy_[1] ) dqmStore_->removeElement( meRecHitEnergy_[1]->getName() );
      name = "EEOT EE + energy summary";
      meRecHitEnergy_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meRecHitEnergy_[1]->setAxisTitle("ix", 1);
      meRecHitEnergy_[1]->setAxisTitle("iy", 2);
      meRecHitEnergy_[1]->setAxisTitle("energy (GeV)", 3);
    }
    if(laserClient){
      if ( meOccupancyPN_ ) dqmStore_->removeElement( meOccupancyPN_->getName() );
      name = "EEOT PN digi occupancy summary";
      meOccupancyPN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meOccupancyPN_->setAxisTitle("channel", 1);
      meOccupancyPN_->setAxisTitle("pseudo-strip", 2);
    }
  }

  if(statusFlagsClient && produceReports_){
    if ( meStatusFlags_[0] ) dqmStore_->removeElement( meStatusFlags_[0]->getName() );
    name = "EESFT EE - front-end status summary";
    meStatusFlags_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meStatusFlags_[0]->setAxisTitle("ix", 1);
    meStatusFlags_[0]->setAxisTitle("iy", 2);

    if ( meStatusFlags_[1] ) dqmStore_->removeElement( meStatusFlags_[1]->getName() );
    name = "EESFT EE + front-end status summary";
    meStatusFlags_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meStatusFlags_[1]->setAxisTitle("ix", 1);
    meStatusFlags_[1]->setAxisTitle("iy", 2);

    if ( meStatusFlagsErr_ ) dqmStore_->removeElement( meStatusFlagsErr_->getName() );
    name = "EESFT front-end status errors summary";
    meStatusFlagsErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
    for (int i = 0; i < 18; i++) {
      meStatusFlagsErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
    }
  }

  if(pedestalOnlineClient && produceReports_){
    if ( mePedestalOnline_[0] ) dqmStore_->removeElement( mePedestalOnline_[0]->getName() );
    name = "EEPOT EE - pedestal quality summary G12";
    mePedestalOnline_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    mePedestalOnline_[0]->setAxisTitle("ix", 1);
    mePedestalOnline_[0]->setAxisTitle("iy", 2);

    if ( mePedestalOnline_[1] ) dqmStore_->removeElement( mePedestalOnline_[1]->getName() );
    name = "EEPOT EE + pedestal quality summary G12";
    mePedestalOnline_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    mePedestalOnline_[1]->setAxisTitle("ix", 1);
    mePedestalOnline_[1]->setAxisTitle("iy", 2);

    if ( mePedestalOnlineRMSMap_[0] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[0]->getName() );
    name = "EEPOT EE - pedestal G12 RMS map";
    mePedestalOnlineRMSMap_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    mePedestalOnlineRMSMap_[0]->setAxisTitle("ix", 1);
    mePedestalOnlineRMSMap_[0]->setAxisTitle("iy", 2);
    mePedestalOnlineRMSMap_[0]->setAxisTitle("rms", 3);

    if ( mePedestalOnlineRMSMap_[1] ) dqmStore_->removeElement( mePedestalOnlineRMSMap_[1]->getName() );
    name = "EEPOT EE + pedestal G12 RMS map";
    mePedestalOnlineRMSMap_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    mePedestalOnlineRMSMap_[1]->setAxisTitle("ix", 1);
    mePedestalOnlineRMSMap_[1]->setAxisTitle("iy", 2);
    mePedestalOnlineRMSMap_[1]->setAxisTitle("rms", 3);

    if ( mePedestalOnlineMean_ ) dqmStore_->removeElement( mePedestalOnlineMean_->getName() );
    name = "EEPOT pedestal G12 mean";
    mePedestalOnlineMean_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 150., 250.);
    for (int i = 0; i < 18; i++) {
      mePedestalOnlineMean_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
    }

    if ( mePedestalOnlineRMS_ ) dqmStore_->removeElement( mePedestalOnlineRMS_->getName() );
    name = "EEPOT pedestal G12 rms";
    mePedestalOnlineRMS_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10.);
    for (int i = 0; i < 18; i++) {
      mePedestalOnlineRMS_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
    }

    if ( mePedestalOnlineErr_ ) dqmStore_->removeElement( mePedestalOnlineErr_->getName() );
    name = "EEPOT pedestal quality errors summary G12";
    mePedestalOnlineErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
    for (int i = 0; i < 18; i++) {
      mePedestalOnlineErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
    }
  }

  if(laserClient){
    if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 1) != laserWavelengths_.end() ) {

      if ( meLaserL1_[0] ) dqmStore_->removeElement( meLaserL1_[0]->getName() );
      name = "EELT EE - laser quality summary L1";
      meLaserL1_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL1_[0]->setAxisTitle("ix", 1);
      meLaserL1_[0]->setAxisTitle("iy", 2);

      if ( meLaserL1_[1] ) dqmStore_->removeElement( meLaserL1_[1]->getName() );
      name = "EELT EE + laser quality summary L1";
      meLaserL1_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL1_[1]->setAxisTitle("ix", 1);
      meLaserL1_[1]->setAxisTitle("iy", 2);

      if ( meLaserL1Err_ ) dqmStore_->removeElement( meLaserL1Err_->getName() );
      name = "EELT laser quality errors summary L1";
      meLaserL1Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL1Err_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL1PN_ ) dqmStore_->removeElement( meLaserL1PN_->getName() );
      name = "EELT PN laser quality summary L1";
      meLaserL1PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meLaserL1PN_->setAxisTitle("jchannel", 1);
      meLaserL1PN_->setAxisTitle("jpseudo-strip", 2);

      if ( meLaserL1PNErr_ ) dqmStore_->removeElement( meLaserL1PNErr_->getName() );
      name = "EELT PN laser quality errors summary L1";
      meLaserL1PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL1PNErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL1Ampl_ ) dqmStore_->removeElement( meLaserL1Ampl_->getName() );
      name = "EELT laser L1 amplitude summary";
      meLaserL1Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL1Ampl_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL1Timing_ ) dqmStore_->removeElement( meLaserL1Timing_->getName() );
      name = "EELT laser L1 timing summary";
      meLaserL1Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL1Timing_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL1AmplOverPN_ ) dqmStore_->removeElement( meLaserL1AmplOverPN_->getName() );
      name = "EELT laser L1 amplitude over PN summary";
      meLaserL1AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL1AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }

    if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 2) != laserWavelengths_.end() ) {

      if ( meLaserL2_[0] ) dqmStore_->removeElement( meLaserL2_[0]->getName() );
      name = "EELT EE - laser quality summary L2";
      meLaserL2_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL2_[0]->setAxisTitle("ix", 1);
      meLaserL2_[0]->setAxisTitle("iy", 2);

      if ( meLaserL2_[1] ) dqmStore_->removeElement( meLaserL2_[1]->getName() );
      name = "EELT EE + laser quality summary L2";
      meLaserL2_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL2_[1]->setAxisTitle("ix", 1);
      meLaserL2_[1]->setAxisTitle("iy", 2);

      if ( meLaserL2Err_ ) dqmStore_->removeElement( meLaserL2Err_->getName() );
      name = "EELT laser quality errors summary L2";
      meLaserL2Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL2Err_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL2PN_ ) dqmStore_->removeElement( meLaserL2PN_->getName() );
      name = "EELT PN laser quality summary L2";
      meLaserL2PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meLaserL2PN_->setAxisTitle("jchannel", 1);
      meLaserL2PN_->setAxisTitle("jpseudo-strip", 2);

      if ( meLaserL2PNErr_ ) dqmStore_->removeElement( meLaserL2PNErr_->getName() );
      name = "EELT PN laser quality errors summary L2";
      meLaserL2PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL2PNErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL2Ampl_ ) dqmStore_->removeElement( meLaserL2Ampl_->getName() );
      name = "EELT laser L2 amplitude summary";
      meLaserL2Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL2Ampl_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL2Timing_ ) dqmStore_->removeElement( meLaserL2Timing_->getName() );
      name = "EELT laser L2 timing summary";
      meLaserL2Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL2Timing_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL2AmplOverPN_ ) dqmStore_->removeElement( meLaserL2AmplOverPN_->getName() );
      name = "EELT laser L2 amplitude over PN summary";
      meLaserL2AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL2AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }

    if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 3) != laserWavelengths_.end() ) {

      if ( meLaserL3_[0] ) dqmStore_->removeElement( meLaserL3_[0]->getName() );
      name = "EELT EE - laser quality summary L3";
      meLaserL3_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL3_[0]->setAxisTitle("ix", 1);
      meLaserL3_[0]->setAxisTitle("iy", 2);

      if ( meLaserL3_[1] ) dqmStore_->removeElement( meLaserL3_[1]->getName() );
      name = "EELT EE + laser quality summary L3";
      meLaserL3_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL3_[1]->setAxisTitle("ix", 1);
      meLaserL3_[1]->setAxisTitle("iy", 2);

      if ( meLaserL3Err_ ) dqmStore_->removeElement( meLaserL3Err_->getName() );
      name = "EELT laser quality errors summary L3";
      meLaserL3Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL3Err_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL3PN_ ) dqmStore_->removeElement( meLaserL3PN_->getName() );
      name = "EELT PN laser quality summary L3";
      meLaserL3PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meLaserL3PN_->setAxisTitle("jchannel", 1);
      meLaserL3PN_->setAxisTitle("jpseudo-strip", 2);

      if ( meLaserL3PNErr_ ) dqmStore_->removeElement( meLaserL3PNErr_->getName() );
      name = "EELT PN laser quality errors summary L3";
      meLaserL3PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL3PNErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL3Ampl_ ) dqmStore_->removeElement( meLaserL3Ampl_->getName() );
      name = "EELT laser L3 amplitude summary";
      meLaserL3Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL3Ampl_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL3Timing_ ) dqmStore_->removeElement( meLaserL3Timing_->getName() );
      name = "EELT laser L3 timing summary";
      meLaserL3Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL3Timing_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL3AmplOverPN_ ) dqmStore_->removeElement( meLaserL3AmplOverPN_->getName() );
      name = "EELT laser L3 amplitude over PN summary";
      meLaserL3AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL3AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }

    if ( find(laserWavelengths_.begin(), laserWavelengths_.end(), 4) != laserWavelengths_.end() ) {

      if ( meLaserL4_[0] ) dqmStore_->removeElement( meLaserL4_[0]->getName() );
      name = "EELT EE - laser quality summary L4";
      meLaserL4_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL4_[0]->setAxisTitle("ix", 1);
      meLaserL4_[0]->setAxisTitle("iy", 2);

      if ( meLaserL4_[1] ) dqmStore_->removeElement( meLaserL4_[1]->getName() );
      name = "EELT EE + laser quality summary L4";
      meLaserL4_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLaserL4_[1]->setAxisTitle("ix", 1);
      meLaserL4_[1]->setAxisTitle("iy", 2);

      if ( meLaserL4Err_ ) dqmStore_->removeElement( meLaserL4Err_->getName() );
      name = "EELT laser quality errors summary L4";
      meLaserL4Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL4Err_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL4PN_ ) dqmStore_->removeElement( meLaserL4PN_->getName() );
      name = "EELT PN laser quality summary L4";
      meLaserL4PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meLaserL4PN_->setAxisTitle("jchannel", 1);
      meLaserL4PN_->setAxisTitle("jpseudo-strip", 2);

      if ( meLaserL4PNErr_ ) dqmStore_->removeElement( meLaserL4PNErr_->getName() );
      name = "EELT PN laser quality errors summary L4";
      meLaserL4PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLaserL4PNErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL4Ampl_ ) dqmStore_->removeElement( meLaserL4Ampl_->getName() );
      name = "EELT laser L4 amplitude summary";
      meLaserL4Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL4Ampl_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL4Timing_ ) dqmStore_->removeElement( meLaserL4Timing_->getName() );
      name = "EELT laser L4 timing summary";
      meLaserL4Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL4Timing_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLaserL4AmplOverPN_ ) dqmStore_->removeElement( meLaserL4AmplOverPN_->getName() );
      name = "EELT laser L4 amplitude over PN summary";
      meLaserL4AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meLaserL4AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }
  }

  if(ledClient){
    if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 1) != ledWavelengths_.end() ) {

      if ( meLedL1_[0] ) dqmStore_->removeElement( meLedL1_[0]->getName() );
      name = "EELDT EE - led quality summary L1";
      meLedL1_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLedL1_[0]->setAxisTitle("ix", 1);
      meLedL1_[0]->setAxisTitle("iy", 2);

      if ( meLedL1_[1] ) dqmStore_->removeElement( meLedL1_[1]->getName() );
      name = "EELDT EE + led quality summary L1";
      meLedL1_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLedL1_[1]->setAxisTitle("ix", 1);
      meLedL1_[1]->setAxisTitle("iy", 2);

      if ( meLedL1Err_ ) dqmStore_->removeElement( meLedL1Err_->getName() );
      name = "EELDT led quality errors summary L1";
      meLedL1Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLedL1Err_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL1PN_ ) dqmStore_->removeElement( meLedL1PN_->getName() );
      name = "EELDT PN led quality summary L1";
      meLedL1PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meLedL1PN_->setAxisTitle("jchannel", 1);
      meLedL1PN_->setAxisTitle("jpseudo-strip", 2);

      if ( meLedL1PNErr_ ) dqmStore_->removeElement( meLedL1PNErr_->getName() );
      name = "EELDT PN led quality errors summary L1";
      meLedL1PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLedL1PNErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL1Ampl_ ) dqmStore_->removeElement( meLedL1Ampl_->getName() );
      name = "EELDT led L1 amplitude summary";
      meLedL1Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
      for (int i = 0; i < 18; i++) {
        meLedL1Ampl_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL1Timing_ ) dqmStore_->removeElement( meLedL1Timing_->getName() );
      name = "EELDT led L1 timing summary";
      meLedL1Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
      for (int i = 0; i < 18; i++) {
        meLedL1Timing_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL1AmplOverPN_ ) dqmStore_->removeElement( meLedL1AmplOverPN_->getName() );
      name = "EELDT led L1 amplitude over PN summary";
      meLedL1AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meLedL1AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }

    if ( find(ledWavelengths_.begin(), ledWavelengths_.end(), 2) != ledWavelengths_.end() ) {

      if ( meLedL2_[0] ) dqmStore_->removeElement( meLedL2_[0]->getName() );
      name = "EELDT EE - led quality summary L2";
      meLedL2_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLedL2_[0]->setAxisTitle("ix", 1);
      meLedL2_[0]->setAxisTitle("iy", 2);

      if ( meLedL2_[1] ) dqmStore_->removeElement( meLedL2_[1]->getName() );
      name = "EELDT EE + led quality summary L2";
      meLedL2_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meLedL2_[1]->setAxisTitle("ix", 1);
      meLedL2_[1]->setAxisTitle("iy", 2);

      if ( meLedL2Err_ ) dqmStore_->removeElement( meLedL2Err_->getName() );
      name = "EELDT led quality errors summary L2";
      meLedL2Err_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLedL2Err_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL2PN_ ) dqmStore_->removeElement( meLedL2PN_->getName() );
      name = "EELDT PN led quality summary L2";
      meLedL2PN_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meLedL2PN_->setAxisTitle("jchannel", 1);
      meLedL2PN_->setAxisTitle("jpseudo-strip", 2);

      if ( meLedL2PNErr_ ) dqmStore_->removeElement( meLedL2PNErr_->getName() );
      name = "EELDT PN led quality errors summary L2";
      meLedL2PNErr_ = dqmStore_->book1D(name, name, 18, 1, 19);
      for (int i = 0; i < 18; i++) {
        meLedL2PNErr_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL2Ampl_ ) dqmStore_->removeElement( meLedL2Ampl_->getName() );
      name = "EELDT led L2 amplitude summary";
      meLedL2Ampl_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096., "s");
      for (int i = 0; i < 18; i++) {
        meLedL2Ampl_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL2Timing_ ) dqmStore_->removeElement( meLedL2Timing_->getName() );
      name = "EELDT led L2 timing summary";
      meLedL2Timing_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10., "s");
      for (int i = 0; i < 18; i++) {
        meLedL2Timing_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

      if ( meLedL2AmplOverPN_ ) dqmStore_->removeElement( meLedL2AmplOverPN_->getName() );
      name = "EELDT led L2 amplitude over PN summary";
      meLedL2AmplOverPN_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meLedL2AmplOverPN_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }
  }

  if(pedestalClient){
    if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {

      if( mePedestalG01_[0] ) dqmStore_->removeElement( mePedestalG01_[0]->getName() );
      name = "EEPT EE - pedestal quality G01 summary";
      mePedestalG01_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      mePedestalG01_[0]->setAxisTitle("ix", 1);
      mePedestalG01_[0]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {

      if( mePedestalG06_[0] ) dqmStore_->removeElement( mePedestalG06_[0]->getName() );
      name = "EEPT EE - pedestal quality G06 summary";
      mePedestalG06_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      mePedestalG06_[0]->setAxisTitle("ix", 1);
      mePedestalG06_[0]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {

      if( mePedestalG12_[0] ) dqmStore_->removeElement( mePedestalG12_[0]->getName() );
      name = "EEPT EE - pedestal quality G12 summary";
      mePedestalG12_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      mePedestalG12_[0]->setAxisTitle("ix", 1);
      mePedestalG12_[0]->setAxisTitle("iy", 2);

    }


    if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {

      if( mePedestalPNG01_ ) dqmStore_->removeElement( mePedestalPNG01_->getName() );
      name = "EEPT PN pedestal quality G01 summary";
      mePedestalPNG01_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10, 10.);
      mePedestalPNG01_->setAxisTitle("jchannel", 1);
      mePedestalPNG01_->setAxisTitle("jpseudo-strip", 2);

    }

    if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {

      if( mePedestalPNG16_ ) dqmStore_->removeElement( mePedestalPNG16_->getName() );
      name = "EEPT PN pedestal quality G16 summary";
      mePedestalPNG16_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10, 10.);
      mePedestalPNG16_->setAxisTitle("jchannel", 1);
      mePedestalPNG16_->setAxisTitle("jpseudo-strip", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {

      if( mePedestalG01_[1] ) dqmStore_->removeElement( mePedestalG01_[1]->getName() );
      name = "EEPT EE + pedestal quality G01 summary";
      mePedestalG01_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      mePedestalG01_[1]->setAxisTitle("ix", 1);
      mePedestalG01_[1]->setAxisTitle("iy", 2);

    }


    if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {

      if( mePedestalG06_[1] ) dqmStore_->removeElement( mePedestalG06_[1]->getName() );
      name = "EEPT EE + pedestal quality G06 summary";
      mePedestalG06_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      mePedestalG06_[1]->setAxisTitle("ix", 1);
      mePedestalG06_[1]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {

      if( mePedestalG12_[1] ) dqmStore_->removeElement( mePedestalG12_[1]->getName() );
      name = "EEPT EE + pedestal quality G12 summary";
      mePedestalG12_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      mePedestalG12_[1]->setAxisTitle("ix", 1);
      mePedestalG12_[1]->setAxisTitle("iy", 2);

    }
  }

  if(testPulseClient){
    if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {

      if( meTestPulseG01_[0] ) dqmStore_->removeElement( meTestPulseG01_[0]->getName() );
      name = "EETPT EE - test pulse quality G01 summary";
      meTestPulseG01_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meTestPulseG01_[0]->setAxisTitle("ix", 1);
      meTestPulseG01_[0]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {

      if( meTestPulseG06_[0] ) dqmStore_->removeElement( meTestPulseG06_[0]->getName() );
      name = "EETPT EE - test pulse quality G06 summary";
      meTestPulseG06_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meTestPulseG06_[0]->setAxisTitle("ix", 1);
      meTestPulseG06_[0]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {

      if( meTestPulseG12_[0] ) dqmStore_->removeElement( meTestPulseG12_[0]->getName() );
      name = "EETPT EE - test pulse quality G12 summary";
      meTestPulseG12_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meTestPulseG12_[0]->setAxisTitle("ix", 1);
      meTestPulseG12_[0]->setAxisTitle("iy", 2);

    }


    if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 1) != MGPAGainsPN_.end() ) {

      if( meTestPulsePNG01_ ) dqmStore_->removeElement( meTestPulsePNG01_->getName() );
      name = "EETPT PN test pulse quality G01 summary";
      meTestPulsePNG01_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meTestPulsePNG01_->setAxisTitle("jchannel", 1);
      meTestPulsePNG01_->setAxisTitle("jpseudo-strip", 2);

    }

    if (find(MGPAGainsPN_.begin(), MGPAGainsPN_.end(), 16) != MGPAGainsPN_.end() ) {

      if( meTestPulsePNG16_ ) dqmStore_->removeElement( meTestPulsePNG16_->getName() );
      name = "EETPT PN test pulse quality G16 summary";
      meTestPulsePNG16_ = dqmStore_->book2D(name, name, 45, 0., 45., 20, -10., 10.);
      meTestPulsePNG16_->setAxisTitle("jchannel", 1);
      meTestPulsePNG16_->setAxisTitle("jpseudo-strip", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {

      if( meTestPulseG01_[1] ) dqmStore_->removeElement( meTestPulseG01_[1]->getName() );
      name = "EETPT EE + test pulse quality G01 summary";
      meTestPulseG01_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meTestPulseG01_[1]->setAxisTitle("ix", 1);
      meTestPulseG01_[1]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {

      if( meTestPulseG06_[1] ) dqmStore_->removeElement( meTestPulseG06_[1]->getName() );
      name = "EETPT EE + test pulse quality G06 summary";
      meTestPulseG06_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meTestPulseG06_[1]->setAxisTitle("ix", 1);
      meTestPulseG06_[1]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {

      if( meTestPulseG12_[1] ) dqmStore_->removeElement( meTestPulseG12_[1]->getName() );
      name = "EETPT EE + test pulse quality G12 summary";
      meTestPulseG12_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
      meTestPulseG12_[1]->setAxisTitle("ix", 1);
      meTestPulseG12_[1]->setAxisTitle("iy", 2);

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 1) != MGPAGains_.end() ) {

      if( meTestPulseAmplG01_ ) dqmStore_->removeElement( meTestPulseAmplG01_->getName() );
      name = "EETPT test pulse amplitude G01 summary";
      meTestPulseAmplG01_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meTestPulseAmplG01_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 6) != MGPAGains_.end() ) {

      if( meTestPulseAmplG06_ ) dqmStore_->removeElement( meTestPulseAmplG06_->getName() );
      name = "EETPT test pulse amplitude G06 summary";
      meTestPulseAmplG06_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meTestPulseAmplG06_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }

    if (find(MGPAGains_.begin(), MGPAGains_.end(), 12) != MGPAGains_.end() ) {

      if( meTestPulseAmplG12_ ) dqmStore_->removeElement( meTestPulseAmplG12_->getName() );
      name = "EETPT test pulse amplitude G12 summary";
      meTestPulseAmplG12_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 4096, 0., 4096.*12., "s");
      for (int i = 0; i < 18; i++) {
        meTestPulseAmplG12_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
      }

    }
  }

  if(timingClient){

    if( meTiming_[0] ) dqmStore_->removeElement( meTiming_[0]->getName() );
    name = "EETMT EE - timing quality summary";
    meTiming_[0] = dqmStore_->book2D(name, name, 20, 0., 100., 20, 0., 100.);
    meTiming_[0]->setAxisTitle("ix", 1);
    meTiming_[0]->setAxisTitle("iy", 2);

    if( meTiming_[1] ) dqmStore_->removeElement( meTiming_[1]->getName() );
    name = "EETMT EE + timing quality summary";
    meTiming_[1] = dqmStore_->book2D(name, name, 20, 0., 100., 20, 0., 100.);
    meTiming_[1]->setAxisTitle("ix", 1);
    meTiming_[1]->setAxisTitle("iy", 2);

    if( meTimingMean1D_[0] ) dqmStore_->removeElement( meTimingMean1D_[0]->getName() );
    name = "EETMT EE - timing mean 1D summary";
    meTimingMean1D_[0] = dqmStore_->book1D(name, name, 100, -25., 25.);
    meTimingMean1D_[0]->setAxisTitle("mean (ns)", 1);

    if( meTimingMean1D_[1] ) dqmStore_->removeElement( meTimingMean1D_[1]->getName() );
    name = "EETMT EE + timing mean 1D summary";
    meTimingMean1D_[1] = dqmStore_->book1D(name, name, 100, -25., 25.);
    meTimingMean1D_[1]->setAxisTitle("mean (ns)", 1);

    if( meTimingRMS1D_[0] ) dqmStore_->removeElement( meTimingRMS1D_[0]->getName() );
    name = "EETMT EE - timing rms 1D summary";
    meTimingRMS1D_[0] = dqmStore_->book1D(name, name, 100, 0.0, 10.0);
    meTimingRMS1D_[0]->setAxisTitle("rms (ns)", 1);

    if( meTimingRMS1D_[1] ) dqmStore_->removeElement( meTimingRMS1D_[1]->getName() );
    name = "EETMT EE + timing rms 1D summary";
    meTimingRMS1D_[1] = dqmStore_->book1D(name, name, 100, 0.0, 10.0);
    meTimingRMS1D_[1]->setAxisTitle("rms (ns)", 1);

    if ( meTimingMean_ ) dqmStore_->removeElement( meTimingMean_->getName() );
    name = "EETMT timing mean";
    meTimingMean_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, -20., 20.,"");
    for (int i = 0; i < 18; i++) {
      meTimingMean_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
    }
    meTimingMean_->setAxisTitle("mean (ns)", 2);

    if ( meTimingRMS_ ) dqmStore_->removeElement( meTimingRMS_->getName() );
    name = "EETMT timing rms";
    meTimingRMS_ = dqmStore_->bookProfile(name, name, 18, 1, 19, 100, 0., 10.,"");
    for (int i = 0; i < 18; i++) {
      meTimingRMS_->setBinLabel(i+1, Numbers::sEE(i+1), 1);
    }
    meTimingRMS_->setAxisTitle("rms (ns)", 2);
  }

  if(triggerTowerClient){
    if( meTriggerTowerEt_[0] ) dqmStore_->removeElement( meTriggerTowerEt_[0]->getName() );
    name = "EETTT EE - Et trigger tower summary";
    meTriggerTowerEt_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerEt_[0]->setAxisTitle("ix", 1);
    meTriggerTowerEt_[0]->setAxisTitle("iy", 2);
    meTriggerTowerEt_[0]->setAxisTitle("Et (GeV)", 3);

    if( meTriggerTowerEt_[1] ) dqmStore_->removeElement( meTriggerTowerEt_[1]->getName() );
    name = "EETTT EE + Et trigger tower summary";
    meTriggerTowerEt_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerEt_[1]->setAxisTitle("ix", 1);
    meTriggerTowerEt_[1]->setAxisTitle("iy", 2);
    meTriggerTowerEt_[1]->setAxisTitle("Et (GeV)", 3);

    if( meTriggerTowerEmulError_[0] ) dqmStore_->removeElement( meTriggerTowerEmulError_[0]->getName() );
    name = "EETTT EE - emulator error quality summary";
    meTriggerTowerEmulError_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerEmulError_[0]->setAxisTitle("ix", 1);
    meTriggerTowerEmulError_[0]->setAxisTitle("iy", 2);

    if( meTriggerTowerEmulError_[1] ) dqmStore_->removeElement( meTriggerTowerEmulError_[1]->getName() );
    name = "EETTT EE + emulator error quality summary";
    meTriggerTowerEmulError_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerEmulError_[1]->setAxisTitle("ix", 1);
    meTriggerTowerEmulError_[1]->setAxisTitle("iy", 2);

    if( meTriggerTowerTiming_[0] ) dqmStore_->removeElement( meTriggerTowerTiming_[0]->getName() );
    name = "EETTT EE - Trigger Primitives Timing summary";
    meTriggerTowerTiming_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerTiming_[0]->setAxisTitle("ix", 1);
    meTriggerTowerTiming_[0]->setAxisTitle("iy", 2);
    meTriggerTowerTiming_[0]->setAxisTitle("TP data matching emulator", 3);

    if( meTriggerTowerTiming_[1] ) dqmStore_->removeElement( meTriggerTowerTiming_[1]->getName() );
    name = "EETTT EE + Trigger Primitives Timing summary";
    meTriggerTowerTiming_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerTiming_[1]->setAxisTitle("ix", 1);
    meTriggerTowerTiming_[1]->setAxisTitle("iy", 2);
    meTriggerTowerTiming_[1]->setAxisTitle("TP data matching emulator", 3);

    if( meTriggerTowerNonSingleTiming_[0] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[0]->getName() );
    name = "EETTT EE - Trigger Primitives Non Single Timing summary";
    meTriggerTowerNonSingleTiming_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerNonSingleTiming_[0]->setAxisTitle("ix", 1);
    meTriggerTowerNonSingleTiming_[0]->setAxisTitle("iy", 2);
    meTriggerTowerNonSingleTiming_[0]->setAxisTitle("fraction", 3);

    if( meTriggerTowerNonSingleTiming_[1] ) dqmStore_->removeElement( meTriggerTowerNonSingleTiming_[1]->getName() );
    name = "EETTT EE + Trigger Primitives Non Single Timing summary";
    meTriggerTowerNonSingleTiming_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meTriggerTowerNonSingleTiming_[1]->setAxisTitle("ix", 1);
    meTriggerTowerNonSingleTiming_[1]->setAxisTitle("iy", 2);
    meTriggerTowerNonSingleTiming_[1]->setAxisTitle("fraction", 3);
  }

  if(meIntegrity_[0] && mePedestalOnline_[0] && meStatusFlags_[0] && (reducedReports_ || (meTiming_[0] && meTriggerTowerEmulError_[0]))) {
    if( meGlobalSummary_[0] ) dqmStore_->removeElement( meGlobalSummary_[0]->getName() );
    name = "EE global summary EE -";
    meGlobalSummary_[0] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meGlobalSummary_[0]->setAxisTitle("ix", 1);
    meGlobalSummary_[0]->setAxisTitle("iy", 2);
  }

  if(meIntegrity_[1] && mePedestalOnline_[1] && meStatusFlags_[1] && (reducedReports_ || (meTiming_[1] && meTriggerTowerEmulError_[1]))) {
    if( meGlobalSummary_[1] ) dqmStore_->removeElement( meGlobalSummary_[1]->getName() );
    name = "EE global summary EE +";
    meGlobalSummary_[1] = dqmStore_->book2D(name, name, 100, 0., 100., 100, 0., 100.);
    meGlobalSummary_[1]->setAxisTitle("ix", 1);
    meGlobalSummary_[1]->setAxisTitle("iy", 2);
  }

  if(meGlobalSummary_[0] && meGlobalSummary_[1]){
    if(meSummaryErr_) dqmStore_->removeElement(meSummaryErr_->getName());
    name = "EE global summary errors";
    meSummaryErr_ = dqmStore_->book1D(name, name, 1, 0., 1.);
  }
}

Member Data Documentation

std::vector<EEClient*> EESummaryClient::clients_ [private]

Definition at line 102 of file EESummaryClient.h.

Referenced by analyze(), setFriends(), and setup().

bool EESummaryClient::cloneME_ [private]

Definition at line 81 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), and EESummaryClient().

bool EESummaryClient::debug_ [private]

Definition at line 84 of file EESummaryClient.h.

Referenced by analyze(), beginJob(), beginRun(), EESummaryClient(), endJob(), and endRun().

Definition at line 104 of file EESummaryClient.h.

Referenced by analyze(), beginJob(), cleanup(), and setup().

Definition at line 90 of file EESummaryClient.h.

Referenced by cleanup(), and EESummaryClient().

TProfile2D* EESummaryClient::hot01_[18] [private]

Definition at line 191 of file EESummaryClient.h.

Referenced by analyze().

TProfile2D* EESummaryClient::hpot01_[18] [private]

Definition at line 192 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), and EESummaryClient().

TProfile2D* EESummaryClient::htmt01_[18] [private]

Definition at line 194 of file EESummaryClient.h.

Referenced by analyze().

TProfile2D* EESummaryClient::httt01_[18] [private]

Definition at line 193 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), and EESummaryClient().

int EESummaryClient::ievt_ [private]

Definition at line 76 of file EESummaryClient.h.

Referenced by analyze(), beginJob(), endJob(), and getEvtPerJob().

int EESummaryClient::jevt_ [private]

Definition at line 77 of file EESummaryClient.h.

Referenced by analyze(), beginJob(), beginRun(), endRun(), and getEvtPerRun().

std::vector<int> EESummaryClient::laserWavelengths_ [private]

Definition at line 97 of file EESummaryClient.h.

Referenced by analyze(), EESummaryClient(), and setup().

std::vector<int> EESummaryClient::ledWavelengths_ [private]

Definition at line 98 of file EESummaryClient.h.

Referenced by analyze(), EESummaryClient(), and setup().

Definition at line 187 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 106 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 108 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 107 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 119 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 123 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 125 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 120 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 121 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 122 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 124 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 126 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 130 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 132 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 127 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 128 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 129 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 131 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 133 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 137 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 139 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 134 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 135 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 136 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 138 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 140 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 144 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 146 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 141 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 142 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 143 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 145 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 147 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 151 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 153 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 148 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 149 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 150 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 152 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 154 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 158 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 160 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 155 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 156 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 157 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 159 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 113 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 111 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 112 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 161 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 162 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 163 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 114 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 115 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 116 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 117 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 118 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 164 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 165 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 175 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 109 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 110 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 189 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 171 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 172 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 173 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 166 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 167 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 168 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 169 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 170 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 176 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 177 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 179 of file EESummaryClient.h.

Referenced by analyze(), EESummaryClient(), and setup().

Definition at line 178 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 180 of file EESummaryClient.h.

Referenced by analyze(), EESummaryClient(), and setup().

Definition at line 183 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 181 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 182 of file EESummaryClient.h.

Definition at line 185 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 184 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

std::vector<int> EESummaryClient::MGPAGains_ [private]

Definition at line 99 of file EESummaryClient.h.

Referenced by EESummaryClient(), and setup().

std::vector<int> EESummaryClient::MGPAGainsPN_ [private]

Definition at line 100 of file EESummaryClient.h.

Referenced by EESummaryClient(), and setup().

TH1F* EESummaryClient::norm01_ [private]

Definition at line 195 of file EESummaryClient.h.

Referenced by analyze().

std::string EESummaryClient::prefixME_ [private]

Definition at line 86 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), EESummaryClient(), and setup().

Definition at line 92 of file EESummaryClient.h.

Referenced by analyze(), EESummaryClient(), and setup().

Definition at line 94 of file EESummaryClient.h.

Referenced by analyze(), EESummaryClient(), and setup().

std::string EESummaryClient::subfolder_ [private]

Definition at line 88 of file EESummaryClient.h.

Referenced by analyze(), and EESummaryClient().

std::vector<int> EESummaryClient::superModules_ [private]

Definition at line 96 of file EESummaryClient.h.

Referenced by analyze(), cleanup(), and EESummaryClient().

TH1F * EESummaryClient::synch01_ [private]

Definition at line 195 of file EESummaryClient.h.

Referenced by analyze().

Definition at line 79 of file EESummaryClient.h.

Referenced by analyze(), and EESummaryClient().

Definition at line 197 of file EESummaryClient.h.

Referenced by analyze(), and EESummaryClient().

bool EESummaryClient::verbose_ [private]

Definition at line 83 of file EESummaryClient.h.

Referenced by EESummaryClient().