ATLAS Offline Software
Loading...
Searching...
No Matches
ALFA_RawDataContainerReadOut.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ALFA_RAWDATACONTAINERREADOUT_H
6#define ALFA_RAWDATACONTAINERREADOUT_H
7
8#include "ALFA_ReadOut.h"
10
11#include <stdint.h>
12#include <vector>
13
14#include "eformat/SourceIdentifier.h"
15#include "eformat/Version.h"
17
21
25
26
27// Decoding methods for a ROD
28// S. Diglio
29
31{
32
33 private:
34
35 // Raw data word and word header
36
37 uint32_t m_wordMarker;
38
39 // Data members
40 uint16_t m_subdetId; // Sub-detector Id
41 uint16_t m_mrodId; // MROD Id
42 uint32_t m_lvl1Id; // Lvl1 Id
43 uint16_t m_ecrId; // ECR Id
44 uint16_t m_bcId; // Bunch crossing Id
45 uint32_t m_runNum; // Run sequence number
46 uint16_t m_runType; // Run Type
47 uint16_t m_triggerTypeId; // Trigger type Id
48 uint32_t m_DetEventType; // Detector Event Type
49
50
51 uint32_t m_timestamp; // timestamp
52 uint32_t m_BCId; // Bunch Crossing Id
53
54
55 // Data words in the ROD header
56
57 // Full Event marker
58 static constexpr uint32_t s_FullEVmarker = 0xaa1234aa;
59 // ROB marker
60 static constexpr uint32_t s_ROBmarker = 0xdd1234dd;
61 // ROD marker
62 static constexpr uint32_t s_RODmarker = 0xee1234ee;
63
64 static constexpr uint32_t s_RODheadersize = 0x00000009;
65 static constexpr uint32_t s_RODversion = 0x03010000;
66
67 public:
69
71 bool is_ROBmarker() const {return m_wordMarker == s_ROBmarker;}
72 bool is_RODmarker() const {return m_wordMarker == s_RODmarker;}
73
74
75 void decodeWord(uint32_t dataWord);
76 void decodeHeader(std::vector<uint32_t>& vData);
77 void decodeHeaderFull(std::vector<uint32_t>& );
78
79
80
81 // Retrieve decoded results
82 uint16_t subdetId() const {return m_subdetId;}
83 uint16_t mrodId() const {return m_mrodId;}
84 uint32_t runNum() const {return m_runNum;}
85 uint16_t runType() const {return m_runType;}
86 uint32_t lvl1Id() const {return m_lvl1Id;}
87 uint16_t ecrId() const {return m_ecrId;}
88 uint16_t bcId() const {return m_bcId;}
89 uint16_t trigtypeId() const {return m_triggerTypeId;}
90 uint32_t DetEventType() const {return m_DetEventType;}
91
92 uint32_t TimeStamp() const {return m_timestamp;}
93 uint32_t BCId() const {return m_BCId;}
94
95 private:
96
97 // Private functions
98 void setZero();
99 void setZeroFull();
100}; // ALFA_RODREADOUT_H
101
102#endif
void decodeHeaderFull(std::vector< uint32_t > &)
static constexpr uint32_t s_RODheadersize
void decodeHeader(std::vector< uint32_t > &vData)