ATLAS Offline Software
NSWTriggerCommonDecoder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONNSWCMOMONDECODE_NSWTRIGGERCOMMONDECODER_H
5 #define MUONNSWCMOMONDECODE_NSWTRIGGERCOMMONDECODER_H
6 
7 #include "eformat/eformat.h"
8 #include <vector>
9 #include <string>
10 #include <memory>
11 
12 namespace Muon
13 {
14  namespace nsw
15  {
16  class NSWTriggerElink;
17 
19  {
20  public:
21  explicit NSWTriggerCommonDecoder (const eformat::read::ROBFragment &rob, const std::string& triggerType);
22  //will use trigger type for stgc/mm/pad specialization?
23  virtual ~NSWTriggerCommonDecoder () = default;
24 
25  //it's up to the user dynamic casting to needed elink type
26  //or we can make this a template but then loosing the ability to change trigger type at run time
27  const std::vector<std::shared_ptr<Muon::nsw::NSWTriggerElink>>& get_elinks () const {return m_elinks;};
28 
29  //keep in mind that the decoder is stopping at first exception:
30  //no data recovery implemented on purpose, since there are infinite ways to have broken TP packets
31  bool has_error () const {return m_has_error;};
32  int error_id () const {return m_error_id;};
33 
34  private:
35  bool m_has_error{};
36  int m_error_id{};
37  std::string m_triggerType;
38  std::vector<std::shared_ptr<Muon::nsw::NSWTriggerElink>> m_elinks;
39  };
40 
41  }
42 }
43 
44 #endif // not MUONNSWCMOMONDECODE_NSWTRIGGERCOMMONDECODER_H
Muon::nsw::NSWTriggerCommonDecoder::m_triggerType
std::string m_triggerType
Definition: NSWTriggerCommonDecoder.h:37
Muon::nsw::NSWTriggerCommonDecoder::m_error_id
int m_error_id
Definition: NSWTriggerCommonDecoder.h:36
Muon::nsw::NSWTriggerCommonDecoder::~NSWTriggerCommonDecoder
virtual ~NSWTriggerCommonDecoder()=default
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
Muon::nsw::NSWTriggerCommonDecoder::error_id
int error_id() const
Definition: NSWTriggerCommonDecoder.h:32
Muon::nsw::NSWTriggerCommonDecoder::get_elinks
const std::vector< std::shared_ptr< Muon::nsw::NSWTriggerElink > > & get_elinks() const
Definition: NSWTriggerCommonDecoder.h:27
Muon::nsw::NSWTriggerCommonDecoder::NSWTriggerCommonDecoder
NSWTriggerCommonDecoder(const eformat::read::ROBFragment &rob, const std::string &triggerType)
Definition: NSWTriggerCommonDecoder.cxx:13
Muon::nsw::NSWTriggerCommonDecoder::m_elinks
std::vector< std::shared_ptr< Muon::nsw::NSWTriggerElink > > m_elinks
Definition: NSWTriggerCommonDecoder.h:38
Muon::nsw::NSWTriggerCommonDecoder::m_has_error
bool m_has_error
Definition: NSWTriggerCommonDecoder.h:35
Muon::nsw::NSWTriggerCommonDecoder::has_error
bool has_error() const
Definition: NSWTriggerCommonDecoder.h:31
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
eformat::ROBFragment< PointerType > ROBFragment
Definition: RawEvent.h:27
RunTileMonitoring.triggerType
triggerType
Definition: RunTileMonitoring.py:162
Muon::nsw::NSWTriggerCommonDecoder
Definition: NSWTriggerCommonDecoder.h:19