ATLAS Offline Software
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 
67  const std::vector<std::shared_ptr<Muon::nsw::MMARTPacket>>& art_packets () const {return m_art_packets;};
68  const std::vector<std::shared_ptr<Muon::nsw::MMTrigPacket>>& trig_packets () const {return m_trig_packets;};
69 
70  private:
71 
80 
96 
97  std::vector<uint32_t> m_stream_head_nbits;
98  std::vector<uint32_t> m_stream_head_nwords;
99  std::vector<uint32_t> m_stream_head_fifo_size;
100  std::vector<uint32_t> m_stream_head_streamID;
101  std::vector<std::vector<std::vector<uint32_t>>> m_stream_data; //size is potentially not known a priori...
102  //first vector had stream index
103  //second vector contains stream data words - length defined by m_stream_head_nwords
104  //third vector used because stream data size (m_stream_head_nwords) can exceed maximum compiler size (uint64_t)
106 
107  std::vector<std::shared_ptr<Muon::nsw::MMARTPacket>> m_art_packets;
108  std::vector<std::shared_ptr<Muon::nsw::MMTrigPacket>> m_trig_packets;
109 
110  };
111  }
112 }
113 
114 
115 #endif // _MUON_NSW_TRIGGER_MML1A_ELINK_H_
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:45
NSWMMTPDecodeBitmaps.h