ATLAS Offline Software
NSWTriggerCommonDecoder.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 MUONNSWCMOMONDECODE_NSWTRIGGERCOMMONDECODER_H
5 #define MUONNSWCMOMONDECODE_NSWTRIGGERCOMMONDECODER_H
6 
7 #include <stdint.h>
8 #include <vector>
9 #include <string>
10 #include <memory>
11 
12 #include "eformat/eformat.h"
13 
14 namespace Muon
15 {
16  namespace nsw
17  {
18  class NSWTriggerElink;
19 
21  {
22  public:
23  explicit NSWTriggerCommonDecoder (const eformat::read::ROBFragment &rob, const std::string& triggerType);
24  //will use trigger type for stgc/mm/pad specialization?
25  virtual ~NSWTriggerCommonDecoder () = default;
26 
27  //it's up to the user dynamic casting to needed elink type
28  //or we can make this a template but then loosing the ability to change trigger type at run time
29  const std::vector<std::shared_ptr<Muon::nsw::NSWTriggerElink>>& get_elinks () const {return m_elinks;};
30 
31  //keep in mind that the decoder is stopping at first exception:
32  //no data recovery implemented on purpose, since there are infinite ways to have broken TP packets
33  bool has_error () const {return m_has_error;};
34  int error_id () const {return m_error_id;};
35 
36  private:
37  bool m_has_error{};
38  int m_error_id{};
39  std::string m_triggerType;
40  std::vector<std::shared_ptr<Muon::nsw::NSWTriggerElink>> m_elinks;
41  };
42 
43  }
44 }
45 
46 #endif // not MUONNSWCMOMONDECODE_NSWTRIGGERCOMMONDECODER_H
Muon::nsw::NSWTriggerCommonDecoder::m_triggerType
std::string m_triggerType
Definition: NSWTriggerCommonDecoder.h:39
Muon::nsw::NSWTriggerCommonDecoder::m_error_id
int m_error_id
Definition: NSWTriggerCommonDecoder.h:38
Muon::nsw::NSWTriggerCommonDecoder::~NSWTriggerCommonDecoder
virtual ~NSWTriggerCommonDecoder()=default
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::nsw::NSWTriggerCommonDecoder::error_id
int error_id() const
Definition: NSWTriggerCommonDecoder.h:34
Muon::nsw::NSWTriggerCommonDecoder::get_elinks
const std::vector< std::shared_ptr< Muon::nsw::NSWTriggerElink > > & get_elinks() const
Definition: NSWTriggerCommonDecoder.h:29
Muon::nsw::NSWTriggerCommonDecoder::NSWTriggerCommonDecoder
NSWTriggerCommonDecoder(const eformat::read::ROBFragment &rob, const std::string &triggerType)
Definition: NSWTriggerCommonDecoder.cxx:16
Muon::nsw::NSWTriggerCommonDecoder::m_elinks
std::vector< std::shared_ptr< Muon::nsw::NSWTriggerElink > > m_elinks
Definition: NSWTriggerCommonDecoder.h:40
Muon::nsw::NSWTriggerCommonDecoder::m_has_error
bool m_has_error
Definition: NSWTriggerCommonDecoder.h:37
Muon::nsw::NSWTriggerCommonDecoder::has_error
bool has_error() const
Definition: NSWTriggerCommonDecoder.h:33
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:21