CMS 3D CMS Logo

L1MuGlobalMuonTrigger.h
Go to the documentation of this file.
1 //---------------------------------------------
2 //
3 // \class L1MuGlobalMuonTrigger
4 //
5 // Description: L1 Global Muon Trigger
6 //
7 //
8 //
9 // Author :
10 // Ivan Mikulec HEPHY Vienna
11 //
12 //--------------------------------------------------
13 #ifndef L1TriggerGlobalMuonTrigger_L1MuGlobalMuonTrigger_h
14 #define L1TriggerGlobalMuonTrigger_L1MuGlobalMuonTrigger_h
15 
16 //---------------
17 // C++ Headers --
18 //---------------
19 
20 #include <memory>
21 
22 //----------------------
23 // Base Class Headers --
24 //----------------------
26 
27 //------------------------------------
28 // Collaborating Class Declarations --
29 //------------------------------------
37 
50 
51 class L1MuGMTConfig;
52 class L1MuGMTPSB;
53 class L1MuGMTMatcher;
55 class L1MuGMTMipIsoAU;
56 class L1MuGMTMerger;
57 class L1MuGMTSorter;
58 
60 
61 class L1MuGMTDebugBlock;
62 
63 //---------------------
64 //-- Class Interface --
65 //---------------------
66 class L1MuGlobalMuonTrigger : public edm::one::EDProducer<edm::one::SharedResources> {
67 public:
69  ~L1MuGlobalMuonTrigger() override;
70  void beginJob() override;
71 
72  void produce(edm::Event&, const edm::EventSetup&) override;
73 
74  void reset();
75 
77  inline const L1MuGMTPSB* Data() const { return m_PSB; }
78 
80  inline const L1MuGMTMatcher* Matcher(int id) const { return m_Matcher[id]; }
81 
83  inline const L1MuGMTCancelOutUnit* CancelOutUnit(int id) const { return m_CancelOutUnit[id]; }
84 
86  inline const L1MuGMTMipIsoAU* MipIsoAU(int id) const { return m_MipIsoAU[id]; }
87 
89  inline const L1MuGMTMerger* Merger(int id) const { return m_Merger[id]; }
90 
92  inline const L1MuGMTSorter* Sorter() const { return m_Sorter; }
93 
97  std::unique_ptr<L1MuGMTReadoutCollection> getReadoutCollection();
98 
101 
103  L1MuGMTDebugBlock* DebugBlockForFill() const { return m_db.get(); };
104 
105 private:
106  L1MuGMTPSB* m_PSB;
112 
113  std::vector<L1MuGMTExtendedCand> m_ExtendedCands;
114  std::vector<L1MuGMTReadoutRecord*> m_ReadoutRingbuffer;
115 
118 
119  static std::shared_ptr<L1MuGMTConfig> m_config;
120 
121  static std::shared_ptr<L1MuGMTDebugBlock> m_db;
122 
123  unsigned long long m_L1MuGMTScalesCacheID;
124  unsigned long long m_L1MuTriggerScalesCacheID;
125  unsigned long long m_L1MuTriggerPtScaleCacheID;
126  unsigned long long m_L1MuGMTParametersCacheID;
127  unsigned long long m_L1MuGMTChannelMaskCacheID;
128  unsigned long long m_L1CaloGeometryCacheID;
129 
136 };
137 
138 #endif // L1TriggerGlobalMuonTrigger_L1MuGlobalMuonTrigger_h
const L1MuGMTSorter * Sorter() const
return pointer to Sorter
static std::shared_ptr< L1MuGMTDebugBlock > m_db
edm::ESGetToken< L1MuTriggerPtScale, L1MuTriggerPtScaleRcd > m_trigPtScaleToken
unsigned long long m_L1MuTriggerScalesCacheID
std::vector< L1MuGMTReadoutRecord * > m_ReadoutRingbuffer
unsigned long long m_L1MuGMTChannelMaskCacheID
const L1MuGMTMatcher * Matcher(int id) const
return pointer to Matcher
edm::ESGetToken< L1MuGMTParameters, L1MuGMTParametersRcd > m_gmtParamsToken
std::vector< L1MuGMTExtendedCand > m_ExtendedCands
edm::ESGetToken< L1MuTriggerScales, L1MuTriggerScalesRcd > m_trigScalesToken
void produce(edm::Event &, const edm::EventSetup &) override
const L1MuGMTMipIsoAU * MipIsoAU(int id) const
return pointer to MIP & ISO bit assignment unit
const L1MuGMTMerger * Merger(int id) const
return pointer to Merger
L1MuGlobalMuonTrigger(const edm::ParameterSet &)
L1MuGMTDebugBlock * DebugBlockForFill() const
for debug: return the debug block (in order to fill it)
unsigned long long m_L1CaloGeometryCacheID
unsigned long long m_L1MuTriggerPtScaleCacheID
L1MuGMTMipIsoAU * m_MipIsoAU[2]
edm::ESGetToken< L1MuGMTScales, L1MuGMTScalesRcd > m_gmtScalesToken
edm::ESGetToken< L1CaloGeometry, L1CaloGeometryRecord > m_caloGeomToken
std::unique_ptr< L1MuGMTReadoutCollection > getReadoutCollection()
L1MuGMTMatcher * m_Matcher[2]
L1MuGMTMerger * m_Merger[2]
L1MuGMTReadoutRecord * currentReadoutRecord() const
return a reference to the current record in the ring buffer
unsigned long long m_L1MuGMTScalesCacheID
L1MuGMTCancelOutUnit * m_CancelOutUnit[4]
edm::ESGetToken< L1MuGMTChannelMask, L1MuGMTChannelMaskRcd > m_gmtChanMaskToken
const L1MuGMTCancelOutUnit * CancelOutUnit(int id) const
return pointer to Cancel Out Unit
unsigned long long m_L1MuGMTParametersCacheID
static std::shared_ptr< L1MuGMTConfig > m_config
const L1MuGMTPSB * Data() const
return pointer to PSB