Documentation on use of two CMSSW modules,
EricScan and
EricDump. These modules scan HCAL data for a specific set of problems, and produce hex dumps for hardware experts to ponder.
Released Code:
Sample scripts and output:
This module reads run data, looks for problems, and produces a simple text report as output tagging the events to be dumped.
Configuration file parameters:
Parameter |
Description |
Default |
uint32_t DCCVersion |
DCC firmware version (needed for versions < 0x2c1f) |
0x2c18 |
uint32_t HTRstatusBits |
mask of HTR status bits to look for |
0x008f |
uint32_t LRBstatusBits |
mask of LRB error bits to look for |
0xff |
bool checkEvN |
enable checking of EvN across all HTRs, DCC |
true |
bool checkBcN |
enable checking of BcN across all HTRs, DCC |
true |
int minHtrSize |
minimum size for HTR payload in 32-bit words |
6 |
(values < 6 will cause 6 to be used) |
bool checkAllCRC |
check CRC on every event (SLOW) |
false |
bool checkBadCRC |
check CRC on events matching above conditions |
true |
int maxEvtPerHTR |
save this many events per HTR for dumping |
10 |
uint32_t startEvt |
starting EvN for analysis |
1 |
uint32_t endEvt |
ending EvN for analysis |
99999 |
Sample Configuration
process DUMP = {
// untracked PSet maxEvents = {untracked int32 input = 1000}
source = NewEventStreamFileReader {
untracked vstring fileNames = {
"file:/data/ehazen/work/GlobalMar08/emulator.00037842.0001.A.storageManager.0.0000.dat",
"file:/data/ehazen/work/GlobalMar08/emulator.00037842.0001.A.storageManager.1.0000.dat"
}
int32 max_event_size = 2000000
int32 max_queue_depth = 5
}
service = MessageLogger {
untracked PSet default = { untracked int32 reportEvery = 100 }
}
module dumper = EricScan {
// use default parameters
}
path p = { dumper }
}
This module reads the text output from
EricScan and actually dumps the specified events.
It looks for tags like this, which you could construct yourself for custom dumps:
[DUMP] EvN 1 FED 4 HTR 3 reason "HTR status=8ec0"
EvN is event number.
FED is fed_id minus 700.
HTR is DCC spigot number 0-14.
reason is a quoted
string giving the reason for the dump.
Configuration file parameters:
Parameter |
Description |
Default |
uint32 DCCVersion |
DCC firmware revision (needed up to 0x2c1f) |
0x2c18 |
string ReportFileName |
Input file name for output from EricScan |
"report.txt" |
string DumpFileName |
Output file name for event dumps |
"dump.txt" |
int32 evtRange |
Number of events before and after specified event to dump |
3 |
int32 debugLevel |
Debug output (0, 1, 2) |
1 |
Sample Configuration File
process DUMP = {
// untracked PSet maxEvents = {untracked int32 input = 100}
source = NewEventStreamFileReader {
untracked vstring fileNames = {
"file:/data/ehazen/work/GlobalMar08/emulator.00037842.0001.A.storageManager.0.0000.dat",
"file:/data/ehazen/work/GlobalMar08/emulator.00037842.0001.A.storageManager.1.0000.dat" }
int32 max_event_size = 2000000
int32 max_queue_depth = 5
}
service = MessageLogger {
untracked PSet default = { untracked int32 reportEvery = 500 }
}
module dumper = EricDump {
untracked int32 debugLevel = 0
untracked string ReportFileName = "EricScan37842_report.txt"
untracked string DumpFileName = "EricDump37842_dump.txt"
}
path p = { dumper }
}
--
EricHazen - 25 Mar 2008