L1 Comparator
Complete:
Overview
The L1-Trigger validation tool for monitoring data|emulator consistency.
It performs the following tasks:
- reads in pairs of L1-Trigger digi collections (data|emulator)
- verifies the candidates' agreement on bit-by-bit level
- appends results of data|emulator comparison to the event
- dumps comparison information to file in human readable format
Digi production
The L1 digis are produced by the following two main sources:
? L1
Unpacker (code in
CMS.EventFilter
; cff), from input
raw
data
? L1
Emulator (code in
L1Trigger
,
SimCalorimetry
;
cff
), from input digis
The resulting digis are in the current context identified as
Data
and
Emul
respectively.
For pattern testing, digis are also converted from hardware output data
? TextToDigi (
code
,
wiki), input from harwdare format txt
For software testing and validation purposes, we following auxiliary modules are available:
? DummyProducer
(
code
,
cfi
), produces random, ad-hoc digis, from empty input
? EmulBias
(
code
,
cfi
), introduces ad-hoc bias to mimic hardware failure, from input digis
Data types
The list of data collections currently supported:
EcalTrigPrimDigiCollection
HcalTrigPrimDigiCollection
L1CaloEmCollection
L1CaloRegionCollection
L1GctEmCandCollection
L1GctEmCandCollection
L1GctJetCandCollection
L1GctJetCandCollection
L1GctJetCandCollection
L1MuDTChambPhContainer
L1MuDTChambThContainer
L1MuRegionalCandCollection
L1MuDTTrackContainer
CSCALCTDigiCollection
CSCCLCTDigiCollection
CSCCorrelatedLCTDigiCollection
CSCCorrelatedLCTDigiCollection
L1MuRegionalCandCollection
L1CSCTrackCollection
L1CSCStatusDigiCollection
L1MuRegionalCandCollection
L1MuRegionalCandCollection
LTCDigiCollection
L1MuGMTCandCollection
L1MuGMTReadoutCollection
L1CMS.GlobalTriggerReadoutRecord
L1CMS.GlobalTriggerEvmReadoutRecord
L1CMS.GlobalTriggerObjectMapRecord
FEDRawDataCollection
Usage
? data|emulator comparison (principal)
? data|data consistency (eg in redundantly readout data)
? emul|emul software consistency (eg of pack/unpack sequences)
HowTo
Code
The code is located in
L1Trigger/HardwareValidation/
.
Please use the latest tag. The head version should be kept working and with the latest updates, please consider using it.
Configuration
For configuration and usage examples, please have a look at
?
L1Comparator.cfi
, default configuration
?
testL1DECompare.cfg
, simple test
?
testDummyBiasDE.cfg
, complete standalone test, with digi generation, bias, comparison, dump and display
As an explicit simple example, suppose one wishes to compare two sets of Ecal TP digis:
include "L1Trigger/HardwareValidation/data/L1Comparator.cfi"
replace l1compare.ETPsourceData = ecal_tp_digis_a
replace l1compare.ETPsourceEmul = ecal_tp_digis_b
replace l1compare.COMPARE_COLLS = { 1,0,0,0,0,0,0,0,0,0,0,0 }
path cmp = {l1compare}
Configuration parameters:
-
sourceData, sourceEmul
InputTags for the two collections to be compared, prefixed with the subsystem identifier label ETP, HTP, RCT, GCT, DTP, DTF, CTP, CTF, RPC, LTC, GMT, GLT
-
COMPARE_COLLS
boolean vector specifying the subsystems to be processed, ordered as in above list
-
DumpMode
specifies comparison results: -1 (all non-empty candidates), 0 (none), 1 (disagreeing candidates only), 2 (location disagree), 3 (location agree), to be dumped to text file specified by DumpFile
-
VerboseFlag
flag for setting debug verbose level
Output
? appends
DEdigi
with comparison results into the event record
? dumps candidates into file (default
dump.txt ) in user friendly format, if set
Improvements
Some proposed standardizations would be beneficial for improving in complexity and organization of the validation code.
Demand that all L1 digis be collections of objects that implement the following methods:
?
bx()
// bx of the digi relative to L1A
?
empty()
// digi is empty/zero
?
raw()
// raw data comprising the digi
?
operator==
,
operator!=
// (non-)equivalence
?
operator<<
// summary information to be dumped (preferably single line)
The collection should provide a std::vector< > interface to the forming set of candidates (excepting the GT output).
Please send feedback on feasibility of proposed modifications to L1 DataFormats to JimBrooke and Nuno.
Review status
Responsible:
NunoLeonardo
Last reviewed by:
Never reviewed