@@ -32,6 +32,7 @@ static constexpr uint32_t DataWordSizeBytes = DataWordSizeBits / 8; ///< size of
3232struct CommonHeader {
3333 static constexpr uint32_t MagicWordLinkZS = 0xFC ;
3434 static constexpr uint32_t MagicWordTrigger = 0xAA ;
35+ static constexpr uint32_t MagicWordTriggerV2 = 0xAB ;
3536
3637 union {
3738 uint64_t word0 = 0 ; // /< lower 64 bits
@@ -52,9 +53,10 @@ struct CommonHeader {
5253 };
5354 };
5455
55- bool hasCorrectMagicWord () const { return (magicWord == MagicWordLinkZS) || (magicWord == MagicWordTrigger); }
56+ bool hasCorrectMagicWord () const { return (magicWord == MagicWordLinkZS) || (magicWord == MagicWordTrigger) || (magicWord == MagicWordTriggerV2) ; }
5657 bool isLinkZS () const { return (magicWord == MagicWordLinkZS); }
5758 bool isTriggerInfo () const { return (magicWord == MagicWordTrigger); }
59+ bool isTriggerInfoV2 () const { return (magicWord == MagicWordTriggerV2); }
5860};
5961
6062// / header definition of the zero suppressed link based data format
@@ -240,6 +242,28 @@ struct TriggerInfo {
240242 uint32_t getTriggerType () const { return (triggerTypeHigh << 20 ) + triggerTypeLow; }
241243};
242244
245+ // / Data definition for the new trigger information after FW update, allowing for interleaved triggers
246+ struct TriggerInfoV2 {
247+ union {
248+ uint64_t word0 = 0 ; // /< lower 64 bits
249+ struct { // /
250+ uint32_t triggerType; // /< tigger type
251+ uint32_t orbit; // /< orbit number
252+ }; // /
253+ }; // /
254+ // /
255+ union { // /
256+ uint64_t word1 = 0 ; // /< upper bits of the 80 bit bitmask
257+ struct { // /
258+ uint32_t bunchCrossing : 12 ; // /< bunch crossing number
259+ uint32_t empty1_0 : 16 ; // /< empty
260+ uint32_t numWordsPayload : 4 ; // /< number of 128bit words with 12bit ADC values, should always be 0
261+ uint32_t empty1_1 : 24 ; // /< empty
262+ uint32_t magicWord : 8 ; // /< magic word for identification
263+ };
264+ };
265+ };
266+
243267// / Container for Trigger information, header + data
244268struct TriggerContainer {
245269 CommonHeader header;
0 commit comments