Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
NSWTriggerMML1AElink.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef _MUON_NSW_TRIGGER_MML1A_ELINK_H_
5 #define _MUON_NSW_TRIGGER_MML1A_ELINK_H_
6 
7 #include <stdint.h>
8 #include <vector>
9 #include <exception>
10 
13 
14 namespace Muon
15 {
16  namespace nsw
17  {
18  class NSWResourceId;
19 
20  class NSWTriggerElinkException;
21 
22  class MMARTPacket;
23 
24  class MMTrigPacket;
25 
27  {
28  public:
29 
30  NSWTriggerMML1AElink (const uint32_t *bs, uint32_t remaining);
31  virtual ~NSWTriggerMML1AElink () = default;
32 
33 
34  uint32_t head_fragID () const {return m_head_fragID;};
35  uint32_t head_sectID () const {return m_head_sectID;};
36  uint32_t head_EC () const {return m_head_EC;};
37  uint32_t head_flags () const {return m_head_flags;};
38  uint32_t head_BCID () const {return m_head_BCID;};
39  uint32_t head_orbit () const {return m_head_orbit;};
40  uint32_t head_spare () const {return m_head_spare;};
41  uint32_t L1ID () const {return m_L1ID;};
42 
47  uint32_t l1a_req_BCID () const {return m_l1a_req_BCID;};
49  uint32_t l1a_timeout () const {return m_l1a_timeout;};
54  uint32_t l1a_busy_thr () const {return m_l1a_busy_thr;};
57  uint32_t l1a_padding () const {return m_l1a_padding;};
58 
59  const std::vector<uint32_t>& stream_head_nbits () const {return m_stream_head_nbits;};
60  const std::vector<uint32_t>& stream_head_nwords () const {return m_stream_head_nwords;};
61  const std::vector<uint32_t>& stream_head_fifo_size () const {return m_stream_head_fifo_size;};
62  const std::vector<uint32_t>& stream_head_streamID () const {return m_stream_head_streamID;};
63  const std::vector<std::vector<std::vector<uint32_t>>>& stream_data () const {return m_stream_data;};
64 
65  uint32_t trailer_CRC () const {return m_trailer_CRC;};
66 
68  bool is_crc_ok () const {return m_trailer_CRC == m_trailer_CRC_calc;};
69 
70  const std::vector<std::shared_ptr<Muon::nsw::MMARTPacket>>& art_packets () const {return m_art_packets;};
71  const std::vector<std::shared_ptr<Muon::nsw::MMTrigPacket>>& trig_packets () const {return m_trig_packets;};
72 
73  private:
74 
83 
99 
100  std::vector<uint32_t> m_stream_head_nbits;
101  std::vector<uint32_t> m_stream_head_nwords;
102  std::vector<uint32_t> m_stream_head_fifo_size;
103  std::vector<uint32_t> m_stream_head_streamID;
104  std::vector<std::vector<std::vector<uint32_t>>> m_stream_data; //size is potentially not known a priori...
105  //first vector had stream index
106  //second vector contains stream data words - length defined by m_stream_head_nwords
107  //third vector used because stream data size (m_stream_head_nwords) can exceed maximum compiler size (uint64_t)
108  //CRC are actually 16b for now but keeping 32b for future proofing
110  uint32_t m_trailer_CRC_calc; //calculated CRC
111 
112  std::vector<std::shared_ptr<Muon::nsw::MMARTPacket>> m_art_packets;
113  std::vector<std::shared_ptr<Muon::nsw::MMTrigPacket>> m_trig_packets;
114 
115  };
116  }
117 }
118 
119 
120 #endif // _MUON_NSW_TRIGGER_MML1A_ELINK_H_
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
NSWMMTPDecodeBitmaps.h