|
|
#include <L1GtHwValidation.h>
|
void | analyze (const edm::Event &, const edm::EventSetup &) override |
|
virtual void | compareDaqRecord (const edm::Event &, const edm::EventSetup &) |
| L1 GT DAQ record comparison. More...
|
|
virtual void | compareEvmRecord (const edm::Event &, const edm::EventSetup &) |
| L1 GT EVM record comparison. More...
|
|
virtual void | compareFDL (const edm::Event &, const edm::EventSetup &, const L1GtFdlWord &, const L1GtFdlWord &, const int) |
| compare the FDL board More...
|
|
virtual void | compareGt_Gct (const edm::Event &, const edm::EventSetup &) |
|
virtual void | compareGTFE (const edm::Event &, const edm::EventSetup &, const L1GtfeWord &, const L1GtfeWord &, const int) |
| compare the GTFE board More...
|
|
virtual void | comparePSB (const edm::Event &, const edm::EventSetup &, const L1GtPsbWord &, const L1GtPsbWord &) |
| compare the PSB board More...
|
|
virtual void | compareTCS (const edm::Event &, const edm::EventSetup &, const L1TcsWord &, const L1TcsWord &) |
| compare the TCS board More...
|
|
bool | excludedAlgo (const int &) const |
| exclusion status for algorithm with bit i More...
|
|
void | excludedAlgoList () |
| exclude from comparison some bits with known disagreement - bit list More...
|
|
bool | matchCondCategory (const L1GtConditionCategory &, const L1GtConditionCategory &) |
| book all histograms for the module More...
|
|
bool | matchCondL1GtObject (const std::vector< L1GtObject > &, const L1GtObject &) |
|
bool | matchCondType (const L1GtConditionType &, const L1GtConditionType &) |
|
Description: compare hardware records with emulator records for L1 GT records.
Implementation: Get the L1 GT records from data and from emulator.
Compare every board between data and emulator.
- Author
- : Vasile Mihai Ghete - HEPHY Vienna
$Date$
Description: compare hardware records with emulator records for L1 GT records.
Implementation: Get the L1 GT records from data and from emulator.
Compare every board between data and emulator.
- Author
- : Vasile Mihai Ghete - HEPHY Vienna
Definition at line 55 of file L1GtHwValidation.h.
◆ L1GtHwValidation()
Definition at line 52 of file L1GtHwValidation.cc.
68 paramSet.
getParameter<std::vector<edm::ParameterSet> >(
"ExcludeCondCategTypeObject")),
95 if (!(itExclud->getParameter<
std::string>(
"ExcludedCondCategory")).empty()) {
103 if (!(itExclud->getParameter<
std::string>(
"ExcludedCondType")).empty()) {
111 if (!(itExclud->getParameter<
std::string>(
"ExcludedL1GtObject")).empty()) {
References CondNull, edm::ParameterSet::getParameter(), l1GtConditionCategoryStringToEnum(), l1GtConditionTypeStringToEnum(), l1GtObjectStringToEnum(), LogDebug, m_excludeCondCategTypeObject, m_excludedCondCategory, m_excludedCondType, m_excludedL1GtObject, m_l1GctDataInputTag, m_l1GtDataDaqInputTag, m_l1GtDataDaqInputToken_, m_l1GtDataEvmInputTag, m_l1GtDataEvmInputToken_, m_l1GtEmulDaqInputTag, m_l1GtEmulDaqInputToken_, m_l1GtEmulEvmInputTag, m_l1GtEmulEvmInputToken_, ObjNull, AlCaHLTBitMon_QueryRunRegistry::string, and TypeNull.
◆ ~L1GtHwValidation()
L1GtHwValidation::~L1GtHwValidation |
( |
| ) |
|
|
override |
◆ analyze()
◆ bookHistograms()
Implements DQMEDAnalyzer.
Definition at line 146 of file L1GtHwValidation.cc.
169 const char* histName;
171 hName = recString +
"gtfeDataEmul";
172 histName = hName.c_str();
190 int hIndex = (iIndex + 16) % 16;
192 std::stringstream
ss;
194 ss << std::uppercase << std::hex << hIndex;
204 hName = recString +
"FdlDataEmul_" +
str;
205 histName = hName.c_str();
207 std::string hTitle =
"FDL data vs emul mismatch for BxInEvent = " +
str;
229 hName = recString +
"Data_AlgoDecision_" +
str;
230 histName = hName.c_str();
232 hTitle =
"Data: algorithm decision word for BxInEvent = " +
str;
236 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
239 hName = recString +
"Emul_AlgoDecision_" +
str;
240 histName = hName.c_str();
242 hTitle =
"Emul: algorithm decision word for BxInEvent = " +
str;
246 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
250 hName = recString +
"Data_AlgoDecision_Prescaled_" +
str;
251 histName = hName.c_str();
253 hTitle =
"Data: prescaled algorithms: algorithm decision for BxInEvent = " +
str;
257 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
260 hName = recString +
"Emul_AlgoDecision_Prescaled_" +
str;
261 histName = hName.c_str();
263 hTitle =
"Emul: prescaled algorithms: algorithm decision for BxInEvent = " +
str;
267 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
271 hName = recString +
"Data_AlgoDecision_Unprescaled_" +
str;
272 histName = hName.c_str();
274 hTitle =
"Data: unprescaled algorithms: algorithm decision for BxInEvent = " +
str;
278 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
281 hName = recString +
"Emul_AlgoDecision_Unprescaled_" +
str;
282 histName = hName.c_str();
284 hTitle =
"Emul: unprescaled algorithms: algorithm decision for BxInEvent = " +
str;
288 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
292 hName = recString +
"Data_AlgoDecisionAfterMask_" +
str;
293 histName = hName.c_str();
295 hTitle =
"Data, physics partition: algorithm decision word after mask for BxInEvent = " +
str;
299 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
302 hName = recString +
"Emul_AlgoDecisionAfterMask_" +
str;
303 histName = hName.c_str();
305 hTitle =
"Emul, physics partition: algorithm decision word after mask for BxInEvent = " +
str;
309 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
312 hName = recString +
"DataEmul_AlgoDecision_" +
str;
313 histName = hName.c_str();
315 hTitle =
"Data vs emul: non-matching algorithm decision word for BxInEvent = " +
str;
319 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
322 hName = recString +
"DataEmul_AlgoDecision_Prescaled_" +
str;
323 histName = hName.c_str();
325 hTitle =
"Data vs emul: prescaled algorithms with non-matching decision for BxInEvent = " +
str;
329 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
332 hName = recString +
"DataEmul_AlgoDecision_Unprescaled_" +
str;
333 histName = hName.c_str();
335 hTitle =
"Data vs emul: unprescaled algorithms with non-matching decision for BxInEvent = " +
str;
339 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
342 hName = recString +
"DataEmul_AlgoDecision_Unprescaled_Allowed_" +
str;
343 histName = hName.c_str();
345 hTitle =
"Data vs emul: unprescaled algorithms not excluded with non-matching decision for BxInEvent = " +
str;
349 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
352 hName = recString +
"Data_AlgoDecision_NoMatch_" +
str;
353 histName = hName.c_str();
355 hTitle =
"Data: algorithm decision for non-matching cases for BxInEvent = " +
str;
359 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
362 hName = recString +
"Emul_AlgoDecision_NoMatch_" +
str;
363 histName = hName.c_str();
365 hTitle =
"Emul: algorithm decision for non-matching cases for BxInEvent = " +
str;
369 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
372 hName = recString +
"Data_AlgoDecision_Prescaled_NoMatch_" +
str;
373 histName = hName.c_str();
375 hTitle =
"Data: prescaled algorithms: non-matching algorithm decision for BxInEvent = " +
str;
379 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
382 hName = recString +
"Emul_AlgoDecision_Prescaled_NoMatch_" +
str;
383 histName = hName.c_str();
385 hTitle =
"Emul: prescaled algorithms: non-matching algorithm decision for BxInEvent = " +
str;
389 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
392 hName = recString +
"Data_AlgoDecision_Unprescaled_NoMatch_" +
str;
393 histName = hName.c_str();
395 hTitle =
"Data: unprescaled algorithms: non-matching algorithm decision for BxInEvent = " +
str;
399 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
402 hName = recString +
"Emul_AlgoDecision_Unprescaled_NoMatch_" +
str;
403 histName = hName.c_str();
405 hTitle =
"Emul: unprescaled algorithms: non-matching algorithm decision for BxInEvent = " +
str;
409 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
412 hName = recString +
"Data_AlgoDecisionMask_NoMatch_" +
str;
413 histName = hName.c_str();
415 hTitle =
"Data: algorithm decision for non-matching cases after mask for BxInEvent = " +
str;
419 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
422 hName = recString +
"Emul_AlgoDecisionMask_NoMatch_" +
str;
423 histName = hName.c_str();
425 hTitle =
"Emul: algorithm decision for non-matching cases after mask for BxInEvent = " +
str;
429 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
432 hName = recString +
"Data_AlgoDecisionMask_Prescaled_NoMatch_" +
str;
433 histName = hName.c_str();
435 hTitle =
"Data: prescaled algorithms: non-matching algorithm decision after mask for BxInEvent = " +
str;
439 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
442 hName = recString +
"Emul_AlgoDecision_PrescaledMask_NoMatch_" +
str;
443 histName = hName.c_str();
445 hTitle =
"Emul: prescaled algorithms: non-matching algorithm decision after mask for BxInEvent = " +
str;
449 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
452 hName = recString +
"Data_AlgoDecision_UnprescaledMask_NoMatch_" +
str;
453 histName = hName.c_str();
455 hTitle =
"Data: unprescaled algorithms: non-matching algorithm decision after mask for BxInEvent = " +
str;
459 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
462 hName = recString +
"Emul_AlgoDecision_UnprescaledMask_NoMatch_" +
str;
463 histName = hName.c_str();
465 hTitle =
"Emul: unprescaled algorithms: non-matching algorithm decision after mask for BxInEvent = " +
str;
469 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
472 hName = recString +
"DataEmul_AlgoDecisionAfterMask_" +
str;
473 histName = hName.c_str();
476 "Data vs emul, physics partition: non-matching algorithm decision word after mask for BxInEvent = " +
str;
480 ibooker.
book1D(histName,
histTitle, numberAlgoTriggers, 0., numberAlgoTriggers);
484 hName = recString +
"Data_TechDecision_" +
str;
485 histName = hName.c_str();
487 hTitle =
"Data technical trigger decision word for BxInEvent = " +
str;
491 ibooker.
book1D(histName,
histTitle, numberTechTriggers, 0., numberTechTriggers);
494 hName = recString +
"Emul_TechDecision_" +
str;
495 histName = hName.c_str();
497 hTitle =
"Emul: technical trigger decision word for BxInEvent = " +
str;
501 ibooker.
book1D(histName,
histTitle, numberTechTriggers, 0., numberTechTriggers);
504 hName = recString +
"Data_TechDecisionAfterMask_" +
str;
505 histName = hName.c_str();
507 hTitle =
"Data technical trigger decision word after mask for BxInEvent = " +
str;
511 ibooker.
book1D(histName,
histTitle, numberTechTriggers, 0., numberTechTriggers);
514 hName = recString +
"Emul_TechDecisionAfterMask_" +
str;
515 histName = hName.c_str();
517 hTitle =
"Emul: technical trigger decision word after mask for BxInEvent = " +
str;
521 ibooker.
book1D(histName,
histTitle, numberTechTriggers, 0., numberTechTriggers);
524 hName = recString +
"DataEmul_TechDecision_" +
str;
525 histName = hName.c_str();
527 hTitle =
"Data vs emul: non-matching technical trigger decision word for BxInEvent = " +
str;
531 ibooker.
book1D(histName,
histTitle, numberTechTriggers, 0., numberTechTriggers);
533 hName = recString +
"DataEmul_TechDecisionAfterMask_" +
str;
534 histName = hName.c_str();
536 hTitle =
"Data vs emul: non-matching technical trigger decision word after mask for BxInEvent = " +
str;
540 ibooker.
book1D(histName,
histTitle, numberTechTriggers, 0., numberTechTriggers);
550 hName = recString +
"FdlDataEmul_Err";
551 histName = hName.c_str();
554 ibooker.
book1D(histName,
"FDL data vs emul mismatch for non-matching BxInEvent in FDL payload", 13, 0., 13.);
569 hName = recString +
"FdlDataAlgoDecision_Err";
570 histName = hName.c_str();
573 "Data: algorithm trigger decision word, non-matching BxInEvent",
579 hName = recString +
"Emul_AlgoDecision_Err";
580 histName = hName.c_str();
583 "Emul: algorithm trigger decision word, non-matching BxInEvent",
588 hName = recString +
"DataEmul_AlgoDecision_Err";
589 histName = hName.c_str();
593 "Data vs emul: algorithm trigger decision word, non-matching BxInEvent",
599 hName = recString +
"Data_TechDecision_Err";
600 histName = hName.c_str();
603 "Data: technical trigger decision word, non-matching BxInEvent",
608 hName = recString +
"Emul_TechDecision_Err";
609 histName = hName.c_str();
612 "Emul: technical trigger decision word, non-matching BxInEvent",
617 hName = recString +
"DataEmul_TechDecision_Err";
618 histName = hName.c_str();
622 "Data vs emul: technical trigger decision word, non-matching BxInEvent",
632 "Algorithms excluded from data versus emulator agreement flag",
639 m_gtErrorFlag = ibooker.
book1D(
"GTErrorFlag",
"L1 GT error flag for data versus emulator comparison", 5, 0., 5);
674 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
675 const int algBitNumber = (itAlgo->second).algoBitNumber();
677 std::stringstream
ss;
679 ss << std::uppercase << algBitNumber;
682 const std::string& aName = algBitString +
" " + itAlgo->first;
683 const char* algName = aName.c_str();
686 for (
int iBxInEvent = 0; iBxInEvent <
TotalBxInEvent; ++iBxInEvent) {
689 int hIndex = (iIndex + 16) % 16;
691 std::stringstream
ss;
693 ss << std::uppercase << std::hex << hIndex;
743 if (algBitNumber == *itAlgo) {
References dqm::implementation::IBooker::book1D(), excludedAlgoList(), edm::EventSetup::get(), get, L1GtTriggerMenu::gtAlgorithmMap(), L1GtPrescaleFactors::gtPrescaleFactors(), L1GtTriggerMask::gtTriggerMask(), L1GtTriggerMenu::gtTriggerMenuImplementation(), B2GTnPMonitor_cfi::histTitle, LogDebug, m_dirName, m_excludedAlgoList, m_excludedAlgorithmsAgreement, m_fdlDataAlgoDecision, m_fdlDataAlgoDecision_Err, m_fdlDataAlgoDecision_NoMatch, m_fdlDataAlgoDecisionMask, m_fdlDataAlgoDecisionMask_NoMatch, m_fdlDataAlgoDecisionPrescaled, m_fdlDataAlgoDecisionPrescaled_NoMatch, m_fdlDataAlgoDecisionPrescaledMask_NoMatch, m_fdlDataAlgoDecisionUnprescaled, m_fdlDataAlgoDecisionUnprescaled_NoMatch, m_fdlDataAlgoDecisionUnprescaledMask_NoMatch, m_fdlDataEmul, m_fdlDataEmul_Err, m_fdlDataEmulAlgoDecision, m_fdlDataEmulAlgoDecision_Err, m_fdlDataEmulAlgoDecisionMask, m_fdlDataEmulAlgoDecisionPrescaled, m_fdlDataEmulAlgoDecisionUnprescaled, m_fdlDataEmulAlgoDecisionUnprescaledAllowed, m_fdlDataEmulTechDecision, m_fdlDataEmulTechDecision_Err, m_fdlDataEmulTechDecisionMask, m_fdlDataTechDecision, m_fdlDataTechDecision_Err, m_fdlDataTechDecisionMask, m_fdlEmulAlgoDecision, m_fdlEmulAlgoDecision_Err, m_fdlEmulAlgoDecision_NoMatch, m_fdlEmulAlgoDecisionMask, m_fdlEmulAlgoDecisionMask_NoMatch, m_fdlEmulAlgoDecisionPrescaled, m_fdlEmulAlgoDecisionPrescaled_NoMatch, m_fdlEmulAlgoDecisionPrescaledMask_NoMatch, m_fdlEmulAlgoDecisionUnprescaled, m_fdlEmulAlgoDecisionUnprescaled_NoMatch, m_fdlEmulAlgoDecisionUnprescaledMask_NoMatch, m_fdlEmulTechDecision, m_fdlEmulTechDecision_Err, m_fdlEmulTechDecisionMask, m_gtErrorFlag, m_gtfeDataEmul, m_l1GtMenu, m_l1GtMenuCacheID, m_l1GtPfAlgo, m_l1GtPfAlgoCacheID, m_l1GtPfTech, m_l1GtPfTechCacheID, m_l1GtTmAlgo, m_l1GtTmAlgoCacheID, m_l1GtTmTech, m_l1GtTmTechCacheID, m_nrEvRun, m_prescaleFactorsAlgoTrig, m_prescaleFactorsTechTrig, m_triggerMaskAlgoTrig, m_triggerMaskTechTrig, NumberOfGtRecords, L1GlobalTriggerReadoutSetup::NumberPhysTriggers, L1GlobalTriggerReadoutSetup::NumberTechnicalTriggers, edm::ESHandle< T >::product(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), contentValuesCheck::ss, str, AlCaHLTBitMon_QueryRunRegistry::string, and TotalBxInEvent.
◆ compareDaqRecord()
L1 GT DAQ record comparison.
Definition at line 1803 of file L1GtHwValidation.cc.
1818 bool validData =
false;
1820 if (!gtReadoutRecordData.
isValid()) {
1830 bool validEmul =
false;
1832 if (!gtReadoutRecordEmul.
isValid()) {
1838 if ((!validData) || (!validEmul)) {
1839 edm::LogWarning(
"L1GtHwValidation") <<
"\n No valid product found: DAQ L1GlobalTriggerReadoutRecord"
1840 <<
"\n Data validity [1 = true; 0 = false]: " << validData
1841 <<
"\n Emulator validity: [1 = true; 0 = false]: " << validEmul
1842 <<
"\n DAQ histograms will not be filled.\n"
1855 const std::vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->
gtFdlVector();
1856 const std::vector<L1GtFdlWord>& gtFdlVectorEmul = gtReadoutRecordEmul->
gtFdlVector();
1858 int gtFdlVectorDataSize = gtFdlVectorData.size();
1859 int gtFdlVectorEmulSize = gtFdlVectorEmul.size();
1861 if (gtFdlVectorDataSize == gtFdlVectorEmulSize) {
1862 m_myCoutStream <<
"\nData and emulated FDL vector size: identical.\n";
1865 for (
int iFdl = 0; iFdl < gtFdlVectorDataSize; ++iFdl) {
1866 const L1GtFdlWord& fdlBlockData = gtFdlVectorData[iFdl];
1867 const L1GtFdlWord& fdlBlockEmul = gtFdlVectorEmul[iFdl];
1872 m_myCoutStream <<
"\nData and emulated FDL vector size: different.\n";
1873 m_myCoutStream <<
" Data: size = " << gtFdlVectorDataSize << std::endl;
1874 m_myCoutStream <<
" Emul: size = " << gtFdlVectorEmulSize << std::endl;
1883 const std::vector<L1GtPsbWord>& gtPsbVectorData = gtReadoutRecordData->
gtPsbVector();
1884 const std::vector<L1GtPsbWord>& gtPsbVectorEmul = gtReadoutRecordEmul->
gtPsbVector();
1886 int gtPsbVectorDataSize = gtPsbVectorData.size();
1887 int gtPsbVectorEmulSize = gtPsbVectorEmul.size();
1889 if (gtPsbVectorDataSize == gtPsbVectorEmulSize) {
1890 m_myCoutStream <<
"\nData and emulated PSB vector size: identical.\n";
1893 m_myCoutStream <<
"\nData and emulated PSB vector size: different.\n";
1894 m_myCoutStream <<
" Data: size = " << gtPsbVectorDataSize << std::endl;
1895 m_myCoutStream <<
" Emul: size = " << gtPsbVectorEmulSize << std::endl;
1901 for (
int iPsb = 0; iPsb < gtPsbVectorDataSize; ++iPsb) {
1902 const L1GtPsbWord& psbBlockData = gtPsbVectorData[iPsb];
1903 const uint16_t boardIdData = psbBlockData.
boardId();
1904 const int bxInEventData = psbBlockData.
bxInEvent();
1909 bool foundPSB =
false;
1911 for (
int iPsbF = 0; iPsbF < gtPsbVectorEmulSize; ++iPsbF) {
1912 const L1GtPsbWord& psbBlockEmul = gtPsbVectorEmul[iPsbF];
1913 const uint16_t boardIdEmul = psbBlockEmul.
boardId();
1914 const int bxInEventEmul = psbBlockEmul.
bxInEvent();
1916 if ((boardIdEmul == boardIdData) && (bxInEventData == bxInEventEmul)) {
1925 m_myCoutStream <<
"\nNo emulated PSB with boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0')
1926 << boardIdData << std::setfill(
' ') <<
std::dec <<
" and BxInEvent = " << bxInEventData
References L1GtPsbWord::boardId(), L1GtPsbWord::bxInEvent(), compareFDL(), compareGTFE(), comparePSB(), TauDecayModes::dec, dqm::impl::MonitorElement::Fill(), L1GlobalTriggerReadoutRecord::gtFdlVector(), L1GlobalTriggerReadoutRecord::gtfeWord(), L1GlobalTriggerReadoutRecord::gtPsbVector(), iEvent, edm::HandleBase::isValid(), LogDebug, m_agree, m_dataOnly, m_dataOnlyMask, m_emulOnly, m_emulOnlyMask, m_gtErrorFlag, m_l1GtDataDaqInputToken_, m_l1GtEmulDaqInputToken_, m_myCoutStream, m_nrDataEventError, and m_nrEmulEventError.
Referenced by analyze().
◆ compareEvmRecord()
L1 GT EVM record comparison.
Definition at line 1952 of file L1GtHwValidation.cc.
1960 bool validData =
false;
1962 if (!gtReadoutRecordData.
isValid()) {
1972 bool validEmul =
false;
1974 if (!gtReadoutRecordEmul.
isValid()) {
1980 if ((!validData) || (!validEmul)) {
1981 edm::LogWarning(
"L1GtHwValidation") <<
"\n No valid product found: EVM L1GlobalTriggerEvmReadoutRecord"
1982 <<
"\n Data validity [1 = true; 0 = false]: " << validData
1983 <<
"\n Emulator validity: [1 = true; 0 = false]: " << validEmul
1984 <<
"\n EVM histograms will not be filled.\n"
1997 const std::vector<L1GtFdlWord>& gtFdlVectorData = gtReadoutRecordData->
gtFdlVector();
1998 const std::vector<L1GtFdlWord>& gtFdlVectorEmul = gtReadoutRecordEmul->
gtFdlVector();
2000 int gtFdlVectorDataSize = gtFdlVectorData.size();
2001 int gtFdlVectorEmulSize = gtFdlVectorEmul.size();
2003 if (gtFdlVectorDataSize == gtFdlVectorEmulSize) {
2004 m_myCoutStream <<
"\nData and emulated FDL vector size: identical.\n";
2007 for (
int iFdl = 0; iFdl < gtFdlVectorDataSize; ++iFdl) {
2008 const L1GtFdlWord& fdlBlockData = gtFdlVectorData[iFdl];
2009 const L1GtFdlWord& fdlBlockEmul = gtFdlVectorEmul[iFdl];
2014 m_myCoutStream <<
"\nData and emulated FDL vector size: different.\n";
2015 m_myCoutStream <<
" Data: size = " << gtFdlVectorDataSize << std::endl;
2016 m_myCoutStream <<
" Emul: size = " << gtFdlVectorEmulSize << std::endl;
References compareFDL(), compareGTFE(), L1GlobalTriggerEvmReadoutRecord::gtFdlVector(), L1GlobalTriggerEvmReadoutRecord::gtfeWord(), iEvent, edm::HandleBase::isValid(), LogDebug, m_l1GtDataEvmInputToken_, m_l1GtEmulEvmInputToken_, m_myCoutStream, m_nrDataEventError, and m_nrEmulEventError.
Referenced by analyze().
◆ compareFDL()
compare the FDL board
Definition at line 979 of file L1GtHwValidation.cc.
985 int PhysicsPartition = 0;
990 if (fdlBlockData == fdlBlockEmul) {
991 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL blocks: identical.\n";
995 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL blocks: different.\n";
1011 const int bxInEventData = fdlBlockData.
bxInEvent();
1012 const int bxInEventEmul = fdlBlockEmul.
bxInEvent();
1014 bool matchBxInEvent =
false;
1016 if (bxInEventData == bxInEventEmul) {
1017 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL bxInEvent identical.";
1020 matchBxInEvent =
true;
1023 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL bxInEvent different.";
1034 <<
"\n Data and emulated FDL bxInEvent different \n";
1043 bool validBxInEvent =
false;
1045 LogDebug(
"L1GtHwValidation") <<
"\n Convert bxInEvent = " << bxInEventData <<
" to histIndex = " << histIndex
1048 validBxInEvent =
true;
1054 const uint16_t boardIdData = fdlBlockData.
boardId();
1055 const uint16_t boardIdEmul = fdlBlockEmul.
boardId();
1057 if (boardIdData == boardIdEmul) {
1058 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL boardId identical.";
1059 m_myCoutStream <<
"\n boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdData
1064 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL boardId different.";
1065 m_myCoutStream <<
"\n Data: boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdData
1067 m_myCoutStream <<
"\n Emul: boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdEmul
1071 if (matchBxInEvent && validBxInEvent) {
1083 const uint16_t bxNrData = fdlBlockData.
bxNr();
1084 const uint16_t bxNrEmul = fdlBlockEmul.
bxNr();
1086 if (bxNrData == bxNrEmul) {
1087 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL bxNr identical.";
1092 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL bxNr different.";
1097 if (matchBxInEvent && validBxInEvent) {
1109 const uint32_t eventNrData = fdlBlockData.
eventNr();
1110 const uint32_t eventNrEmul = fdlBlockEmul.
eventNr();
1112 if (eventNrData == eventNrEmul) {
1113 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL eventNr identical.";
1118 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL eventNr different.";
1123 if (matchBxInEvent && validBxInEvent) {
1138 int nTechBits = gtTechnicalTriggerWordData.size();
1143 unsigned int bitValue = 0;
1145 if (matchBxInEvent && validBxInEvent) {
1146 for (
int iBit = 0; iBit < nTechBits; ++iBit) {
1149 if (gtTechnicalTriggerWordData[iBit]) {
1152 bitValue = (triggerMask) ? 0 : 1;
1153 gtTechnicalTriggerWordDataMask[iBit] = bitValue;
1159 if (gtTechnicalTriggerWordEmul.at(iBit)) {
1162 bitValue = (triggerMask) ? 0 : 1;
1163 gtTechnicalTriggerWordEmulMask[iBit] = bitValue;
1170 for (
int iBit = 0; iBit < nTechBits; ++iBit) {
1171 if (gtTechnicalTriggerWordData[iBit]) {
1175 if (gtTechnicalTriggerWordEmul.at(iBit)) {
1181 if (gtTechnicalTriggerWordData == gtTechnicalTriggerWordEmul) {
1182 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtTechnicalTriggerWord identical.\n";
1187 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtTechnicalTriggerWord different.";
1194 if (matchBxInEvent && validBxInEvent) {
1200 if (matchBxInEvent && validBxInEvent) {
1201 for (
int iBit = 0; iBit < nTechBits; ++iBit) {
1202 if (gtTechnicalTriggerWordData[iBit] != gtTechnicalTriggerWordEmul.at(iBit)) {
1207 for (
int iBit = 0; iBit < nTechBits; ++iBit) {
1208 if (gtTechnicalTriggerWordData[iBit] != gtTechnicalTriggerWordEmul.at(iBit)) {
1219 if (gtTechnicalTriggerWordDataMask == gtTechnicalTriggerWordEmulMask) {
1220 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtTechnicalTriggerWord after mask identical.\n";
1224 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtTechnicalTriggerWord after mask different.";
1229 if (matchBxInEvent && validBxInEvent) {
1235 if (matchBxInEvent && validBxInEvent) {
1236 for (
int iBit = 0; iBit < nTechBits; ++iBit) {
1237 if (gtTechnicalTriggerWordData[iBit] != gtTechnicalTriggerWordEmul.at(iBit)) {
1252 int nAlgoBits = gtDecisionWordData.size();
1262 size_t pfSetsSize = (*m_prescaleFactorsAlgoTrig).size();
1265 LogDebug(
"L1GtHwValidation") <<
"\nError: index of prescale factor set retrieved from the data \n"
1266 <<
"less than zero."
1267 <<
"\n Value of index retrieved from data = " << iPfSet << std::endl;
1273 }
else if (iPfSet >= (static_cast<int>(pfSetsSize))) {
1274 LogDebug(
"L1GtHwValidation") <<
"\nError: index of prescale factor set retrieved from the data \n"
1275 <<
"greater than the size of the vector of prescale factor sets."
1276 <<
"\n Value of index retrieved from data = " << iPfSet
1277 <<
"\n Vector size = " << pfSetsSize << std::endl;
1284 const std::vector<int>& prescaleFactorsAlgoTrig = (*m_prescaleFactorsAlgoTrig).at(iPfSet);
1286 if (matchBxInEvent && validBxInEvent) {
1287 for (
int iBit = 0; iBit < nAlgoBits; ++iBit) {
1293 <<
" trigger mask = " << triggerMask << std::endl;
1295 if (gtDecisionWordData[iBit]) {
1304 bitValue = (triggerMask) ? 0 : 1;
1305 gtDecisionWordDataMask[iBit] = bitValue;
1311 if (gtDecisionWordEmul.at(iBit)) {
1314 bitValue = (triggerMask) ? 0 : 1;
1315 gtDecisionWordEmulMask[iBit] = bitValue;
1322 for (
int iBit = 0; iBit < nAlgoBits; ++iBit) {
1323 if (gtDecisionWordData[iBit]) {
1328 for (
int iBit = 0; iBit < nAlgoBits; ++iBit) {
1329 if (gtDecisionWordEmul.at(iBit)) {
1338 <<
"\n matchBxInEvent && validBxInEvent false \n";
1342 if (gtDecisionWordData == gtDecisionWordEmul) {
1343 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtDecisionWord identical.";
1348 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtDecisionWord different.";
1355 if (matchBxInEvent && validBxInEvent) {
1361 if (matchBxInEvent && validBxInEvent) {
1362 for (
int iBit = 0; iBit < nAlgoBits; ++iBit) {
1365 if (gtDecisionWordData[iBit] != gtDecisionWordEmul.at(iBit)) {
1369 if (
excludedAlgo(iBit) && (bxInEventData == 0) && (iRec == 0)) {
1385 if (gtDecisionWordData[iBit]) {
1393 if ((!
excludedAlgo(iBit)) && (bxInEventData == 0) && (iRec == 0)) {
1398 <<
"result before mask for algorithm with bit number " << iBit
1399 <<
"\n Data: true, emulator: false \n";
1414 if ((!
excludedAlgo(iBit)) && (bxInEventData == 0) && (iRec == 0)) {
1419 <<
"result before mask for algorithm with bit number " << iBit
1420 <<
"\n Data: false, emulator: true \n";
1430 for (
int iBit = 0; iBit < nAlgoBits; ++iBit) {
1431 if (gtDecisionWordData[iBit] != gtDecisionWordEmul.at(iBit)) {
1440 <<
"\n matchBxInEvent && validBxInEvent false \n";
1445 if (gtDecisionWordDataMask == gtDecisionWordEmulMask) {
1446 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtDecisionWord after mask identical.";
1450 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtDecisionWord after mask different.";
1455 if (matchBxInEvent && validBxInEvent) {
1461 if (matchBxInEvent && validBxInEvent) {
1462 for (
int iBit = 0; iBit < nAlgoBits; ++iBit) {
1463 if (gtDecisionWordDataMask[iBit] != gtDecisionWordEmulMask.at(iBit)) {
1468 if (gtDecisionWordDataMask[iBit]) {
1476 if ((!
excludedAlgo(iBit)) && (bxInEventData == 0) && (iRec == 0)) {
1481 <<
"result after mask for algorithm with bit number " << iBit
1482 <<
" different in data versus emulator "
1483 <<
"\n Data: true, emulator: false \n";
1498 if ((!
excludedAlgo(iBit)) && (bxInEventData == 0) && (iRec == 0)) {
1503 <<
"result after mask for algorithm with bit number " << iBit
1504 <<
" different in data versus emulator "
1505 <<
"\n Data: false, emulator: true \n";
1521 if (gtDecisionWordExtendedData == gtDecisionWordExtendedEmul) {
1522 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtDecisionWordExtended identical.\n";
1527 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL gtDecisionWordExtended different.\n";
1534 if (matchBxInEvent && validBxInEvent) {
1542 const uint16_t noAlgoData = fdlBlockData.
noAlgo();
1543 const uint16_t noAlgoEmul = fdlBlockEmul.
noAlgo();
1545 if (noAlgoData == noAlgoEmul) {
1546 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL noAlgo identical.";
1551 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL noAlgo different.";
1556 if (matchBxInEvent && validBxInEvent) {
1564 const uint16_t finalORData = fdlBlockData.
finalOR();
1565 const uint16_t finalOREmul = fdlBlockEmul.
finalOR();
1567 if (finalORData == finalOREmul) {
1568 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL finalOR identical.";
1569 m_myCoutStream <<
"\n finalOR() = " << std::hex <<
"0x" << std::setw(2) << std::setfill(
'0') << finalORData
1574 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL finalOR different.";
1575 m_myCoutStream <<
"\n Data: finalOR() = " << std::hex <<
"0x" << std::setw(2) << std::setfill(
'0') << finalORData
1577 m_myCoutStream <<
"\n Emul: finalOR() = " << std::hex <<
"0x" << std::setw(2) << std::setfill(
'0') << finalOREmul
1581 if (matchBxInEvent && validBxInEvent) {
1589 const int finalORPhysData = finalORData & (1 << PhysicsPartition);
1590 const int finalORPhysEmul = finalOREmul & (1 << PhysicsPartition);
1592 if (finalORPhysData == finalORPhysEmul) {
1593 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL finalOR for the physics partition identical.";
1598 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL finalOR for the physics partition different.";
1603 if (matchBxInEvent && validBxInEvent) {
1611 const uint16_t localBxNrData = fdlBlockData.
localBxNr();
1612 const uint16_t localBxNrEmul = fdlBlockEmul.
localBxNr();
1614 if (localBxNrData == localBxNrEmul) {
1615 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL localBxNr identical.";
1620 m_myCoutStream <<
"\n" << recString <<
" Data and emulated FDL localBxNr different.";
1625 if (matchBxInEvent && validBxInEvent) {
References L1GtFdlWord::boardId(), L1GtFdlWord::bxInEvent(), L1GtFdlWord::bxNr(), TauDecayModes::dec, L1GtFdlWord::eventNr(), excludedAlgo(), dqm::impl::MonitorElement::Fill(), L1GtFdlWord::finalOR(), L1GtFdlWord::gtDecisionWord(), L1GtFdlWord::gtDecisionWordExtended(), L1GtFdlWord::gtPrescaleFactorIndexAlgo(), L1GtFdlWord::gtTechnicalTriggerWord(), L1GtFdlWord::localBxNr(), LogDebug, LogTrace, m_agree, m_dataOnly, m_dataOnlyMask, m_emulOnly, m_emulOnlyMask, m_excludedAlgorithmsAgreement, m_fdlDataAlgoDecision, m_fdlDataAlgoDecision_Err, m_fdlDataAlgoDecision_NoMatch, m_fdlDataAlgoDecisionMask, m_fdlDataAlgoDecisionMask_NoMatch, m_fdlDataAlgoDecisionPrescaled, m_fdlDataAlgoDecisionPrescaled_NoMatch, m_fdlDataAlgoDecisionPrescaledMask_NoMatch, m_fdlDataAlgoDecisionUnprescaled, m_fdlDataAlgoDecisionUnprescaled_NoMatch, m_fdlDataAlgoDecisionUnprescaledMask_NoMatch, m_fdlDataEmul, m_fdlDataEmul_Err, m_fdlDataEmulAlgoDecision, m_fdlDataEmulAlgoDecision_Err, m_fdlDataEmulAlgoDecisionMask, m_fdlDataEmulAlgoDecisionPrescaled, m_fdlDataEmulAlgoDecisionUnprescaled, m_fdlDataEmulAlgoDecisionUnprescaledAllowed, m_fdlDataEmulTechDecision, m_fdlDataEmulTechDecision_Err, m_fdlDataEmulTechDecisionMask, m_fdlDataTechDecision, m_fdlDataTechDecision_Err, m_fdlDataTechDecisionMask, m_fdlEmulAlgoDecision, m_fdlEmulAlgoDecision_Err, m_fdlEmulAlgoDecision_NoMatch, m_fdlEmulAlgoDecisionMask, m_fdlEmulAlgoDecisionMask_NoMatch, m_fdlEmulAlgoDecisionPrescaled_NoMatch, m_fdlEmulAlgoDecisionPrescaledMask_NoMatch, m_fdlEmulAlgoDecisionUnprescaled_NoMatch, m_fdlEmulAlgoDecisionUnprescaledMask_NoMatch, m_fdlEmulTechDecision, m_fdlEmulTechDecision_Err, m_fdlEmulTechDecisionMask, m_myCoutStream, m_triggerMaskAlgoTrig, m_triggerMaskTechTrig, L1GtFdlWord::noAlgo(), Skims_PDWG_cff::prescaleFactor, L1GtFdlWord::print(), L1GtFdlWord::printGtDecisionWord(), L1GtFdlWord::printGtDecisionWordExtended(), L1GtFdlWord::printGtTechnicalTriggerWord(), AlCaHLTBitMon_QueryRunRegistry::string, and TotalBxInEvent.
Referenced by compareDaqRecord(), and compareEvmRecord().
◆ compareGt_Gct()
compare the GCT collections obtained from L1 GT PSB with the input GCT collections
Definition at line 2034 of file L1GtHwValidation.cc.
Referenced by analyze().
◆ compareGTFE()
compare the GTFE board
get record length for alternative 1
get record length for alternative 0
get bunch cross number as counted in the GTFE board
get setup version
get boards contributing to EVM respectively DAQ record
alternative for number of BX per board correlated with active boards bit value is 0: take alternative 0 bit value is 1: take alternative 1
get total number of L1A sent since start of run
Definition at line 805 of file L1GtHwValidation.cc.
811 if (gtfeBlockData == gtfeBlockEmul) {
812 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE blocks: identical.\n";
815 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE blocks: different.\n";
830 const uint16_t boardIdData = gtfeBlockData.
boardId();
831 const uint16_t boardIdEmul = gtfeBlockEmul.
boardId();
833 if (boardIdData == boardIdEmul) {
834 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE boardId identical.";
835 m_myCoutStream <<
"\n boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdData
840 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE boardId different.";
841 m_myCoutStream <<
"\n Data: boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdData
843 m_myCoutStream <<
"\n Emul: boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdEmul
850 const uint16_t recordLength1Data = gtfeBlockData.
recordLength1();
851 const uint16_t recordLength1Emul = gtfeBlockEmul.
recordLength1();
853 if (recordLength1Data == recordLength1Emul) {
854 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE recordLength for alternative 1 identical.";
859 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE recordLength for alternative 1 different.";
860 m_myCoutStream <<
"\n Data: recordLength1() = " << recordLength1Data;
861 m_myCoutStream <<
"\n Emul: recordLength1() = " << recordLength1Emul;
867 const uint16_t recordLengthData = gtfeBlockData.
recordLength();
868 const uint16_t recordLengthEmul = gtfeBlockEmul.
recordLength();
870 if (recordLengthData == recordLengthEmul) {
871 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE recordLength for alternative 0 identical.";
876 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE recordLength for alternative 1 different.";
877 m_myCoutStream <<
"\n Data: recordLength() = " << recordLengthData;
878 m_myCoutStream <<
"\n Emul: recordLength() = " << recordLengthEmul;
884 const uint16_t bxNrData = gtfeBlockData.
bxNr();
885 const uint16_t bxNrEmul = gtfeBlockEmul.
bxNr();
887 if (bxNrData == bxNrEmul) {
888 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE bxNr identical.";
893 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE bxNr different.";
901 const uint32_t setupVersionData = gtfeBlockData.
setupVersion();
902 const uint32_t setupVersionEmul = gtfeBlockEmul.
setupVersion();
904 if (setupVersionData == setupVersionEmul) {
905 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE setupVersion identical.";
910 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE setupVersion different.";
911 m_myCoutStream <<
"\n Data: setupVersion() = " << setupVersionData;
912 m_myCoutStream <<
"\n Emul: setupVersion() = " << setupVersionEmul;
918 const uint16_t activeBoardsData = gtfeBlockData.
activeBoards();
919 const uint16_t activeBoardsEmul = gtfeBlockEmul.
activeBoards();
921 if (activeBoardsData == activeBoardsEmul) {
922 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE activeBoards identical.";
923 m_myCoutStream <<
"\n activeBoards() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0')
924 << activeBoardsData << std::setfill(
' ') <<
std::dec;
928 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE activeBoards different.";
929 m_myCoutStream <<
"\n Data: activeBoards() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0')
930 << activeBoardsData << std::setfill(
' ') <<
std::dec;
931 m_myCoutStream <<
"\n Emul: activeBoards() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0')
932 << activeBoardsEmul << std::setfill(
' ') <<
std::dec;
940 const uint16_t altNrBxBoardData = gtfeBlockData.
altNrBxBoard();
941 const uint16_t altNrBxBoardEmul = gtfeBlockEmul.
altNrBxBoard();
943 if (altNrBxBoardData == altNrBxBoardEmul) {
944 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE altNrBxBoard identical.";
949 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE altNrBxBoard different.";
950 m_myCoutStream <<
"\n Data: altNrBxBoard() = " << altNrBxBoardData;
951 m_myCoutStream <<
"\n Emul: altNrBxBoard() = " << altNrBxBoardEmul;
957 const uint32_t totalTriggerNrData = gtfeBlockData.
totalTriggerNr();
958 const uint32_t totalTriggerNrEmul = gtfeBlockEmul.
totalTriggerNr();
960 if (totalTriggerNrData == totalTriggerNrEmul) {
961 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE totalTriggerNr identical.";
966 m_myCoutStream <<
"\n" << recString <<
" Data and emulated GTFE totalTriggerNr different.";
967 m_myCoutStream <<
"\n Data: totalTriggerNr() = " << totalTriggerNrData;
968 m_myCoutStream <<
"\n Emul: totalTriggerNr() = " << totalTriggerNrEmul;
References L1GtfeWord::activeBoards(), L1GtfeWord::altNrBxBoard(), L1GtfeWord::boardId(), L1GtfeWord::bxNr(), TauDecayModes::dec, dqm::impl::MonitorElement::Fill(), LogDebug, m_gtfeDataEmul, m_myCoutStream, L1GtfeWord::print(), L1GtfeWord::recordLength(), L1GtfeWord::recordLength1(), L1GtfeWord::setupVersion(), AlCaHLTBitMon_QueryRunRegistry::string, and L1GtfeWord::totalTriggerNr().
Referenced by compareDaqRecord(), and compareEvmRecord().
◆ comparePSB()
compare the PSB board
get/set A_DATA_CH_IA
get/set B_DATA_CH_IB
Definition at line 1638 of file L1GtHwValidation.cc.
1642 if (psbBlockData == psbBlockEmul) {
1643 m_myCoutStream <<
"\nData and emulated PSB blocks: identical.\n";
1647 m_myCoutStream <<
"\nData and emulated PSB blocks: different.\n";
1662 const uint16_t boardIdData = psbBlockData.
boardId();
1663 const uint16_t boardIdEmul = psbBlockEmul.
boardId();
1665 if (boardIdData == boardIdEmul) {
1667 m_myCoutStream <<
"\n boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdData
1673 m_myCoutStream <<
"\n Data: boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdData
1675 m_myCoutStream <<
"\n Emul: boardId() = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << boardIdEmul
1681 const int bxInEventData = psbBlockData.
bxInEvent();
1682 const int bxInEventEmul = psbBlockEmul.
bxInEvent();
1684 if (bxInEventData == bxInEventEmul) {
1685 m_myCoutStream <<
"\nData and emulated PSB bxInEvent identical.";
1690 m_myCoutStream <<
"\nData and emulated PSB bxInEvent different.";
1697 const uint16_t bxNrData = psbBlockData.
bxNr();
1698 const uint16_t bxNrEmul = psbBlockEmul.
bxNr();
1700 if (bxNrData == bxNrEmul) {
1713 const uint32_t eventNrData = psbBlockData.
eventNr();
1714 const uint32_t eventNrEmul = psbBlockEmul.
eventNr();
1716 if (eventNrData == eventNrEmul) {
1732 for (
int iA = 0; iA < psbBlockData.
NumberAData; ++iA) {
1733 valData = psbBlockData.
aData(iA);
1734 valEmul = psbBlockEmul.
aData(iA);
1736 if (valData == valEmul) {
1737 m_myCoutStream <<
"\nData and emulated PSB aData(" << iA <<
") identical.";
1738 m_myCoutStream <<
"\n aData(iA) = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << valData
1743 m_myCoutStream <<
"\nData and emulated PSB aData(" << iA <<
") different.";
1744 m_myCoutStream <<
"\n Data: aData(iA) = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << valData
1746 m_myCoutStream <<
"\n Emul: aData(iA) = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << valEmul
1753 for (
int iB = 0; iB < psbBlockData.
NumberBData; ++iB) {
1754 valData = psbBlockData.
bData(iB);
1755 valEmul = psbBlockEmul.
bData(iB);
1757 if (valData == valEmul) {
1758 m_myCoutStream <<
"\nData and emulated PSB bData(" << iB <<
") identical.";
1759 m_myCoutStream <<
"\n bData(iA) = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << valData
1764 m_myCoutStream <<
"\nData and emulated PSB bData(" << iB <<
") different.";
1765 m_myCoutStream <<
"\n Data: bData(iA) = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << valData
1767 m_myCoutStream <<
"\n Emul: bData(iA) = " << std::hex <<
"0x" << std::setw(4) << std::setfill(
'0') << valEmul
1774 const uint16_t localBxNrData = psbBlockData.
localBxNr();
1775 const uint16_t localBxNrEmul = psbBlockEmul.
localBxNr();
1777 if (localBxNrData == localBxNrEmul) {
1778 m_myCoutStream <<
"\nData and emulated PSB localBxNr identical.";
1783 m_myCoutStream <<
"\nData and emulated PSB localBxNr different.";
References L1GtPsbWord::aData(), L1GtPsbWord::bData(), L1GtPsbWord::boardId(), L1GtPsbWord::bxInEvent(), L1GtPsbWord::bxNr(), TauDecayModes::dec, L1GtPsbWord::eventNr(), L1GtPsbWord::localBxNr(), LogDebug, m_myCoutStream, L1GtPsbWord::NumberAData, L1GtPsbWord::NumberBData, and L1GtPsbWord::print().
Referenced by compareDaqRecord().
◆ compareTCS()
◆ excludedAlgo()
bool L1GtHwValidation::excludedAlgo |
( |
const int & |
iBit | ) |
const |
|
private |
◆ excludedAlgoList()
void L1GtHwValidation::excludedAlgoList |
( |
| ) |
|
|
private |
exclude from comparison some bits with known disagreement - bit list
Definition at line 2101 of file L1GtHwValidation.cc.
2104 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
2106 const int algBitNumber = (itAlgo->second).algoBitNumber();
2107 const int chipNr = (itAlgo->second).algoChipNumber();
2111 const std::vector<L1GtLogicParser::TokenRPN>& aRpnVector = (itAlgo->second).algoRpnVector();
2112 size_t aRpnVectorSize = aRpnVector.size();
2114 bool algWithExcludedCondition =
false;
2115 bool algWithConditionNotInMap =
false;
2118 for (
size_t opI = 0; opI < aRpnVectorSize; ++opI) {
2119 const std::string& cndName = (aRpnVector[opI]).operand;
2121 if (!cndName.empty()) {
2122 bool foundCond =
false;
2124 CItCond itCond = conditionMap.find(cndName);
2125 if (itCond != conditionMap.end()) {
2128 const std::vector<L1GtObject>&
objType = (itCond->second)->objectType();
2142 LogTrace(
"L1GtHwValidation") <<
"\n "
2143 <<
"Algorithm: " << algName <<
" Condition: " << cndName <<
"\n "
2148 <<
"Object excluded: "
2151 if (matchCondCategoryValue && matchCondTypeValue && matchCondL1GtObjectValue) {
2152 algWithExcludedCondition =
true;
2162 algWithConditionNotInMap =
true;
2164 LogTrace(
"L1GtHwValidation") <<
"\n Error: condition " << cndName <<
" not found in condition map!"
2165 <<
"\n Add algorithm " << algName <<
" (bit number " << algBitNumber <<
") "
2166 <<
"\n to list of algorithms excluded from comparison"
2167 <<
"\n data versus emulator." << std::endl;
2172 if (algWithConditionNotInMap) {
2177 LogTrace(
"L1GtHwValidation") <<
"\n Error: one or more conditions from algorithm " << algName <<
" (bit number "
2178 << algBitNumber <<
") "
2179 <<
" not found in condition map!"
2180 <<
"\n Add it to list of algorithms excluded from comparison"
2181 <<
"\n data versus emulator." << std::endl;
2184 if (algWithExcludedCondition) {
2187 LogTrace(
"L1GtHwValidation") <<
"\n Algorithm " << algName <<
" (bit number " << algBitNumber
2188 <<
") contains an excluded condition."
2189 <<
"\n Add it to list of algorithms excluded from comparison"
2190 <<
"\n data versus emulator." << std::endl;
2197 if ((*itExcl) == algName) {
2200 LogTrace(
"L1GtHwValidation") <<
"\n Algorithm " << algName <<
" (bit number " << algBitNumber
2201 <<
")\n added to list of algorithms excluded from comparison"
2202 <<
" \n data versus emulator by ExcludeAlgoTrigByName." << std::endl;
2210 if ((*itExcl) == algBitNumber) {
2213 LogTrace(
"L1GtHwValidation") <<
"\n Algorithm " << algName <<
" (bit number " << algBitNumber
2214 <<
")\n added to list of algorithms excluded from comparison"
2215 <<
" \n data versus emulator by ExcludeAlgoTrigByBit." << std::endl;
References L1GtTriggerMenu::gtAlgorithmMap(), L1GtTriggerMenu::gtConditionMap(), l1GtConditionCategoryEnumToString(), l1GtConditionTypeEnumToString(), l1GtObjectEnumToString(), LogTrace, m_excludeAlgoTrigByBit, m_excludeAlgoTrigByName, m_excludedAlgoList, m_excludedCondCategory, m_excludedCondType, m_excludedL1GtObject, m_l1GtMenu, matchCondCategory(), matchCondL1GtObject(), matchCondType(), electrons_cff::objType, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by bookHistograms().
◆ matchCondCategory()
book all histograms for the module
return true if an algorithm has a condition of that category for CondNull, it returns always true
Definition at line 2053 of file L1GtHwValidation.cc.
2055 bool matchValue =
false;
2057 if (excludedCategory ==
CondNull) {
2060 if (conditionCategory == excludedCategory) {
References CondNull.
Referenced by excludedAlgoList().
◆ matchCondL1GtObject()
bool L1GtHwValidation::matchCondL1GtObject |
( |
const std::vector< L1GtObject > & |
condObjects, |
|
|
const L1GtObject & |
excludedObject |
|
) |
| |
|
private |
return true if an algorithm has a condition containing that object for ObjNull, it returns always true
Definition at line 2082 of file L1GtHwValidation.cc.
2084 bool matchValue =
false;
2086 if (excludedObject ==
ObjNull) {
2090 for (std::vector<L1GtObject>::const_iterator itCondObj = condObjects.begin(); itCondObj != condObjects.end();
2092 if ((*itCondObj) == excludedObject) {
References ObjNull.
Referenced by excludedAlgoList().
◆ matchCondType()
◆ m_agree
bool L1GtHwValidation::m_agree |
|
private |
◆ m_dataOnly
bool L1GtHwValidation::m_dataOnly |
|
private |
◆ m_dataOnlyMask
bool L1GtHwValidation::m_dataOnlyMask |
|
private |
◆ m_dirName
std::string L1GtHwValidation::m_dirName |
|
private |
◆ m_emulOnly
bool L1GtHwValidation::m_emulOnly |
|
private |
◆ m_emulOnlyMask
bool L1GtHwValidation::m_emulOnlyMask |
|
private |
◆ m_excludeAlgoTrigByBit
std::vector<int> L1GtHwValidation::m_excludeAlgoTrigByBit |
|
private |
◆ m_excludeAlgoTrigByName
std::vector<std::string> L1GtHwValidation::m_excludeAlgoTrigByName |
|
private |
◆ m_excludeCondCategTypeObject
◆ m_excludedAlgoList
std::vector<int> L1GtHwValidation::m_excludedAlgoList |
|
private |
◆ m_excludedAlgorithmsAgreement
◆ m_excludedCondCategory
◆ m_excludedCondType
◆ m_excludedL1GtObject
std::vector<L1GtObject> L1GtHwValidation::m_excludedL1GtObject |
|
private |
◆ m_fdlDataAlgoDecision
◆ m_fdlDataAlgoDecision_Err
◆ m_fdlDataAlgoDecision_NoMatch
◆ m_fdlDataAlgoDecisionMask
◆ m_fdlDataAlgoDecisionMask_NoMatch
◆ m_fdlDataAlgoDecisionPrescaled
◆ m_fdlDataAlgoDecisionPrescaled_NoMatch
◆ m_fdlDataAlgoDecisionPrescaledMask_NoMatch
◆ m_fdlDataAlgoDecisionUnprescaled
◆ m_fdlDataAlgoDecisionUnprescaled_NoMatch
◆ m_fdlDataAlgoDecisionUnprescaledMask_NoMatch
◆ m_fdlDataEmul
◆ m_fdlDataEmul_Err
◆ m_fdlDataEmulAlgoDecision
◆ m_fdlDataEmulAlgoDecision_Err
◆ m_fdlDataEmulAlgoDecisionMask
◆ m_fdlDataEmulAlgoDecisionPrescaled
◆ m_fdlDataEmulAlgoDecisionUnprescaled
◆ m_fdlDataEmulAlgoDecisionUnprescaledAllowed
◆ m_fdlDataEmulTechDecision
◆ m_fdlDataEmulTechDecision_Err
◆ m_fdlDataEmulTechDecisionMask
◆ m_fdlDataTechDecision
◆ m_fdlDataTechDecision_Err
◆ m_fdlDataTechDecisionMask
◆ m_fdlEmulAlgoDecision
◆ m_fdlEmulAlgoDecision_Err
◆ m_fdlEmulAlgoDecision_NoMatch
◆ m_fdlEmulAlgoDecisionMask
◆ m_fdlEmulAlgoDecisionMask_NoMatch
◆ m_fdlEmulAlgoDecisionPrescaled
◆ m_fdlEmulAlgoDecisionPrescaled_NoMatch
◆ m_fdlEmulAlgoDecisionPrescaledMask_NoMatch
◆ m_fdlEmulAlgoDecisionUnprescaled
◆ m_fdlEmulAlgoDecisionUnprescaled_NoMatch
◆ m_fdlEmulAlgoDecisionUnprescaledMask_NoMatch
◆ m_fdlEmulTechDecision
◆ m_fdlEmulTechDecision_Err
◆ m_fdlEmulTechDecisionMask
◆ m_gtErrorFlag
◆ m_gtfeDataEmul
◆ m_l1GctDataInputTag
◆ m_l1GtDataDaqInputTag
◆ m_l1GtDataDaqInputToken_
◆ m_l1GtDataEvmInputTag
◆ m_l1GtDataEvmInputToken_
◆ m_l1GtEmulDaqInputTag
◆ m_l1GtEmulDaqInputToken_
◆ m_l1GtEmulEvmInputTag
◆ m_l1GtEmulEvmInputToken_
◆ m_l1GtMenu
◆ m_l1GtMenuCacheID
unsigned long long L1GtHwValidation::m_l1GtMenuCacheID |
|
private |
◆ m_l1GtPfAlgo
◆ m_l1GtPfAlgoCacheID
unsigned long long L1GtHwValidation::m_l1GtPfAlgoCacheID |
|
private |
◆ m_l1GtPfTech
◆ m_l1GtPfTechCacheID
unsigned long long L1GtHwValidation::m_l1GtPfTechCacheID |
|
private |
◆ m_l1GtTmAlgo
◆ m_l1GtTmAlgoCacheID
unsigned long long L1GtHwValidation::m_l1GtTmAlgoCacheID |
|
private |
◆ m_l1GtTmTech
◆ m_l1GtTmTechCacheID
unsigned long long L1GtHwValidation::m_l1GtTmTechCacheID |
|
private |
◆ m_myCoutStream
std::ostringstream L1GtHwValidation::m_myCoutStream |
|
private |
◆ m_nrDataEventError
int L1GtHwValidation::m_nrDataEventError |
|
private |
◆ m_nrEmulEventError
int L1GtHwValidation::m_nrEmulEventError |
|
private |
◆ m_nrEvJob
int L1GtHwValidation::m_nrEvJob |
|
private |
◆ m_nrEvRun
int L1GtHwValidation::m_nrEvRun |
|
private |
◆ m_prescaleFactorsAlgoTrig
const std::vector<std::vector<int> >* L1GtHwValidation::m_prescaleFactorsAlgoTrig |
|
private |
◆ m_prescaleFactorsTechTrig
const std::vector<std::vector<int> >* L1GtHwValidation::m_prescaleFactorsTechTrig |
|
private |
◆ m_triggerMaskAlgoTrig
std::vector<unsigned int> L1GtHwValidation::m_triggerMaskAlgoTrig |
|
private |
◆ m_triggerMaskTechTrig
std::vector<unsigned int> L1GtHwValidation::m_triggerMaskTechTrig |
|
private |
◆ NumberOfGtRecords
const int L1GtHwValidation::NumberOfGtRecords = 2 |
|
staticprivate |
◆ TotalBxInEvent
const int L1GtHwValidation::TotalBxInEvent = 5 |
|
staticprivate |
MonitorElement * m_fdlEmulTechDecisionMask[TotalBxInEvent][NumberOfGtRecords]
bool m_agree
internal members
unsigned long long m_l1GtTmAlgoCacheID
MonitorElement * m_gtfeDataEmul[NumberOfGtRecords]
histograms
T const * product() const
edm::InputTag m_l1GtDataDaqInputTag
input tag for the L1 GT hardware DAQ record
const cms_uint16_t activeBoards() const
get/set boards contributing to EVM respectively DAQ record
MonitorElement * m_fdlDataAlgoDecisionMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
const int bxInEvent() const
get/set bunch cross in the GT event record
const L1GtTriggerMenu * m_l1GtMenu
trigger menu
MonitorElement * m_fdlDataEmulAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords]
const cms_uint16_t aData(int iA) const
get/set A_DATA_CH_IA
MonitorElement * m_fdlDataEmul[TotalBxInEvent][NumberOfGtRecords]
FDL (0 for DAQ, 1 for EVM record)
virtual void compareGt_Gct(const edm::Event &, const edm::EventSetup &)
MonitorElement * m_excludedAlgorithmsAgreement
const cms_uint16_t gtPrescaleFactorIndexAlgo() const
MonitorElement * m_fdlEmulAlgoDecisionUnprescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtEmulDaqInputToken_
std::string l1GtObjectEnumToString(const L1GtObject &)
int m_nrDataEventError
counters
MonitorElement * m_fdlEmulAlgoDecision_Err[NumberOfGtRecords]
bool matchCondType(const L1GtConditionType &, const L1GtConditionType &)
const cms_uint32_t totalTriggerNr() const
get/set total number of L1A sent since start of run
const L1GtfeExtWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
virtual void print(std::ostream &myCout) const
pretty print the content of a L1GtfeWord
virtual void setCurrentFolder(std::string const &fullpath)
const DecisionWordExtended & gtDecisionWordExtended() const
get/set extended algorithms bits (extended decision word)
const cms_uint16_t noAlgo() const
get/set NoAlgo
MonitorElement * m_fdlDataAlgoDecision_NoMatch[TotalBxInEvent][NumberOfGtRecords]
static const int TotalBxInEvent
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtDataDaqInputToken_
MonitorElement * m_fdlDataTechDecisionMask[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlEmulTechDecision_Err[NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecision[TotalBxInEvent][NumberOfGtRecords]
std::ostringstream m_myCoutStream
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
const cms_uint32_t setupVersion() const
get/set setup version
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
T getUntrackedParameter(std::string const &, T const &) const
Log< level::Info, false > LogInfo
virtual void compareDaqRecord(const edm::Event &, const edm::EventSetup &)
L1 GT DAQ record comparison.
std::vector< edm::ParameterSet > m_excludeCondCategTypeObject
MonitorElement * m_fdlEmulAlgoDecisionMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataEmulAlgoDecision_Err[NumberOfGtRecords]
Log< level::Warning, false > LogWarning
const cms_uint16_t bData(int iB) const
get/set B_DATA_CH_IB
const cms_uint16_t bxNr() const
get/set bunch cross number of the actual bx
MonitorElement * m_fdlDataEmul_Err[NumberOfGtRecords]
static const int NumberOfGtRecords
std::vector< L1GtConditionCategory > m_excludedCondCategory
excluded condition categories
const cms_uint16_t recordLength() const
get/set record length for alternative 0
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
MonitorElement * m_fdlEmulAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords]
const cms_uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
edm::InputTag m_l1GctDataInputTag
input tag for the L1 GCT hardware record
std::vector< unsigned int > m_triggerMaskAlgoTrig
const cms_uint32_t eventNr() const
get/set event number since last L1 reset generated in FDL
MonitorElement * m_fdlEmulAlgoDecisionPrescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
unsigned long long m_l1GtTmTechCacheID
MonitorElement * m_fdlDataEmulTechDecision_Err[NumberOfGtRecords]
edm::InputTag m_l1GtDataEvmInputTag
input tag for the L1 GT hardware EVM record
const cms_uint16_t boardId() const
get/set board ID
static const unsigned int NumberPhysTriggers
const int bxInEvent() const
get/set bunch cross in the GT event record
MonitorElement * m_fdlDataEmulTechDecisionMask[TotalBxInEvent][NumberOfGtRecords]
void print(std::ostream &myCout) const
pretty print
MonitorElement * m_fdlDataEmulAlgoDecision[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataAlgoDecisionPrescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlEmulAlgoDecisionUnprescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
const std::vector< L1GtPsbWord > gtPsbVector() const
get the vector of L1GtPsbWord
MonitorElement * m_fdlDataTechDecision[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_gtErrorFlag
PSB.
unsigned long long m_l1GtPfTechCacheID
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > m_l1GtDataEvmInputToken_
const cms_uint32_t eventNr() const
get/set event number since last L1 reset generated in PSB
MonitorElement * m_fdlEmulAlgoDecision_NoMatch[TotalBxInEvent][NumberOfGtRecords]
std::string m_dirName
directory name for L1Extra plots
static const int NumberBData
L1GtObject l1GtObjectStringToEnum(const std::string &)
std::vector< L1GtConditionType > m_excludedCondType
excluded condition types
MonitorElement * m_fdlDataEmulAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords]
virtual void comparePSB(const edm::Event &, const edm::EventSetup &, const L1GtPsbWord &, const L1GtPsbWord &)
compare the PSB board
const cms_uint16_t bxNr() const
get/set bunch cross number as counted in the GTFE board
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
std::vector< int > m_excludedAlgoList
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
void printGtDecisionWordExtended(std::ostream &myCout) const
const L1GtfeWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
const L1GtTriggerMask * m_l1GtTmTech
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * m_fdlDataAlgoDecision_Err[NumberOfGtRecords]
MonitorElement * m_fdlDataAlgoDecisionUnprescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
const DecisionWord & gtDecisionWord() const
get/set/print algorithms bits (decision word)
const cms_uint16_t boardId() const
get/set board ID
const cms_uint16_t bxNr() const
get/set BxNr - bunch cross number of the actual bx
std::vector< int > m_excludeAlgoTrigByBit
exclude algorithm triggers from comparison data - emulator by algorithm bit number
void excludedAlgoList()
exclude from comparison some bits with known disagreement - bit list
std::vector< bool > DecisionWord
typedefs
virtual void compareGTFE(const edm::Event &, const edm::EventSetup &, const L1GtfeWord &, const L1GtfeWord &, const int)
compare the GTFE board
MonitorElement * m_fdlDataAlgoDecisionUnprescaled[TotalBxInEvent][NumberOfGtRecords]
bool matchCondCategory(const L1GtConditionCategory &, const L1GtConditionCategory &)
book all histograms for the module
MonitorElement * m_fdlDataAlgoDecisionUnprescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
std::vector< bool > DecisionWordExtended
const TechnicalTriggerWord & gtTechnicalTriggerWord() const
get/set technical trigger bits
std::vector< unsigned int > m_triggerMaskTechTrig
const cms_uint16_t recordLength1() const
get/set record length for alternative 1
virtual void compareFDL(const edm::Event &, const edm::EventSetup &, const L1GtFdlWord &, const L1GtFdlWord &, const int)
compare the FDL board
void printGtTechnicalTriggerWord(std::ostream &myCout) const
MonitorElement * m_fdlDataEmulAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords]
void print(std::ostream &myCout) const
pretty print the content of a L1GtFdlWord
edm::InputTag m_l1GtEmulDaqInputTag
input tag for the L1 GT emulator DAQ record
const cms_uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
MonitorElement * m_fdlEmulTechDecision[TotalBxInEvent][NumberOfGtRecords]
T getParameter(std::string const &) const
const L1GtPrescaleFactors * m_l1GtPfTech
MonitorElement * m_fdlDataEmulTechDecision[TotalBxInEvent][NumberOfGtRecords]
edm::InputTag m_l1GtEmulEvmInputTag
input tag for the L1 GT emulator EVM record
MonitorElement * m_fdlEmulAlgoDecisionPrescaledMask_NoMatch[TotalBxInEvent][NumberOfGtRecords]
bool excludedAlgo(const int &) const
exclusion status for algorithm with bit i
static const unsigned int NumberTechnicalTriggers
MonitorElement * m_fdlDataAlgoDecision[TotalBxInEvent][NumberOfGtRecords]
bool matchCondL1GtObject(const std::vector< L1GtObject > &, const L1GtObject &)
MonitorElement * m_fdlDataAlgoDecisionPrescaled_NoMatch[TotalBxInEvent][NumberOfGtRecords]
MonitorElement * m_fdlDataEmulAlgoDecisionUnprescaledAllowed[TotalBxInEvent][NumberOfGtRecords]
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const cms_uint16_t finalOR() const
get/set "Final OR" bits
MonitorElement * m_fdlDataAlgoDecisionPrescaled[TotalBxInEvent][NumberOfGtRecords]
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks
MonitorElement * m_fdlEmulAlgoDecisionMask[TotalBxInEvent][NumberOfGtRecords]
const cms_uint16_t altNrBxBoard() const
get/set alternative for number of BX per board
unsigned long long m_l1GtMenuCacheID
static const int NumberAData
MonitorElement * m_fdlDataTechDecision_Err[NumberOfGtRecords]
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > m_l1GtEmulEvmInputToken_
const cms_uint16_t boardId() const
get/set board ID
virtual void compareEvmRecord(const edm::Event &, const edm::EventSetup &)
L1 GT EVM record comparison.
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
std::vector< L1GtObject > m_excludedL1GtObject
excluded L1 GT objects
void printGtDecisionWord(std::ostream &myCout) const
std::vector< std::string > m_excludeAlgoTrigByName
exclude algorithm triggers from comparison data - emulator by algorithm name
unsigned long long m_l1GtPfAlgoCacheID