|
LDMX Software
|
the header that the LDMX DAQ Firmware block includes in the output data stream at the beginning of each data frame More...
#include <LDMXRoRHeader.h>
Public Member Functions | |
| utility::Reader & | read (utility::Reader &r) |
| read the next LDMX RoR header into memory | |
| uint8_t | version () const |
| version of LDMX data (should be zero) | |
| uint8_t | subsystem () const |
| ID number for subsystem originating data (compiled into firmware) | |
| uint8_t | contributor () const |
| ID number for contributor within subsystem (configured into firmware) | |
| uint64_t | timestamp () const |
| get timestamp of this RoR | |
Static Public Member Functions | |
| static std::tuple< int, int > | subsystem (const std::string &name) |
| Get the (subsystem, contributor) pair for the input subsystem name. | |
Static Public Attributes | |
| static const unsigned int | SIZE = 16 |
| size of this header in bytes | |
| static const std::unordered_map< std::string, int > | SUBSYSTEM_ID |
| The subsystem ID numbers organized by subsystem name. | |
| static const std::unordered_map< std::string, int > | CONTRIBUTOR_ID |
| The contributor ID is a configurable parameter of the DAQ firmware. | |
Private Attributes | |
| uint8_t | version_ |
| version of LDMX data (should be zero) | |
| uint8_t | subsystem_ |
| ID number for subsystem originating data (compiled into firmware) | |
| uint8_t | contributor_ |
| ID number for contributor within subsystem (configured into firmware) | |
| uint64_t | timestamp_ |
| timestamp of this Readout-Request (RoR) | |
the header that the LDMX DAQ Firmware block includes in the output data stream at the beginning of each data frame
This header is immediately preceeded by a RogueFrameHeader for data frames. It is separate only becuase some frames written to the file (mainly, the configuration stream) do not include this header as well as the RogueFrameHeader.
Definition at line 22 of file LDMXRoRHeader.h.
|
inline |
ID number for contributor within subsystem (configured into firmware)
Definition at line 72 of file LDMXRoRHeader.h.
References contributor_.
| utility::Reader & packing::LDMXRoRHeader::read | ( | utility::Reader & | r | ) |
read the next LDMX RoR header into memory
Definition at line 27 of file LDMXRoRHeader.cxx.
References contributor_, subsystem_, timestamp_, and version_.
|
inline |
ID number for subsystem originating data (compiled into firmware)
Definition at line 70 of file LDMXRoRHeader.h.
References subsystem_.
Referenced by packing::SingleSubsystemUnpacker::configure().
|
static |
Get the (subsystem, contributor) pair for the input subsystem name.
| [in] | name | subsystem name ('tdaq','ts','tracker','hcal','ecal') |
Definition at line 13 of file LDMXRoRHeader.cxx.
References CONTRIBUTOR_ID, and SUBSYSTEM_ID.
|
inline |
|
inline |
version of LDMX data (should be zero)
Definition at line 68 of file LDMXRoRHeader.h.
References version_.
|
private |
ID number for contributor within subsystem (configured into firmware)
Definition at line 82 of file LDMXRoRHeader.h.
Referenced by contributor(), and read().
|
static |
The contributor ID is a configurable parameter of the DAQ firmware.
For the 2025 slice test at SLAC, there was only ever one contributor per subsystem and so there is just one integer per subsystem here. (-1 means that it was not set and can be ignored).
In the future, there will be more than one contributor for some subsystems.
The subsystem names are all lower case.
Definition at line 49 of file LDMXRoRHeader.h.
Referenced by subsystem().
|
static |
size of this header in bytes
Definition at line 25 of file LDMXRoRHeader.h.
Referenced by packing::SingleSubsystemUnpacker::produce().
|
private |
ID number for subsystem originating data (compiled into firmware)
Definition at line 80 of file LDMXRoRHeader.h.
Referenced by read(), and subsystem().
|
static |
The subsystem ID numbers organized by subsystem name.
These ID numbers are compiled into the DAQ firmware. Since the same firmware was used for both the ECal and HCal, they both ended up having the same subsystem ID (5).
The subsystem names are all lower case.
Definition at line 35 of file LDMXRoRHeader.h.
Referenced by subsystem().
|
private |
timestamp of this Readout-Request (RoR)
It is some combination of pulseID and bunchCount, but I'm unsure on how to decompose those at this time.
Definition at line 90 of file LDMXRoRHeader.h.
Referenced by read(), and timestamp().
|
private |
version of LDMX data (should be zero)
Definition at line 78 of file LDMXRoRHeader.h.