#include <MatacqRawEvent.h>
Classes | |
struct | ChannelData |
struct | field32spec_t |
struct | int16le_t |
struct | uint16le_t |
struct | uint32le_t |
Public Types | |
enum | matacqError_t { errorLengthConsistency = 1<<0, errorLength = 1<<1, errorWrongBoe = 1<<2 } |
Public Member Functions | |
int | getAttenuation_dB () const |
int | getBoe () const |
int | getBxId () const |
int | getChannelCount () const |
const std::vector< ChannelData > & | getChannelData () const |
unsigned | getDaqLen () const |
int | getDccErrors () const |
unsigned | getDccLen () const |
int | getDelayA () const |
int | getEmtcDelay () const |
int | getEmtcPhase () const |
unsigned | getEventId () const |
int | getFedId () const |
int | getFov () const |
int | getFreqGHz () const |
int | getH1Marker () const |
int | getLaserPower () const |
int | getMatacqDataFormatVersion () const |
uint32_t | getOrbitId () const |
int | getParsedLen () |
int | getPostTrig () const |
unsigned | getRunNum () const |
int32_t | getStatus () const |
time_t | getTimeStamp () const |
void | getTimeStamp (struct timeval &t) const |
int | getTriggerType () const |
int | getTrigRec () const |
int | getTTrigPs () const |
std::vector< int > | getVernier () const |
MatacqRawEvent (const unsigned char *dataBuffer, size_t bufferSize) | |
Static Public Member Functions | |
static unsigned | getDccLen (unsigned char *data, size_t size) |
static unsigned | getOrbitId (unsigned char *data, size_t size) |
static unsigned | getRunNum (unsigned char *data, size_t size) |
Private Member Functions | |
void | setRawData (const unsigned char *buffer, size_t bufferSize) |
Static Private Member Functions | |
static int | read32 (uint32le_t *pData, field32spec_t spec, bool ovfTrans=false) |
Private Attributes | |
int | attenuation_dB |
int | boe |
int | bxId |
int | channelCount |
std::vector< ChannelData > | channelData |
uint32le_t * | daqHeader |
int | dccErrors |
unsigned | dccLen |
int | delayA |
int | emtcDelay |
int | emtcPhase |
int32_t | error |
unsigned | eventId |
int | fedId |
int | fov |
int | fragLen |
int | freqGHz |
int | h1Marker |
int | laserPower |
int | matacqDataFormatVersion |
uint32_t | orbitId |
int | parsedLen |
int | postTrig |
uint16le_t * | pSamples |
unsigned | runNum |
struct timeval | timeStamp |
int | triggerType |
int | trigRec |
int | tTrigPs |
std::vector< int > | vernier |
Static Private Attributes | |
static const field32spec_t | fov32 = {0, 0x000000F0} |
static const field32spec_t | fedId32 = {0, 0x000FFF00} |
static const field32spec_t | bxId32 = {0, 0xFFF00000} |
static const field32spec_t | lv132 = {1, 0x00FFFFFF} |
static const field32spec_t | triggerType32 = {1, 0x0F000000} |
static const field32spec_t | boeType32 = {1, 0xF0000000} |
static const field32spec_t | dccLen32 = {2, 0x00FFFFFF} |
static const field32spec_t | dccErrors32 = {2, 0xFF000000} |
static const field32spec_t | runNum32 = {3, 0x00FFFFFF} |
static const field32spec_t | h1Marker32 = {3, 0x3F000000} |
static const field32spec_t | formatVersion32 = {4, 0x0000FFFF} |
static const field32spec_t | freqGHz32 = {4, 0x00FF0000} |
static const field32spec_t | channelCount32 = {4, 0xFF000000} |
static const field32spec_t | timeStamp32 = {5, 0xFFFFFFFF} |
static const field32spec_t | tTrigPs32 = {6, 0xFFFFFFFF} |
static const field32spec_t | orbitId32 = {7, 0xFFFFFFFF} |
static const field32spec_t | trigRec32 = {11,0xFF000000} |
static const field32spec_t | postTrig32 = {11,0x0000FFFF} |
static const field32spec_t | vernier0_32 = {8, 0x0000FFFF} |
static const field32spec_t | vernier1_32 = {8, 0xFFFF0000} |
static const field32spec_t | vernier2_32 = {9, 0x0000FFFF} |
static const field32spec_t | vernier3_32 = {9, 0xFFFF0000} |
static const field32spec_t | timeStampMicroSec32 = {10,0xFFFFFFFF} |
static const field32spec_t | laserPower32 = {12,0x000000FF} |
static const field32spec_t | attenuation_dB32 = {12,0x00000F00} |
static const field32spec_t | emtcPhase32 = {12,0x0000F000} |
static const field32spec_t | emtcDelay32 = {12,0xFFFF0000} |
static const field32spec_t | delayA32 = {13,0x0000FFFF} |
static const field32spec_t | dccId32 = {13,0x003F0000} |
static const field32spec_t | color32 = {13,0x00600000} |
static const field32spec_t | trigType32 = {13,0x07000000} |
static const field32spec_t | side32 = {13,0x08000000} |
Wrapper for matacq raw event fragments. This class provides the method to interpret the data.
Definition at line 29 of file MatacqRawEvent.h.
Enumerator | |
---|---|
errorLengthConsistency |
Event length is specified both in the data header and the trailer. This flags indicates an inconsitency between the two indications. |
errorLength |
Error in data length. |
errorWrongBoe |
Wrong Begin of event flag |
Definition at line 32 of file MatacqRawEvent.h.
|
inline |
Constuctor.
dataBuffer | pointer to the raw data. Beware the data are not copied, therefore the data must be kept valid during the lifetime of the constructed object. pData must be aligned at least on 32-bit words. |
bufferSize | size of the buffer pointed by dataBuffer and containing the data. The data themselves are allowed to be smaller than the buffer. |
std::exception | if the data cannot be decoded due to data corruption or truncation. |
Definition at line 159 of file MatacqRawEvent.h.
|
inline |
Logarithmic attenuator setting in -10dB unit. Between 0 and 5*(-10dB), 0xF if unknown.
Definition at line 352 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
Gets the beging of event field contents (BOE). Must be 0x5.
Definition at line 195 of file MatacqRawEvent.h.
|
inline |
Gets the bunch crossing id field contents.
Definition at line 180 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData(), and MatacqDataFormatter::printData().
|
inline |
Gets the matacq channel count field contents.
Definition at line 278 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::printData().
|
inline |
Gets the matacq channel data. Beware that no copy is done and that the returned data will be invalidated if the data contains in the buffer is modified (see constructor and setRawData().
Definition at line 285 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData(), and MatacqDataFormatter::printData().
|
inline |
Gets the event length specifies in the DAQ trailer
Definition at line 240 of file MatacqRawEvent.h.
|
inline |
Gets the contents of the DCC error field. Currently Not used for Matacq.
Definition at line 246 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::printData().
|
inline |
Gets the event length specifies in the "a la DCC" header.
Definition at line 200 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::printData().
|
inlinestatic |
Gets the event length specifies in the DCC-type header of a matacq event.
data | buffer. Needs to contains at least the 3 first 32-bit words of the event. |
buffer | size |
Definition at line 208 of file MatacqRawEvent.h.
|
inline |
"Delay A" setting of laser delay box in ns.
Definition at line 339 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
WTE-to-Laser delay of EMTC in LHC clock unit.
Definition at line 343 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
EMTC laser phase in 1/8th LHC clock unit.
Definition at line 347 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
Gets the LV1 field contents.
Definition at line 185 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData(), and MatacqDataFormatter::printData().
|
inline |
Gets the FED ID field contents. Should be 655.
Definition at line 175 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::printData().
|
inline |
Gets the Fed event fragment data format (FOV) field content. Currently the FOV is not used for MATACQ. Note that matacq data format has its own internal version. See getMatacqDataFormatVersion()
Definition at line 170 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::printData().
|
inline |
Gets the matacq sampling frequency field contents.
Definition at line 273 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData(), and MatacqDataFormatter::printData().
|
inline |
Gets the header marker field contents. Must be 1
Definition at line 256 of file MatacqRawEvent.h.
|
inline |
Laser power in percents (set with the linear attenuator).
Definition at line 356 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
Gets the matcq data format version
Definition at line 262 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData(), and MatacqDataFormatter::printData().
|
inlinestatic |
Gets the orbit id from the header of a matacq event. Data format of the event must be >=3.
data | buffer. Needs to contains at least the 8 first 32-bit words of the event. |
buffer | size |
Definition at line 220 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
Gets the LHC orbit ID of the event Available only for Matacq data format version >=3 and for P5 data.
Definition at line 319 of file MatacqRawEvent.h.
|
inline |
Gets the data length in number of 64-bit words computed by the data parser.
Definition at line 293 of file MatacqRawEvent.h.
|
inline |
Posttrig value (see Matacq documentation). Available only for Matacq data format version >=3.
Definition at line 330 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inlinestatic |
Gets the run number from the header of a matacq event.
data | buffer. Needs to contains at least the 4 first 32-bit words of the event. |
buffer | size |
Definition at line 231 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::printData().
|
inline |
Gets the run number field contents.
Definition at line 251 of file MatacqRawEvent.h.
|
inline |
Gets the raw data status. Bitwise OR of the error flags defined by matcqError_t
Definition at line 268 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::printData().
|
inline |
Gets the matacq data timestamp field contents:
Definition at line 300 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData(), and MatacqDataFormatter::printData().
|
inline |
Gets the matacq data timestamp with fine granularity (89.1us)
Definition at line 307 of file MatacqRawEvent.h.
|
inline |
Gets the trigger type field contents.
Definition at line 190 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData(), and MatacqDataFormatter::printData().
|
inline |
Gets the Trig Rec value (see Matacq documentation) Available only for Matacq data format version >=3.
Definition at line 325 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
Gets the Matacq trigger time.
Definition at line 313 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
inline |
Vernier values (see Matacq documentation) Available only for Matacq data format version >=3.
Definition at line 335 of file MatacqRawEvent.h.
Referenced by MatacqDataFormatter::interpretRawData().
|
staticprivate |
Help function to decode header content.
data | pointer |
spec | specification of the data field to read |
ovfTrans | switch of overflow translation. If true the MSB of the data field is interpreted as an overflow bit. If it is set, then -1 is returned. |
Definition at line 203 of file MatacqRawEvent.cc.
|
private |
Help function to get the maximum value of a data field
spec32 | data field specification |
buffer | new pointer to the data buffer. Must be aligned at least on 32-bit words. |
size | of the data buffer. |
std::exception | if the data cannot be decoded due to data corruption or truncation. |
Definition at line 81 of file MatacqRawEvent.cc.
|
private |
Logarithmic attenuator setting in -10dB unit. Between 0 and 5*(-10dB), 0xF if unknown.
Definition at line 505 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 137 of file MatacqRawEvent.h.
|
private |
Begin Of Event marker
Definition at line 388 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 112 of file MatacqRawEvent.h.
|
private |
Bunch crossing Id
Definition at line 392 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 109 of file MatacqRawEvent.h.
|
private |
Number of matacq channels in the data.
Definition at line 396 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 124 of file MatacqRawEvent.h.
|
private |
Channel samples
Definition at line 400 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 142 of file MatacqRawEvent.h.
|
private |
Pointer to the standard CMS DAQ header
Definition at line 404 of file MatacqRawEvent.h.
|
private |
DCC error field content.
Definition at line 408 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 114 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 141 of file MatacqRawEvent.h.
|
private |
Event length specified in 'DCC' header
Definition at line 412 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 113 of file MatacqRawEvent.h.
|
private |
"Delay A" setting of laser delay box in ns.
Definition at line 492 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 140 of file MatacqRawEvent.h.
|
private |
WTE-to-Laser delay of EMTC in LHC clock unit.
Definition at line 496 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 139 of file MatacqRawEvent.h.
|
private |
EMTC laser phase in 1/8th LHC clock unit.
Definition at line 500 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 138 of file MatacqRawEvent.h.
|
private |
Error code or 0 if no error.
Definition at line 420 of file MatacqRawEvent.h.
|
private |
Event id. Actually LV1 ID.
Definition at line 416 of file MatacqRawEvent.h.
|
private |
FED ID
Definition at line 424 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 108 of file MatacqRawEvent.h.
|
staticprivate |
Matacq header field specifications.
Definition at line 122 of file MatacqRawEvent.h.
|
private |
FED data format version
Definition at line 428 of file MatacqRawEvent.h.
|
staticprivate |
DAQ header field specifications.
Definition at line 107 of file MatacqRawEvent.h.
|
private |
event fragment length as read in the std DAQ trailer. In 64-bit words
Definition at line 432 of file MatacqRawEvent.h.
|
private |
MATACQ sampling frequency in GHz
Definition at line 436 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 123 of file MatacqRawEvent.h.
|
private |
header marker
Definition at line 440 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 116 of file MatacqRawEvent.h.
|
private |
Laser power in percents (set with the linear attenuator).
Definition at line 509 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 136 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 110 of file MatacqRawEvent.h.
|
private |
Matacq header:MATACQ data format internal version
Definition at line 448 of file MatacqRawEvent.h.
|
private |
Definition at line 476 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 127 of file MatacqRawEvent.h.
|
private |
event lenght computed by the raw data parser
Definition at line 452 of file MatacqRawEvent.h.
|
private |
Posttrig value (see Matacq documentation)
Definition at line 484 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 129 of file MatacqRawEvent.h.
|
private |
Pointer to MATACQ samples block
Definition at line 456 of file MatacqRawEvent.h.
|
private |
Run number
Definition at line 460 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 115 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 144 of file MatacqRawEvent.h.
|
private |
Matacq acquisition time stamp
Definition at line 464 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 125 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 134 of file MatacqRawEvent.h.
|
private |
Trigger type
Definition at line 472 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 111 of file MatacqRawEvent.h.
|
private |
Trig Rec value (see Matacq documentation)
Definition at line 480 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 128 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 143 of file MatacqRawEvent.h.
|
private |
MATACQ trigger time position in ps
Definition at line 468 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 126 of file MatacqRawEvent.h.
|
private |
Vernier values (see Matacq documentation)
Definition at line 488 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 130 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 131 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 132 of file MatacqRawEvent.h.
|
staticprivate |
Definition at line 133 of file MatacqRawEvent.h.