CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

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,
L1TUtmTriggerMenuRcd
m_l1GtMenuToken
 
unsigned long long m_l1GtParCacheID
 
unsigned long long m_l1GtPfAlgoCacheID
 
const
l1t::PrescalesVetosFractHelper
m_l1GtPrescalesVetosFract
 prescale factors More...
 
edm::ESGetToken
< L1TGlobalPrescalesVetosFract,
L1TGlobalPrescalesVetosFractRcd
m_l1GtPrescaleVetosToken
 
const L1TGlobalParametersm_l1GtStablePar
 cached stuff More...
 
edm::ESGetToken
< L1TGlobalParameters,
L1TGlobalParametersRcd
m_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
 
edm::InputTag m_muShowerInputTag
 
edm::EDGetTokenT< BXVector
< l1t::MuonShower > > 
m_muShowerInputToken
 
int m_nrL1EG
 
int m_nrL1Jet
 
int m_nrL1Mu
 
int m_nrL1MuShower
 
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...
 
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
 
bool m_resetPSCountersEachLumiSec
 
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
 
bool m_useMuonShowers
 
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<>
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 43 of file L1TGlobalProducer.h.

Constructor & Destructor Documentation

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

Definition at line 89 of file L1TGlobalProducer.cc.

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_muShowerInputTag, m_muShowerInputToken, m_nrL1EG, m_nrL1Jet, m_nrL1Mu, m_nrL1MuShower, m_nrL1Tau, m_numberDaqPartitions, m_numberPhysTriggers, m_produceL1GtDaqRecord, m_produceL1GtObjectMapRecord, m_requireMenuToMatchAlgoBlkInput, m_resetPSCountersEachLumiSec, m_sumInputTag, m_sumInputToken, m_tauInputTag, m_tauInputToken, m_totalBxInEvent, m_uGtBrd, m_useMuonShowers, and m_verbosity.

90  : m_muInputTag(parSet.getParameter<edm::InputTag>("MuonInputTag")),
91  m_muShowerInputTag(parSet.getParameter<edm::InputTag>("MuonShowerInputTag")),
92  m_egInputTag(parSet.getParameter<edm::InputTag>("EGammaInputTag")),
93  m_tauInputTag(parSet.getParameter<edm::InputTag>("TauInputTag")),
94  m_jetInputTag(parSet.getParameter<edm::InputTag>("JetInputTag")),
95  m_sumInputTag(parSet.getParameter<edm::InputTag>("EtSumInputTag")),
96  m_extInputTag(parSet.getParameter<edm::InputTag>("ExtInputTag")),
97 
98  m_produceL1GtDaqRecord(parSet.getParameter<bool>("ProduceL1GtDaqRecord")),
99  m_produceL1GtObjectMapRecord(parSet.getParameter<bool>("ProduceL1GtObjectMapRecord")),
100 
101  m_emulateBxInEvent(parSet.getParameter<int>("EmulateBxInEvent")),
102  m_L1DataBxInEvent(parSet.getParameter<int>("L1DataBxInEvent")),
103 
104  m_alternativeNrBxBoardDaq(parSet.getParameter<unsigned int>("AlternativeNrBxBoardDaq")),
105  m_psBstLengthBytes(parSet.getParameter<int>("BstLengthBytes")),
106 
107  m_prescaleSet(parSet.getParameter<unsigned int>("PrescaleSet")),
108 
109  m_algorithmTriggersUnprescaled(parSet.getParameter<bool>("AlgorithmTriggersUnprescaled")),
110  m_algorithmTriggersUnmasked(parSet.getParameter<bool>("AlgorithmTriggersUnmasked")),
111 
112  m_verbosity(parSet.getUntrackedParameter<int>("Verbosity")),
113  m_printL1Menu(parSet.getUntrackedParameter<bool>("PrintL1Menu")),
115  m_getPrescaleColumnFromData(parSet.getParameter<bool>("GetPrescaleColumnFromData")),
116  m_requireMenuToMatchAlgoBlkInput(parSet.getParameter<bool>("RequireMenuToMatchAlgoBlkInput")),
117  m_algoblkInputTag(parSet.getParameter<edm::InputTag>("AlgoBlkInputTag")),
118  m_resetPSCountersEachLumiSec(parSet.getParameter<bool>("resetPSCountersEachLumiSec")),
119  m_useMuonShowers(parSet.getParameter<bool>("useMuonShowers")) {
120  m_egInputToken = consumes<BXVector<EGamma>>(m_egInputTag);
121  m_tauInputToken = consumes<BXVector<Tau>>(m_tauInputTag);
122  m_jetInputToken = consumes<BXVector<Jet>>(m_jetInputTag);
123  m_sumInputToken = consumes<BXVector<EtSum>>(m_sumInputTag);
124  m_muInputToken = consumes<BXVector<Muon>>(m_muInputTag);
125  if (m_useMuonShowers)
126  m_muShowerInputToken = consumes<BXVector<MuonShower>>(m_muShowerInputTag);
127  m_extInputToken = consumes<BXVector<GlobalExtBlk>>(m_extInputTag);
128  m_l1GtStableParToken = esConsumes<L1TGlobalParameters, L1TGlobalParametersRcd>();
129  m_l1GtMenuToken = esConsumes<L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd>();
131  m_l1GtPrescaleVetosToken = esConsumes<L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcd>();
132  }
134  m_algoblkInputToken = consumes<BXVector<GlobalAlgBlk>>(m_algoblkInputTag);
135  }
136 
137  if (m_verbosity) {
138  LogTrace("L1TGlobalProducer") << "\nInput tag for muon collection from uGMT: " << m_muInputTag
139  << "\nInput tag for calorimeter jet collections from Cal: " << m_jetInputTag
140  << "\nInput tag for external conditions : " << m_extInputTag << std::endl;
141 
142  LogTrace("L1TGlobalProducer") << "\nProduce the L1 uGT DAQ readout record: " << m_produceL1GtDaqRecord
143  << "\nProduce the L1 uGT Object Map record: "
144  << m_produceL1GtObjectMapRecord << " \n"
145  << "\nNumber of BxInEvent to be emulated: " << m_emulateBxInEvent << " \n"
146  << "\nAlternative for number of BX in GT DAQ record: 0x" << std::hex
147  << m_alternativeNrBxBoardDaq << " \n"
148  << "\nRun algorithm triggers unprescaled: "
150  << "\nRun algorithm triggers unmasked (all enabled): " << m_algorithmTriggersUnmasked
151  << "\n"
152  << std::endl;
153  }
154 
155  if ((m_emulateBxInEvent > 0) && ((m_emulateBxInEvent % 2) == 0)) {
157 
158  if (m_verbosity) {
159  edm::LogWarning("L1TGlobalProducer")
160  << "\nWARNING: Number of bunch crossing to be emulated rounded to: " << m_emulateBxInEvent
161  << "\n The number must be an odd number!\n"
162  << std::endl;
163  }
164  }
165 
166  if ((m_L1DataBxInEvent > 0) && ((m_L1DataBxInEvent % 2) == 0)) {
168 
169  if (m_verbosity) {
170  edm::LogWarning("L1TGlobalProducer")
171  << "\nWARNING: Number of bunch crossing for incoming L1 Data rounded to: " << m_L1DataBxInEvent
172  << "\n The number must be an odd number!\n"
173  << std::endl;
174  }
175  } else if (m_L1DataBxInEvent < 0) {
176  m_L1DataBxInEvent = 1;
177 
178  if (m_verbosity) {
179  edm::LogWarning("L1TGlobalProducer")
180  << "\nWARNING: Number of bunch crossing for incoming L1 Data was changed to: " << m_L1DataBxInEvent
181  << "\n The number must be an odd positive number!\n"
182  << std::endl;
183  }
184  }
185 
186  // register products
188  produces<GlobalAlgBlkBxCollection>();
189  //blwEXT produces<GlobalExtBlkBxCollection>();
190  }
191 
193  produces<GlobalObjectMapRecord>();
194  }
195 
196  // create new uGt Board
197  m_uGtBrd = std::make_unique<GlobalBoard>();
198  m_uGtBrd->setVerbosity(m_verbosity);
199  m_uGtBrd->setResetPSCountersEachLumiSec(m_resetPSCountersEachLumiSec);
200 
201  // initialize cached IDs
202 
203  //
204  m_l1GtParCacheID = 0ULL;
205  m_l1GtMenuCacheID = 0ULL;
206 
209 
210  m_nrL1Mu = 0;
211  m_nrL1MuShower = 0;
212  m_nrL1EG = 0;
213  m_nrL1Tau = 0;
214 
215  m_nrL1Jet = 0;
216 
219 
220  //
221  m_l1GtParCacheID = 0ULL;
222 
223  m_totalBxInEvent = 0;
224 
226  m_bstLengthBytes = 0;
227 
228  //
229  m_l1GtBMCacheID = 0ULL;
230 
231  //
232  m_l1GtPfAlgoCacheID = 0ULL;
233 
234  m_l1GtTmAlgoCacheID = 0ULL;
235 
237 
238  m_currentLumi = 0;
239 
240  // Set default, initial, dummy prescale factor table
241  std::vector<std::vector<double>> temp_prescaleTable;
242 
243  temp_prescaleTable.push_back(std::vector<double>());
244  m_initialPrescaleFactorsAlgoTrig = temp_prescaleTable;
245 }
bool isDebugEnabled()
T getUntrackedParameter(std::string const &, T const &) const
edm::InputTag m_jetInputTag
unsigned int m_numberDaqPartitions
edm::InputTag m_algoblkInputTag
unsigned long long m_l1GtParCacheID
unsigned long long m_l1GtTmVetoAlgoCacheID
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
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
edm::EDGetTokenT< BXVector< GlobalExtBlk > > m_extInputToken
edm::ESGetToken< L1TGlobalParameters, L1TGlobalParametersRcd > m_l1GtStableParToken
unsigned long long m_l1GtTmAlgoCacheID
std::vector< std::vector< double > > m_initialPrescaleFactorsAlgoTrig
edm::ESGetToken< L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcd > m_l1GtPrescaleVetosToken
unsigned int m_alternativeNrBxBoardDaq
#define LogTrace(id)
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
edm::InputTag m_muShowerInputTag
bool m_produceL1GtDaqRecord
logical flag to produce the L1 GT DAQ readout record
edm::EDGetTokenT< BXVector< l1t::Muon > > m_muInputToken
unsigned int m_prescaleSet
prescale set used
edm::EDGetTokenT< BXVector< l1t::EtSum > > m_sumInputToken
int m_L1DataBxInEvent
Bx expected in Data coming to GT.
unsigned long long m_l1GtBMCacheID
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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
Log< level::Warning, false > LogWarning
edm::EDGetTokenT< BXVector< l1t::MuonShower > > m_muShowerInputToken
edm::EDGetTokenT< BXVector< l1t::Jet > > m_jetInputToken
edm::EDGetTokenT< BXVector< l1t::EGamma > > m_egInputToken
L1TGlobalProducer::~L1TGlobalProducer ( )
override

Definition at line 248 of file L1TGlobalProducer.cc.

248 {}

Member Function Documentation

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

Definition at line 37 of file L1TGlobalProducer.cc.

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

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

Needs error checking that something exists at this bx.

Definition at line 253 of file L1TGlobalProducer.cc.

References edm::EventBase::bunchCrossing(), makePileupJSON::bx, l1t::TriggerMenuParser::corCaloTemplate(), l1t::TriggerMenuParser::corEnergySumTemplate(), l1t::TriggerMenuParser::corMuonTemplate(), gather_cfg::cout, data, TauDecayModes::dec, Exception, edm::EventSetup::get(), edm::Event::getByToken(), 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(), edm::HandleBase::isValid(), LogDebug, LogTrace, edm::EventBase::luminosityBlock(), 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_muShowerInputToken, m_nrL1EG, m_nrL1Jet, m_nrL1Mu, m_nrL1MuShower, 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_useMuonShowers, m_verbosity, SiStripPI::max, eostools::move(), l1t::GlobalParamsHelper::numberChips(), l1t::GlobalParamsHelper::numberL1EG(), l1t::GlobalParamsHelper::numberL1Jet(), l1t::GlobalParamsHelper::numberL1Mu(), l1t::GlobalParamsHelper::numberL1Tau(), l1t::GlobalParamsHelper::numberPhysTriggers(), l1t::GlobalParamsHelper::orderOfChip(), l1t::TriggerMenuParser::parseCondFormats(), l1t::GlobalParamsHelper::pinsOnChip(), l1t::PrescalesVetosFractHelper::prescaleTable(), print(), edm::ESHandle< class >::product(), edm::Event::put(), l1t::TriggerMenuParser::setGtNumberConditionChips(), l1t::TriggerMenuParser::setGtNumberPhysTriggers(), l1t::TriggerMenuParser::setGtOrderConditionChip(), l1t::TriggerMenuParser::setGtPinsOnConditionChip(), l1t::GlobalParamsHelper::totalBxInEvent(), l1t::PrescalesVetosFractHelper::triggerMaskVeto(), relativeConstraints::value, l1t::TriggerMenuParser::vecCaloTemplate(), l1t::TriggerMenuParser::vecCorrelationTemplate(), l1t::TriggerMenuParser::vecCorrelationThreeBodyTemplate(), l1t::TriggerMenuParser::vecCorrelationWithOverlapRemovalTemplate(), l1t::TriggerMenuParser::vecEnergySumTemplate(), l1t::TriggerMenuParser::vecExternalTemplate(), l1t::TriggerMenuParser::vecMuonShowerTemplate(), and l1t::TriggerMenuParser::vecMuonTemplate().

253  {
254  // process event iEvent
255  // get / update the stable parameters from the EventSetup
256  // local cache & check on cacheIdentifier
257 
258  unsigned long long l1GtParCacheID = evSetup.get<L1TGlobalParametersRcd>().cacheIdentifier();
259 
260  if (m_l1GtParCacheID != l1GtParCacheID) {
262  m_l1GtStablePar = l1GtStablePar.product();
263  const GlobalParamsHelper* data = GlobalParamsHelper::readFromEventSetup(m_l1GtStablePar);
264 
265  // number of bx
267 
268  // number of physics triggers
270 
271  // number of objects of each type
272  m_nrL1Mu = data->numberL1Mu();
273 
274  // There should be at most 1 muon shower object per BX
275  // This object contains information for the in-time
276  // showers and out-of-time showers
277  if (m_useMuonShowers)
278  m_nrL1MuShower = 1;
279 
280  // EG
281  m_nrL1EG = data->numberL1EG();
282 
283  // jets
284  m_nrL1Jet = data->numberL1Jet();
285 
286  // taus
287  m_nrL1Tau = data->numberL1Tau();
288 
289  if (m_L1DataBxInEvent < 1)
290  m_L1DataBxInEvent = 1;
291  int minL1DataBxInEvent = (m_L1DataBxInEvent + 1) / 2 - m_L1DataBxInEvent;
292  int maxL1DataBxInEvent = (m_L1DataBxInEvent + 1) / 2 - 1;
293 
294  // Initialize Board
296  m_nrL1Mu,
298  m_nrL1EG,
299  m_nrL1Tau,
300  m_nrL1Jet,
301  minL1DataBxInEvent,
302  maxL1DataBxInEvent);
303 
304  //
305  m_l1GtParCacheID = l1GtParCacheID;
306  }
307 
308  if (m_emulateBxInEvent < 0) {
310  }
311 
312  if (m_emulateBxInEvent < 1)
313  m_emulateBxInEvent = 1;
314  int minEmulBxInEvent = (m_emulateBxInEvent + 1) / 2 - m_emulateBxInEvent;
315  int maxEmulBxInEvent = (m_emulateBxInEvent + 1) / 2 - 1;
316 
317  // get / update the trigger menu from the EventSetup
318  // local cache & check on cacheIdentifier
319  unsigned long long l1GtMenuCacheID = evSetup.get<L1TUtmTriggerMenuRcd>().cacheIdentifier();
320 
321  if (m_l1GtMenuCacheID != l1GtMenuCacheID) {
322  const GlobalParamsHelper* data = GlobalParamsHelper::readFromEventSetup(m_l1GtStablePar);
323 
325  const L1TUtmTriggerMenu* utml1GtMenu = l1GtMenu.product();
326 
329  iEvent.getByToken(m_algoblkInputToken, m_uGtAlgBlk);
330  if (m_uGtAlgBlk->size() >= 1) {
331  if ((*m_uGtAlgBlk)[0].getL1FirmwareUUID() != static_cast<int>(utml1GtMenu->getFirmwareUuidHashed())) {
332  throw cms::Exception("ConditionsError")
333  << " Error L1 menu loaded in via conditions does not match the L1 actually run "
334  << (*m_uGtAlgBlk)[0].getL1FirmwareUUID() << " vs " << utml1GtMenu->getFirmwareUuidHashed()
335  << ". This means that the mapping of the names to the bits may be incorrect. Please check the "
336  "L1TUtmTriggerMenuRcd record supplied. Unless you know what you are doing, do not simply disable this "
337  "check via the config as this a major error and the indication of something very wrong";
338  }
339  }
340  }
341 
342  // Instantiate Parser
344 
345  gtParser.setGtNumberConditionChips(data->numberChips());
346  gtParser.setGtPinsOnConditionChip(data->pinsOnChip());
347  gtParser.setGtOrderConditionChip(data->orderOfChip());
349 
350  //Parse menu into emulator classes
351  gtParser.parseCondFormats(utml1GtMenu);
352 
353  // transfer the condition map and algorithm map from parser to L1uGtTriggerMenu
354  m_l1GtMenu = std::make_unique<TriggerMenu>(gtParser.gtTriggerMenuName(),
355  data->numberChips(),
356  gtParser.vecMuonTemplate(),
357  gtParser.vecMuonShowerTemplate(),
358  gtParser.vecCaloTemplate(),
359  gtParser.vecEnergySumTemplate(),
360  gtParser.vecExternalTemplate(),
361  gtParser.vecCorrelationTemplate(),
364  gtParser.corMuonTemplate(),
365  gtParser.corCaloTemplate(),
366  gtParser.corEnergySumTemplate());
367 
368  m_l1GtMenu->setGtTriggerMenuInterface(gtParser.gtTriggerMenuInterface());
369  m_l1GtMenu->setGtTriggerMenuImplementation(gtParser.gtTriggerMenuImplementation());
370  m_l1GtMenu->setGtScaleDbKey(gtParser.gtScaleDbKey());
371  m_l1GtMenu->setGtScales(gtParser.gtScales());
372  m_l1GtMenu->setGtTriggerMenuUUID(gtParser.gtTriggerMenuUUID());
373 
374  m_l1GtMenu->setGtAlgorithmMap(gtParser.gtAlgorithmMap());
375  m_l1GtMenu->setGtAlgorithmAliasMap(gtParser.gtAlgorithmAliasMap());
376 
377  m_l1GtMenu->buildGtConditionMap();
378 
379  int printV = 2;
380  if (m_printL1Menu)
381  m_l1GtMenu->print(std::cout, printV);
382 
383  m_l1GtMenuCacheID = l1GtMenuCacheID;
384  }
385 
386  // get / update the board maps from the EventSetup
387  // local cache & check on cacheIdentifier
388 
389  /* *** Drop L1GtBoard Maps for now
390  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
391 
392  unsigned long long l1GtBMCacheID = evSetup.get<L1GtBoardMapsRcd>().cacheIdentifier();
393 */
394 
395  /* ** Drop board mapping for now
396  if (m_l1GtBMCacheID != l1GtBMCacheID) {
397 
398  edm::ESHandle< L1GtBoardMaps > l1GtBM;
399  evSetup.get< L1GtBoardMapsRcd >().get( l1GtBM );
400  m_l1GtBM = l1GtBM.product();
401 
402  m_l1GtBMCacheID = l1GtBMCacheID;
403 
404  }
405 
406 
407  // TODO need changes in CondFormats to cache the maps
408  const std::vector<L1GtBoard>& boardMaps = m_l1GtBM->gtBoardMaps();
409 */
410  // get / update the prescale factors from the EventSetup
411  // local cache & check on cacheIdentifier
412 
413  // Only get event record if not unprescaled and not unmasked
415  unsigned long long l1GtPfAlgoCacheID = evSetup.get<L1TGlobalPrescalesVetosFractRcd>().cacheIdentifier();
416 
417  if (m_l1GtPfAlgoCacheID != l1GtPfAlgoCacheID) {
418  edm::ESHandle<L1TGlobalPrescalesVetosFract> l1GtPrescalesFractVetoes =
420  const L1TGlobalPrescalesVetosFract* es = l1GtPrescalesFractVetoes.product();
421  m_l1GtPrescalesVetosFract = PrescalesVetosFractHelper::readFromEventSetup(es);
422 
425 
426  m_l1GtPfAlgoCacheID = l1GtPfAlgoCacheID;
427  }
429  (m_currentLumi != iEvent.luminosityBlock())) { // get prescale column from unpacked data
430 
431  m_currentLumi = iEvent.luminosityBlock();
432 
434  iEvent.getByToken(m_algoblkInputToken, m_uGtAlgBlk);
435 
436  if (m_uGtAlgBlk.isValid() && !m_uGtAlgBlk->isEmpty(0)) {
437  std::vector<GlobalAlgBlk>::const_iterator algBlk = m_uGtAlgBlk->begin(0);
438  m_prescaleSet = static_cast<unsigned int>(algBlk->getPreScColumn());
439  } else {
440  m_prescaleSet = 1;
441  edm::LogError("L1TGlobalProduce")
442  << "Could not find valid algo block. Setting prescale column to 1" << std::endl;
443  }
444  }
445  } else {
446  // Set Prescale factors to initial dummy values
447  m_prescaleSet = 0;
451  }
452 
453  // get / update the trigger mask from the EventSetup
454  // local cache & check on cacheIdentifier
455 
456  /* **** For now Leave out Masks *****
457  unsigned long long l1GtTmAlgoCacheID =
458  evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().cacheIdentifier();
459 
460  if (m_l1GtTmAlgoCacheID != l1GtTmAlgoCacheID) {
461 
462  edm::ESHandle< L1GtTriggerMask > l1GtTmAlgo;
463  evSetup.get< L1GtTriggerMaskAlgoTrigRcd >().get( l1GtTmAlgo );
464  m_l1GtTmAlgo = l1GtTmAlgo.product();
465 
466  m_triggerMaskAlgoTrig = m_l1GtTmAlgo->gtTriggerMask();
467 
468  m_l1GtTmAlgoCacheID = l1GtTmAlgoCacheID;
469 
470  }
471 */
472 
473  /* **** For now Leave out Veto Masks *****
474  unsigned long long l1GtTmVetoAlgoCacheID =
475  evSetup.get<L1GtTriggerMaskVetoAlgoTrigRcd>().cacheIdentifier();
476 
477  if (m_l1GtTmVetoAlgoCacheID != l1GtTmVetoAlgoCacheID) {
478 
479  edm::ESHandle< L1GtTriggerMask > l1GtTmVetoAlgo;
480  evSetup.get< L1GtTriggerMaskVetoAlgoTrigRcd >().get( l1GtTmVetoAlgo );
481  m_l1GtTmVetoAlgo = l1GtTmVetoAlgo.product();
482 
483  m_triggerMaskVetoAlgoTrig = m_l1GtTmVetoAlgo->gtTriggerMask();
484 
485  m_l1GtTmVetoAlgoCacheID = l1GtTmVetoAlgoCacheID;
486 
487  }
488 */
489 
490  // ****** Board Maps Need to be redone....hard code for now ******
491  // loop over blocks in the GT DAQ record receiving data, count them if they are active
492  // all board type are defined in CondFormats/L1TObjects/L1GtFwd
493  // &
494  // set the active flag for each object type received from GMT and GCT
495  // all objects in the GT system
496 
497  //
498  bool receiveMu = true;
499  bool receiveMuShower = true;
500  bool receiveEG = true;
501  bool receiveTau = true;
502  bool receiveJet = true;
503  bool receiveEtSums = true;
504  bool receiveExt = true;
505 
506  /* *** Boards need redefining *****
507  for (CItBoardMaps
508  itBoard = boardMaps.begin();
509  itBoard != boardMaps.end(); ++itBoard) {
510 
511  int iPosition = itBoard->gtPositionDaqRecord();
512  if (iPosition > 0) {
513 
514  int iActiveBit = itBoard->gtBitDaqActiveBoards();
515  bool activeBoard = false;
516 
517  if (iActiveBit >= 0) {
518  activeBoard = m_activeBoardsGtDaq & (1 << iActiveBit);
519  }
520 
521  // use board if: in the record, but not in ActiveBoardsMap (iActiveBit < 0)
522  // in the record and ActiveBoardsMap, and active
523  if ((iActiveBit < 0) || activeBoard) {
524 
525 // ****** Decide what board manipulation (if any we want here)
526 
527  }
528  }
529 
530  }
531 */
532 
533  // Produce the Output Records for the GT
534  std::unique_ptr<GlobalAlgBlkBxCollection> uGtAlgRecord(
535  new GlobalAlgBlkBxCollection(0, minEmulBxInEvent, maxEmulBxInEvent));
536 
537  // * produce the GlobalObjectMapRecord
538  std::unique_ptr<GlobalObjectMapRecord> gtObjectMapRecord(new GlobalObjectMapRecord());
539 
540  // fill the boards not depending on the BxInEvent in the L1 GT DAQ record
541  // GMT, PSB and FDL depend on BxInEvent
542 
543  // fill in emulator the same bunch crossing (12 bits - hardwired number of bits...)
544  // and the same local bunch crossing for all boards
545  int bxCross = iEvent.bunchCrossing();
546  uint16_t bxCrossHw = 0;
547  if ((bxCross & 0xFFF) == bxCross) {
548  bxCrossHw = static_cast<uint16_t>(bxCross);
549  } else {
550  bxCrossHw = 0; // Bx number too large, set to 0!
551  if (m_verbosity) {
552  LogDebug("L1TGlobalProducer") << "\nBunch cross number [hex] = " << std::hex << bxCross
553  << "\n larger than 12 bits. Set to 0! \n"
554  << std::dec << std::endl;
555  }
556  }
557  LogDebug("L1TGlobalProducer") << "HW BxCross " << bxCrossHw << std::endl;
558 
559  // get the prescale factor from the configuration for now
560  // prescale set index counts from zero
561  unsigned int pfAlgoSetIndex = m_prescaleSet;
562 
563  auto max = (*m_prescaleFactorsAlgoTrig).size() - 1;
564  if (pfAlgoSetIndex > max) {
565  edm::LogWarning("L1TGlobalProducer") << "\nAttempting to access prescale algo set: " << m_prescaleSet
566  << "\nNumber of prescale algo sets available: 0.." << max
567  << "Setting former to latter." << std::endl;
568  pfAlgoSetIndex = max;
569  }
570 
571  const std::vector<double>& prescaleFactorsAlgoTrig = (*m_prescaleFactorsAlgoTrig).at(pfAlgoSetIndex);
572 
573  // For now, set masks according to prescale value of 0
575  for (unsigned int iAlgo = 0; iAlgo < prescaleFactorsAlgoTrig.size(); iAlgo++) {
576  unsigned int value = prescaleFactorsAlgoTrig[iAlgo];
577  value = (value == 0) ? 0 : 1;
578  m_initialTriggerMaskAlgoTrig.push_back(value);
579  }
581 
582  const std::vector<unsigned int>& triggerMaskAlgoTrig = *m_triggerMaskAlgoTrig;
583  const std::vector<int>& triggerMaskVetoAlgoTrig = *m_triggerMaskVetoAlgoTrig;
584 
585  LogDebug("L1TGlobalProducer") << "Size of prescale vector" << prescaleFactorsAlgoTrig.size() << std::endl;
586 
587  // Load the calorimeter input onto the uGt Board
588  m_uGtBrd->receiveCaloObjectData(iEvent,
593  receiveEG,
594  m_nrL1EG,
595  receiveTau,
596  m_nrL1Tau,
597  receiveJet,
598  m_nrL1Jet,
599  receiveEtSums);
600 
601  m_uGtBrd->receiveMuonObjectData(iEvent, m_muInputToken, receiveMu, m_nrL1Mu);
602 
603  if (m_useMuonShowers)
604  m_uGtBrd->receiveMuonShowerObjectData(iEvent, m_muShowerInputToken, receiveMuShower, m_nrL1MuShower);
605 
606  m_uGtBrd->receiveExternalData(iEvent, m_extInputToken, receiveExt);
607 
608  // loop over BxInEvent
609  for (int iBxInEvent = minEmulBxInEvent; iBxInEvent <= maxEmulBxInEvent; ++iBxInEvent) {
610  // run GTL
611  LogDebug("L1TGlobalProducer") << "\nL1TGlobalProducer : running GTL for bx = " << iBxInEvent << "\n" << std::endl;
612 
613  // Run the GTL for this BX
614  m_uGtBrd->runGTL(iEvent,
615  evSetup,
616  m_l1GtMenu.get(),
618  iBxInEvent,
619  gtObjectMapRecord,
621  m_nrL1Mu,
623  m_nrL1EG,
624  m_nrL1Tau,
625  m_nrL1Jet);
626 
627  // run FDL
628  LogDebug("L1TGlobalProducer") << "\nL1TGlobalProducer : running FDL for bx = " << iBxInEvent << "\n" << std::endl;
629 
630  // Run the Final Decision Logic for this BX
631  m_uGtBrd->runFDL(iEvent,
632  iBxInEvent,
634  m_numberPhysTriggers,
635  prescaleFactorsAlgoTrig,
636  triggerMaskAlgoTrig,
637  triggerMaskVetoAlgoTrig,
640 
641  // Fill in the DAQ Records
643  m_uGtBrd->fillAlgRecord(iBxInEvent,
644  uGtAlgRecord,
646  m_l1GtMenu->gtTriggerMenuUUID(),
647  m_l1GtMenu->gtTriggerMenuImplementation());
648  }
649 
650  } //End Loop over Bx
651 
652  // Add explicit reset of Board
653  m_uGtBrd->reset();
654 
655  if (m_verbosity && m_isDebugEnabled) {
656  std::ostringstream myCoutStream;
657 
658  for (int bx = minEmulBxInEvent; bx < maxEmulBxInEvent; bx++) {
660  (uGtAlgRecord->at(bx, 0)).print(myCoutStream);
661  }
662 
663  LogTrace("L1TGlobalProducer") << "\n The following L1 GT DAQ readout record was produced:\n"
664  << myCoutStream.str() << "\n"
665  << std::endl;
666 
667  myCoutStream.str("");
668  myCoutStream.clear();
669 
670  const std::vector<GlobalObjectMap> objMapVec = gtObjectMapRecord->gtObjectMap();
671 
672  for (std::vector<GlobalObjectMap>::const_iterator it = objMapVec.begin(); it != objMapVec.end(); ++it) {
673  (*it).print(myCoutStream);
674  }
675 
676  LogDebug("L1TGlobalProducer") << "Test gtObjectMapRecord in L1TGlobalProducer \n\n"
677  << myCoutStream.str() << "\n\n"
678  << std::endl;
679 
680  myCoutStream.str("");
681  myCoutStream.clear();
682  }
683 
684  // register products
686  iEvent.put(std::move(uGtAlgRecord));
687  }
688 
690  iEvent.put(std::move(gtObjectMapRecord));
691  }
692 }
unsigned long long m_l1GtParCacheID
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
unsigned int numberL1Jet() const
get / set the number of L1 jets received by GT
const std::vector< std::vector< EnergySumTemplate > > & vecEnergySumTemplate() const
void setGtOrderConditionChip(const std::vector< int > &)
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
int m_verbosity
verbosity level
const AlgorithmMap & gtAlgorithmAliasMap() const
get / set the algorithm map (by alias)
unsigned int numberL1EG() const
get / set the number of L1 e/gamma objects received by GT
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::EDGetTokenT< BXVector< l1t::Tau > > m_tauInputToken
const unsigned long getFirmwareUuidHashed() const
const l1t::PrescalesVetosFractHelper * m_l1GtPrescalesVetosFract
prescale factors
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
const std::vector< std::vector< MuonShowerTemplate > > & vecMuonShowerTemplate() const
const std::vector< int > & triggerMaskVeto() const
unsigned int numberPhysTriggers() const
get / set the number of physics trigger algorithms
const std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > & vecCorrelationWithOverlapRemovalTemplate() const
int bunchCrossing() const
Definition: EventBase.h:64
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
const std::vector< std::vector< ExternalTemplate > > & vecExternalTemplate() const
unsigned int m_numberPhysTriggers
const L1TGlobalParameters * m_l1GtStablePar
cached stuff
edm::EDGetTokenT< BXVector< GlobalExtBlk > > m_extInputToken
edm::ESGetToken< L1TGlobalParameters, L1TGlobalParametersRcd > m_l1GtStableParToken
BXVector< GlobalAlgBlk > GlobalAlgBlkBxCollection
Definition: GlobalAlgBlk.h:31
std::vector< std::vector< double > > m_initialPrescaleFactorsAlgoTrig
Log< level::Error, false > LogError
std::vector< unsigned int > m_initialTriggerMaskAlgoTrig
edm::ESGetToken< L1TGlobalPrescalesVetosFract, L1TGlobalPrescalesVetosFractRcd > m_l1GtPrescaleVetosToken
const std::vector< int > * m_triggerMaskVetoAlgoTrig
#define LogTrace(id)
void setGtPinsOnConditionChip(const unsigned int &)
unsigned long long m_l1GtMenuCacheID
const std::vector< int > & orderOfChip() const
void parseCondFormats(const L1TUtmTriggerMenu *utmMenu)
std::unique_ptr< TriggerMenu > m_l1GtMenu
std::vector< int > m_initialTriggerMaskVetoAlgoTrig
const std::string & gtTriggerMenuName() const
def move
Definition: eostools.py:511
const std::vector< std::vector< CaloTemplate > > & corCaloTemplate() const
bool m_produceL1GtDaqRecord
logical flag to produce the L1 GT DAQ readout record
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
edm::EDGetTokenT< BXVector< l1t::Muon > > m_muInputToken
const std::vector< std::vector< MuonTemplate > > & corMuonTemplate() const
unsigned int numberL1Tau() const
get / set the number of L1 tau received by GT
const std::vector< std::vector< double > > & prescaleTable() const
bool isValid() const
Definition: HandleBase.h:70
const std::vector< std::vector< MuonTemplate > > & vecMuonTemplate() const
get / set the vectors containing the conditions
const std::vector< std::vector< EnergySumTemplate > > & corEnergySumTemplate() const
unsigned int m_prescaleSet
prescale set used
const std::vector< std::vector< CorrelationTemplate > > & vecCorrelationTemplate() const
edm::EDGetTokenT< BXVector< l1t::EtSum > > m_sumInputToken
int m_L1DataBxInEvent
Bx expected in Data coming to GT.
const GlobalScales & gtScales() const
menu associated scales
const int gtTriggerMenuUUID() const
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
void setGtNumberConditionChips(const unsigned int &)
T const * product() const
Definition: ESHandle.h:86
edm::EDGetToken m_algoblkInputToken
const std::vector< std::vector< CorrelationThreeBodyTemplate > > & vecCorrelationThreeBodyTemplate() const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
T get() const
Definition: EventSetup.h:82
int totalBxInEvent() const
get / set the number of bx in hardware
tuple cout
Definition: gather_cfg.py:144
const std::vector< std::vector< CaloTemplate > > & vecCaloTemplate() const
edm::ESGetToken< L1TUtmTriggerMenu, L1TUtmTriggerMenuRcd > m_l1GtMenuToken
unsigned long long m_l1GtPfAlgoCacheID
const std::string & gtTriggerMenuInterface() const
get / set the trigger menu names
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
std::unique_ptr< l1t::GlobalBoard > m_uGtBrd
Log< level::Warning, false > LogWarning
const std::vector< std::vector< double > > * m_prescaleFactorsAlgoTrig
unsigned int numberL1Mu() const
get / set the number of L1 muons received by GT
edm::EDGetTokenT< BXVector< l1t::MuonShower > > m_muShowerInputToken
const std::string & gtScaleDbKey() const
menu associated scale key
unsigned int pinsOnChip() const
get / set the number of pins on the GTL condition chips
const unsigned long gtTriggerMenuImplementation() const
edm::EDGetTokenT< BXVector< l1t::Jet > > m_jetInputToken
unsigned int numberChips() const
get / set the number of condition chips in GTL
edm::EDGetTokenT< BXVector< l1t::EGamma > > m_egInputToken
void setGtNumberPhysTriggers(const unsigned int &)
#define LogDebug(id)

Member Data Documentation

uint16_t L1TGlobalProducer::m_activeBoardsGtDaq
private

active boards in L1 GT DAQ record

Definition at line 85 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

edm::InputTag L1TGlobalProducer::m_algoblkInputTag
private

Definition at line 182 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

edm::EDGetToken L1TGlobalProducer::m_algoblkInputToken
private

Definition at line 183 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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().

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().

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().

unsigned int L1TGlobalProducer::m_bstLengthBytes
private

length of BST record (in bytes) from event setup

Definition at line 88 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

uint L1TGlobalProducer::m_currentLumi
private

Definition at line 101 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

edm::InputTag L1TGlobalProducer::m_egInputTag
private

input tag for calorimeter collections from GCT

Definition at line 125 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 129 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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().

edm::InputTag L1TGlobalProducer::m_extInputTag
private

input tag for external conditions

Definition at line 135 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 136 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

bool L1TGlobalProducer::m_getPrescaleColumnFromData
private

Definition at line 180 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_ifCaloEtaNumberBits
private

Definition at line 79 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

int L1TGlobalProducer::m_ifMuEtaNumberBits
private

Definition at line 78 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 99 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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

Definition at line 111 of file L1TGlobalProducer.h.

Referenced by produce().

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

Definition at line 114 of file L1TGlobalProducer.h.

Referenced by produce().

bool L1TGlobalProducer::m_isDebugEnabled
private

Definition at line 178 of file L1TGlobalProducer.h.

Referenced by produce().

edm::InputTag L1TGlobalProducer::m_jetInputTag
private

Definition at line 127 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 131 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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().

const L1GtBoardMaps* L1TGlobalProducer::m_l1GtBM
private

board maps - cache only the record

Definition at line 91 of file L1TGlobalProducer.h.

unsigned long long L1TGlobalProducer::m_l1GtBMCacheID
private

Definition at line 92 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 60 of file L1TGlobalProducer.h.

Referenced by produce().

unsigned long long L1TGlobalProducer::m_l1GtMenuCacheID
private

Definition at line 61 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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

Definition at line 186 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

unsigned long long L1TGlobalProducer::m_l1GtParCacheID
private

Definition at line 57 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

unsigned long long L1TGlobalProducer::m_l1GtPfAlgoCacheID
private

Definition at line 96 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

const l1t::PrescalesVetosFractHelper* L1TGlobalProducer::m_l1GtPrescalesVetosFract
private

prescale factors

Definition at line 95 of file L1TGlobalProducer.h.

Referenced by produce().

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

Definition at line 187 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

const L1TGlobalParameters* L1TGlobalProducer::m_l1GtStablePar
private

cached stuff

stable parameters

Definition at line 56 of file L1TGlobalProducer.h.

Referenced by produce().

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

Definition at line 185 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

const L1GtTriggerMask* L1TGlobalProducer::m_l1GtTmAlgo
private

trigger masks & veto masks

Definition at line 104 of file L1TGlobalProducer.h.

unsigned long long L1TGlobalProducer::m_l1GtTmAlgoCacheID
private

Definition at line 105 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

const L1GtTriggerMask* L1TGlobalProducer::m_l1GtTmVetoAlgo
private

Definition at line 107 of file L1TGlobalProducer.h.

unsigned long long L1TGlobalProducer::m_l1GtTmVetoAlgoCacheID
private

Definition at line 108 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

edm::InputTag L1TGlobalProducer::m_muInputTag
private

input tag for muon collection from GMT

Definition at line 119 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 121 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

edm::InputTag L1TGlobalProducer::m_muShowerInputTag
private

Definition at line 120 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

edm::EDGetTokenT<BXVector<l1t::MuonShower> > L1TGlobalProducer::m_muShowerInputToken
private

Definition at line 122 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_nrL1EG
private

Definition at line 72 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_nrL1Jet
private

Definition at line 75 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_nrL1Mu
private

Definition at line 70 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_nrL1MuShower
private

Definition at line 71 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_nrL1Tau
private

Definition at line 73 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

unsigned int L1TGlobalProducer::m_numberDaqPartitions
private

Definition at line 67 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

unsigned int L1TGlobalProducer::m_numberPhysTriggers
private

Definition at line 64 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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

Definition at line 98 of file L1TGlobalProducer.h.

Referenced by produce().

unsigned int L1TGlobalProducer::m_prescaleSet
private

prescale set used

Definition at line 164 of file L1TGlobalProducer.h.

Referenced by produce().

bool L1TGlobalProducer::m_printL1Menu
private

Definition at line 177 of file L1TGlobalProducer.h.

Referenced by produce().

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().

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().

int L1TGlobalProducer::m_psBstLengthBytes
private

length of BST record (in bytes) from parameter set

Definition at line 161 of file L1TGlobalProducer.h.

bool L1TGlobalProducer::m_requireMenuToMatchAlgoBlkInput
private

Definition at line 181 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

bool L1TGlobalProducer::m_resetPSCountersEachLumiSec
private

Definition at line 190 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

edm::InputTag L1TGlobalProducer::m_sumInputTag
private

Definition at line 128 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 132 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

edm::InputTag L1TGlobalProducer::m_tauInputTag
private

Definition at line 126 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer().

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

Definition at line 130 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_totalBxInEvent
private

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

Definition at line 82 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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

Definition at line 110 of file L1TGlobalProducer.h.

Referenced by produce().

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

Definition at line 113 of file L1TGlobalProducer.h.

Referenced by produce().

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

Definition at line 116 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

bool L1TGlobalProducer::m_useMuonShowers
private

Definition at line 192 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

int L1TGlobalProducer::m_verbosity
private

verbosity level

Definition at line 176 of file L1TGlobalProducer.h.

Referenced by L1TGlobalProducer(), and produce().

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.