![]() |
Project
|
#include <RAWDataHeader.h>
Public Attributes | ||
union { | ||
uint64_t word0 = 0x0000ffff00004004 | ||
struct { | ||
uint64_t version: 8 | ||
uint64_t headerSize: 8 | ||
bit 0 to 7: header version More... | ||
uint64_t blockLength: 16 | ||
bit 8 to 15: header size More... | ||
uint64_t feeId: 16 | ||
bit 16 to 31: block length More... | ||
uint64_t priority: 8 | ||
bit 32 to 47: FEE identifier More... | ||
uint64_t zero0: 8 | ||
bit 48 to 55: priority bit More... | ||
} | ||
}; | ||
union { | ||
uint64_t word1 = 0x0 | ||
struct { | ||
uint32_t offsetToNext: 16 | ||
uint32_t memorySize: 16 | ||
bit 64 to 79: offset to next packet in memory More... | ||
uint8_t linkID: 8 | ||
bit 80 to 95: memory size More... | ||
uint8_t packetCounter: 8 | ||
bit 96 to 103: link id More... | ||
uint16_t cruID: 12 | ||
bit 104 to 111: packet counter More... | ||
uint8_t endPointID: 4 | ||
bit 112 to 123: CRU ID More... | ||
} | ||
data written by the CRU | ||
}; | ||
union { | ||
uint64_t word2 = 0x0 | ||
struct { | ||
uint32_t triggerOrbit | ||
uint32_t heartbeatOrbit | ||
bit 0 to 31: trigger orbit More... | ||
} | ||
}; | ||
union { | ||
uint64_t word3 = 0x0 | ||
}; | ||
union { | ||
uint64_t word4 = 0x0 | ||
struct { | ||
uint64_t triggerBC: 12 | ||
uint64_t zero41: 4 | ||
bit 32 to 43: trigger BC ID More... | ||
uint64_t heartbeatBC: 12 | ||
bit 44 to 47: zeroed More... | ||
uint64_t zero42: 4 | ||
bit 48 to 59: heartbeat BC ID More... | ||
uint64_t triggerType: 32 | ||
bit 60 to 63: zeroed More... | ||
} | ||
}; | ||
union { | ||
uint64_t word5 = 0x0 | ||
}; | ||
union { | ||
uint64_t word6 = 0x0 | ||
struct { | ||
uint64_t detectorField: 16 | ||
uint64_t par: 16 | ||
bit 32 to 47: detector field More... | ||
uint64_t stop: 8 | ||
bit 48 to 63: par More... | ||
uint64_t pageCnt: 16 | ||
bit 0 to 7: stop code More... | ||
uint64_t zero6: 8 | ||
bit 8 to 23: pages counter More... | ||
} | ||
}; | ||
union { | ||
uint64_t word7 = 0x0 | ||
}; | ||
RDH v4 consists of 4 64 bit words, each of the words is extended to 128 bits by the CRU preliminary description of the fields can be found here https://gitlab.cern.ch/AliceO2Group/wp6-doc/blob/master/rdh/RDHV4.md accessed on Oct 07 2019, the old document is under https://docs.google.com/document/d/1otkSDYasqpVBDnxplBI7dWNxaZohctA-bvhyrzvtLoQ
RDH v3 is identical to v4 except that a couple of fields in the CRU filled data in word 1 are not defined (CRU ID, packet counter)
32 bit words of Field 4 and 6. Fixed on Sep 17 2018 in the document.
63 56 48 40 32 24 16 8 0 |---------------|---------------|---------------|---------------| |reserve| prior | | header |
0 | zero |ity bit| FEE id | block length | size | vers |
1 |ep | cru id |pcount|link id | memory size |offset nxt pack|
2 | heartbeat orbit | trigger orbit |
3 | reserved |
4 | trigger type |res| HB BC |res|trigger BC |
5 | reserved |
6 |res| page count | stop | detector par |detector field |
7 | reserved |
Field 1,3,5,7 are reserved fields and added to extend each word to 128 bit, marked grey in the documentation to indicate that those fields are added by the CRU Field 1 contains additional information added by the CRU, like actual data size and offset to the next page.
Field description:
Definition at line 382 of file RAWDataHeader.h.
union { ... } o2::header::RAWDataHeaderV4 |
union { ... } o2::header::RAWDataHeaderV4 |
union { ... } o2::header::RAWDataHeaderV4 |
union { ... } o2::header::RAWDataHeaderV4 |
union { ... } o2::header::RAWDataHeaderV4 |
union { ... } o2::header::RAWDataHeaderV4 |
union { ... } o2::header::RAWDataHeaderV4 |
union { ... } o2::header::RAWDataHeaderV4 |
uint64_t o2::header::RAWDataHeaderV4::blockLength |
bit 8 to 15: header size
Definition at line 394 of file RAWDataHeader.h.
uint16_t o2::header::RAWDataHeaderV4::cruID |
bit 104 to 111: packet counter
Definition at line 407 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::detectorField |
Definition at line 437 of file RAWDataHeader.h.
uint8_t o2::header::RAWDataHeaderV4::endPointID |
bit 112 to 123: CRU ID
Definition at line 408 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::feeId |
bit 16 to 31: block length
Definition at line 395 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::headerSize |
bit 0 to 7: header version
Definition at line 393 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::heartbeatBC |
bit 44 to 47: zeroed
Definition at line 426 of file RAWDataHeader.h.
uint32_t o2::header::RAWDataHeaderV4::heartbeatOrbit |
bit 0 to 31: trigger orbit
Definition at line 415 of file RAWDataHeader.h.
uint8_t o2::header::RAWDataHeaderV4::linkID |
bit 80 to 95: memory size
Definition at line 405 of file RAWDataHeader.h.
uint32_t o2::header::RAWDataHeaderV4::memorySize |
bit 64 to 79: offset to next packet in memory
Definition at line 404 of file RAWDataHeader.h.
uint32_t o2::header::RAWDataHeaderV4::offsetToNext |
Definition at line 403 of file RAWDataHeader.h.
uint8_t o2::header::RAWDataHeaderV4::packetCounter |
bit 96 to 103: link id
Definition at line 406 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::pageCnt |
bit 0 to 7: stop code
Definition at line 440 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::par |
bit 32 to 47: detector field
Definition at line 438 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::priority |
bit 32 to 47: FEE identifier
Definition at line 396 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::stop |
bit 48 to 63: par
Definition at line 439 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::triggerBC |
Definition at line 424 of file RAWDataHeader.h.
uint32_t o2::header::RAWDataHeaderV4::triggerOrbit |
Definition at line 414 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::triggerType |
bit 60 to 63: zeroed
Definition at line 428 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::version |
Definition at line 392 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word0 = 0x0000ffff00004004 |
Definition at line 385 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word1 = 0x0 |
Definition at line 401 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word2 = 0x0 |
Definition at line 412 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word3 = 0x0 |
Definition at line 419 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word4 = 0x0 |
Definition at line 422 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word5 = 0x0 |
Definition at line 432 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word6 = 0x0 |
Definition at line 435 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::word7 = 0x0 |
Definition at line 445 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::zero0 |
bit 48 to 55: priority bit
Definition at line 397 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::zero41 |
bit 32 to 43: trigger BC ID
Definition at line 425 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::zero42 |
bit 48 to 59: heartbeat BC ID
Definition at line 427 of file RAWDataHeader.h.
uint64_t o2::header::RAWDataHeaderV4::zero6 |
bit 8 to 23: pages counter
Definition at line 441 of file RAWDataHeader.h.