30 collection(p_config), processor(p_config), processorFract(p_config) {
46 collection(p_config), processor(p_config, itag, coco), processorFract(p_config) {
96 if (
config->getPREBOOK_ALL_HISTOS()) {
99 for (
HwId FEDId = 750; FEDId < 758; FEDId++) {
105 if (
config->getPROCESS_DDU()) {
107 for (
HwId DDUId = 1; DDUId <= 36; DDUId++) {
114 if (
config->getPROCESS_CSC()) {
116 for (
HwId CrateId = 1; CrateId <= 60; CrateId++) {
117 for (
HwId DMBId = 1; DMBId <=10; DMBId++) {
118 if (DMBId == 6)
continue;
126 if (
config->getPROCESS_EFF_PARAMETERS()) {
130 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION01_RING01);
131 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION01_RING02);
132 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION01_RING03);
133 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION01);
134 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION02_RING01);
135 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION02_RING02);
136 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION02);
137 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION03_RING01);
138 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION03_RING02);
139 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION03);
140 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION04_RING01);
141 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION04_RING02);
142 parameters.push_back(h::PAR_CSC_SIDEPLUS_STATION04);
143 parameters.push_back(h::PAR_CSC_SIDEPLUS);
144 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION01_RING01);
145 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION01_RING02);
146 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION01_RING03);
147 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION01);
148 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION02_RING01);
149 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION02_RING02);
150 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION02);
151 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION03_RING01);
152 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION03_RING02);
153 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION03);
154 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION04_RING01);
155 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION04_RING02);
156 parameters.push_back(h::PAR_CSC_SIDEMINUS_STATION04);
157 parameters.push_back(h::PAR_CSC_SIDEMINUS);
158 parameters.push_back(h::PAR_REPORT_SUMMARY);
161 for (
size_t i = 0;
i < parameters.size();
i++) {
195 if (
cache.
get(histoD, me))
return true;
201 if (
cache.
get(histoD, me))
return true;
213 if (
cache.
get(histoD, me))
return true;
235 if (
config->getFRAEFF_AUTO_UPDATE() &&
248 if (
config->getFRAEFF_SEPARATE_THREAD()) {
251 threads.create_thread(boost::ref(fnUpdate));
266 if (
config->getFRAEFF_SEPARATE_THREAD()) {
269 threads.create_thread(boost::ref(fnUpdate));
290 processor.processEvent(data, dataSize, errorStat, nodeNumber);
309 if (standby.process) {
313 config->setIN_FULL_STANDBY(
config->getIN_FULL_STANDBY() && standby.fullStandby());
323 if (standby.fullStandby()) {
const bool getFED(const HistoId &id, const HwId &fedId, MonitorObject *&mo)
Get FED MO on Histogram Id and FED Id.
void init()
Initialize Dispatcher: book histograms, init processor, etc.
boost::function< bool(unsigned int &, unsigned int &) > fnIsBookedCSC
static const std::type_info & FEDHistoDefT
const bool isBookedDDU(const HwId &dduId) const
Check if DDU was booked on given identifier.
const HistoName & getHistoName() const
Get raw histogram name.
virtual const HwId getCrateId() const
Get CSC Crate ID.
boost::function< bool(const HistoId id, MonitorObject *&mo) > fnGetCacheParHisto
const bool getEMU(const HistoId &id, MonitorObject *&mo)
Get EMU MO on Histogram Id.
void bookEMUHistos() const
Book EMU histograms.
void updateFractionAndEfficiencyHistos()
On demand update fraction and efficiency MOs.
const bool nextBookedCSC(unsigned int &n, unsigned int &crateId, unsigned int &dmbId) const
Iterator to get booked CSC identifiers on enumerator.
Monitoring Object interface used to cover Root object and provide common interface to EventProcessor ...
dispatcher processEvent(e, inputTag, standby)
Abstract Base Histogram Definition.
void eventProcessTimer(const bool start)
Switch on/off event processing timer.
Parameter Histogram Definition.
EventProcessorMutex processorFract
const bool isOnDemand(const HistoName &name) const
Check if the histogram is on demand (by histogram name)
boost::function< bool(const HistoId id, const HwId &id1, const HwId &id2, const HwId &id3, MonitorObject *&mo) > fnGetCacheCSCHisto
virtual const HwId getDDUId() const
Get DDU ID.
void init()
Initialize EventProcessor: reading out config information.
void updateFractionAndEfficiencyHistosAuto()
Automatically called fraction and efficiency MOs update function.
void processStandby(HWStandbyType &standby)
Set HW Standby modes.
const unsigned long getNEventsCSC() const
unsigned int maskHWElements(std::vector< std::string > &tokens)
Mask HW elements from the efficiency calculations. Can be applied on runtime!
virtual MonitorObject * bookMonitorObject(const HistoBookRequest &p_req)=0
Dispatcher(Configuration *const p_config, MonitorObjectProvider *const p_provider)
Constructor.
CSCDQM Framework Global Configuration.
const HistoId getId() const
Get Histogram ID.
const bool getPar(const HistoId &id, MonitorObject *&mo)
Get Parameter MO on Histogram Id.
boost::function< bool(unsigned int &, unsigned int &, unsigned int &) > fnNextBookedCSC
unsigned int maskHWElements(std::vector< std::string > &tokens)
Mask HW elements from the efficiency calculations. Can be applied on runtime!
boost::function< bool(const HistoDef &histoT, MonitorObject *&) > fnGetHisto
virtual bool getCSCDetId(const unsigned int crateId, const unsigned int dmbId, CSCDetId &detId) const =0
boost::function< bool(const unsigned int, const unsigned int, CSCDetId &) > fnGetCSCDetId
static const std::type_info & CSCHistoDefT
void processStandby(HWStandbyType &standby)
Process standby information.
void load()
Load XML file and fill definition map(s)
static const std::type_info & ParHistoDefT
boost::function< MonitorObject *(const HistoBookRequest &) > fnBook
void bookFEDHistos(const HwId fedId) const
Book FED histograms.
virtual const HwId getDMBId() const
Get CSC DMB ID.
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! ...
const bool getDDU(const HistoId &id, const HwId &dduId, MonitorObject *&mo)
Get DDU MO on Histogram Id and DDU Id.
static const std::type_info & DDUHistoDefT
void bookDDUHistos(const HwId dduId) const
Book DDU histograms.
boost::function< bool(unsigned int &) > fnIsBookedDDU
void put(const HistoDef &histo, MonitorObject *mo)
Put Monitoring Object into cache.
boost::function< bool(unsigned int &) > fnIsBookedFED
boost::function< bool(const HistoId id, const HwId &id1, MonitorObject *&mo) > fnGetCacheFEDHisto
boost::function< void(const HistoDef &histoT, MonitorObject *&) > fnPutHisto
char data[epos_bytes_allocation]
const bool isBookedCSC(const HwId &crateId, const HwId &dmbId) const
Check if CSC was booked on given identifiers.
void bookCSCHistos(const HwId crateId, const HwId dmbId) const
Book Chamber Histograms.
const bool get(const HistoDef &histo, MonitorObject *&mo)
Get Monitoring Object on Histogram Definition.
MonitorObjectProvider * provider
boost::function< bool(const HistoId id, const HwId &id1, MonitorObject *&mo) > fnGetCacheDDUHisto
Interface for Histogram providing objects. Used by Event Processor to retrieve MonitorObject 's and b...
const bool getCSC(const HistoId &id, const HwId &crateId, const HwId &dmbId, const HwId &addId, MonitorObject *&mo)
Get CSC MO on Histogram Id and CSC Crate and DMB Ids.
void updateFractionAndEfficiencyHistos()
Update Fraction and Efficiency histograms.
virtual const HwId getAddId() const
Get CSC Additional ID (used to store Layer, CLCT, ALCT and other identifiers.
const bool isBookedFED(const HwId &fedId) const
Check if FED was booked on given identifier.
virtual const HwId getFEDId() const
Get FED ID.
void commonConstruct(Configuration *const p_config, MonitorObjectProvider *const p_provider)
boost::function< bool(const HistoId id, MonitorObject *&mo) > fnGetCacheEMUHisto