![]() |
Project
|
#include <GBTWord.h>
Inherits o2::itsmft::GBTWord.
Public Types | |
enum | PacketStates : int { PacketDone = 0 , TransmissionTimeout = 1 , PacketOverflow = 2 , LaneStartsViolation = 3 , LaneTimeouts = 4 , NStatesDefined , MaxStateCombinations = 0x1 << NStatesDefined } |
Public Member Functions | |
GBTDataTrailer () | |
GBTDataTrailer (int lanesStop, int lanesTimeOut, bool done, bool transmTO, bool overflow, bool laneStViol, bool laneTO) | |
uint8_t | getPacketState () const |
void | setByte (uint8_t v, int which)=delete |
ClassDefNV (GBTDataTrailer, 1) | |
![]() | |
GBTWord ()=default | |
bool | isDataHeader () const |
check if the GBT Header corresponds to GBT payload header | |
bool | isDataTrailer () const |
check if the GBT Header corresponds to GBT payload trailer | |
bool | isTriggerWord () const |
check if the GBT Header corresponds to GBT trigger word | |
bool | isDiagnosticWord () const |
check if the GBT Header corresponds to Diagnostic data | |
bool | isCalibrationWord () const |
check if the GBT Header corresponds to Calibration word | |
bool | isDataIB () const |
check if the GBT Header corresponds to ITS IB data (header is combined with lanes info) | |
bool | isCableDiagnosticIB () const |
check if the GBT Header corresponds to ITS IB diagnostics data (header is combined with lanes info) | |
bool | isDataOB () const |
check if the GBT Header corresponds to ITS OB data (header is combined with lanes/connector info) | |
bool | isDataMFT () const |
check if the GBT Header corresponds to MFT data (header is combined with cable number) | |
bool | isCableDiagnosticOB () const |
check if the GBT Header corresponds to ITS OB diagnostics data (header is combined with lanes info) | |
bool | isData () const |
check if the GBT Header corresponds to ITS IB or OB data (header is combined with lanes/connector info) | |
bool | isCableDiagnostic () const |
bool | isStatus () const |
const uint64_t * | getW64 () const |
const uint8_t * | getW8 () const |
uint8_t | getHeader () const |
void | printX (bool padded=true, std::string com="") const |
void | printB (bool padded=true) const |
ClassDefNV (GBTWord, 1) | |
Additional Inherited Members | ||
![]() | ||
union { | ||
struct { | ||
uint64_t activeLanes: 28 | ||
uint64_t na0hn: 36 | ||
0:27 Bit map of lanes active and eligible for readout More... | ||
uint64_t na1hn: 8 | ||
28:71 reserved More... | ||
uint64_t id: 8 | ||
28:71 reserved More... | ||
} | ||
struct { | ||
uint64_t packetIdx: 16 | ||
uint64_t activeLanesL: 28 | ||
0:15 Index of Data Packet within trigger More... | ||
uint64_t na0h: 20 | ||
16:43 Bit map of lanes active and eligible for readout More... | ||
uint64_t na1h: 8 | ||
44:64 reserved More... | ||
} | ||
struct { | ||
uint64_t lanesStops: 28 | ||
uint64_t lanesTimeout: 28 | ||
0:27 Bit map of “Valid Lane stops received”, 1 bit per lane, NOT USED More... | ||
uint64_t na1t: 8 | ||
28:55 Bit map of “Lane timeouts received”, 1 bit per lane, NOT USED More... | ||
uint64_t packetDone: 1 | ||
56:63 reserved More... | ||
uint64_t transmissionTimeout: 1 | ||
64 = 1 when current trigger packets transmission done More... | ||
uint64_t packetOverflow: 1 | ||
65 = 1 if timeout while waiting for data on lanes More... | ||
uint64_t laneStartsViolation: 1 | ||
66 = 1 if max number of packets reached More... | ||
uint64_t laneTimeouts: 1 | ||
67 = 1 if at least 1 lane (eligible for readout) had a “start violation” More... | ||
uint64_t na2t: 3 | ||
68 = 1 if at least 1 lane (eligible for readout) had a “start violation” More... | ||
} | ||
struct { | ||
uint64_t triggerType: 12 | ||
uint64_t internal: 1 | ||
0:11 12 lowest bits of trigger type received from CTP More... | ||
uint64_t noData: 1 | ||
12 Used in Continuous Mode for internally generated trigger More... | ||
uint64_t continuation: 1 | ||
13 No data expected (too close to previous trigger or error) More... | ||
uint64_t na1tr: 1 | ||
14 following data is continuation of the trigger from the previous CRU page More... | ||
uint64_t bc: 12 | ||
15 reserved More... | ||
uint64_t na2tr: 4 | ||
16:27 HB or internal trigger BC count or trigger BC from CTP More... | ||
uint64_t orbit: 32 | ||
28:31 reserved More... | ||
uint64_t na3tr: 6 | ||
32:63 Last received HB Orbit or trigger orbit count/ Orbit as received from CTP More... | ||
} | ||
struct { | ||
uint64_t na0diag: 64 | ||
} | ||
struct { | ||
uint64_t diagnosticData: 64 | ||
uint64_t laneErrorID: 8 | ||
0:63 Error specific diagnostic data More... | ||
} | ||
Calibration Data Word. | ||
uint8_t data8 [16] | ||
uint64_t data64 [2] = {0} | ||
}; | ||
GBT word of 80 bits, bits 72:79 are reserver for GBT Header flag, the rest depends on specifications. | ||
Definition of ITS/MFT GBT trailer: 80 bits long word In CRU data it must be the last word of the payload
bits 0 : 27, Lanes stops received // not used at the moment bits 28 : 55, Lane timeouts received // not used at the moment bits 56 : 63, not used bits 64 : 71, State of GBT_Packet: 4: lane_timeouts, if at least 1 lane timed out 3: lane_starts_violation, if at least 1 lane had a start violation 2: packet_overflow, if max number of packets reached 1: transmission_timeout, if timeout of transmission (lanes) 0: packet_done, if Packet finished
Enumerator | |
---|---|
PacketDone | |
TransmissionTimeout | |
PacketOverflow | |
LaneStartsViolation | |
LaneTimeouts | |
NStatesDefined | |
MaxStateCombinations |
o2::itsmft::GBTDataTrailer::ClassDefNV | ( | GBTDataTrailer | , |
1 | |||
) |
|
inline |