Object used to process Events and compute statistics. More...
#include <CSCDQM_EventProcessor.h>
Public Member Functions | |
EventProcessor (Configuration *const p_config) | |
Constructor. More... | |
void | init () |
Initialize EventProcessor: reading out config information. More... | |
unsigned int | maskHWElements (std::vector< std::string > &tokens) |
Mask HW elements from the efficiency calculations. Can be applied on runtime! More... | |
void | standbyEfficiencyHistos (HWStandbyType &standby) |
apply standby flags/parameters More... | |
void | updateEfficiencyHistos () |
Update Efficiency MOs. More... | |
void | updateFractionHistos () |
Update Fractional MOs. More... | |
void | writeShifterHistograms () |
~EventProcessor () | |
Destructor. More... | |
Private Member Functions | |
void | calcEMUFractionHisto (const HistoId &result, const HistoId &set, const HistoId &subset) |
Calculate fractional histogram. More... | |
const bool | getCSCFromMap (const unsigned int &crateId, const unsigned int &dmbId, unsigned int &cscType, unsigned int &cscPosition) const |
Get CSC type and position from crate and dmb identifiers. More... | |
const bool | getCSCHisto (const HistoId &histo, const HwId &crateID, const HwId &dmbSlot, MonitorObject *&me) |
Get CSC (Chamber) Level Monitoring Object. More... | |
const bool | getCSCHisto (const HistoId &histo, const HwId &crateID, const HwId &dmbSlot, const HwId &adId, MonitorObject *&me) |
Get CSC (Chamber) Level Monitoring Object with additional identifier. More... | |
const bool | getDDUHisto (const HistoId &histo, const HwId &dduID, MonitorObject *&me) |
Get DDU Level Monitoring Object. More... | |
const bool | getEMUHisto (const HistoId &histo, MonitorObject *&me) |
Get EMU (Top Level) Monitoring Object. More... | |
const bool | getFEDHisto (const HistoId &histo, const HwId &fedID, MonitorObject *&me) |
Get FED Level Monitoring Object. More... | |
const bool | getParHisto (const HistoId &histo, MonitorObject *&me) |
Get Parameter Monitoring Object. More... | |
void | preProcessEvent () |
Common Local and Global DQM function to be called before processing Event. More... | |
void | processCSC (const CSCEventData &data, const int dduID, const CSCDCCExaminer &binChecker) |
Process Chamber Data and fill MOs. More... | |
void | processDDU (const CSCDDUEventData &data, const CSCDCCExaminer &binChecker) |
Process DDU output and fill MOs. More... | |
bool | processExaminer (const CSCDCCExaminer &binChecker) |
bool | processExaminer (const CSCDCCExaminer &binChecker, const CSCDCCFormatStatusDigi &digi) |
Fill monitor elements with CSCDCCFormatStatusDigi information. More... | |
void | resetEmuEventDisplays () |
Reset Emu level EventDisplay histograms once per event. More... | |
void | setEmuEventDisplayBit (MonitorObject *&mo, const unsigned int x, const unsigned int y, const unsigned int bit) |
Set a single bit in the 3D Histogram (aka EMU level event display). Checks if mo and x != null. More... | |
Private Attributes | |
uint32_t | BXN |
uint32_t | cntALCTs |
Total Number of CFEBs per event from DMB DAV. More... | |
uint32_t | cntCFEBs |
Total Number of DMBs per event from DDU Header DAV. More... | |
uint32_t | cntDMBs |
uint32_t | cntTMBs |
Total Number of ALCTs per event from DMB DAV. More... | |
Configuration * | config |
bool | EmuEventDisplayWasReset |
bool | fCloseL1As |
Total Number of TMBs per event from DMB DAV. More... | |
std::map< uint32_t, bool > | fNotFirstEvent |
uint32_t | L1ANumber |
std::map< uint32_t, uint32_t > | L1ANumbers |
Summary | summary |
Object used to process Events and compute statistics.
Definition at line 111 of file CSCDQM_EventProcessor.h.
cscdqm::EventProcessor::EventProcessor | ( | Configuration *const | p_config | ) |
Constructor.
p_config | Pointer to Global Configuration. |
Definition at line 28 of file CSCDQM_EventProcessor.cc.
References config, and fCloseL1As.
|
inline |
|
private |
Calculate fractional histogram.
result | Histogram to write results to |
set | Histogram of the set |
subset | Histogram of the subset |
Definition at line 90 of file CSCDQM_EventProcessor_updateFracHistos.cc.
References getEMUHisto(), cscdqm::MonitorObject::getTH1Lock(), CommonMethods::lock(), cscdqm::Lock::mutex, and cscdqm::MonitorObject::SetMaximum().
Referenced by updateFractionHistos().
|
private |
Get CSC type and position from crate and dmb identifiers.
crateId | CSC crate identifier |
dmbId | CSC DMB identifier |
cscType | CSC Type identifier to return |
cscPosition | CSC Position identifier to return |
Definition at line 137 of file CSCDQM_EventProcessor.cc.
References CSCDetId::chamber(), config, CSCDetId::endcap(), cscdqm::Configuration::fnGetCSCDetId, cscdqm::Utility::getCSCTypeBin(), cscdqm::Utility::getCSCTypeLabel(), query::result, CSCDetId::ring(), and CSCDetId::station().
Referenced by processCSC(), and processExaminer().
|
private |
Get CSC (Chamber) Level Monitoring Object.
histo | MO identification |
crateID | Chamber Crate identifier |
dmbSlot | Chamber DMB identifier |
me | MO to return |
Definition at line 92 of file CSCDQM_EventProcessor.cc.
References config, cscdqm::Configuration::fnGetCacheCSCHisto, cscdqm::Configuration::fnGetHisto, and NULL.
Referenced by processCSC(), processExaminer(), and updateFractionHistos().
|
private |
Get CSC (Chamber) Level Monitoring Object with additional identifier.
histo | MO identification |
crateID | Chamber Crate identifier |
dmbSlot | Chamber DMB identifier |
adId | Additional identifier, i.e. Layer number, CLCT number, etc. |
me | MO to return |
Definition at line 109 of file CSCDQM_EventProcessor.cc.
References config, cscdqm::Configuration::fnGetCacheCSCHisto, cscdqm::Configuration::fnGetHisto, and NULL.
|
private |
Get DDU Level Monitoring Object.
histo | MO identification |
dduID | DDU identifier |
me | MO to return |
Definition at line 77 of file CSCDQM_EventProcessor.cc.
References config, cscdqm::Configuration::fnGetCacheDDUHisto, cscdqm::Configuration::fnGetHisto, and NULL.
Referenced by processDDU().
|
private |
Get EMU (Top Level) Monitoring Object.
histo | MO identification |
me | MO to return |
Definition at line 49 of file CSCDQM_EventProcessor.cc.
References config, cscdqm::Configuration::fnGetCacheEMUHisto, cscdqm::Configuration::fnGetHisto, and NULL.
Referenced by calcEMUFractionHisto(), processCSC(), processDDU(), processExaminer(), resetEmuEventDisplays(), standbyEfficiencyHistos(), updateEfficiencyHistos(), and writeShifterHistograms().
|
private |
Get FED Level Monitoring Object.
histo | MO identification |
fedID | FED identifier |
me | MO to return |
Definition at line 63 of file CSCDQM_EventProcessor.cc.
References config, cscdqm::Configuration::fnGetCacheFEDHisto, cscdqm::Configuration::fnGetHisto, and NULL.
|
private |
Get Parameter Monitoring Object.
histo | MO identification |
me | MO to return |
Definition at line 122 of file CSCDQM_EventProcessor.cc.
References config, cscdqm::Configuration::fnGetCacheParHisto, cscdqm::Configuration::fnGetHisto, and NULL.
Referenced by updateEfficiencyHistos().
void cscdqm::EventProcessor::init | ( | void | ) |
Initialize EventProcessor: reading out config information.
Definition at line 39 of file CSCDQM_EventProcessor.cc.
Referenced by cscdqm::Dispatcher::init().
unsigned int cscdqm::EventProcessor::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 167 of file CSCDQM_EventProcessor.cc.
References LOG_INFO, cscdqm::Summary::setMaskedHWElements(), and summary.
Referenced by cscdqm::EventProcessorMutex::maskHWElements().
|
private |
Common Local and Global DQM function to be called before processing Event.
Definition at line 27 of file CSCDQM_EventProcessor_processEvent.cc.
References config, EmuEventDisplayWasReset, and cscdqm::Configuration::incNEvents().
|
private |
Process Chamber Data and fill MOs.
data | Chamber data to process |
dduID | DDU identifier |
DMB Found
Unpacking of DMB Header and trailer
Unpacking of Chamber Identification number
Efficiency of the chamber
Unpacking L1A number from DMB header
DMB L1A: 8bits (256)
DDU L1A: 24bits
Calculate difference between L1A numbers from DDU and DMB
LOG_DEBUG << dmbHeaderL1A << " : DMB L1A - DDU L1A = " << dmb_ddu_l1a_diff;
Unpacking BXN number from DMB header
== DMB BXN: 12bits (4096) call bxn12(), bxn() return 7bits value
== DDU BXN: 12bits (4096)
== Use 6-bit BXN
Calculation difference between BXN numbers from DDU and DMB
dmb_ddu_bxn_diff = (int)(dmbHeaderBXN-(int)(BXN&0x7F)); // For older DMB
LOG_DEBUG << dmbHeaderBXN << " : DMB BXN - DDU BXN = " << dmb_ddu_bxn_diff;
if (getCSCHisto(h::CSC_DMB_BXN_VS_DDU_BXN, crateID, dmbID, mo)) mo->Fill((int)(BXN), (int)dmbHeaderBXN);
Unpacking CFEB information from DMB header
mo->SetEntries(config->getNEvents());
if (getCSCHisto(h::CSC_DMB_CFEB_ACTIVE, crateID, dmbID, mo) mo->Fill((dmbTrailer->header_1a>>5)&0x1F); //KK
if (getCSCHisto(h::CSC_DMB_CFEB_ACTIVE_VS_DAV, crateID, dmbID, mo)) mo->Fill(dmbHeader->cfebAvailable(),(int)((dmbTrailer->header_1a>>5)&0x1F)); //KK
if (getCSCHisto(h::CSC_DMB_CFEB_ACTIVE_VS_DAV, crateID, dmbID, mo)) mo->Fill(dmbHeader->cfebAvailable(),dmbHeader->cfebActive()); //KK
DMB input (7 in total) FIFO stuff goes here
DMB input timeout (total 15 bits) goes here
Get FEBs Data Available Info
Fill Hisogram for FEB DAV Efficiency
Fill Hisogram for Different Combinations of FEB DAV Efficiency
ALCT Found
Set number of ALCT-events to third bin
KK
h[hname]->SetBinContent(3, ((float)ALCTEvent/(float)(config->getNEvents()) * 100.0));
KKend
== ALCT2007 L1A: 12bits (4096)
== ALCT2006 L1A: 4bits (16)
== Use 6-bit L1A
int alct_dmb_l1a_diff = (int)((dmbHeader->l1a()&0xF)-alctHeader->L1Acc());
if (getCSCHisto(h::CSC_DMB_L1A_VS_ALCT_L1A, crateID, dmbID, mo)) mo->Fill(alctHeader->L1Acc(),dmbHeader->l1a());
=== ALCT BXN: 12bits (4096)
=== Use 6-bit BXN
if (getCSCHisto(h::CSC_ALCT_BXN_VS_DMB_BXN, crateID, dmbID, mo)) mo->Fill((int)((alctHeader->BXNCount())), (int)(dmbHeader->bxn()));
LOG_DEBUG << "ALCT Trailer Word Count = " << dec << (int)alctTrailer->wordCount();
TODO: Add support for more than 2 ALCTs
int tbin = wireDigisItr->getBeamCrossingTag();
ALCT not found
ALCT and CLCT coinsidence
if (getCSCHisto(h::CSC_TMB_BXN_VS_ALCT_BXN, crateID, dmbID, mo)) mo->Fill((int)((alctHeader->BXNCount())),(int)(tmbHeader->BXNCount()));
CLCT Found
LOG_WARN << "TMB CRC calc: 0x" << std::hex << data.tmbData().TMBCRCcalc() << " trailer: 0x" << std::hex << data.tmbData().tmbTrailer().crc22();
Set number of CLCT-events to forth bin
Use 6-bit L1A
if (getCSCHisto(h::CSC_DMB_L1A_VS_CLCT_L1A, crateID, dmbID, mo)) mo->Fill(tmbHeader->L1ANumber(),dmbHeader->l1a());
if (getCSCHisto(h::CSC_CLCT_BXN_VS_DMB_BXN, crateID, dmbID, mo)) mo->Fill(tmbHeader->BXNCount(),dmbHeader->bxn());
LOG_DEBUG << "TMB Trailer Word Count = " << dec << (int)tmbTrailer->wordCount();
LOG_DEBUG << "CLCT BX = " << clctsDatas[lct].getBX() << " TMB BX = " << tmbHeader->BXNCount() << " 03 = " << (int)(tmbHeader->BXNCount()&0x3);
LOG_DEBUG << "diff = " << clctsDatas[lct].getBX()-(tmbHeader->BXNCount()&0x3);
int pattern_clct = (int)((clctsDatas[lct].getPattern()>>1)&0x3);
pattern_clct = Number of patterns in CLCT
Last (left) bit is bend. Positive bend = 1, negative bend = 0
pattern_clct = Number of patterns in CLCT
Last (left) bit is bend. Positive bend = 1, negative bend = 0
=VB= Fix to get right hafstrip
if (norm < 1.0) norm=1;
CLCT not found
CFEB found
bool DebugCFEB = false;
–————B
int NmbCell, SCA_Nmb_FC;
–————E
–————B
int TrigTimeData[N_CFEBs*16][N_Samples][N_Layers];
memset(TrigTimeData, 0, sizeof(TrigTimeData));
–————E
CFEB Found
-————B
-————E
LOG_DEBUG << "NEvents = " << config->getNEvents();
LOG_DEBUG << "Chamber ID = "<< cscTag << " Crate ID = "<< crateID << " DMB ID = " << dmbID << "nCFEB =" << nCFEB;
=VB= Optimizations for faster histogram object access
LOG_DEBUG << " nSample = " << nSample;
=VB= Optimizations for faster histogram object access
if (mo_CFEB_DMB_L1A_diff)
LOG_DEBUG << " nSample = " << nSample;
for(int nLayer = 1; nLayer <= N_Layers; ++nLayer)
–————B
L1_Pipe_Count = (timeSlice[nCFEB][nSample])->get_L1A_number();
LOG_DEBUG << "SCA BLOCK: Chamber=" << chamberID << " CFEB=" << nCFEB + 1
<<" TRIGTIME="<<TrigTime<<" TimeSlice="<<nSample+1<<" Layer="<<nLayer<<" SCA_BLK="<<SCA_BLK;
if(res<=1) TrigTimeData[nCFEB*16+nStrip][nSample][nLayer-1] = TrigTime;
LOG_DEBUG << "*********"<<" TRIGTIME="<<TrigTime<<" BIT COUNT="<<bit_count;
SCA Block Occupancy Histograms
if (getCSCHisto(h::CSC_CFEBXX_SCA_BLOCK_OCCUPANCY, crateID, dmbID, nCFEB + 1, mo)) mo->Fill(SCA_BLK);
Free SCA Cells
if (getCSCHisto(h::CSC_CFEBXX_FREE_SCA_CELLS, crateID, dmbID, nCFEB + 1, mo))
Number of SCA Blocks Locked by LCTs
if (getCSCHisto(h::CSC_CFEBXX_SCA_BLOCKS_LOCKED_BY_LCTS, crateID, dmbID, nCFEB + 1, mo))
Number of SCA Blocks Locked by LCTxL1
if (getCSCHisto(h::CSC_CFEBXX_SCA_BLOCKS_LOCKED_BY_LCTXL1, crateID, dmbID, nCFEB + 1, mo))
–————E
LOG_DEBUG << "nCFEB " << nCFEB << " nSample " << nSample << " nLayer " << nLayer << " TrigTime " << TrigTime;
LOG_DEBUG << "L1APhase " << L1APhase << " UnpackedTrigTime " << UnpackedTrigTime;
LOG_DEBUG << " nStrip="<< dec << nStrip << " ADC=" << std::hex << ADC;
LOG_DEBUG << " nStrip="<< dec << nStrip << " Pedestal=" << std::hex << Pedestal[nCFEB][nLayer-1][nStrip-1];
if (getCSCHisto(h::CSC_CFEB_OUT_OFF_RANGE_STRIPS_LYXX, crateID, dmbID, nLayer, mo))
if (getCSCHisto(h::CSC_CFEB_ACTIVE_SAMPLES_VS_STRIP_LYXX, crateID, dmbID, nLayer, mo))
if (getCSCHisto(h::CSC_CFEB_ACTIVE_SAMPLES_VS_STRIP_LYXX_PROFILE, crateID, dmbID, nLayer, mo))
if (getCSCHisto(h::CSC_CFEB_ACTIVESTRIPS_LYXX, crateID, dmbID, nLayer, mo))
–————B
LOG_DEBUG << "Layer="<<nLayer<<" Strip="<<nCFEB*16+nStrip<<" Time="<<nSample << " ADC-PEDEST = "<<ADC - Pedestal[nCFEB][nLayer-1][nStrip-1];
–————E
continue;
–————B
if (getCSCHisto(h::CSC_CFEB_PEDESTAL__WITHEMV__SAMPLE_01_LYXX, crateID, dmbID, nLayer, mo))
if (getCSCHisto(h::CSC_CFEB_PEDESTAL__WITHRMS__SAMPLE_01_LYXX, crateID, dmbID, nLayer, mo))
if (getCSCHisto(h::CSC_CFEB_PEDESTALRMS_SAMPLE_01_LYXX, crateID, dmbID, nLayer, mo))
–————E
–————B
Refactored for performance (VR)
StripClusterFinder *ClusterFinder = new StripClusterFinder(N_Layers, N_Samples, N_CFEBs, N_Strips);
LOG_DEBUG << "*** CATHODE PART DEBUG: Layer=" << nLayer <<" Number of Clusters=" << Clus.size() << " ***";
Number of Clusters Histograms
LOG_DEBUG << "Strip: " << Clus[u].ClusterPulseMapHeight[k].channel_+1;
Clusters Charge Histograms
Width of Clusters Histograms
Cluster Duration Histograms
delete ClusterFinder;
--------——E
Fill Hisogram for Different Combinations of FEBs Unpacked vs DAV
Definition at line 83 of file CSCDQM_EventProcessor_processCSC.cc.
References a, abs, CSCCFEBDataWord::adcCounts, CSCCFEBDataWord::adcOverflow, CSCDMBTrailer::alct_empty, CSCDMBTrailer::alct_endtimeout, CSCDMBTrailer::alct_full, CSCDMBTrailer::alct_half, CSCDMBTrailer::alct_timeout, cscdqm::ALCT_TRIGGERS, CSCEventData::alctData(), CSCALCTHeader::ALCTDigis(), CSCALCTHeader::alctFirmwareVersion(), CSCEventData::alctHeader(), CSCTMBHeader::ALCTMatchTime(), CSCTMBHeader::ALCTOnly(), CSCEventData::alctTrailer(), b, BXN, CSCTMBHeader::Bxn0Diff(), CSCDMBHeader::bxn12(), CSCTMBHeader::Bxn1Diff(), CSCTMBHeader::BXNCount(), CSCALCTHeader::BXNCount(), CSCDMBTrailer::cfeb_empty, CSCDMBTrailer::cfeb_endtimeout, CSCDMBTrailer::cfeb_full, CSCDMBTrailer::cfeb_half, CSCDMBTrailer::cfeb_starttimeout, cscdqm::CFEB_TRIGGERS, CSCDMBHeader::cfebActive(), CSCDMBHeader::cfebAvailable(), CSCEventData::cfebData(), CSCDMBHeader::cfebMovlp(), cscd2r::chamberID(), CSCCFEBData::check(), CSCCLCTData::check(), cscdqm::CLCT_TRIGGERS, CSCEventData::clctData(), CSCTMBHeader::CLCTDigis(), CSCTMBHeader::CLCTOnly(), CSCCLCTData::comparatorDigis(), config, cscdqm::Configuration::copyChamberCounterValue(), CSCDMBHeader::crateID(), cscdqm::DMB_EVENTS, CSCDMBTrailer::dmb_l1pipe, cscdqm::DMB_TRIGGERS, CSCDMBHeader::dmbCfebSync(), CSCEventData::dmbHeader(), CSCDMBHeader::dmbID(), CSCEventData::dmbTrailer(), cscdqm::StripClusterFinder::DoAction(), CSCDetId::endcap(), benchmark_cfg::errors, CSCDCCExaminer::errorsForChamber(), cscdqm::EVENT_DISPLAY_PLOT, fCloseL1As, cscdqm::MonitorObject::Fill(), first, cscdqm::Configuration::fnGetCSCDetId, CSCCFEBTimeSlice::get_buffer_count(), CSCCFEBTimeSlice::get_l1pipe_empty(), CSCCFEBTimeSlice::get_l1pipe_full(), CSCCFEBTimeSlice::get_lctpipe_count(), CSCCFEBTimeSlice::get_lctpipe_empty(), CSCCFEBTimeSlice::get_lctpipe_full(), CSCCFEBTimeSlice::get_n_free_sca_blocks(), cscdqm::MonitorObject::GetBinContent(), cscdqm::MonitorObject::GetBinError(), cscdqm::Configuration::getChamberCounterValue(), cscdqm::StripClusterFinder::getClusters(), getCSCFromMap(), getCSCHisto(), cscdqm::Summary::getDetector(), getEMUHisto(), cscdqm::MonitorObject::GetEntries(), cscdqm::MonitorObject::GetMaximumBin(), cscdqm::Configuration::getNEvents(), cscdqm::CSCHistoDef::getPath(), cscdqm::MonitorObject::getTH1(), cscdqm::MonitorObject::getTH1Lock(), cscdqm::Detector::GlobalChamberIndex(), i, cscdqm::Configuration::incNUnpackedCSC(), cscdqm::Summary::isChamberStandby(), j, gen::k, CSCDMBHeader::l1a(), CSCCFEBSCAControllerWord::l1a_phase, CSCALCTHeader::L1Acc(), CSCTMBHeader::L1ANumber(), L1ANumber, LOG_ERROR, LOG_INFO, LOG_WARN, n, CSCDMBHeader::nalct(), CSCEventData::nalct(), CSCDMBHeader::nclct(), CSCEventData::nclct(), NULL, listBenchmarks::pattern, DetId::rawId(), CSCDetId::ring(), CSCCFEBSCAControllerWord::sca_blk, CSCCFEBTimeSlice::scaControllerWord(), edm::second(), cscdqm::MonitorObject::SetAxisRange(), cscdqm::MonitorObject::SetBinContent(), cscdqm::MonitorObject::SetBinError(), cscdqm::Configuration::setChamberCounterValue(), setEmuEventDisplayBit(), cscdqm::MonitorObject::SetEntries(), cscdqm::MonitorObject::SetNormFactor(), CSCDetId::station(), summary, cscdqm::timeSample(), cscdqm::timeSlice(), CSCDMBTrailer::tmb_empty, CSCDMBTrailer::tmb_endtimeout, CSCDMBTrailer::tmb_full, CSCDMBTrailer::tmb_half, CSCDMBTrailer::tmb_timeout, CSCEventData::tmbData(), CSCTMBData::tmbHeader(), CSCTMBHeader::TMBMatch(), CSCTMBData::tmbTrailer(), CSCCFEBSCAControllerWord::trig_time, CSCAnodeData::wireDigis(), CSCTMBTrailer::wordCount(), and CSCALCTTrailer::wordCount().
Referenced by processDDU().
|
private |
Process DDU output and fill MOs.
dduData | DDU object to process |
LOG4CPLUS_WARN(logger_,eTag << "Skipped because of DDU Trailer check failed.");
Only 8bits are significant; format of DDU id is Dxx
DDU word counter
LOG4CPLUS_DEBUG(logger_,dduTag << " Trailer Word (64 bits) Count = " << std::dec << trl_word_count);
if (fCloseL1As) LOG4CPLUS_DEBUG(logger_,eTag << " Close L1As bit is set");
DDU Header bunch crossing number (BXN)
LOG4CPLUS_WARN(logger_,dduTag << " DDU Header BXN Number = " << std::dec << BXN);
L1A number from DDU Header
LOG4CPLUS_DEBUG(logger_,dduTag << " Header L1A Number = " << std::dec << L1ANumber);
Handle 24-bit L1A roll-over maximum value case
== Occupancy and number of DMB (CSC) with Data available (DAV) in header of particular DDU
== Number of active DMB (CSC) in header of particular DDU
LOG4CPLUS_DEBUG(logger_,dduTag << " Header DMB DAV = 0x" << std::hex << dmb_dav_header);
LOG4CPLUS_DEBUG(logger_,dduTag << " Header Number of Active DMB = " << std::dec << dmb_active_header);
Check binary Error status at DDU Trailer
LOG4CPLUS_DEBUG(logger_,dduTag << " Trailer Error Status = 0x" << std::hex << trl_errorstat);
Unpack all found CSC
First event per DDU
Definition at line 27 of file CSCDQM_EventProcessor_processDDU.cc.
References BXN, CSCDDUHeader::bxnum(), CSCDDUTrailer::check(), config, CSCDDUEventData::cscData(), CSCDDUHeader::dmb_dav(), CSCDDUTrailer::dmb_full(), CSCDDUTrailer::dmb_warn(), CSCDDUTrailer::errorstat(), fCloseL1As, cscdqm::MonitorObject::Fill(), fNotFirstEvent, cscdqm::MonitorObject::GetBinContent(), getDDUHisto(), getEMUHisto(), cscdqm::Configuration::getNEvents(), cscdqm::DDUHistoDef::getPath(), CSCDDUEventData::header(), i, L1ANumber, L1ANumbers, CSCDDUHeader::live_cscs(), CSCDDUHeader::lvl1num(), CSCDDUHeader::ncsc(), processCSC(), CSCDDUTrailer::reserved(), cscdqm::MonitorObject::SetBinContent(), cscdqm::MonitorObject::SetEntries(), CSCDDUEventData::sizeInWords(), CSCDDUHeader::source_id(), CSCDDUEventData::trailer(), and CSCDDUTrailer::wordcount().
|
private |
|
private |
Fill monitor elements with CSCDCCFormatStatusDigi information.
Check and fill CSC Payload information
Update counters
Get FEBs Data Available Info
Increment total number of CFEBs, ALCTs, TMBs
Fill Histogram for FEB DAV Efficiency
Fill Histogram for Different Combinations of FEB DAV Efficiency
Check and fill CSC Data Flow Problems
Check and fill CSC Format Errors
Definition at line 27 of file CSCDQM_EventProcessor_processExaminer.cc.
References cscdqm::BAD_EVENTS, cscd2r::chamberID(), cntALCTs, cntCFEBs, cntDMBs, cntTMBs, config, cscdqm::Configuration::copyChamberCounterValue(), cscdqm::DMB_EVENTS, cscdqm::DMB_TRIGGERS, cscdqm::MonitorObject::Fill(), cscdqm::Configuration::fnGetCSCDetId, cscdqm::MonitorObject::GetBinContent(), cscdqm::Configuration::getChamberCounterValue(), CSCDCCFormatStatusDigi::getCSCErrors(), getCSCFromMap(), getCSCHisto(), CSCDCCFormatStatusDigi::getCSCPayload(), CSCDCCFormatStatusDigi::getCSCStatus(), CSCDCCFormatStatusDigi::getDDUErrors(), CSCDCCFormatStatusDigi::getDDUSummaryErrors(), getEMUHisto(), CSCDCCFormatStatusDigi::getListOfDDUs(), i, cscdqm::Configuration::incChamberCounter(), cscdqm::Configuration::incNEventsBad(), CSCDCCFormatStatusDigi::nextCSCWithError(), CSCDCCFormatStatusDigi::nextCSCWithPayload(), CSCDCCFormatStatusDigi::nextCSCWithStatus(), CSCDCCExaminer::nSTATUSES, cscdqm::MonitorObject::SetBinContent(), cscdqm::MonitorObject::SetEntries(), and cscdqm::MonitorObject::SetMaximum().
|
private |
Reset Emu level EventDisplay histograms once per event.
Definition at line 56 of file CSCDQM_EventProcessor_processCSC.cc.
References EmuEventDisplayWasReset, getEMUHisto(), and cscdqm::MonitorObject::getTH1Lock().
Referenced by setEmuEventDisplayBit().
|
private |
Set a single bit in the 3D Histogram (aka EMU level event display). Checks if mo and x != null.
eventNumber | number of event |
mo | Histogram |
x | X bin number |
y | Y bin number |
bit | bit number to set |
Definition at line 43 of file CSCDQM_EventProcessor_processCSC.cc.
References cscdqm::MonitorObject::GetBinContent(), resetEmuEventDisplays(), and cscdqm::MonitorObject::SetBinContent().
Referenced by processCSC().
void cscdqm::EventProcessor::standbyEfficiencyHistos | ( | HWStandbyType & | standby | ) |
apply standby flags/parameters
standby | standby flags |
Definition at line 366 of file CSCDQM_EventProcessor_updateEffHistos.cc.
References cscdqm::AddressMask::cfeb, cscdqm::AddressMask::chamber, getEMUHisto(), cscdqm::MonitorObject::getTH1Lock(), cscdqm::AddressMask::hv, cscdqm::AddressMask::layer, CommonMethods::lock(), cscdqm::Address::mask, cscdqm::HWStandbyType::MeM, cscdqm::HWStandbyType::MeP, cscdqm::Lock::mutex, cscdqm::AddressMask::ring, cscdqm::Summary::SetValue(), cscdqm::AddressMask::side, cscdqm::Address::side, cscdqm::STANDBY, cscdqm::AddressMask::station, summary, tmp, cscdqm::WAS_ON, and cscdqm::Summary::WriteChamberState().
Referenced by cscdqm::EventProcessorMutex::processStandby().
void cscdqm::EventProcessor::updateEfficiencyHistos | ( | ) |
Update Efficiency MOs.
Get CSC Reporting reference histogram
If reference for CSC_Reporting is defined - use it Else - do it flat way
Write summary information
Looping via addresses (scope: side->station->ring) and filling in HW efficiencies
Definition at line 26 of file CSCDQM_EventProcessor_updateEffHistos.cc.
References cscdqm::AddressMask::cfeb, cscdqm::CFEB_BWORDS, cscdqm::AddressMask::chamber, config, cscdqm::FIFOFULL_ERR, cscdqm::MonitorObject::Fill(), cscdqm::FORMAT_ERR, cscdqm::Summary::getDetector(), cscdqm::Summary::GetEfficiencyHW(), getEMUHisto(), cscdqm::Configuration::getNEvents(), getParHisto(), cscdqm::MonitorObject::getRefRootObject(), cscdqm::MonitorObject::getTH1(), cscdqm::MonitorObject::getTH1Lock(), cscdqm::AddressMask::hv, cscdqm::INPUTTO_ERR, cscdqm::L1SYNC_ERR, cscdqm::AddressMask::layer, CommonMethods::lock(), cscdqm::Address::mask, cscdqm::Lock::mutex, N_SIDES, N_STATIONS, cscdqm::NODATA_ALCT, cscdqm::NODATA_CFEB, cscdqm::NODATA_CLCT, cscdqm::Detector::NumberOfChambers(), cscdqm::Detector::NumberOfRings(), Parameters::parameters, cscdqm::Summary::ReadErrorChambers(), cscdqm::Summary::ReadReportingChambers(), cscdqm::Summary::ReadReportingChambersRef(), cscdqm::AddressMask::ring, cscdqm::Address::ring, cscdqm::AddressMask::side, cscdqm::Address::side, cscdqm::AddressMask::station, cscdqm::Address::station, summary, tmp, cscdqm::Summary::Write(), cscdqm::Summary::WriteMap(), and writeShifterHistograms().
Referenced by cscdqm::EventProcessorMutex::updateFractionAndEfficiencyHistos().
void cscdqm::EventProcessor::updateFractionHistos | ( | ) |
Update Fractional MOs.
Definition at line 26 of file CSCDQM_EventProcessor_updateFracHistos.cc.
References calcEMUFractionHisto(), config, cscdqm::DMB_EVENTS, cscdqm::Configuration::fnNextBookedCSC, cscdqm::Configuration::getChamberCounterValue(), getCSCHisto(), cscdqm::MonitorObject::getTH1(), CommonMethods::lock(), and cscdqm::MonitorObject::SetEntries().
Referenced by cscdqm::EventProcessorMutex::updateFractionAndEfficiencyHistos().
void cscdqm::EventProcessor::writeShifterHistograms | ( | ) |
Definition at line 247 of file CSCDQM_EventProcessor_updateEffHistos.cc.
References config, getEMUHisto(), cscdqm::MonitorObject::getTH1Lock(), HWSTATUSERRORBITS, CommonMethods::lock(), cscdqm::Lock::mutex, summary, tmp, and cscdqm::Summary::WriteChamberState().
Referenced by cscdqm::EventProcessorMutex::processStandby(), and updateEfficiencyHistos().
|
private |
Definition at line 165 of file CSCDQM_EventProcessor.h.
Referenced by processCSC(), and processDDU().
|
private |
Total Number of CFEBs per event from DMB DAV.
Definition at line 168 of file CSCDQM_EventProcessor.h.
Referenced by processExaminer().
|
private |
Total Number of DMBs per event from DDU Header DAV.
Definition at line 167 of file CSCDQM_EventProcessor.h.
Referenced by processExaminer().
|
private |
Definition at line 166 of file CSCDQM_EventProcessor.h.
Referenced by processExaminer().
|
private |
Total Number of ALCTs per event from DMB DAV.
Definition at line 169 of file CSCDQM_EventProcessor.h.
Referenced by processExaminer().
|
private |
Pointer to Global Configuration
Definition at line 157 of file CSCDQM_EventProcessor.h.
Referenced by EventProcessor(), getCSCFromMap(), getCSCHisto(), getDDUHisto(), getEMUHisto(), getFEDHisto(), getParHisto(), preProcessEvent(), processCSC(), processDDU(), processExaminer(), updateEfficiencyHistos(), updateFractionHistos(), and writeShifterHistograms().
|
private |
Definition at line 174 of file CSCDQM_EventProcessor.h.
Referenced by preProcessEvent(), and resetEmuEventDisplays().
|
private |
Total Number of TMBs per event from DMB DAV.
Definition at line 173 of file CSCDQM_EventProcessor.h.
Referenced by EventProcessor(), processCSC(), and processDDU().
|
private |
Definition at line 163 of file CSCDQM_EventProcessor.h.
Referenced by processDDU().
|
private |
Definition at line 164 of file CSCDQM_EventProcessor.h.
Referenced by processCSC(), and processDDU().
|
private |
Definition at line 162 of file CSCDQM_EventProcessor.h.
Referenced by processDDU().
|
private |
Detector efficiency manipulation object
Definition at line 160 of file CSCDQM_EventProcessor.h.
Referenced by maskHWElements(), processCSC(), standbyEfficiencyHistos(), updateEfficiencyHistos(), and writeShifterHistograms().