CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
L1GTEvaluationProducer Class Reference
Inheritance diagram for L1GTEvaluationProducer:
edm::one::EDProducer<> edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1GTEvaluationProducer (const edm::ParameterSet &)
 
 ~L1GTEvaluationProducer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
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
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &)
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void endJob () override
 
int nextEta ()
 
int nextPhi ()
 
int nextPt ()
 
int nextValue (int mean=1000, bool sign=false, int max=std::numeric_limits< int >::max())
 
void produce (edm::Event &, const edm::EventSetup &) override
 
void writeInputPatterns (const std::unordered_map< std::string, std::vector< std::unique_ptr< l1t::L1TGT_BaseInterface >>> &inputObjects)
 

Private Attributes

l1t::demo::BoardDataWriter boardDataWriter_
 
std::mt19937 randomGenerator_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 33 of file L1GTEvaluationProducer.cc.

Constructor & Destructor Documentation

◆ L1GTEvaluationProducer()

L1GTEvaluationProducer::L1GTEvaluationProducer ( const edm::ParameterSet config)
explicit

Definition at line 106 of file L1GTEvaluationProducer.cc.

107  : randomGenerator_(config.exists("random_seed") ? config.getParameter<unsigned int>("random_seed")
108  : std::random_device()()),
109  boardDataWriter_(l1t::demo::parseFileFormat(config.getParameter<std::string>("patternFormat")),
110  config.getParameter<std::string>("outputFilename"),
111  config.getParameter<std::string>("outputFileExtension"),
112  9,
113  1,
114  config.getParameter<unsigned int>("maxLines"),
115  config.getParameter<std::string>("platform") == "VU13P" ? CHANNEL_MAP_VU13P : CHANNEL_MAP_VU9P) {
116  produces<P2GTCandidateCollection>("GCTNonIsoEg");
117  produces<P2GTCandidateCollection>("GCTIsoEg");
118  produces<P2GTCandidateCollection>("GCTJets");
119  produces<P2GTCandidateCollection>("GCTTaus");
120  produces<P2GTCandidateCollection>("GCTHtSum");
121  produces<P2GTCandidateCollection>("GCTEtSum");
122  produces<P2GTCandidateCollection>("GMTSaPromptMuons");
123  produces<P2GTCandidateCollection>("GMTSaDisplacedMuons");
124  produces<P2GTCandidateCollection>("GMTTkMuons");
125  produces<P2GTCandidateCollection>("GMTTopo");
126  produces<P2GTCandidateCollection>("GTTPromptJets");
127  produces<P2GTCandidateCollection>("GTTDisplacedJets");
128  produces<P2GTCandidateCollection>("GTTPhiCandidates");
129  produces<P2GTCandidateCollection>("GTTRhoCandidates");
130  produces<P2GTCandidateCollection>("GTTBsCandidates");
131  produces<P2GTCandidateCollection>("GTTHadronicTaus");
132  produces<P2GTCandidateCollection>("GTTPrimaryVert");
133  produces<P2GTCandidateCollection>("GTTPromptHtSum");
134  produces<P2GTCandidateCollection>("GTTDisplacedHtSum");
135  produces<P2GTCandidateCollection>("GTTEtSum");
136  produces<P2GTCandidateCollection>("CL2Jets");
137  produces<P2GTCandidateCollection>("CL2Taus");
138  produces<P2GTCandidateCollection>("CL2Electrons");
139  produces<P2GTCandidateCollection>("CL2Photons");
140  produces<P2GTCandidateCollection>("CL2HtSum");
141  produces<P2GTCandidateCollection>("CL2EtSum");
142 }
l1t::demo::BoardDataWriter boardDataWriter_
FileFormat parseFileFormat(const std::string &)
Definition: utilities.cc:73
Definition: config.py:1
static const l1t::demo::BoardDataWriter::ChannelMap_t CHANNEL_MAP_VU13P
static const l1t::demo::BoardDataWriter::ChannelMap_t CHANNEL_MAP_VU9P

◆ ~L1GTEvaluationProducer()

L1GTEvaluationProducer::~L1GTEvaluationProducer ( )
overridedefault

Member Function Documentation

◆ endJob()

void L1GTEvaluationProducer::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 323 of file L1GTEvaluationProducer.cc.

References boardDataWriter_, and l1t::demo::BoardDataWriter::flush().

◆ fillDescriptions()

void L1GTEvaluationProducer::fillDescriptions ( edm::ConfigurationDescriptions description)
static

Definition at line 144 of file L1GTEvaluationProducer.cc.

References submitPVResolutionJobs::desc, makeListRunsInFiles::description, and AlCaHLTBitMon_QueryRunRegistry::string.

144  {
146  desc.addOptional<unsigned int>("random_seed");
147  desc.add<unsigned int>("maxLines", 1024);
148  desc.add<std::string>("outputFilename");
149  desc.add<std::string>("outputFileExtension", "txt");
150  desc.add<std::string>("patternFormat", "EMPv2");
151  desc.ifValue(edm::ParameterDescription<std::string>("platform", "VU9P", true),
152  edm::allowedValues<std::string>("VU9P", "VU13P"));
153  description.addWithDefaultLabel(desc);
154 }

◆ nextEta()

int L1GTEvaluationProducer::nextEta ( )
inlineprivate

Definition at line 49 of file L1GTEvaluationProducer.cc.

References ApeEstimator_cff::width.

Referenced by produce().

49  {
50  return std::uniform_int_distribution<int>(-(1 << (P2GTCandidate::hwEta_t::width - 1)),
52  }

◆ nextPhi()

int L1GTEvaluationProducer::nextPhi ( )
inlineprivate

Definition at line 53 of file L1GTEvaluationProducer.cc.

References ApeEstimator_cff::width.

Referenced by produce().

53  {
54  return std::uniform_int_distribution<int>(-(1 << (P2GTCandidate::hwPhi_t::width - 1)),
56  }

◆ nextPt()

int L1GTEvaluationProducer::nextPt ( )
inlineprivate

Definition at line 44 of file L1GTEvaluationProducer.cc.

References ApeEstimator_cff::width.

Referenced by produce().

44  {
45  return std::max<int>(0,
46  nextValue(300, false, (1 << P2GTCandidate::hwPT_t::width) - 1) +
47  std::normal_distribution<double>(0, 500)(randomGenerator_));
48  }
int nextValue(int mean=1000, bool sign=false, int max=std::numeric_limits< int >::max())

◆ nextValue()

int L1GTEvaluationProducer::nextValue ( int  mean = 1000,
bool  sign = false,
int  max = std::numeric_limits<int>::max() 
)
private

Definition at line 156 of file L1GTEvaluationProducer.cc.

References SiStripPI::max, SiStripPI::mean, randomGenerator_, mps_fire::result, and Validation_hcalonly_cfi::sign.

Referenced by produce().

156  {
157  bool positive = sign ? std::bernoulli_distribution(0.5)(randomGenerator_) : true;
158 
159  int result;
160  do {
161  result = std::poisson_distribution<int>(mean)(randomGenerator_);
162  } while (result > max);
163 
164  return positive ? result : -result;
165 }

◆ produce()

void L1GTEvaluationProducer::produce ( edm::Event event,
const edm::EventSetup setup 
)
overrideprivatevirtual

Implements edm::one::EDProducerBase.

Definition at line 235 of file L1GTEvaluationProducer.cc.

References mps_fire::i, HLT_2024v10_cff::inputCollection, HLT_2024v10_cff::inputObjects, submitPVResolutionJobs::key, eostools::move(), nextEta(), nextPhi(), nextPt(), nextValue(), resolutioncreator_cfi::object, and writeInputPatterns().

235  {
236  // Generate random input objects
237  std::unordered_map<std::string, std::vector<std::unique_ptr<l1t::L1TGT_BaseInterface>>> inputObjects;
238  for (std::size_t i = 0; i < 12; ++i) {
239  // Global Muon Trigger
240  inputObjects["GMTSaPromptMuons"].emplace_back(std::make_unique<l1t::L1TGT_GMT_PromptDisplacedMuon>(
241  true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue(), nextValue(), nextValue()));
242 
243  inputObjects["GMTSaDisplacedMuons"].emplace_back(std::make_unique<l1t::L1TGT_GMT_PromptDisplacedMuon>(
244  true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue(), nextValue(), nextValue()));
245  inputObjects["GMTTkMuons"].emplace_back(std::make_unique<l1t::L1TGT_GMT_TrackMatchedmuon>(true,
246  nextPt(),
247  nextEta(),
248  nextPhi(),
249  nextValue(),
250  nextValue(),
251  nextValue(),
252  nextValue(),
253  nextValue(),
254  nextValue()));
255  inputObjects["GMTTopo"].emplace_back(
256  std::make_unique<l1t::L1TGT_GMT_TopoObject>(true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue()));
257 
258  // Global Calorimeter Trigger
259  inputObjects["GCTNonIsoEg"].emplace_back(
260  std::make_unique<l1t::L1TGT_GCT_EgammaNonIsolated6p6>(true, nextPt(), nextEta(), nextPhi()));
261  inputObjects["GCTIsoEg"].emplace_back(
262  std::make_unique<l1t::L1TGT_GCT_EgammaIsolated6p6>(true, nextPt(), nextEta(), nextPhi()));
263  inputObjects["GCTJets"].emplace_back(std::make_unique<l1t::L1TGT_GCT_jet6p6>(true, nextPt(), nextEta(), nextPhi()));
264  inputObjects["GCTTaus"].emplace_back(
265  std::make_unique<l1t::L1TGT_GCT_tau6p6>(true, nextPt(), nextEta(), nextPhi(), nextValue()));
266 
267  // Global Track Trigger
268  inputObjects["GTTPrimaryVert"].emplace_back(
269  std::make_unique<l1t::L1TGT_GTT_PrimaryVert>(true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue()));
270  inputObjects["GTTPromptJets"].emplace_back(
271  std::make_unique<l1t::L1TGT_GTT_PromptJet>(true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue()));
272  inputObjects["GTTDisplacedJets"].emplace_back(std::make_unique<l1t::L1TGT_GTT_DisplacedJet>(
273  true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue(), nextValue()));
274  inputObjects["GTTHadronicTaus"].emplace_back(std::make_unique<l1t::L1TGT_GTT_HadronicTau>(
275  true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue(), nextValue(), nextValue()));
276  inputObjects["GTTPhiCandidates"].emplace_back(
277  std::make_unique<l1t::L1TGT_GTT_LightMeson>(true, nextPt(), nextEta(), nextPhi(), nextValue()));
278  inputObjects["GTTRhoCandidates"].emplace_back(
279  std::make_unique<l1t::L1TGT_GTT_LightMeson>(true, nextPt(), nextEta(), nextPhi(), nextValue()));
280  inputObjects["GTTBsCandidates"].emplace_back(
281  std::make_unique<l1t::L1TGT_GTT_LightMeson>(true, nextPt(), nextEta(), nextPhi(), nextValue()));
282 
283  // Correlator Layer-2
284  inputObjects["CL2Jets"].emplace_back(
285  std::make_unique<l1t::L1TGT_CL2_Jet>(true, nextPt(), nextEta(), nextPhi(), nextValue()));
286  inputObjects["CL2Electrons"].emplace_back(std::make_unique<l1t::L1TGT_CL2_Electron>(
287  true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue(), nextValue(), nextValue()));
288  inputObjects["CL2Photons"].emplace_back(
289  std::make_unique<l1t::L1TGT_CL2_Photon>(true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue()));
290  inputObjects["CL2Taus"].emplace_back(std::make_unique<l1t::L1TGT_CL2_Tau>(
291  true, nextPt(), nextEta(), nextPhi(), nextValue(), nextValue(), nextValue(), nextValue()));
292  }
293 
294  inputObjects["CL2HtSum"].emplace_back(
295  std::make_unique<l1t::L1TGT_CL2_Sum>(true, nextValue(), nextValue(), nextValue()));
296  inputObjects["CL2EtSum"].emplace_back(
297  std::make_unique<l1t::L1TGT_CL2_Sum>(true, nextValue(), nextValue(), nextValue()));
298  inputObjects["GCTHtSum"].emplace_back(
299  std::make_unique<l1t::L1TGT_GCT_Sum2>(true, nextValue(), nextValue(), nextValue()));
300  inputObjects["GCTEtSum"].emplace_back(
301  std::make_unique<l1t::L1TGT_GCT_Sum2>(true, nextValue(), nextValue(), nextValue()));
302 
303  inputObjects["GTTPromptHtSum"].emplace_back(
304  std::make_unique<l1t::L1TGT_GTT_Sum>(true, nextValue(), nextValue(), nextValue()));
305  inputObjects["GTTDisplacedHtSum"].emplace_back(
306  std::make_unique<l1t::L1TGT_GTT_Sum>(true, nextValue(), nextValue(), nextValue()));
307  inputObjects["GTTEtSum"].emplace_back(
308  std::make_unique<l1t::L1TGT_GTT_Sum>(true, nextValue(), nextValue(), nextValue()));
309 
310  // Write them to a pattern file
312 
313  for (const auto &[key, inputCollection] : inputObjects) {
314  std::unique_ptr<P2GTCandidateCollection> gtCollection = std::make_unique<P2GTCandidateCollection>();
315  for (const auto &object : inputCollection) {
316  gtCollection->emplace_back(object->to_GTObject());
317  }
318 
319  event.put(std::move(gtCollection), key);
320  }
321 }
key
prepare the HTCondor submission files and eventually submit them
void writeInputPatterns(const std::unordered_map< std::string, std::vector< std::unique_ptr< l1t::L1TGT_BaseInterface >>> &inputObjects)
int nextValue(int mean=1000, bool sign=false, int max=std::numeric_limits< int >::max())
def move(src, dest)
Definition: eostools.py:511

◆ writeInputPatterns()

void L1GTEvaluationProducer::writeInputPatterns ( const std::unordered_map< std::string, std::vector< std::unique_ptr< l1t::L1TGT_BaseInterface >>> &  inputObjects)
private

Definition at line 203 of file L1GTEvaluationProducer.cc.

References l1t::demo::BoardDataWriter::addEvent(), boardDataWriter_, HLT_2024v10_cff::inputObjects, and vpack().

Referenced by produce().

204  {
206  {{{"GTT", 0},
207  vpack(inputObjects.at("GTTPromptJets"),
208  inputObjects.at("GTTDisplacedJets"),
209  inputObjects.at("GTTPromptHtSum"),
210  inputObjects.at("GTTDisplacedHtSum"),
211  inputObjects.at("GTTEtSum"))},
212  {{"GTT", 1}, vpack(inputObjects.at("GTTHadronicTaus"))},
213  {{"CL2", 0}, vpack(inputObjects.at("CL2Jets"), inputObjects.at("CL2HtSum"), inputObjects.at("CL2EtSum"))},
214  {{"CL2", 1}, vpack(inputObjects.at("CL2Taus"))},
215  {{"GCT", 0},
216  vpack(inputObjects.at("GCTNonIsoEg"),
217  inputObjects.at("GCTIsoEg"),
218  inputObjects.at("GCTJets"),
219  inputObjects.at("GCTTaus"),
220  inputObjects.at("GCTHtSum"),
221  inputObjects.at("GCTEtSum"))},
222  {{"GMT", 0},
223  vpack(inputObjects.at("GMTSaPromptMuons"),
224  inputObjects.at("GMTSaDisplacedMuons"),
225  inputObjects.at("GMTTkMuons"),
226  inputObjects.at("GMTTopo"))},
227  {{"CL2", 2}, vpack(inputObjects.at("CL2Electrons"), inputObjects.at("CL2Photons"))},
228  {{"GTT", 2},
229  vpack(inputObjects.at("GTTPhiCandidates"),
230  inputObjects.at("GTTRhoCandidates"),
231  inputObjects.at("GTTBsCandidates"))},
232  {{"GTT", 3}, vpack(inputObjects.at("GTTPrimaryVert"))}}});
233 }
l1t::demo::BoardDataWriter boardDataWriter_
void addEvent(const EventData &data)
static std::vector< ap_uint< 64 > > vpack(const Args &...vobjects)
Class representing information phase-2 ATCA I/O data corresponding to a single event, with logical channel IDs (essentially string-uint pairs, e.g. tracks-0 to tracks-17).
Definition: EventData.h:28

Member Data Documentation

◆ boardDataWriter_

l1t::demo::BoardDataWriter L1GTEvaluationProducer::boardDataWriter_
private

Definition at line 64 of file L1GTEvaluationProducer.cc.

Referenced by endJob(), and writeInputPatterns().

◆ randomGenerator_

std::mt19937 L1GTEvaluationProducer::randomGenerator_
private

Definition at line 63 of file L1GTEvaluationProducer.cc.

Referenced by nextValue().