33 if (!dduTrailer.
check())
47 LOG_WARN <<
"DDU source ID (" << dduHeader.
source_id() <<
") is out of valid range. Remapping to DDU ID 1.";
74 int trl_word_count = 0;
83 if (trl_word_count > 0)
87 mo->
Fill(dduID, log10((
double)trl_word_count));
93 mo->
Fill(dduID, trl_word_count);
108 int L1ANumber_previous_event =
L1ANumbers[dduID];
112 int L1A_inc =
L1ANumber - L1ANumber_previous_event;
115 if ( L1A_inc < 0 ) L1A_inc = 0xFFFFFF + L1A_inc;
123 if (L1A_inc > 100000)
127 else if (L1A_inc > 30000)
131 else if (L1A_inc > 10000)
135 else if (L1A_inc > 3000)
139 else if (L1A_inc > 1000)
143 else if (L1A_inc > 300)
147 else if (L1A_inc > 100)
151 else if (L1A_inc > 30)
155 else if (L1A_inc > 10)
159 mo->
Fill(dduID, L1A_inc);
164 int dmb_dav_header = 0;
165 int dmb_dav_header_cnt = 0;
167 int ddu_connected_inputs= 0;
168 int ddu_connected_inputs_cnt = 0;
170 int csc_error_state = 0;
171 int csc_warning_state = 0;
174 int dmb_active_header = 0;
176 dmb_dav_header = dduHeader.
dmb_dav();
177 dmb_active_header = (
int)(dduHeader.
ncsc() & 0xF);
178 csc_error_state = dduTrailer.
dmb_full() & 0x7FFF;
179 csc_warning_state = dduTrailer.
dmb_warn() & 0x7FFF;
180 ddu_connected_inputs = dduHeader.
live_cscs();
190 if ((dmb_dav_header >>
i) & 0
x1)
192 dmb_dav_header_cnt++;
206 if ( (ddu_connected_inputs >>
i) & 0x1 )
208 ddu_connected_inputs_cnt++;
222 if ( (csc_error_state >>
i) & 0x1 )
233 mo->
Fill(dduID,
i + 2);
237 if ((csc_warning_state >>
i) & 0x1 )
247 mo->
Fill(dduID,
i + 2);
254 mo->
Fill(dduID, ddu_connected_inputs_cnt);
261 mo->
Fill(dduID, dmb_dav_header_cnt);
267 if (csc_error_state > 0)
279 if (csc_warning_state > 0)
295 mo->
Fill(dmb_active_header, dmb_dav_header_cnt);
298 uint32_t trl_errorstat = dduTrailer.
errorstat();
299 if (dmb_dav_header_cnt == 0) trl_errorstat &= ~0x20000000;
301 for (
int i = 0;
i < 32;
i++)
303 if ((trl_errorstat >>
i) & 0
x1)
321 for (
int i = 0;
i < 32;
i++)
323 if ((trl_errorstat >>
i) & 0
x1)
325 mo->
Fill(dduID,
i + 2);
342 if (ddu_output_path_status)
345 for (
int i=0;
i<16;
i++)
347 if ((ddu_output_path_status>>
i) & 0
x1)
363 if (
config->getPROCESS_CSC())
366 std::vector<CSCEventData> chamberDatas;
367 chamberDatas.clear();
368 chamberDatas = dduData.
cscData();
370 nCSCs = chamberDatas.size();
372 for (uint32_t
i = 0;
i < nCSCs;
i++)
CSCDDUHeader header() const
virtual void SetEntries(const double value)=0
const bool getDDUHisto(const HistoId &histo, const HwId &dduID, MonitorObject *&me)
Get DDU Level Monitoring Object.
virtual void Fill(float x)=0
Monitoring Object interface used to cover Root object and provide common interface to EventProcessor ...
unsigned errorstat() const
static int getRUIfromDDUId(unsigned ddu_id)
Get RUI Number from DDU source ID for post LS1 configuration.
void processCSC(const CSCEventData &data, const int dduID, const CSCDCCExaminer &binChecker)
Process Chamber Data and fill MOs.
unsigned dmb_warn() const
std::map< uint32_t, uint32_t > L1ANumbers
virtual void SetBinContent(const int binX, const double value)=0
unsigned reserved() const
void processDDU(const CSCDDUEventData &data, const CSCDCCExaminer &binChecker)
Process DDU output and fill MOs.
const std::vector< CSCEventData > & cscData() const
accessor to data
unsigned dmb_full() const
virtual double GetBinContent(const int binX)=0
CSCDDUTrailer trailer() const
bool fCloseL1As
Data Format version (2005, 2013)
unsigned wordcount() const
std::map< uint32_t, bool > fNotFirstEvent
const bool getEMUHisto(const HistoId &histo, MonitorObject *&me)
Get EMU (Top Level) Monitoring Object.
const std::string getPath() const override
Get path part of the histogram (used only for DDUs and CSCs)