CMS 3D CMS Logo

L1TGlobalProducer.h
Go to the documentation of this file.
1 #ifndef L1TGlobalProducer_h
2 #define L1TGlobalProducer_h
3 
4 // Emulator for L1T Global
5 // author: Brian Winer Ohio State
6 
7 #include <string>
8 #include <vector>
9 #include <iostream>
10 #include <fstream>
11 
19 
21 
31 
33 class L1GtParameters;
34 class L1GtBoardMaps;
35 
37 class L1GtTriggerMask;
38 
39 class TriggerMenu;
40 
41 // class declaration
42 
44 public:
45  explicit L1TGlobalProducer(const edm::ParameterSet&);
46  ~L1TGlobalProducer() override;
47 
48  void produce(edm::Event&, const edm::EventSetup&) override;
49 
50  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
51 
52 private:
54 
57  unsigned long long m_l1GtParCacheID;
58 
59  // trigger menu
60  std::unique_ptr<TriggerMenu> m_l1GtMenu;
61  unsigned long long m_l1GtMenuCacheID;
62 
63  // number of physics triggers
64  unsigned int m_numberPhysTriggers;
65 
66  // number of DAQ partitions
67  unsigned int m_numberDaqPartitions;
68 
69  // number of objects of each type
70  int m_nrL1Mu;
72  int m_nrL1EG;
73  int m_nrL1Tau;
74 
75  int m_nrL1Jet;
76 
77  // ... the rest of the objects are global
80 
83 
86 
88  unsigned int m_bstLengthBytes;
89 
92  unsigned long long m_l1GtBMCacheID;
93 
96  unsigned long long m_l1GtPfAlgoCacheID;
97 
98  const std::vector<std::vector<double>>* m_prescaleFactorsAlgoTrig;
99  std::vector<std::vector<double>> m_initialPrescaleFactorsAlgoTrig;
100 
102 
105  unsigned long long m_l1GtTmAlgoCacheID;
106 
108  unsigned long long m_l1GtTmVetoAlgoCacheID;
109 
110  const std::vector<unsigned int>* m_triggerMaskAlgoTrig;
111  std::vector<unsigned int> m_initialTriggerMaskAlgoTrig;
112 
113  const std::vector<int>* m_triggerMaskVetoAlgoTrig;
115 
116  std::unique_ptr<l1t::GlobalBoard> m_uGtBrd;
117 
123 
133 
137 
140 
143 
146 
152 
155 
159 
162 
164  unsigned int m_prescaleSet;
165 
170 
174 
179 
184 
188 
189  // disables resetting the prescale counters each lumisection (needed for offline)
191 
192  // initialise prescale counters with a semi-random value in the range [0, prescale*10^precision - 1];
193  // if false, the prescale counters are initialised to zero
195 
196  // switch to load muon showers in the global board
198 };
199 
200 #endif // L1TGlobalProducer_h
const L1GtBoardMaps * m_l1GtBM
board maps - cache only the record
edm::InputTag m_jetInputTag
unsigned int m_numberDaqPartitions
edm::InputTag m_algoblkInputTag
unsigned long long m_l1GtParCacheID
unsigned long long m_l1GtTmVetoAlgoCacheID
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
int m_verbosity
verbosity level
uint16_t m_activeBoardsGtDaq
active boards in L1 GT DAQ record
edm::InputTag m_egInputTag
input tag for calorimeter collections from GCT
edm::EDGetTokenT< BXVector< l1t::Tau > > m_tauInputToken
const l1t::PrescalesVetosFractHelper * m_l1GtPrescalesVetosFract
prescale factors
int m_psBstLengthBytes
length of BST record (in bytes) from parameter set
bool m_produceL1GtObjectMapRecord
logical flag to produce the L1 GT object map record
int m_totalBxInEvent
total number of Bx&#39;s in the event coming from EventSetup
unsigned int m_numberPhysTriggers
const L1TGlobalParameters * m_l1GtStablePar
cached stuff
edm::EDGetTokenT< BXVector< GlobalExtBlk > > m_extInputToken
edm::ESGetToken< L1TGlobalParameters, L1TGlobalParametersRcd > m_l1GtStableParToken
unsigned long long m_l1GtTmAlgoCacheID
std::vector< std::vector< double > > m_initialPrescaleFactorsAlgoTrig
~L1TGlobalProducer() override
std::vector< unsigned int > m_initialTriggerMaskAlgoTrig
edm::ESGetToken< L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcd > m_l1GtPrescaleVetosToken
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks & veto masks
const std::vector< int > * m_triggerMaskVetoAlgoTrig
unsigned int m_alternativeNrBxBoardDaq
edm::InputTag m_sumInputTag
edm::InputTag m_muInputTag
input tag for muon collection from GMT
edm::InputTag m_extInputTag
input tag for external conditions
unsigned long long m_l1GtMenuCacheID
edm::InputTag m_tauInputTag
bool m_writePsbL1GtDaqRecord
logical flag to write the PSB content in the L1 GT DAQ record
edm::InputTag m_muShowerInputTag
std::unique_ptr< TriggerMenu > m_l1GtMenu
std::vector< int > m_initialTriggerMaskVetoAlgoTrig
bool m_produceL1GtDaqRecord
logical flag to produce the L1 GT DAQ readout record
edm::EDGetTokenT< BXVector< l1t::Muon > > m_muInputToken
const L1GtTriggerMask * m_l1GtTmVetoAlgo
unsigned int m_prescaleSet
prescale set used
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::EDGetTokenT< BXVector< l1t::EtSum > > m_sumInputToken
int m_L1DataBxInEvent
Bx expected in Data coming to GT.
L1TGlobalProducer(const edm::ParameterSet &)
unsigned long long m_l1GtBMCacheID
edm::EDGetToken m_algoblkInputToken
unsigned int m_bstLengthBytes
length of BST record (in bytes) from event setup
edm::ESGetToken< L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd > m_l1GtMenuToken
unsigned long long m_l1GtPfAlgoCacheID
std::unique_ptr< l1t::GlobalBoard > m_uGtBrd
const std::vector< std::vector< double > > * m_prescaleFactorsAlgoTrig
edm::EDGetTokenT< BXVector< l1t::MuonShower > > m_muShowerInputToken
edm::EDGetTokenT< BXVector< l1t::Jet > > m_jetInputToken
edm::EDGetTokenT< BXVector< l1t::EGamma > > m_egInputToken
void produce(edm::Event &, const edm::EventSetup &) override