CMS 3D CMS Logo

FEDHeader.cc
Go to the documentation of this file.
1 
8 
9 
10 FEDHeader::FEDHeader(const unsigned char* header) :
11  theHeader(reinterpret_cast<const fedh_t*>(header)) {}
12 
13 
15 
16 
17 uint8_t FEDHeader::triggerType() const {
19 }
20 
21 
22 uint32_t FEDHeader::lvl1ID() const {
24 }
25 
26 
27 uint16_t FEDHeader::bxID() const {
29 }
30 
31 
32 uint16_t FEDHeader::sourceID() const {
34 }
35 
36 
37 uint8_t FEDHeader::version() const {
39 }
40 
41 
42 bool FEDHeader::moreHeaders() const {
44 }
45 
46 
47 void FEDHeader::set(unsigned char* header,
48  uint8_t triggerType,
49  uint32_t lvl1ID,
50  uint16_t bxID,
51  uint16_t sourceID,
52  uint8_t version,
53  bool moreHeaders) {
54 
55  // FIXME: should check that input ranges are OK!!!
56  fedh_t* h = reinterpret_cast<fedh_t*>(header);
57  h->eventid =
59  ( (triggerType << FED_EVTY_SHIFT ) & FED_EVTY_MASK ) |
60  ( (lvl1ID << FED_LVL1_SHIFT ) & FED_LVL1_MASK );
61 
62  h->sourceid =
63  ( (bxID << FED_BXID_SHIFT ) & FED_BXID_MASK ) |
64  ( (sourceID << FED_SOID_SHIFT ) & FED_SOID_MASK ) |
65  ( (version << FED_VERSION_SHIFT) & FED_VERSION_MASK );
66 
67  if (moreHeaders)
69 }
70 
71 
72 bool FEDHeader::check() const {
74 }
75 
76 
77 const uint32_t FEDHeader::length = sizeof(fedh_t);
#define FED_HCTRLID_EXTRACT(a)
Definition: fed_header.h:32
uint8_t triggerType() const
Event Trigger type identifier.
Definition: FEDHeader.cc:17
static const uint32_t length
Definition: FEDHeader.h:54
bool moreHeaders() const
Definition: FEDHeader.cc:42
#define FED_SOID_EXTRACT(a)
Definition: fed_header.h:52
bool check() const
Check that the header is OK.
Definition: FEDHeader.cc:72
#define FED_SLINK_START_MARKER
Definition: fed_header.h:27
uint16_t sourceID() const
Identifier of the FED.
Definition: FEDHeader.cc:32
FEDHeader(const unsigned char *header)
Constructor.
Definition: FEDHeader.cc:10
uint8_t version() const
Version identifier of the FED data format.
Definition: FEDHeader.cc:37
#define FED_EVTY_EXTRACT(a)
Definition: fed_header.h:37
#define FED_MORE_HEADERS_WIDTH
Definition: fed_header.h:59
#define FED_SOID_SHIFT
Definition: fed_header.h:50
const fedh_struct * theHeader
Definition: FEDHeader.h:57
#define FED_EVTY_SHIFT
Definition: fed_header.h:35
#define FED_VERSION_EXTRACT(a)
Definition: fed_header.h:57
#define FED_BXID_MASK
Definition: fed_header.h:46
uint32_t eventid
Definition: fed_header.h:24
#define FED_VERSION_MASK
Definition: fed_header.h:56
#define FED_BXID_SHIFT
Definition: fed_header.h:45
#define FED_SOID_MASK
Definition: fed_header.h:51
struct fedh_struct fedh_t
#define FED_MORE_HEADERS_SHIFT
Definition: fed_header.h:60
#define FED_LVL1_MASK
Definition: fed_header.h:41
#define FED_VERSION_SHIFT
Definition: fed_header.h:55
#define FED_BXID_EXTRACT(a)
Definition: fed_header.h:47
#define FED_LVL1_EXTRACT(a)
Definition: fed_header.h:42
#define FED_LVL1_SHIFT
Definition: fed_header.h:40
uint16_t bxID() const
The bunch crossing number.
Definition: FEDHeader.cc:27
#define FED_MORE_HEADERS_EXTRACT(a)
Definition: fed_header.h:62
uint32_t sourceid
Definition: fed_header.h:23
uint32_t lvl1ID() const
Level-1 event number generated by the TTC system.
Definition: FEDHeader.cc:22
static void set(unsigned char *header, uint8_t triggerType, uint32_t lvl1ID, uint16_t bxID, uint16_t sourceID, uint8_t version=0, bool moreHeaders=false)
Set all fields in the header.
Definition: FEDHeader.cc:47
#define FED_EVTY_MASK
Definition: fed_header.h:36
#define FED_HCTRLID_SHIFT
Definition: fed_header.h:30
~FEDHeader()
Destructor.
Definition: FEDHeader.cc:14