CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes

EcalDQMonitorClient Class Reference

#include <EcalDQMonitorClient.h>

Inheritance diagram for EcalDQMonitorClient:
EcalDQMonitor edm::EDAnalyzer

List of all members.

Public Member Functions

 EcalDQMonitorClient (const edm::ParameterSet &)
 ~EcalDQMonitorClient ()

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &)

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &)
void beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &)
void beginRun (const edm::Run &, const edm::EventSetup &)
void endLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &)
void endRun (const edm::Run &, const edm::EventSetup &)
void runWorkers ()

Private Attributes

int lumiStatus_
bool runAtEndLumi_
std::vector
< ecaldqm::DQWorkerClient * > 
workers_

Detailed Description

Definition at line 19 of file EcalDQMonitorClient.h.


Constructor & Destructor Documentation

EcalDQMonitorClient::EcalDQMonitorClient ( const edm::ParameterSet _ps)

Definition at line 27 of file EcalDQMonitorClient.cc.

References python::OfflineClient_cff::client, gather_cfg::cout, tests::test_Package01::factory, ecaldqm::DQWorker::getName(), edm::ParameterSet::getUntrackedParameter(), edm::ParameterSet::getUntrackedParameterSet(), EcalDQMonitor::moduleName_, ecaldqm::DQWorker::setVerbosity(), EcalDQMonitor::verbosity_, and workers_.

                                                                   :
  EcalDQMonitor(_ps),
  workers_(0),
  runAtEndLumi_(_ps.getUntrackedParameter<bool>("runAtEndLumi", false)),
  lumiStatus_(-1)
{
  using namespace std;

  const edm::ParameterSet& clientParams(_ps.getUntrackedParameterSet("clientParameters"));
  const edm::ParameterSet& mePaths(_ps.getUntrackedParameterSet("mePaths"));

  vector<string> clientNames(_ps.getUntrackedParameter<vector<string> >("clients"));

  WorkerFactory factory(0);

  for(vector<string>::iterator cItr(clientNames.begin()); cItr != clientNames.end(); ++cItr){
    if (!(factory = SetWorker::findFactory(*cItr))) continue;

    if(verbosity_ > 0) cout << moduleName_ << ": Setting up " << *cItr << endl;

    DQWorker* worker(factory(clientParams, mePaths.getUntrackedParameterSet(*cItr)));
    if(worker->getName() != *cItr){
      delete worker;
      continue;
    }
    DQWorkerClient* client(static_cast<DQWorkerClient*>(worker));
    client->setVerbosity(verbosity_);

    workers_.push_back(client);
  }
}
EcalDQMonitorClient::~EcalDQMonitorClient ( )

Definition at line 59 of file EcalDQMonitorClient.cc.

References workers_.

{
  for(std::vector<DQWorkerClient*>::iterator wItr(workers_.begin()); wItr != workers_.end(); ++wItr)
    delete *wItr;
}

Member Function Documentation

void EcalDQMonitorClient::analyze ( const edm::Event ,
const edm::EventSetup  
) [inline, private, virtual]

Implements edm::EDAnalyzer.

Definition at line 33 of file EcalDQMonitorClient.h.

{}
void EcalDQMonitorClient::beginLuminosityBlock ( const edm::LuminosityBlock _lumi,
const edm::EventSetup _es 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 124 of file EcalDQMonitorClient.cc.

References lumiStatus_, and workers_.

{
  for(std::vector<DQWorkerClient *>::iterator wItr(workers_.begin()); wItr != workers_.end(); ++wItr)
    (*wItr)->beginLuminosityBlock(_lumi, _es);

  lumiStatus_ = 0;
}
void EcalDQMonitorClient::beginRun ( const edm::Run _run,
const edm::EventSetup _es 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 75 of file EcalDQMonitorClient.cc.

References ecaldqm::DQWorker::beginRun(), ecaldqm::DQWorker::bookMEs(), python::OfflineClient_cff::client, gather_cfg::cout, edm::EventSetup::find(), edm::EventSetup::get(), ecaldqm::DQWorker::getName(), lumiStatus_, EcalDQMonitor::moduleName_, edm::ESHandle< T >::product(), edm::RunBase::run(), ecaldqm::setElectronicsMap(), ecaldqm::setTrigTowerMap(), EcalDQMonitor::verbosity_, and workers_.

{
  // set up ecaldqm::electronicsMap in EcalDQMCommonUtils
  edm::ESHandle<EcalElectronicsMapping> elecMapHandle;
  _es.get<EcalMappingRcd>().get(elecMapHandle);
  ecaldqm::setElectronicsMap(elecMapHandle.product());

  // set up ecaldqm::electronicsMap in EcalDQMCommonUtils
  edm::ESHandle<EcalTrigTowerConstituentsMap> ttMapHandle;
  _es.get<IdealGeometryRecord>().get(ttMapHandle);
  ecaldqm::setTrigTowerMap(ttMapHandle.product());

  if(_es.find(edm::eventsetup::EventSetupRecordKey::makeKey<EcalDQMChannelStatusRcd>())){
    edm::ESHandle<EcalDQMChannelStatus> cStHndl;
    _es.get<EcalDQMChannelStatusRcd>().get(cStHndl);
    DQWorkerClient::channelStatus = cStHndl.product();
  }

  if(_es.find(edm::eventsetup::EventSetupRecordKey::makeKey<EcalDQMTowerStatusRcd>())){
    edm::ESHandle<EcalDQMTowerStatus> tStHndl;
    _es.get<EcalDQMTowerStatusRcd>().get(tStHndl);
    DQWorkerClient::towerStatus = tStHndl.product();
  }

  for(std::vector<DQWorkerClient*>::iterator wItr(workers_.begin()); wItr != workers_.end(); ++wItr){
    DQWorkerClient* client(*wItr);
    if(verbosity_ > 1) std::cout << moduleName_ << ": Booking MEs for " << client->getName() << std::endl;
    client->bookMEs();
    client->beginRun(_run, _es);
  }

  lumiStatus_ = -1;

  if(verbosity_ > 0)
    std::cout << moduleName_ << ": Starting run " << _run.run() << std::endl;
}
void EcalDQMonitorClient::endLuminosityBlock ( const edm::LuminosityBlock _lumi,
const edm::EventSetup _es 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 133 of file EcalDQMonitorClient.cc.

References lumiStatus_, runAtEndLumi_, runWorkers(), and workers_.

{
  for(std::vector<DQWorkerClient *>::iterator wItr(workers_.begin()); wItr != workers_.end(); ++wItr)
    (*wItr)->endLuminosityBlock(_lumi, _es);

  if(runAtEndLumi_){
    runWorkers();
    lumiStatus_ = 1;
  }
}
void EcalDQMonitorClient::endRun ( const edm::Run _run,
const edm::EventSetup _es 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 113 of file EcalDQMonitorClient.cc.

References lumiStatus_, runWorkers(), and workers_.

{
  if(lumiStatus_ == 0)
    runWorkers();

  for(std::vector<DQWorkerClient *>::iterator wItr(workers_.begin()); wItr != workers_.end(); ++wItr){
    (*wItr)->endRun(_run, _es);
  }
}
void EcalDQMonitorClient::fillDescriptions ( edm::ConfigurationDescriptions _descs) [static]
void EcalDQMonitorClient::runWorkers ( ) [private]

Definition at line 145 of file EcalDQMonitorClient.cc.

References python::OfflineClient_cff::client, gather_cfg::cout, ecaldqm::DQWorkerClient::initialize(), ecaldqm::DQWorker::isInitialized(), ecaldqm::DQWorkerClient::producePlots(), EcalDQMonitor::verbosity_, and workers_.

Referenced by endLuminosityBlock(), and endRun().

{
  if(verbosity_ > 0)
    std::cout << "EcalDQMonitorClient: Starting worker modules.." << std::endl;

  for(std::vector<DQWorkerClient *>::iterator wItr(workers_.begin()); wItr != workers_.end(); ++wItr){
    DQWorkerClient* client(*wItr);
    if(!client->isInitialized())
      client->initialize();

    if(client->isInitialized())
      client->producePlots();
  }

  if(verbosity_ > 0)
    std::cout << " done." << std::endl;
}

Member Data Documentation

Definition at line 41 of file EcalDQMonitorClient.h.

Referenced by beginLuminosityBlock(), beginRun(), endLuminosityBlock(), and endRun().

Definition at line 40 of file EcalDQMonitorClient.h.

Referenced by endLuminosityBlock().