CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
L1TGlobalProducer Class Reference

#include <L1TGlobalProducer.h>

Inheritance diagram for L1TGlobalProducer:
edm::stream::EDProducer<>

Public Member Functions

 L1TGlobalProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~L1TGlobalProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

uint16_t m_activeBoardsGtDaq
 active boards in L1 GT DAQ record More...
 
edm::InputTag m_algoblkInputTag
 
edm::EDGetToken m_algoblkInputToken
 
bool m_algorithmTriggersUnmasked
 
bool m_algorithmTriggersUnprescaled
 
unsigned int m_alternativeNrBxBoardDaq
 
unsigned int m_bstLengthBytes
 length of BST record (in bytes) from event setup More...
 
uint m_currentLumi
 
edm::InputTag m_egInputTag
 input tag for calorimeter collections from GCT More...
 
edm::EDGetTokenT< BXVector< l1t::EGamma > > m_egInputToken
 
int m_emulateBxInEvent
 
edm::InputTag m_extInputTag
 input tag for external conditions More...
 
edm::EDGetTokenT< BXVector< GlobalExtBlk > > m_extInputToken
 
bool m_getPrescaleColumnFromData
 
int m_ifCaloEtaNumberBits
 
int m_ifMuEtaNumberBits
 
std::vector< std::vector< double > > m_initialPrescaleFactorsAlgoTrig
 
std::vector< unsigned int > m_initialTriggerMaskAlgoTrig
 
std::vector< int > m_initialTriggerMaskVetoAlgoTrig
 
bool m_isDebugEnabled
 
edm::InputTag m_jetInputTag
 
edm::EDGetTokenT< BXVector< l1t::Jet > > m_jetInputToken
 
int m_L1DataBxInEvent
 Bx expected in Data coming to GT. More...
 
const L1GtBoardMapsm_l1GtBM
 board maps - cache only the record More...
 
unsigned long long m_l1GtBMCacheID
 
std::unique_ptr< TriggerMenum_l1GtMenu
 
unsigned long long m_l1GtMenuCacheID
 
edm::ESGetToken< L1TUtmTriggerMenu, L1TUtmTriggerMenuRcdm_l1GtMenuToken
 
unsigned long long m_l1GtParCacheID
 
unsigned long long m_l1GtPfAlgoCacheID
 
const l1t::PrescalesVetosFractHelperm_l1GtPrescalesVetosFract
 prescale factors More...
 
edm::ESGetToken< L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcdm_l1GtPrescaleVetosToken
 
const L1TGlobalParametersm_l1GtStablePar
 cached stuff More...
 
edm::ESGetToken< L1TGlobalParameters, L1TGlobalParametersRcdm_l1GtStableParToken
 
const L1GtTriggerMaskm_l1GtTmAlgo
 trigger masks & veto masks More...
 
unsigned long long m_l1GtTmAlgoCacheID
 
const L1GtTriggerMaskm_l1GtTmVetoAlgo
 
unsigned long long m_l1GtTmVetoAlgoCacheID
 
edm::InputTag m_muInputTag
 input tag for muon collection from GMT More...
 
edm::EDGetTokenT< BXVector< l1t::Muon > > m_muInputToken
 
int m_nrL1EG
 
int m_nrL1Jet
 
int m_nrL1Mu
 
int m_nrL1Tau
 
unsigned int m_numberDaqPartitions
 
unsigned int m_numberPhysTriggers
 
const std::vector< std::vector< double > > * m_prescaleFactorsAlgoTrig
 
unsigned int m_prescaleSet
 prescale set used More...
 
std::string m_prescalesFile
 CSV file for prescales. More...
 
bool m_printL1Menu
 
bool m_produceL1GtDaqRecord
 logical flag to produce the L1 GT DAQ readout record More...
 
bool m_produceL1GtObjectMapRecord
 logical flag to produce the L1 GT object map record More...
 
int m_psBstLengthBytes
 length of BST record (in bytes) from parameter set More...
 
bool m_requireMenuToMatchAlgoBlkInput
 
edm::InputTag m_sumInputTag
 
edm::EDGetTokenT< BXVector< l1t::EtSum > > m_sumInputToken
 
edm::InputTag m_tauInputTag
 
edm::EDGetTokenT< BXVector< l1t::Tau > > m_tauInputToken
 
int m_totalBxInEvent
 total number of Bx's in the event coming from EventSetup More...
 
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
 
const std::vector< int > * m_triggerMaskVetoAlgoTrig
 
std::unique_ptr< l1t::GlobalBoardm_uGtBrd
 
int m_verbosity
 verbosity level More...
 
bool m_writePsbL1GtDaqRecord
 logical flag to write the PSB content in the L1 GT DAQ record More...
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 43 of file L1TGlobalProducer.h.

Constructor & Destructor Documentation

◆ L1TGlobalProducer()

L1TGlobalProducer::L1TGlobalProducer ( const edm::ParameterSet parSet)
explicit

Definition at line 83 of file L1TGlobalProducer.cc.

84  : m_muInputTag(parSet.getParameter<edm::InputTag>("MuonInputTag")),
85  m_egInputTag(parSet.getParameter<edm::InputTag>("EGammaInputTag")),
86  m_tauInputTag(parSet.getParameter<edm::InputTag>("TauInputTag")),
87  m_jetInputTag(parSet.getParameter<edm::InputTag>("JetInputTag")),
88  m_sumInputTag(parSet.getParameter<edm::InputTag>("EtSumInputTag")),
89  m_extInputTag(parSet.getParameter<edm::InputTag>("ExtInputTag")),
90 
91  m_produceL1GtDaqRecord(parSet.getParameter<bool>("ProduceL1GtDaqRecord")),
92  m_produceL1GtObjectMapRecord(parSet.getParameter<bool>("ProduceL1GtObjectMapRecord")),
93 
94  m_emulateBxInEvent(parSet.getParameter<int>("EmulateBxInEvent")),
95  m_L1DataBxInEvent(parSet.getParameter<int>("L1DataBxInEvent")),
96 
97  m_alternativeNrBxBoardDaq(parSet.getParameter<unsigned int>("AlternativeNrBxBoardDaq")),
98  m_psBstLengthBytes(parSet.getParameter<int>("BstLengthBytes")),
99 
100  m_prescaleSet(parSet.getParameter<unsigned int>("PrescaleSet")),
101 
102  m_algorithmTriggersUnprescaled(parSet.getParameter<bool>("AlgorithmTriggersUnprescaled")),
103  m_algorithmTriggersUnmasked(parSet.getParameter<bool>("AlgorithmTriggersUnmasked")),
104 
105  m_verbosity(parSet.getUntrackedParameter<int>("Verbosity")),
106  m_printL1Menu(parSet.getUntrackedParameter<bool>("PrintL1Menu")),
108  m_getPrescaleColumnFromData(parSet.getParameter<bool>("GetPrescaleColumnFromData")),
109  m_requireMenuToMatchAlgoBlkInput(parSet.getParameter<bool>("RequireMenuToMatchAlgoBlkInput")),
110  m_algoblkInputTag(parSet.getParameter<edm::InputTag>("AlgoBlkInputTag")) {
111  m_egInputToken = consumes<BXVector<EGamma>>(m_egInputTag);
112  m_tauInputToken = consumes<BXVector<Tau>>(m_tauInputTag);
113  m_jetInputToken = consumes<BXVector<Jet>>(m_jetInputTag);
114  m_sumInputToken = consumes<BXVector<EtSum>>(m_sumInputTag);
115  m_muInputToken = consumes<BXVector<Muon>>(m_muInputTag);
116  m_extInputToken = consumes<BXVector<GlobalExtBlk>>(m_extInputTag);
117  m_l1GtStableParToken = esConsumes<L1TGlobalParameters, L1TGlobalParametersRcd>();
118  m_l1GtMenuToken = esConsumes<L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd>();
120  m_l1GtPrescaleVetosToken = esConsumes<L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcd>();
121  }
123  m_algoblkInputToken = consumes<BXVector<GlobalAlgBlk>>(m_algoblkInputTag);
124  }
125 
126  if (m_verbosity) {
127  LogTrace("L1TGlobalProducer") << "\nInput tag for muon collection from uGMT: " << m_muInputTag
128  << "\nInput tag for calorimeter jet collections from Cal: " << m_jetInputTag
129  << "\nInput tag for external conditions : " << m_extInputTag << std::endl;
130 
131  LogTrace("L1TGlobalProducer") << "\nProduce the L1 uGT DAQ readout record: " << m_produceL1GtDaqRecord
132  << "\nProduce the L1 uGT Object Map record: "
133  << m_produceL1GtObjectMapRecord << " \n"
134  << "\nNumber of BxInEvent to be emulated: " << m_emulateBxInEvent << " \n"
135  << "\nAlternative for number of BX in GT DAQ record: 0x" << std::hex
136  << m_alternativeNrBxBoardDaq << " \n"
137  << "\nRun algorithm triggers unprescaled: "
139  << "\nRun algorithm triggers unmasked (all enabled): " << m_algorithmTriggersUnmasked
140  << "\n"
141  << std::endl;
142  }
143 
144  if ((m_emulateBxInEvent > 0) && ((m_emulateBxInEvent % 2) == 0)) {
146 
147  if (m_verbosity) {
148  edm::LogWarning("L1TGlobalProducer")
149  << "\nWARNING: Number of bunch crossing to be emulated rounded to: " << m_emulateBxInEvent
150  << "\n The number must be an odd number!\n"
151  << std::endl;
152  }
153  }
154 
155  if ((m_L1DataBxInEvent > 0) && ((m_L1DataBxInEvent % 2) == 0)) {
157 
158  if (m_verbosity) {
159  edm::LogWarning("L1TGlobalProducer")
160  << "\nWARNING: Number of bunch crossing for incoming L1 Data rounded to: " << m_L1DataBxInEvent
161  << "\n The number must be an odd number!\n"
162  << std::endl;
163  }
164  } else if (m_L1DataBxInEvent < 0) {
165  m_L1DataBxInEvent = 1;
166 
167  if (m_verbosity) {
168  edm::LogWarning("L1TGlobalProducer")
169  << "\nWARNING: Number of bunch crossing for incoming L1 Data was changed to: " << m_L1DataBxInEvent
170  << "\n The number must be an odd positive number!\n"
171  << std::endl;
172  }
173  }
174 
175  // register products
177  produces<GlobalAlgBlkBxCollection>();
178  //blwEXT produces<GlobalExtBlkBxCollection>();
179  }
180 
182  produces<GlobalObjectMapRecord>();
183  }
184 
185  // create new uGt Board
186  m_uGtBrd = std::make_unique<GlobalBoard>();
187  m_uGtBrd->setVerbosity(m_verbosity);
188 
189  // initialize cached IDs
190 
191  //
192  m_l1GtParCacheID = 0ULL;
193  m_l1GtMenuCacheID = 0ULL;
194 
197 
198  m_nrL1Mu = 0;
199  m_nrL1EG = 0;
200  m_nrL1Tau = 0;
201 
202  m_nrL1Jet = 0;
203 
206 
207  //
208  m_l1GtParCacheID = 0ULL;
209 
210  m_totalBxInEvent = 0;
211 
213  m_bstLengthBytes = 0;
214 
215  //
216  m_l1GtBMCacheID = 0ULL;
217 
218  //
219  m_l1GtPfAlgoCacheID = 0ULL;
220 
221  m_l1GtTmAlgoCacheID = 0ULL;
222 
224 
225  m_currentLumi = 0;
226 
227  // Set default, initial, dummy prescale factor table
228  std::vector<std::vector<double>> temp_prescaleTable;
229 
230  temp_prescaleTable.push_back(std::vector<double>());
231  m_initialPrescaleFactorsAlgoTrig = temp_prescaleTable;
232 }

References LogTrace, m_activeBoardsGtDaq, m_algoblkInputTag, m_algoblkInputToken, m_algorithmTriggersUnmasked, m_algorithmTriggersUnprescaled, m_alternativeNrBxBoardDaq, m_bstLengthBytes, m_currentLumi, m_egInputTag, m_egInputToken, m_emulateBxInEvent, m_extInputTag, m_extInputToken, m_getPrescaleColumnFromData, m_ifCaloEtaNumberBits, m_ifMuEtaNumberBits, m_initialPrescaleFactorsAlgoTrig, m_jetInputTag, m_jetInputToken, m_L1DataBxInEvent, m_l1GtBMCacheID, m_l1GtMenuCacheID, m_l1GtMenuToken, m_l1GtParCacheID, m_l1GtPfAlgoCacheID, m_l1GtPrescaleVetosToken, m_l1GtStableParToken, m_l1GtTmAlgoCacheID, m_l1GtTmVetoAlgoCacheID, m_muInputTag, m_muInputToken, m_nrL1EG, m_nrL1Jet, m_nrL1Mu, m_nrL1Tau, m_numberDaqPartitions, m_numberPhysTriggers, m_produceL1GtDaqRecord, m_produceL1GtObjectMapRecord, m_requireMenuToMatchAlgoBlkInput, m_sumInputTag, m_sumInputToken, m_tauInputTag, m_tauInputToken, m_totalBxInEvent, m_uGtBrd, and m_verbosity.

◆ ~L1TGlobalProducer()

L1TGlobalProducer::~L1TGlobalProducer ( )
override

Definition at line 235 of file L1TGlobalProducer.cc.

235 {}

Member Function Documentation

◆ fillDescriptions()

void L1TGlobalProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 36 of file L1TGlobalProducer.cc.

36  {
38  // These parameters are part of the L1T/HLT interface, avoid changing if possible::
39  desc.add<edm::InputTag>("MuonInputTag", edm::InputTag(""))
40  ->setComment("InputTag for Global Muon Trigger (required parameter: default value is invalid)");
41  desc.add<edm::InputTag>("EGammaInputTag", edm::InputTag(""))
42  ->setComment("InputTag for Calo Trigger EGamma (required parameter: default value is invalid)");
43  desc.add<edm::InputTag>("TauInputTag", edm::InputTag(""))
44  ->setComment("InputTag for Calo Trigger Tau (required parameter: default value is invalid)");
45  desc.add<edm::InputTag>("JetInputTag", edm::InputTag(""))
46  ->setComment("InputTag for Calo Trigger Jet (required parameter: default value is invalid)");
47  desc.add<edm::InputTag>("EtSumInputTag", edm::InputTag(""))
48  ->setComment("InputTag for Calo Trigger EtSum (required parameter: default value is invalid)");
49  desc.add<edm::InputTag>("ExtInputTag", edm::InputTag(""))
50  ->setComment("InputTag for external conditions (not required, but recommend to specify explicitly in config)");
51  desc.add<edm::InputTag>("AlgoBlkInputTag", edm::InputTag("hltGtStage2Digis"))
52  ->setComment(
53  "InputTag for unpacked Algblk (required only if GetPrescaleColumnFromData orRequireMenuToMatchAlgoBlkInput "
54  "set to true)");
55  desc.add<bool>("GetPrescaleColumnFromData", false)
56  ->setComment("Get prescale column from unpacked GlobalAlgBck. Otherwise use value specified in PrescaleSet");
57  desc.add<bool>("AlgorithmTriggersUnprescaled", false)
58  ->setComment("not required, but recommend to specify explicitly in config");
59  desc.add<bool>("RequireMenuToMatchAlgoBlkInput", true)
60  ->setComment(
61  "This requires that the L1 menu record to match the menu used to produce the inputed L1 results, should be "
62  "true when used by the HLT to produce the object map");
63  desc.add<bool>("AlgorithmTriggersUnmasked", false)
64  ->setComment("not required, but recommend to specify explicitly in config");
65  // These parameters have well defined default values and are not currently
66  // part of the L1T/HLT interface. They can be cleaned up or updated at will:
67  desc.add<bool>("ProduceL1GtDaqRecord", true);
68  desc.add<bool>("ProduceL1GtObjectMapRecord", true);
69  desc.add<int>("EmulateBxInEvent", 1);
70  desc.add<int>("L1DataBxInEvent", 5);
71  desc.add<unsigned int>("AlternativeNrBxBoardDaq", 0);
72  desc.add<int>("BstLengthBytes", -1);
73  desc.add<unsigned int>("PrescaleSet", 1);
74  desc.addUntracked<int>("Verbosity", 0);
75  desc.addUntracked<bool>("PrintL1Menu", false);
76  desc.add<std::string>("TriggerMenuLuminosity", "startup");
77  desc.add<std::string>("PrescaleCSVFile", "prescale_L1TGlobal.csv");
78  descriptions.add("L1TGlobalProducer", desc);
79 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

void L1TGlobalProducer::produce ( edm::Event iEvent,
const edm::EventSetup evSetup 
)
override

Needs error checking that something exists at this bx.

Definition at line 240 of file L1TGlobalProducer.cc.

240  {
241  // process event iEvent
242  // get / update the stable parameters from the EventSetup
243  // local cache & check on cacheIdentifier
244 
245  unsigned long long l1GtParCacheID = evSetup.get<L1TGlobalParametersRcd>().cacheIdentifier();
246 
247  if (m_l1GtParCacheID != l1GtParCacheID) {
249  m_l1GtStablePar = l1GtStablePar.product();
250  const GlobalParamsHelper* data = GlobalParamsHelper::readFromEventSetup(m_l1GtStablePar);
251 
252  // number of bx
253  m_totalBxInEvent = data->totalBxInEvent();
254 
255  // number of physics triggers
256  m_numberPhysTriggers = data->numberPhysTriggers();
257 
258  // number of objects of each type
259  m_nrL1Mu = data->numberL1Mu();
260 
261  // EG
262  m_nrL1EG = data->numberL1EG();
263 
264  // jets
265  m_nrL1Jet = data->numberL1Jet();
266 
267  // taus
268  m_nrL1Tau = data->numberL1Tau();
269 
270  if (m_L1DataBxInEvent < 1)
271  m_L1DataBxInEvent = 1;
272  int minL1DataBxInEvent = (m_L1DataBxInEvent + 1) / 2 - m_L1DataBxInEvent;
273  int maxL1DataBxInEvent = (m_L1DataBxInEvent + 1) / 2 - 1;
274 
275  // Initialize Board
276  m_uGtBrd->init(
277  m_numberPhysTriggers, m_nrL1Mu, m_nrL1EG, m_nrL1Tau, m_nrL1Jet, minL1DataBxInEvent, maxL1DataBxInEvent);
278 
279  //
280  m_l1GtParCacheID = l1GtParCacheID;
281  }
282 
283  if (m_emulateBxInEvent < 0) {
285  }
286 
287  if (m_emulateBxInEvent < 1)
288  m_emulateBxInEvent = 1;
289  int minEmulBxInEvent = (m_emulateBxInEvent + 1) / 2 - m_emulateBxInEvent;
290  int maxEmulBxInEvent = (m_emulateBxInEvent + 1) / 2 - 1;
291 
292  // get / update the trigger menu from the EventSetup
293  // local cache & check on cacheIdentifier
294  unsigned long long l1GtMenuCacheID = evSetup.get<L1TUtmTriggerMenuRcd>().cacheIdentifier();
295 
296  if (m_l1GtMenuCacheID != l1GtMenuCacheID) {
297  const GlobalParamsHelper* data = GlobalParamsHelper::readFromEventSetup(m_l1GtStablePar);
298 
300  const L1TUtmTriggerMenu* utml1GtMenu = l1GtMenu.product();
301 
304  iEvent.getByToken(m_algoblkInputToken, m_uGtAlgBlk);
305  if (m_uGtAlgBlk->size() >= 1) {
306  if ((*m_uGtAlgBlk)[0].getL1FirmwareUUID() != static_cast<int>(utml1GtMenu->getFirmwareUuidHashed())) {
307  throw cms::Exception("ConditionsError")
308  << " Error L1 menu loaded in via conditions does not match the L1 actually run "
309  << (*m_uGtAlgBlk)[0].getL1FirmwareUUID() << " vs " << utml1GtMenu->getFirmwareUuidHashed()
310  << ". This means that the mapping of the names to the bits may be incorrect. Please check the "
311  "L1TUtmTriggerMenuRcd record supplied. Unless you know what you are doing, do not simply disable this "
312  "check via the config as this a major error and the indication of something very wrong";
313  }
314  }
315  }
316 
317  // Instantiate Parser
319 
320  gtParser.setGtNumberConditionChips(data->numberChips());
321  gtParser.setGtPinsOnConditionChip(data->pinsOnChip());
322  gtParser.setGtOrderConditionChip(data->orderOfChip());
323  gtParser.setGtNumberPhysTriggers(data->numberPhysTriggers());
324 
325  //Parse menu into emulator classes
326  gtParser.parseCondFormats(utml1GtMenu);
327 
328  // transfer the condition map and algorithm map from parser to L1uGtTriggerMenu
329  m_l1GtMenu = std::make_unique<TriggerMenu>(gtParser.gtTriggerMenuName(),
330  data->numberChips(),
331  gtParser.vecMuonTemplate(),
332  gtParser.vecCaloTemplate(),
333  gtParser.vecEnergySumTemplate(),
334  gtParser.vecExternalTemplate(),
335  gtParser.vecCorrelationTemplate(),
337  gtParser.corMuonTemplate(),
338  gtParser.corCaloTemplate(),
339  gtParser.corEnergySumTemplate());
340 
341  m_l1GtMenu->setGtTriggerMenuInterface(gtParser.gtTriggerMenuInterface());
342  m_l1GtMenu->setGtTriggerMenuImplementation(gtParser.gtTriggerMenuImplementation());
343  m_l1GtMenu->setGtScaleDbKey(gtParser.gtScaleDbKey());
344  m_l1GtMenu->setGtScales(gtParser.gtScales());
345  m_l1GtMenu->setGtTriggerMenuUUID(gtParser.gtTriggerMenuUUID());
346 
347  m_l1GtMenu->setGtAlgorithmMap(gtParser.gtAlgorithmMap());
348  m_l1GtMenu->setGtAlgorithmAliasMap(gtParser.gtAlgorithmAliasMap());
349 
350  m_l1GtMenu->buildGtConditionMap();
351 
352  int printV = 2;
353  if (m_printL1Menu)
354  m_l1GtMenu->print(std::cout, printV);
355 
356  m_l1GtMenuCacheID = l1GtMenuCacheID;
357  }
358 
359  // get / update the board maps from the EventSetup
360  // local cache & check on cacheIdentifier
361 
362  /* *** Drop L1GtBoard Maps for now
363  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
364 
365  unsigned long long l1GtBMCacheID = evSetup.get<L1GtBoardMapsRcd>().cacheIdentifier();
366 */
367 
368  /* ** Drop board mapping for now
369  if (m_l1GtBMCacheID != l1GtBMCacheID) {
370 
371  edm::ESHandle< L1GtBoardMaps > l1GtBM;
372  evSetup.get< L1GtBoardMapsRcd >().get( l1GtBM );
373  m_l1GtBM = l1GtBM.product();
374 
375  m_l1GtBMCacheID = l1GtBMCacheID;
376 
377  }
378 
379 
380  // TODO need changes in CondFormats to cache the maps
381  const std::vector<L1GtBoard>& boardMaps = m_l1GtBM->gtBoardMaps();
382 */
383  // get / update the prescale factors from the EventSetup
384  // local cache & check on cacheIdentifier
385 
386  // Only get event record if not unprescaled and not unmasked
388  unsigned long long l1GtPfAlgoCacheID = evSetup.get<L1TGlobalPrescalesVetosFractRcd>().cacheIdentifier();
389 
390  if (m_l1GtPfAlgoCacheID != l1GtPfAlgoCacheID) {
391  edm::ESHandle<L1TGlobalPrescalesVetosFract> l1GtPrescalesFractVetoes =
393  const L1TGlobalPrescalesVetosFract* es = l1GtPrescalesFractVetoes.product();
394  m_l1GtPrescalesVetosFract = PrescalesVetosFractHelper::readFromEventSetup(es);
395 
398 
399  m_l1GtPfAlgoCacheID = l1GtPfAlgoCacheID;
400  }
402  (m_currentLumi != iEvent.luminosityBlock())) { // get prescale column from unpacked data
403 
404  m_currentLumi = iEvent.luminosityBlock();
405 
407  iEvent.getByToken(m_algoblkInputToken, m_uGtAlgBlk);
408 
409  if (m_uGtAlgBlk.isValid() && !m_uGtAlgBlk->isEmpty(0)) {
410  std::vector<GlobalAlgBlk>::const_iterator algBlk = m_uGtAlgBlk->begin(0);
411  m_prescaleSet = static_cast<unsigned int>(algBlk->getPreScColumn());
412  } else {
413  m_prescaleSet = 1;
414  edm::LogError("L1TGlobalProduce")
415  << "Could not find valid algo block. Setting prescale column to 1" << std::endl;
416  }
417  }
418  } else {
419  // Set Prescale factors to initial dummy values
420  m_prescaleSet = 0;
424  }
425 
426  // get / update the trigger mask from the EventSetup
427  // local cache & check on cacheIdentifier
428 
429  /* **** For now Leave out Masks *****
430  unsigned long long l1GtTmAlgoCacheID =
431  evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().cacheIdentifier();
432 
433  if (m_l1GtTmAlgoCacheID != l1GtTmAlgoCacheID) {
434 
435  edm::ESHandle< L1GtTriggerMask > l1GtTmAlgo;
436  evSetup.get< L1GtTriggerMaskAlgoTrigRcd >().get( l1GtTmAlgo );
437  m_l1GtTmAlgo = l1GtTmAlgo.product();
438 
439  m_triggerMaskAlgoTrig = m_l1GtTmAlgo->gtTriggerMask();
440 
441  m_l1GtTmAlgoCacheID = l1GtTmAlgoCacheID;
442 
443  }
444 */
445 
446  /* **** For now Leave out Veto Masks *****
447  unsigned long long l1GtTmVetoAlgoCacheID =
448  evSetup.get<L1GtTriggerMaskVetoAlgoTrigRcd>().cacheIdentifier();
449 
450  if (m_l1GtTmVetoAlgoCacheID != l1GtTmVetoAlgoCacheID) {
451 
452  edm::ESHandle< L1GtTriggerMask > l1GtTmVetoAlgo;
453  evSetup.get< L1GtTriggerMaskVetoAlgoTrigRcd >().get( l1GtTmVetoAlgo );
454  m_l1GtTmVetoAlgo = l1GtTmVetoAlgo.product();
455 
456  m_triggerMaskVetoAlgoTrig = m_l1GtTmVetoAlgo->gtTriggerMask();
457 
458  m_l1GtTmVetoAlgoCacheID = l1GtTmVetoAlgoCacheID;
459 
460  }
461 */
462 
463  // ****** Board Maps Need to be redone....hard code for now ******
464  // loop over blocks in the GT DAQ record receiving data, count them if they are active
465  // all board type are defined in CondFormats/L1TObjects/L1GtFwd
466  // &
467  // set the active flag for each object type received from GMT and GCT
468  // all objects in the GT system
469 
470  //
471  bool receiveMu = true;
472  bool receiveEG = true;
473  bool receiveTau = true;
474  bool receiveJet = true;
475  bool receiveEtSums = true;
476  bool receiveExt = true;
477 
478  /* *** Boards need redefining *****
479  for (CItBoardMaps
480  itBoard = boardMaps.begin();
481  itBoard != boardMaps.end(); ++itBoard) {
482 
483  int iPosition = itBoard->gtPositionDaqRecord();
484  if (iPosition > 0) {
485 
486  int iActiveBit = itBoard->gtBitDaqActiveBoards();
487  bool activeBoard = false;
488 
489  if (iActiveBit >= 0) {
490  activeBoard = m_activeBoardsGtDaq & (1 << iActiveBit);
491  }
492 
493  // use board if: in the record, but not in ActiveBoardsMap (iActiveBit < 0)
494  // in the record and ActiveBoardsMap, and active
495  if ((iActiveBit < 0) || activeBoard) {
496 
497 // ****** Decide what board manipulation (if any we want here)
498 
499  }
500  }
501 
502  }
503 */
504 
505  // Produce the Output Records for the GT
506  std::unique_ptr<GlobalAlgBlkBxCollection> uGtAlgRecord(
507  new GlobalAlgBlkBxCollection(0, minEmulBxInEvent, maxEmulBxInEvent));
508 
509  // * produce the GlobalObjectMapRecord
510  std::unique_ptr<GlobalObjectMapRecord> gtObjectMapRecord(new GlobalObjectMapRecord());
511 
512  // fill the boards not depending on the BxInEvent in the L1 GT DAQ record
513  // GMT, PSB and FDL depend on BxInEvent
514 
515  // fill in emulator the same bunch crossing (12 bits - hardwired number of bits...)
516  // and the same local bunch crossing for all boards
517  int bxCross = iEvent.bunchCrossing();
518  uint16_t bxCrossHw = 0;
519  if ((bxCross & 0xFFF) == bxCross) {
520  bxCrossHw = static_cast<uint16_t>(bxCross);
521  } else {
522  bxCrossHw = 0; // Bx number too large, set to 0!
523  if (m_verbosity) {
524  LogDebug("L1TGlobalProducer") << "\nBunch cross number [hex] = " << std::hex << bxCross
525  << "\n larger than 12 bits. Set to 0! \n"
526  << std::dec << std::endl;
527  }
528  }
529  LogDebug("L1TGlobalProducer") << "HW BxCross " << bxCrossHw << std::endl;
530 
531  // get the prescale factor from the configuration for now
532  // prescale set index counts from zero
533  unsigned int pfAlgoSetIndex = m_prescaleSet;
534 
535  auto max = (*m_prescaleFactorsAlgoTrig).size() - 1;
536  if (pfAlgoSetIndex > max) {
537  edm::LogWarning("L1TGlobalProducer") << "\nAttempting to access prescale algo set: " << m_prescaleSet
538  << "\nNumber of prescale algo sets available: 0.." << max
539  << "Setting former to latter." << std::endl;
540  pfAlgoSetIndex = max;
541  }
542 
543  const std::vector<double>& prescaleFactorsAlgoTrig = (*m_prescaleFactorsAlgoTrig).at(pfAlgoSetIndex);
544 
545  // For now, set masks according to prescale value of 0
547  for (unsigned int iAlgo = 0; iAlgo < prescaleFactorsAlgoTrig.size(); iAlgo++) {
548  unsigned int value = prescaleFactorsAlgoTrig[iAlgo];
549  value = (value == 0) ? 0 : 1;
551  }
553 
554  const std::vector<unsigned int>& triggerMaskAlgoTrig = *m_triggerMaskAlgoTrig;
555  const std::vector<int>& triggerMaskVetoAlgoTrig = *m_triggerMaskVetoAlgoTrig;
556 
557  LogDebug("L1TGlobalProducer") << "Size of prescale vector" << prescaleFactorsAlgoTrig.size() << std::endl;
558 
559  // Load the calorimeter input onto the uGt Board
560  m_uGtBrd->receiveCaloObjectData(iEvent,
565  receiveEG,
566  m_nrL1EG,
567  receiveTau,
568  m_nrL1Tau,
569  receiveJet,
570  m_nrL1Jet,
571  receiveEtSums);
572 
573  m_uGtBrd->receiveMuonObjectData(iEvent, m_muInputToken, receiveMu, m_nrL1Mu);
574 
575  m_uGtBrd->receiveExternalData(iEvent, m_extInputToken, receiveExt);
576 
577  // loop over BxInEvent
578  for (int iBxInEvent = minEmulBxInEvent; iBxInEvent <= maxEmulBxInEvent; ++iBxInEvent) {
579  // run GTL
580  LogDebug("L1TGlobalProducer") << "\nL1TGlobalProducer : running GTL for bx = " << iBxInEvent << "\n" << std::endl;
581 
582  // Run the GTL for this BX
583  m_uGtBrd->runGTL(iEvent,
584  evSetup,
585  m_l1GtMenu.get(),
587  iBxInEvent,
588  gtObjectMapRecord,
590  m_nrL1Mu,
591  m_nrL1EG,
592  m_nrL1Tau,
593  m_nrL1Jet);
594 
595  // run FDL
596  LogDebug("L1TGlobalProducer") << "\nL1TGlobalProducer : running FDL for bx = " << iBxInEvent << "\n" << std::endl;
597 
598  // Run the Final Decision Logic for this BX
599  m_uGtBrd->runFDL(iEvent,
600  iBxInEvent,
603  prescaleFactorsAlgoTrig,
604  triggerMaskAlgoTrig,
605  triggerMaskVetoAlgoTrig,
608 
609  // Fill in the DAQ Records
611  m_uGtBrd->fillAlgRecord(iBxInEvent,
612  uGtAlgRecord,
614  m_l1GtMenu->gtTriggerMenuUUID(),
615  m_l1GtMenu->gtTriggerMenuImplementation());
616  }
617 
618  } //End Loop over Bx
619 
620  // Add explicit reset of Board
621  m_uGtBrd->reset();
622 
623  if (m_verbosity && m_isDebugEnabled) {
624  std::ostringstream myCoutStream;
625 
626  for (int bx = minEmulBxInEvent; bx < maxEmulBxInEvent; bx++) {
628  (uGtAlgRecord->at(bx, 0)).print(myCoutStream);
629  }
630 
631  LogTrace("L1TGlobalProducer") << "\n The following L1 GT DAQ readout record was produced:\n"
632  << myCoutStream.str() << "\n"
633  << std::endl;
634 
635  myCoutStream.str("");
636  myCoutStream.clear();
637 
638  const std::vector<GlobalObjectMap> objMapVec = gtObjectMapRecord->gtObjectMap();
639 
640  for (std::vector<GlobalObjectMap>::const_iterator it = objMapVec.begin(); it != objMapVec.end(); ++it) {
641  (*it).print(myCoutStream);
642  }
643 
644  LogDebug("L1TGlobalProducer") << "Test gtObjectMapRecord in L1TGlobalProducer \n\n"
645  << myCoutStream.str() << "\n\n"
646  << std::endl;
647 
648  myCoutStream.str("");
649  myCoutStream.clear();
650  }
651 
652  // register products
654  iEvent.put(std::move(uGtAlgRecord));
655  }
656 
658  iEvent.put(std::move(gtObjectMapRecord));
659  }
660 }

References l1GtPatternGenerator_cfi::bx, l1t::TriggerMenuParser::corCaloTemplate(), l1t::TriggerMenuParser::corEnergySumTemplate(), l1t::TriggerMenuParser::corMuonTemplate(), gather_cfg::cout, data, TauDecayModes::dec, Exception, edm::EventSetup::get(), L1TUtmTriggerMenu::getFirmwareUuidHashed(), edm::EventSetup::getHandle(), l1t::TriggerMenuParser::gtAlgorithmAliasMap(), l1t::TriggerMenuParser::gtAlgorithmMap(), l1t::TriggerMenuParser::gtScaleDbKey(), l1t::TriggerMenuParser::gtScales(), l1t::TriggerMenuParser::gtTriggerMenuImplementation(), l1t::TriggerMenuParser::gtTriggerMenuInterface(), l1t::TriggerMenuParser::gtTriggerMenuName(), l1t::TriggerMenuParser::gtTriggerMenuUUID(), iEvent, edm::HandleBase::isValid(), LogDebug, LogTrace, m_algoblkInputToken, m_algorithmTriggersUnmasked, m_algorithmTriggersUnprescaled, m_currentLumi, m_egInputToken, m_emulateBxInEvent, m_extInputToken, m_getPrescaleColumnFromData, m_initialPrescaleFactorsAlgoTrig, m_initialTriggerMaskAlgoTrig, m_initialTriggerMaskVetoAlgoTrig, m_isDebugEnabled, m_jetInputToken, m_L1DataBxInEvent, m_l1GtMenu, m_l1GtMenuCacheID, m_l1GtMenuToken, m_l1GtParCacheID, m_l1GtPfAlgoCacheID, m_l1GtPrescalesVetosFract, m_l1GtPrescaleVetosToken, m_l1GtStablePar, m_l1GtStableParToken, m_muInputToken, m_nrL1EG, m_nrL1Jet, m_nrL1Mu, m_nrL1Tau, m_numberPhysTriggers, m_prescaleFactorsAlgoTrig, m_prescaleSet, m_printL1Menu, m_produceL1GtDaqRecord, m_produceL1GtObjectMapRecord, m_requireMenuToMatchAlgoBlkInput, m_sumInputToken, m_tauInputToken, m_totalBxInEvent, m_triggerMaskAlgoTrig, m_triggerMaskVetoAlgoTrig, m_uGtBrd, m_verbosity, SiStripPI::max, eostools::move(), l1t::TriggerMenuParser::parseCondFormats(), l1t::PrescalesVetosFractHelper::prescaleTable(), print(), edm::ESHandle< T >::product(), l1t::TriggerMenuParser::setGtNumberConditionChips(), l1t::TriggerMenuParser::setGtNumberPhysTriggers(), l1t::TriggerMenuParser::setGtOrderConditionChip(), l1t::TriggerMenuParser::setGtPinsOnConditionChip(), l1t::PrescalesVetosFractHelper::triggerMaskVeto(), l1t::TriggerMenuParser::vecCaloTemplate(), l1t::TriggerMenuParser::vecCorrelationTemplate(), l1t::TriggerMenuParser::vecCorrelationWithOverlapRemovalTemplate(), l1t::TriggerMenuParser::vecEnergySumTemplate(), l1t::TriggerMenuParser::vecExternalTemplate(), and l1t::TriggerMenuParser::vecMuonTemplate().

Member Data Documentation

◆ m_activeBoardsGtDaq

uint16_t L1TGlobalProducer::m_activeBoardsGtDaq
private

active boards in L1 GT DAQ record

Definition at line 84 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_algoblkInputTag

edm::InputTag L1TGlobalProducer::m_algoblkInputTag
private

Definition at line 182 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_algoblkInputToken

edm::EDGetToken L1TGlobalProducer::m_algoblkInputToken
private

Definition at line 183 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_algorithmTriggersUnmasked

bool L1TGlobalProducer::m_algorithmTriggersUnmasked
private

if true, unmasked - all enabled (all trigger masks set to 0) will overwrite the event setup

Definition at line 173 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_algorithmTriggersUnprescaled

bool L1TGlobalProducer::m_algorithmTriggersUnprescaled
private

run algorithm triggers if true, unprescaled (all prescale factors 1) will overwrite the event setup

Definition at line 169 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_alternativeNrBxBoardDaq

unsigned int L1TGlobalProducer::m_alternativeNrBxBoardDaq
private

alternative for number of BX per active board in GT DAQ record: 0 or 1 the position is identical with the active board bit

Definition at line 158 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_bstLengthBytes

unsigned int L1TGlobalProducer::m_bstLengthBytes
private

length of BST record (in bytes) from event setup

Definition at line 87 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_currentLumi

uint L1TGlobalProducer::m_currentLumi
private

Definition at line 103 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_egInputTag

edm::InputTag L1TGlobalProducer::m_egInputTag
private

input tag for calorimeter collections from GCT

Definition at line 125 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_egInputToken

edm::EDGetTokenT<BXVector<l1t::EGamma> > L1TGlobalProducer::m_egInputToken
private

Definition at line 129 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_emulateBxInEvent

int L1TGlobalProducer::m_emulateBxInEvent
private

number of "bunch crossing in the event" (BxInEvent) to be emulated symmetric around L1Accept (BxInEvent = 0): 1 (BxInEvent = 0); 3 (F 0 1) (standard record); 5 (E F 0 1 2) (debug record) even numbers (except 0) "rounded" to the nearest lower odd number

Definition at line 151 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_extInputTag

edm::InputTag L1TGlobalProducer::m_extInputTag
private

input tag for external conditions

Definition at line 135 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_extInputToken

edm::EDGetTokenT<BXVector<GlobalExtBlk> > L1TGlobalProducer::m_extInputToken
private

Definition at line 136 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_getPrescaleColumnFromData

bool L1TGlobalProducer::m_getPrescaleColumnFromData
private

Definition at line 180 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_ifCaloEtaNumberBits

int L1TGlobalProducer::m_ifCaloEtaNumberBits
private

Definition at line 78 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_ifMuEtaNumberBits

int L1TGlobalProducer::m_ifMuEtaNumberBits
private

Definition at line 77 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_initialPrescaleFactorsAlgoTrig

std::vector<std::vector<double> > L1TGlobalProducer::m_initialPrescaleFactorsAlgoTrig
private

Definition at line 98 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_initialTriggerMaskAlgoTrig

std::vector<unsigned int> L1TGlobalProducer::m_initialTriggerMaskAlgoTrig
private

Definition at line 113 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_initialTriggerMaskVetoAlgoTrig

std::vector<int> L1TGlobalProducer::m_initialTriggerMaskVetoAlgoTrig
private

Definition at line 116 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_isDebugEnabled

bool L1TGlobalProducer::m_isDebugEnabled
private

Definition at line 178 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_jetInputTag

edm::InputTag L1TGlobalProducer::m_jetInputTag
private

Definition at line 127 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_jetInputToken

edm::EDGetTokenT<BXVector<l1t::Jet> > L1TGlobalProducer::m_jetInputToken
private

Definition at line 131 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_L1DataBxInEvent

int L1TGlobalProducer::m_L1DataBxInEvent
private

Bx expected in Data coming to GT.

Definition at line 154 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_l1GtBM

const L1GtBoardMaps* L1TGlobalProducer::m_l1GtBM
private

board maps - cache only the record

Definition at line 90 of file L1TGlobalProducer.h.

◆ m_l1GtBMCacheID

unsigned long long L1TGlobalProducer::m_l1GtBMCacheID
private

Definition at line 91 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_l1GtMenu

std::unique_ptr<TriggerMenu> L1TGlobalProducer::m_l1GtMenu
private

Definition at line 60 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_l1GtMenuCacheID

unsigned long long L1TGlobalProducer::m_l1GtMenuCacheID
private

Definition at line 61 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_l1GtMenuToken

edm::ESGetToken<L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd> L1TGlobalProducer::m_l1GtMenuToken
private

Definition at line 186 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_l1GtParCacheID

unsigned long long L1TGlobalProducer::m_l1GtParCacheID
private

Definition at line 57 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_l1GtPfAlgoCacheID

unsigned long long L1TGlobalProducer::m_l1GtPfAlgoCacheID
private

Definition at line 95 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_l1GtPrescalesVetosFract

const l1t::PrescalesVetosFractHelper* L1TGlobalProducer::m_l1GtPrescalesVetosFract
private

prescale factors

Definition at line 94 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_l1GtPrescaleVetosToken

edm::ESGetToken<L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcd> L1TGlobalProducer::m_l1GtPrescaleVetosToken
private

Definition at line 187 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_l1GtStablePar

const L1TGlobalParameters* L1TGlobalProducer::m_l1GtStablePar
private

cached stuff

stable parameters

Definition at line 56 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_l1GtStableParToken

edm::ESGetToken<L1TGlobalParameters, L1TGlobalParametersRcd> L1TGlobalProducer::m_l1GtStableParToken
private

Definition at line 185 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_l1GtTmAlgo

const L1GtTriggerMask* L1TGlobalProducer::m_l1GtTmAlgo
private

trigger masks & veto masks

Definition at line 106 of file L1TGlobalProducer.h.

◆ m_l1GtTmAlgoCacheID

unsigned long long L1TGlobalProducer::m_l1GtTmAlgoCacheID
private

Definition at line 107 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_l1GtTmVetoAlgo

const L1GtTriggerMask* L1TGlobalProducer::m_l1GtTmVetoAlgo
private

Definition at line 109 of file L1TGlobalProducer.h.

◆ m_l1GtTmVetoAlgoCacheID

unsigned long long L1TGlobalProducer::m_l1GtTmVetoAlgoCacheID
private

Definition at line 110 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_muInputTag

edm::InputTag L1TGlobalProducer::m_muInputTag
private

input tag for muon collection from GMT

Definition at line 121 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_muInputToken

edm::EDGetTokenT<BXVector<l1t::Muon> > L1TGlobalProducer::m_muInputToken
private

Definition at line 122 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_nrL1EG

int L1TGlobalProducer::m_nrL1EG
private

Definition at line 71 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_nrL1Jet

int L1TGlobalProducer::m_nrL1Jet
private

Definition at line 74 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_nrL1Mu

int L1TGlobalProducer::m_nrL1Mu
private

Definition at line 70 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_nrL1Tau

int L1TGlobalProducer::m_nrL1Tau
private

Definition at line 72 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_numberDaqPartitions

unsigned int L1TGlobalProducer::m_numberDaqPartitions
private

Definition at line 67 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_numberPhysTriggers

unsigned int L1TGlobalProducer::m_numberPhysTriggers
private

Definition at line 64 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_prescaleFactorsAlgoTrig

const std::vector<std::vector<double> >* L1TGlobalProducer::m_prescaleFactorsAlgoTrig
private

Definition at line 97 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_prescaleSet

unsigned int L1TGlobalProducer::m_prescaleSet
private

prescale set used

Definition at line 164 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_prescalesFile

std::string L1TGlobalProducer::m_prescalesFile
private

CSV file for prescales.

Definition at line 101 of file L1TGlobalProducer.h.

◆ m_printL1Menu

bool L1TGlobalProducer::m_printL1Menu
private

Definition at line 177 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_produceL1GtDaqRecord

bool L1TGlobalProducer::m_produceL1GtDaqRecord
private

logical flag to produce the L1 GT DAQ readout record

Definition at line 139 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_produceL1GtObjectMapRecord

bool L1TGlobalProducer::m_produceL1GtObjectMapRecord
private

logical flag to produce the L1 GT object map record

Definition at line 142 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_psBstLengthBytes

int L1TGlobalProducer::m_psBstLengthBytes
private

length of BST record (in bytes) from parameter set

Definition at line 161 of file L1TGlobalProducer.h.

◆ m_requireMenuToMatchAlgoBlkInput

bool L1TGlobalProducer::m_requireMenuToMatchAlgoBlkInput
private

Definition at line 181 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_sumInputTag

edm::InputTag L1TGlobalProducer::m_sumInputTag
private

Definition at line 128 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_sumInputToken

edm::EDGetTokenT<BXVector<l1t::EtSum> > L1TGlobalProducer::m_sumInputToken
private

Definition at line 132 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_tauInputTag

edm::InputTag L1TGlobalProducer::m_tauInputTag
private

Definition at line 126 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

◆ m_tauInputToken

edm::EDGetTokenT<BXVector<l1t::Tau> > L1TGlobalProducer::m_tauInputToken
private

Definition at line 130 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_totalBxInEvent

int L1TGlobalProducer::m_totalBxInEvent
private

total number of Bx's in the event coming from EventSetup

Definition at line 81 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_triggerMaskAlgoTrig

const std::vector<unsigned int>* L1TGlobalProducer::m_triggerMaskAlgoTrig
private

Definition at line 112 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_triggerMaskVetoAlgoTrig

const std::vector<int>* L1TGlobalProducer::m_triggerMaskVetoAlgoTrig
private

Definition at line 115 of file L1TGlobalProducer.h.

Referenced by produce().

◆ m_uGtBrd

std::unique_ptr<l1t::GlobalBoard> L1TGlobalProducer::m_uGtBrd
private

Definition at line 118 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_verbosity

int L1TGlobalProducer::m_verbosity
private

verbosity level

Definition at line 176 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

◆ m_writePsbL1GtDaqRecord

bool L1TGlobalProducer::m_writePsbL1GtDaqRecord
private

logical flag to write the PSB content in the L1 GT DAQ record

Definition at line 145 of file L1TGlobalProducer.h.

l1t::TriggerMenuParser::vecCorrelationTemplate
const std::vector< std::vector< CorrelationTemplate > > & vecCorrelationTemplate() const
Definition: TriggerMenuParser.h:142
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
L1TGlobalProducer::m_jetInputToken
edm::EDGetTokenT< BXVector< l1t::Jet > > m_jetInputToken
Definition: L1TGlobalProducer.h:131
l1t::PrescalesVetosFractHelper::triggerMaskVeto
const std::vector< int > & triggerMaskVeto() const
Definition: PrescalesVetosFractHelper.h:56
L1TGlobalProducer::m_l1GtPfAlgoCacheID
unsigned long long m_l1GtPfAlgoCacheID
Definition: L1TGlobalProducer.h:95
L1TGlobalProducer::m_uGtBrd
std::unique_ptr< l1t::GlobalBoard > m_uGtBrd
Definition: L1TGlobalProducer.h:118
L1TGlobalProducer::m_verbosity
int m_verbosity
verbosity level
Definition: L1TGlobalProducer.h:176
l1t::TriggerMenuParser::setGtPinsOnConditionChip
void setGtPinsOnConditionChip(const unsigned int &)
Definition: TriggerMenuParser.cc:70
GlobalObjectMapRecord
Definition: GlobalObjectMapRecord.h:29
L1TGlobalProducer::m_prescaleFactorsAlgoTrig
const std::vector< std::vector< double > > * m_prescaleFactorsAlgoTrig
Definition: L1TGlobalProducer.h:97
l1t::TriggerMenuParser::gtAlgorithmMap
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
Definition: TriggerMenuParser.h:175
L1TGlobalProducer::m_numberPhysTriggers
unsigned int m_numberPhysTriggers
Definition: L1TGlobalProducer.h:64
l1t::TriggerMenuParser::setGtNumberPhysTriggers
void setGtNumberPhysTriggers(const unsigned int &)
Definition: TriggerMenuParser.cc:81
L1TGlobalProducer::m_requireMenuToMatchAlgoBlkInput
bool m_requireMenuToMatchAlgoBlkInput
Definition: L1TGlobalProducer.h:181
L1TGlobalProducer::m_algoblkInputTag
edm::InputTag m_algoblkInputTag
Definition: L1TGlobalProducer.h:182
L1TGlobalProducer::m_extInputToken
edm::EDGetTokenT< BXVector< GlobalExtBlk > > m_extInputToken
Definition: L1TGlobalProducer.h:136
L1TGlobalProducer::m_l1GtParCacheID
unsigned long long m_l1GtParCacheID
Definition: L1TGlobalProducer.h:57
L1TUtmTriggerMenuRcd
Definition: L1TUtmTriggerMenuRcd.h:11
L1TGlobalProducer::m_l1GtPrescalesVetosFract
const l1t::PrescalesVetosFractHelper * m_l1GtPrescalesVetosFract
prescale factors
Definition: L1TGlobalProducer.h:94
L1TGlobalProducer::m_totalBxInEvent
int m_totalBxInEvent
total number of Bx's in the event coming from EventSetup
Definition: L1TGlobalProducer.h:81
L1TGlobalProducer::m_nrL1Mu
int m_nrL1Mu
Definition: L1TGlobalProducer.h:70
L1TGlobalProducer::m_initialTriggerMaskAlgoTrig
std::vector< unsigned int > m_initialTriggerMaskAlgoTrig
Definition: L1TGlobalProducer.h:113
l1t::TriggerMenuParser::gtTriggerMenuName
const std::string & gtTriggerMenuName() const
Definition: TriggerMenuParser.h:100
l1t::TriggerMenuParser::gtTriggerMenuInterface
const std::string & gtTriggerMenuInterface() const
get / set the trigger menu names
Definition: TriggerMenuParser.h:95
gather_cfg.cout
cout
Definition: gather_cfg.py:144
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
l1t::TriggerMenuParser::gtAlgorithmAliasMap
const AlgorithmMap & gtAlgorithmAliasMap() const
get / set the algorithm map (by alias)
Definition: TriggerMenuParser.h:180
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
L1TGlobalProducer::m_jetInputTag
edm::InputTag m_jetInputTag
Definition: L1TGlobalProducer.h:127
L1TGlobalProducer::m_l1GtStablePar
const L1TGlobalParameters * m_l1GtStablePar
cached stuff
Definition: L1TGlobalProducer.h:56
L1TGlobalProducer::m_psBstLengthBytes
int m_psBstLengthBytes
length of BST record (in bytes) from parameter set
Definition: L1TGlobalProducer.h:161
L1TGlobalProducer::m_l1GtTmAlgoCacheID
unsigned long long m_l1GtTmAlgoCacheID
Definition: L1TGlobalProducer.h:107
l1t::TriggerMenuParser::vecMuonTemplate
const std::vector< std::vector< MuonTemplate > > & vecMuonTemplate() const
get / set the vectors containing the conditions
Definition: TriggerMenuParser.h:118
L1TGlobalProducer::m_l1GtTmVetoAlgoCacheID
unsigned long long m_l1GtTmVetoAlgoCacheID
Definition: L1TGlobalProducer.h:110
l1t::TriggerMenuParser::parseCondFormats
void parseCondFormats(const L1TUtmTriggerMenu *utmMenu)
Definition: TriggerMenuParser.cc:190
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
GlobalAlgBlkBxCollection
BXVector< GlobalAlgBlk > GlobalAlgBlkBxCollection
Definition: GlobalAlgBlk.h:31
L1TGlobalProducer::m_muInputTag
edm::InputTag m_muInputTag
input tag for muon collection from GMT
Definition: L1TGlobalProducer.h:121
edm::Handle
Definition: AssociativeIterator.h:50
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
L1TGlobalProducer::m_sumInputTag
edm::InputTag m_sumInputTag
Definition: L1TGlobalProducer.h:128
L1TGlobalProducer::m_tauInputToken
edm::EDGetTokenT< BXVector< l1t::Tau > > m_tauInputToken
Definition: L1TGlobalProducer.h:130
L1TGlobalProducer::m_l1GtStableParToken
edm::ESGetToken< L1TGlobalParameters, L1TGlobalParametersRcd > m_l1GtStableParToken
Definition: L1TGlobalProducer.h:185
L1TGlobalProducer::m_produceL1GtObjectMapRecord
bool m_produceL1GtObjectMapRecord
logical flag to produce the L1 GT object map record
Definition: L1TGlobalProducer.h:142
L1TGlobalProducer::m_algorithmTriggersUnprescaled
bool m_algorithmTriggersUnprescaled
Definition: L1TGlobalProducer.h:169
L1TUtmTriggerMenu
Definition: L1TUtmTriggerMenu.h:25
L1TGlobalProducer::m_l1GtPrescaleVetosToken
edm::ESGetToken< L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcd > m_l1GtPrescaleVetosToken
Definition: L1TGlobalProducer.h:187
l1t::TriggerMenuParser::vecCaloTemplate
const std::vector< std::vector< CaloTemplate > > & vecCaloTemplate() const
Definition: TriggerMenuParser.h:122
L1TGlobalProducer::m_produceL1GtDaqRecord
bool m_produceL1GtDaqRecord
logical flag to produce the L1 GT DAQ readout record
Definition: L1TGlobalProducer.h:139
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
L1TGlobalProducer::m_isDebugEnabled
bool m_isDebugEnabled
Definition: L1TGlobalProducer.h:178
L1TGlobalProducer::m_initialPrescaleFactorsAlgoTrig
std::vector< std::vector< double > > m_initialPrescaleFactorsAlgoTrig
Definition: L1TGlobalProducer.h:98
edm::ESHandle
Definition: DTSurvey.h:22
L1TGlobalProducer::m_triggerMaskVetoAlgoTrig
const std::vector< int > * m_triggerMaskVetoAlgoTrig
Definition: L1TGlobalProducer.h:115
L1TGlobalProducer::m_extInputTag
edm::InputTag m_extInputTag
input tag for external conditions
Definition: L1TGlobalProducer.h:135
l1t::TriggerMenuParser::gtTriggerMenuUUID
const int gtTriggerMenuUUID() const
Definition: TriggerMenuParser.h:205
L1TGlobalProducer::m_l1GtMenuCacheID
unsigned long long m_l1GtMenuCacheID
Definition: L1TGlobalProducer.h:61
l1t::TriggerMenuParser::vecExternalTemplate
const std::vector< std::vector< ExternalTemplate > > & vecExternalTemplate() const
Definition: TriggerMenuParser.h:135
L1TGlobalProducer::m_alternativeNrBxBoardDaq
unsigned int m_alternativeNrBxBoardDaq
Definition: L1TGlobalProducer.h:158
L1TGlobalProducer::m_L1DataBxInEvent
int m_L1DataBxInEvent
Bx expected in Data coming to GT.
Definition: L1TGlobalProducer.h:154
L1TGlobalProducer::m_nrL1Tau
int m_nrL1Tau
Definition: L1TGlobalProducer.h:72
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
l1t::GlobalParamsHelper
Definition: GlobalParamsHelper.h:33
print
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:46
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
L1TGlobalPrescalesVetosFract
Definition: L1TGlobalPrescalesVetosFract.h:13
L1TGlobalProducer::m_tauInputTag
edm::InputTag m_tauInputTag
Definition: L1TGlobalProducer.h:126
L1TGlobalParametersRcd
Definition: L1TGlobalParametersRcd.h:4
L1TGlobalProducer::m_l1GtMenu
std::unique_ptr< TriggerMenu > m_l1GtMenu
Definition: L1TGlobalProducer.h:60
iEvent
int iEvent
Definition: GenABIO.cc:224
value
Definition: value.py:1
L1TGlobalProducer::m_initialTriggerMaskVetoAlgoTrig
std::vector< int > m_initialTriggerMaskVetoAlgoTrig
Definition: L1TGlobalProducer.h:116
l1t::TriggerMenuParser::corMuonTemplate
const std::vector< std::vector< MuonTemplate > > & corMuonTemplate() const
Definition: TriggerMenuParser.h:158
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:148
L1TGlobalPrescalesVetosFractRcd
Definition: L1TGlobalPrescalesVetosFractRcd.h:11
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
L1TGlobalProducer::m_algorithmTriggersUnmasked
bool m_algorithmTriggersUnmasked
Definition: L1TGlobalProducer.h:173
L1TGlobalProducer::m_muInputToken
edm::EDGetTokenT< BXVector< l1t::Muon > > m_muInputToken
Definition: L1TGlobalProducer.h:122
L1TGlobalProducer::m_nrL1EG
int m_nrL1EG
Definition: L1TGlobalProducer.h:71
L1TGlobalProducer::m_sumInputToken
edm::EDGetTokenT< BXVector< l1t::EtSum > > m_sumInputToken
Definition: L1TGlobalProducer.h:132
l1t::PrescalesVetosFractHelper::prescaleTable
const std::vector< std::vector< double > > & prescaleTable() const
Definition: PrescalesVetosFractHelper.h:51
L1TGlobalProducer::m_emulateBxInEvent
int m_emulateBxInEvent
Definition: L1TGlobalProducer.h:151
l1t::TriggerMenuParser::gtScaleDbKey
const std::string & gtScaleDbKey() const
menu associated scale key
Definition: TriggerMenuParser.h:110
L1TGlobalProducer::m_printL1Menu
bool m_printL1Menu
Definition: L1TGlobalProducer.h:177
L1TGlobalProducer::m_ifCaloEtaNumberBits
int m_ifCaloEtaNumberBits
Definition: L1TGlobalProducer.h:78
L1TGlobalProducer::m_bstLengthBytes
unsigned int m_bstLengthBytes
length of BST record (in bytes) from event setup
Definition: L1TGlobalProducer.h:87
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
l1t::TriggerMenuParser::gtScales
const GlobalScales & gtScales() const
menu associated scales
Definition: TriggerMenuParser.h:113
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1TGlobalProducer::m_getPrescaleColumnFromData
bool m_getPrescaleColumnFromData
Definition: L1TGlobalProducer.h:180
L1TGlobalProducer::m_prescaleSet
unsigned int m_prescaleSet
prescale set used
Definition: L1TGlobalProducer.h:164
l1t::TriggerMenuParser::gtTriggerMenuImplementation
const unsigned long gtTriggerMenuImplementation() const
Definition: TriggerMenuParser.h:105
L1TGlobalProducer::m_nrL1Jet
int m_nrL1Jet
Definition: L1TGlobalProducer.h:74
l1t::TriggerMenuParser::setGtOrderConditionChip
void setGtOrderConditionChip(const std::vector< int > &)
Definition: TriggerMenuParser.cc:76
Exception
Definition: hltDiff.cc:246
l1t::TriggerMenuParser::setGtNumberConditionChips
void setGtNumberConditionChips(const unsigned int &)
Definition: TriggerMenuParser.cc:65
L1TGlobalProducer::m_egInputToken
edm::EDGetTokenT< BXVector< l1t::EGamma > > m_egInputToken
Definition: L1TGlobalProducer.h:129
L1TGlobalProducer::m_algoblkInputToken
edm::EDGetToken m_algoblkInputToken
Definition: L1TGlobalProducer.h:183
L1TGlobalProducer::m_l1GtBMCacheID
unsigned long long m_l1GtBMCacheID
Definition: L1TGlobalProducer.h:91
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
edm::isDebugEnabled
bool isDebugEnabled()
Definition: MessageLogger.cc:12
l1t::TriggerMenuParser::corCaloTemplate
const std::vector< std::vector< CaloTemplate > > & corCaloTemplate() const
Definition: TriggerMenuParser.h:163
L1TUtmTriggerMenu::getFirmwareUuidHashed
const unsigned long getFirmwareUuidHashed() const
Definition: L1TUtmTriggerMenu.cc:5
L1TGlobalProducer::m_numberDaqPartitions
unsigned int m_numberDaqPartitions
Definition: L1TGlobalProducer.h:67
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
L1TGlobalProducer::m_currentLumi
uint m_currentLumi
Definition: L1TGlobalProducer.h:103
l1t::TriggerMenuParser::vecEnergySumTemplate
const std::vector< std::vector< EnergySumTemplate > > & vecEnergySumTemplate() const
Definition: TriggerMenuParser.h:127
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
l1t::TriggerMenuParser
Definition: TriggerMenuParser.h:57
l1t::TriggerMenuParser::corEnergySumTemplate
const std::vector< std::vector< EnergySumTemplate > > & corEnergySumTemplate() const
Definition: TriggerMenuParser.h:168
L1TGlobalProducer::m_l1GtMenuToken
edm::ESGetToken< L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd > m_l1GtMenuToken
Definition: L1TGlobalProducer.h:186
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
L1TGlobalProducer::m_triggerMaskAlgoTrig
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
Definition: L1TGlobalProducer.h:112
edm::InputTag
Definition: InputTag.h:15
l1t::TriggerMenuParser::vecCorrelationWithOverlapRemovalTemplate
const std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > & vecCorrelationWithOverlapRemovalTemplate() const
Definition: TriggerMenuParser.h:149
L1TGlobalProducer::m_ifMuEtaNumberBits
int m_ifMuEtaNumberBits
Definition: L1TGlobalProducer.h:77
L1TGlobalProducer::m_activeBoardsGtDaq
uint16_t m_activeBoardsGtDaq
active boards in L1 GT DAQ record
Definition: L1TGlobalProducer.h:84
L1TGlobalProducer::m_egInputTag
edm::InputTag m_egInputTag
input tag for calorimeter collections from GCT
Definition: L1TGlobalProducer.h:125