CSCDQM Framework frontend and Histogram Cache controller. More...
#include <CSCDQM_Dispatcher.h>
Public Member Functions | |
Dispatcher (Configuration *const p_config, MonitorObjectProvider *const p_provider) | |
Constructor. | |
const bool | getHisto (const HistoDef &histoD, MonitorObject *&me) |
Global get MO function. If request has reached this function it means that histo is not in cache! | |
void | init () |
Initialize Dispatcher: book histograms, init processor, etc. | |
unsigned int | maskHWElements (std::vector< std::string > &tokens) |
Mask HW elements from the efficiency calculations. Can be applied on runtime! | |
void | processStandby (HWStandbyType &standby) |
Set HW Standby modes. | |
void | updateFractionAndEfficiencyHistos () |
On demand update fraction and efficiency MOs. | |
~Dispatcher () | |
Destructor. Joins and waits to complete all threads. | |
Private Member Functions | |
void | updateFractionAndEfficiencyHistosAuto () |
Automatically called fraction and efficiency MOs update function. | |
Private Attributes | |
Cache | cache |
Collection | collection |
Configuration * | config |
EventProcessor | processor |
EventProcessorMutex | processorFract |
MonitorObjectProvider * | provider |
CSCDQM Framework frontend and Histogram Cache controller.
Definition at line 120 of file CSCDQM_Dispatcher.h.
afs cern ch work a aaltunda public www CMSSW_6_2_7 src DQM CSCMonitorModule plugins CSCDQM_Dispatcher cc cscdqm::Dispatcher::Dispatcher | ( | Configuration *const | p_config, |
MonitorObjectProvider *const | p_provider | ||
) |
Constructor.
p_config | Pointer to Global Configuration |
p_provider | Pointer to MonitorObjectProvider |
Save pointers to class properties
Link/share Cache methods to function pointers in configuration
Link/share local functions
Link/share getCSCDetId function
Link/share booking function
Definition at line 30 of file CSCDQM_Dispatcher.cc.
References cscdqm::MonitorObjectProvider::bookMonitorObject(), HDQMDatabaseProducer::config, cscdqm::Cache::getCSC(), cscdqm::MonitorObjectProvider::getCSCDetId(), cscdqm::Cache::getDDU(), cscdqm::Cache::getEMU(), cscdqm::Cache::getFED(), getHisto(), cscdqm::Cache::getPar(), cscdqm::Cache::isBookedCSC(), cscdqm::Cache::isBookedDDU(), cscdqm::Cache::isBookedFED(), cscdqm::Cache::nextBookedCSC(), and cscdqm::Cache::put().
{ config = p_config; provider = p_provider; config->fnGetCacheEMUHisto = boost::bind(&Cache::getEMU, &cache, _1, _2); config->fnGetCacheFEDHisto = boost::bind(&Cache::getFED, &cache, _1, _2, _3); config->fnGetCacheDDUHisto = boost::bind(&Cache::getDDU, &cache, _1, _2, _3); config->fnGetCacheCSCHisto = boost::bind(&Cache::getCSC, &cache, _1, _2, _3, _4, _5); config->fnGetCacheParHisto = boost::bind(&Cache::getPar, &cache, _1, _2); config->fnPutHisto = boost::bind(&Cache::put, &cache, _1, _2); config->fnNextBookedCSC = boost::bind(&Cache::nextBookedCSC, &cache, _1, _2, _3); config->fnIsBookedCSC = boost::bind(&Cache::isBookedCSC, &cache, _1, _2); config->fnIsBookedDDU = boost::bind(&Cache::isBookedDDU, &cache, _1); config->fnIsBookedFED = boost::bind(&Cache::isBookedFED, &cache, _1); config->fnGetHisto = boost::bind(&Dispatcher::getHisto, this, _1, _2); config->fnGetCSCDetId = boost::bind(&MonitorObjectProvider::getCSCDetId, provider, _1, _2, _3); config->fnBook = boost::bind(&MonitorObjectProvider::bookMonitorObject, provider, _1); }
cscdqm::Dispatcher::~Dispatcher | ( | ) | [inline] |
Destructor. Joins and waits to complete all threads.
Definition at line 129 of file CSCDQM_Dispatcher.h.
{ #ifdef DQMMT threads.join_all(); #endif }
const bool cscdqm::Dispatcher::getHisto | ( | const HistoDef & | histoD, |
MonitorObject *& | me | ||
) |
Global get MO function. If request has reached this function it means that histo is not in cache!
histoD | Histogram Definition to get |
me | MO to return |
For the first FED - book general
For the first DDU - book general
For the first and specific CSCs - book general and specific
cache.printContent();
For the Parameters - book parameter histogram
If not found after booking - mark it as not existent
Definition at line 85 of file CSCDQM_Dispatcher.cc.
References cscdqm::Collection::bookFEDHistos(), cache, collection, cscdqm::Cache::get(), and cscdqm::HistoDef::getFEDId().
Referenced by Dispatcher().
{ collection.bookFEDHistos(histoD.getFEDId()); if (cache.get(histoD, me)) return true; } if (typeid(histoD) == DDUHistoDefT && !cache.isBookedDDU(histoD.getDDUId())) { collection.bookDDUHistos(histoD.getDDUId()); if (cache.get(histoD, me)) return true; } if (typeid(histoD) == CSCHistoDefT) { if (!cache.isBookedCSC(histoD.getCrateId(), histoD.getDMBId())) { collection.bookCSCHistos(histoD.getCrateId(), histoD.getDMBId()); } if (collection.isOnDemand(histoD.getHistoName())) { collection.bookCSCHistos(histoD.getId(), histoD.getCrateId(), histoD.getDMBId(), histoD.getAddId()); } if (cache.get(histoD, me)) return true; } if (typeid(histoD) == ParHistoDefT) { HistoBookRequest req(histoD, config->getFOLDER_PAR(), -1.0f); me = provider->bookMonitorObject(req); cache.put(histoD, me); return true; } cache.put(histoD, NULL); return false; }
void cscdqm::Dispatcher::init | ( | void | ) |
Initialize Dispatcher: book histograms, init processor, etc.
Definition at line 64 of file CSCDQM_Dispatcher.cc.
Referenced by CSCMonitorModule::CSCMonitorModule(), and CSCOfflineClient::CSCOfflineClient().
unsigned int cscdqm::Dispatcher::maskHWElements | ( | std::vector< std::string > & | tokens | ) |
Mask HW elements from the efficiency calculations. Can be applied on runtime!
tokens | String tokens of the HW elements |
Definition at line 75 of file CSCDQM_Dispatcher.cc.
Referenced by CSCMonitorModule::CSCMonitorModule(), and CSCOfflineClient::CSCOfflineClient().
void cscdqm::Dispatcher::processStandby | ( | HWStandbyType & | standby | ) |
Set HW Standby modes.
Definition at line 159 of file CSCDQM_Dispatcher.cc.
{ boost::function<void (HWStandbyType&)> fnUpdate = boost::bind(&EventProcessorMutex::processStandby, &processorFract, _1); #ifdef DQMMT threads.create_thread(boost::ref(fnUpdate)); #else fnUpdate(standby); #endif } else { processorFract.processStandby(standby); } }
void cscdqm::Dispatcher::updateFractionAndEfficiencyHistos | ( | ) |
On demand update fraction and efficiency MOs.
Definition at line 141 of file CSCDQM_Dispatcher.cc.
Referenced by CSCMonitorModule::beginRun(), CSCOfflineClient::endRun(), and updateFractionAndEfficiencyHistosAuto().
{ boost::function<void ()> fnUpdate = boost::bind(&EventProcessorMutex::updateFractionAndEfficiencyHistos, &processorFract); #ifdef DQMMT threads.create_thread(boost::ref(fnUpdate)); #else fnUpdate(); #endif } else { processorFract.updateFractionAndEfficiencyHistos(); } }
void cscdqm::Dispatcher::updateFractionAndEfficiencyHistosAuto | ( | ) | [private] |
Automatically called fraction and efficiency MOs update function.
Definition at line 129 of file CSCDQM_Dispatcher.cc.
References updateFractionAndEfficiencyHistos().
{ updateFractionAndEfficiencyHistos(); } }
Cache cscdqm::Dispatcher::cache [private] |
Collection cscdqm::Dispatcher::collection [private] |
Configuration* cscdqm::Dispatcher::config [private] |
Pointer to Global Configuration
Definition at line 146 of file CSCDQM_Dispatcher.h.
EventProcessor cscdqm::Dispatcher::processor [private] |
Event Processor object
Definition at line 155 of file CSCDQM_Dispatcher.h.
Lockable Fractional and Efficiency MO update object
Definition at line 161 of file CSCDQM_Dispatcher.h.
Pointer to MO provider
Definition at line 149 of file CSCDQM_Dispatcher.h.