CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GtProducer.cc
Go to the documentation of this file.
1 
19 // this class header
21 
22 // system include files
23 #include <memory>
24 #include <iostream>
25 #include <iomanip>
26 #include <algorithm>
27 
28 #include <boost/cstdint.hpp>
29 
30 // user include files
32 
33 // Objects to produce for the output record.
36 
38 
42 
45 
48 
54 
55 
58 
61 
62 
63 
64 // constructors
65 
67  m_muInputTag(parSet.getParameter<edm::InputTag> ("GmtInputTag")),
68  m_caloInputTag(parSet.getParameter<edm::InputTag> ("caloInputTag")),
69 
70  m_produceL1GtDaqRecord(parSet.getParameter<bool> ("ProduceL1GtDaqRecord")),
71  m_produceL1GtObjectMapRecord(parSet.getParameter<bool> ("ProduceL1GtObjectMapRecord")),
72 
73  m_emulateBxInEvent(parSet.getParameter<int> ("EmulateBxInEvent")),
74  m_L1DataBxInEvent(parSet.getParameter<int> ("L1DataBxInEvent")),
75 
76  m_alternativeNrBxBoardDaq(parSet.getParameter<unsigned int> ("AlternativeNrBxBoardDaq")),
77  m_psBstLengthBytes(parSet.getParameter<int> ("BstLengthBytes")),
78  m_algorithmTriggersUnprescaled(parSet.getParameter<bool> ("AlgorithmTriggersUnprescaled")),
79  m_algorithmTriggersUnmasked(parSet.getParameter<bool> ("AlgorithmTriggersUnmasked")),
80 
81  m_verbosity(parSet.getUntrackedParameter<int>("Verbosity", 0)),
82  m_isDebugEnabled(edm::isDebugEnabled())
83 {
84 
85 
86  if (m_verbosity) {
87 
88  LogDebug("l1t|Global") << std::endl;
89 
90  LogTrace("l1t|Global")
91  << "\nInput tag for muon collection from GMT: " << m_muInputTag
92  << "\nInput tag for calorimeter collections from GCT: " << m_caloInputTag
93  << std::endl;
94 
95 
96  LogTrace("l1t|Global")
97  << "\nProduce the L1 GT DAQ readout record: " << m_produceL1GtDaqRecord
98  << "\nProduce the L1 GT Object Map record: " << m_produceL1GtObjectMapRecord
99  << " \n"
100  << "\nWrite Psb content to L1 GT DAQ Record: " << m_writePsbL1GtDaqRecord
101  << " \n"
102  << "\nNumber of BxInEvent to be emulated: " << m_emulateBxInEvent
103  << " \n"
104  << "\nAlternative for number of BX in GT DAQ record: 0x" << std::hex
106  << " \n"
107  << "\nLength of BST message [bytes]: " << m_psBstLengthBytes
108  << "\n"
109  << "\nRun algorithm triggers unprescaled: " << m_algorithmTriggersUnprescaled
110  << "\nRun algorithm triggers unmasked (all enabled): " << m_algorithmTriggersUnmasked
111  << "\n"
112  << std::endl;
113  }
114 
115 
116  if ( ( m_emulateBxInEvent > 0 ) && ( ( m_emulateBxInEvent % 2 ) == 0 )) {
118 
119  if (m_verbosity) {
120  edm::LogWarning("GtProducer")
121  << "\nWARNING: Number of bunch crossing to be emulated rounded to: "
122  << m_emulateBxInEvent << "\n The number must be an odd number!\n"
123  << std::endl;
124  }
125  }
126 
127 
128  if ( ( m_L1DataBxInEvent > 0 ) && ( ( m_L1DataBxInEvent % 2 ) == 0 )) {
130 
131  if (m_verbosity) {
132  edm::LogWarning("GtProducer")
133  << "\nWARNING: Number of bunch crossing for incoming L1 Data rounded to: "
134  << m_L1DataBxInEvent << "\n The number must be an odd number!\n"
135  << std::endl;
136  }
137  } else if( m_L1DataBxInEvent<0) {
138  m_L1DataBxInEvent = 1;
139 
140  if (m_verbosity) {
141  edm::LogWarning("GtProducer")
142  << "\nWARNING: Number of bunch crossing for incoming L1 Data was changed to: "
143  << m_L1DataBxInEvent << "\n The number must be an odd positive number!\n"
144  << std::endl;
145  }
146  }
147 
148 
149 
150 
151  // register products
153  produces<GlobalAlgBlkBxCollection>();
154  produces<GlobalExtBlkBxCollection>();
155  }
156 
157 /* **** Needs Modifying ***
158  if (m_produceL1GtObjectMapRecord) {
159  produces<GtProducerObjectMapRecord>();
160  }
161 */
162 
163 
164  // create new uGt Board
165  m_uGtBrd = new GtBoard();
167 
168  // initialize cached IDs
169 
170  //
171  m_l1GtStableParCacheID = 0ULL;
172 
175 
176  m_nrL1Mu = 0;
177  m_nrL1EG = 0;
178  m_nrL1Tau = 0;
179 
180  m_nrL1Jet = 0;
181 
182 
183  m_nrL1JetCounts = 0;
184 
187 
188  //
189  m_l1GtParCacheID = 0ULL;
190 
191  m_totalBxInEvent = 0;
192 
194  m_bstLengthBytes = 0;
195 
196  //
197  m_l1GtBMCacheID = 0ULL;
198 
199  //
200  m_l1GtPfAlgoCacheID = 0ULL;
201 
202  m_l1GtTmAlgoCacheID = 0ULL;
203 
205 
206 }
207 
208 // destructor
210 {
211 
212  delete m_uGtBrd;
213 
214 }
215 
216 // member functions
217 
218 // method called to produce the data
220 {
221 
222  // get / update the parameters from the EventSetup
223  // local cache & check on cacheIdentifier
224 
225  unsigned long long l1GtParCacheID = evSetup.get<L1GtParametersRcd>().cacheIdentifier();
226 
227  if (m_l1GtParCacheID != l1GtParCacheID) {
228 
230  evSetup.get< L1GtParametersRcd >().get( l1GtPar );
231  m_l1GtPar = l1GtPar.product();
232 
233  // total number of Bx's in the event coming from EventSetup
234  m_totalBxInEvent = m_l1GtPar->gtTotalBxInEvent();
235 
236  // active boards in L1 GT DAQ record and in L1 GT EVM record
237  m_activeBoardsGtDaq = m_l1GtPar->gtDaqActiveBoards();
238 
240  m_bstLengthBytes = m_l1GtPar->gtBstLengthBytes();
241 
242 
243  m_l1GtParCacheID = l1GtParCacheID;
244 
245  }
246 
247  // negative value: emulate TotalBxInEvent as given in EventSetup
248  if (m_emulateBxInEvent < 0) {
249  m_emulateBxInEvent = m_totalBxInEvent;
250  }
251 
252  int minEmulBxInEvent = (m_emulateBxInEvent + 1)/2 - m_emulateBxInEvent;
253  int maxEmulBxInEvent = (m_emulateBxInEvent + 1)/2 - 1;
254 
255  int minL1DataBxInEvent = (m_L1DataBxInEvent + 1)/2 - m_L1DataBxInEvent;
256  int maxL1DataBxInEvent = (m_L1DataBxInEvent + 1)/2 - 1;
257 
258  // process event iEvent
259  // get / update the stable parameters from the EventSetup
260  // local cache & check on cacheIdentifier
261 
262  unsigned long long l1GtStableParCacheID =
263  evSetup.get<L1TGlobalStableParametersRcd>().cacheIdentifier();
264 
265  if (m_l1GtStableParCacheID != l1GtStableParCacheID) {
266 
268  evSetup.get< L1TGlobalStableParametersRcd >().get( l1GtStablePar );
269  m_l1GtStablePar = l1GtStablePar.product();
270 
271  // number of physics triggers
272  m_numberPhysTriggers = m_l1GtStablePar->gtNumberPhysTriggers();
273 
274  // number of DAQ partitions
275  m_numberDaqPartitions = 8; // FIXME add it to stable parameters
276 
277  // number of objects of each type
278  m_nrL1Mu = static_cast<int> (m_l1GtStablePar->gtNumberL1Mu());
279  //m_nrL1Mu = static_cast<int> (8);
280 
281 // ***** Doe we need to change the StablePar class for generic. EG
282  m_nrL1EG = static_cast<int> (m_l1GtStablePar->gtNumberL1NoIsoEG());
283  m_nrL1Tau= static_cast<int> (m_l1GtStablePar->gtNumberL1TauJet());
284 
285 
286 // ********* Do we need to change the StablePar class for generic jet?
287  m_nrL1Jet = static_cast<int> (m_l1GtStablePar->gtNumberL1CenJet());
288 
289  m_nrL1JetCounts = static_cast<int> (m_l1GtStablePar->gtNumberL1JetCounts());
290 
291  // ... the rest of the objects are global
292 
293  m_ifMuEtaNumberBits = static_cast<int> (m_l1GtStablePar->gtIfMuEtaNumberBits());
294  m_ifCaloEtaNumberBits = static_cast<int> (m_l1GtStablePar->gtIfCaloEtaNumberBits());
295 
296 
297  // Initialize Board
298  m_uGtBrd->init(m_numberPhysTriggers, m_nrL1Mu, m_nrL1EG, m_nrL1Tau, m_nrL1Jet, minL1DataBxInEvent, maxL1DataBxInEvent );
299 
300  //
301  m_l1GtStableParCacheID = l1GtStableParCacheID;
302 
303  }
304 
305 
306  // get / update the board maps from the EventSetup
307  // local cache & check on cacheIdentifier
308 
309 /* *** Drop L1GtBoard Maps for now
310  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
311 
312  unsigned long long l1GtBMCacheID = evSetup.get<L1GtBoardMapsRcd>().cacheIdentifier();
313 */
314 
315 /* ** Drop board mapping for now
316  if (m_l1GtBMCacheID != l1GtBMCacheID) {
317 
318  edm::ESHandle< L1GtBoardMaps > l1GtBM;
319  evSetup.get< L1GtBoardMapsRcd >().get( l1GtBM );
320  m_l1GtBM = l1GtBM.product();
321 
322  m_l1GtBMCacheID = l1GtBMCacheID;
323 
324  }
325 
326 
327  // TODO need changes in CondFormats to cache the maps
328  const std::vector<L1GtBoard>& boardMaps = m_l1GtBM->gtBoardMaps();
329 */
330  // get / update the prescale factors from the EventSetup
331  // local cache & check on cacheIdentifier
332 
333 
334 /* **** For Now Leave out Prescale Factors ****
335  unsigned long long l1GtPfAlgoCacheID =
336  evSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().cacheIdentifier();
337 
338  if (m_l1GtPfAlgoCacheID != l1GtPfAlgoCacheID) {
339 
340  edm::ESHandle< L1GtPrescaleFactors > l1GtPfAlgo;
341  evSetup.get< L1GtPrescaleFactorsAlgoTrigRcd >().get( l1GtPfAlgo );
342  m_l1GtPfAlgo = l1GtPfAlgo.product();
343 
344  m_prescaleFactorsAlgoTrig = &(m_l1GtPfAlgo->gtPrescaleFactors());
345 
346  m_l1GtPfAlgoCacheID = l1GtPfAlgoCacheID;
347 
348  }
349 */
350 
351 
352  // get / update the trigger mask from the EventSetup
353  // local cache & check on cacheIdentifier
354 
355 
356 /* **** For now Leave out Masks *****
357  unsigned long long l1GtTmAlgoCacheID =
358  evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().cacheIdentifier();
359 
360  if (m_l1GtTmAlgoCacheID != l1GtTmAlgoCacheID) {
361 
362  edm::ESHandle< L1GtTriggerMask > l1GtTmAlgo;
363  evSetup.get< L1GtTriggerMaskAlgoTrigRcd >().get( l1GtTmAlgo );
364  m_l1GtTmAlgo = l1GtTmAlgo.product();
365 
366  m_triggerMaskAlgoTrig = m_l1GtTmAlgo->gtTriggerMask();
367 
368  m_l1GtTmAlgoCacheID = l1GtTmAlgoCacheID;
369 
370  }
371 */
372 
373 
374 
375 /* **** For now Leave out Veto Masks *****
376  unsigned long long l1GtTmVetoAlgoCacheID =
377  evSetup.get<L1GtTriggerMaskVetoAlgoTrigRcd>().cacheIdentifier();
378 
379  if (m_l1GtTmVetoAlgoCacheID != l1GtTmVetoAlgoCacheID) {
380 
381  edm::ESHandle< L1GtTriggerMask > l1GtTmVetoAlgo;
382  evSetup.get< L1GtTriggerMaskVetoAlgoTrigRcd >().get( l1GtTmVetoAlgo );
383  m_l1GtTmVetoAlgo = l1GtTmVetoAlgo.product();
384 
385  m_triggerMaskVetoAlgoTrig = m_l1GtTmVetoAlgo->gtTriggerMask();
386 
387  m_l1GtTmVetoAlgoCacheID = l1GtTmVetoAlgoCacheID;
388 
389  }
390 */
391 
392 
393 
394 // ****** Board Maps Need to be redone....hard code for now ******
395  // loop over blocks in the GT DAQ record receiving data, count them if they are active
396  // all board type are defined in CondFormats/L1TObjects/L1GtFwd
397  // enum L1GtBoardType { GTFE, FDL, PSB, GMT, TCS, TIM };
398  // &
399  // set the active flag for each object type received from GMT and GCT
400  // all objects in the GT system are defined in enum L1GtObject from
401  // DataFormats/L1Trigger/GtProducerReadoutSetupFwd
402 
403  //
404  bool receiveMu = true;
405  bool receiveEG = true;
406  bool receiveTau = true;
407  bool receiveJet = true;
408  bool receiveEtSums = true;
409 
410 /* *** Boards need redefining *****
411  for (CItBoardMaps
412  itBoard = boardMaps.begin();
413  itBoard != boardMaps.end(); ++itBoard) {
414 
415  int iPosition = itBoard->gtPositionDaqRecord();
416  if (iPosition > 0) {
417 
418  int iActiveBit = itBoard->gtBitDaqActiveBoards();
419  bool activeBoard = false;
420 
421  if (iActiveBit >= 0) {
422  activeBoard = m_activeBoardsGtDaq & (1 << iActiveBit);
423  }
424 
425  // use board if: in the record, but not in ActiveBoardsMap (iActiveBit < 0)
426  // in the record and ActiveBoardsMap, and active
427  if ((iActiveBit < 0) || activeBoard) {
428 
429 // ****** Decide what board manipulation (if any we want here)
430 
431  }
432  }
433 
434  }
435 */
436 
437 
438 
439 /* *** No Output Record for Now
440  // produce the GtProducerReadoutRecord now, after we found how many
441  // BxInEvent the record has and how many boards are active
442  std::auto_ptr<GtProducerReadoutRecord> gtDaqReadoutRecord(
443  new GtProducerReadoutRecord(
444  m_emulateBxInEvent, daqNrFdlBoards, daqNrPsbBoards) );
445 
446 */
447 
448  // Produce the Output Records for the GT
449  std::auto_ptr<GlobalAlgBlkBxCollection> uGtAlgRecord( new GlobalAlgBlkBxCollection(0,minEmulBxInEvent,maxEmulBxInEvent));
450  std::auto_ptr<GlobalExtBlkBxCollection> uGtExtRecord( new GlobalExtBlkBxCollection(0,minEmulBxInEvent,maxEmulBxInEvent));
451 
452  // * produce the L1GlobalTriggerObjectMapRecord
453  std::auto_ptr<L1GlobalTriggerObjectMapRecord> gtObjectMapRecord(
455 
456 
457  // fill the boards not depending on the BxInEvent in the L1 GT DAQ record
458  // GMT, PSB and FDL depend on BxInEvent
459 
460  // fill in emulator the same bunch crossing (12 bits - hardwired number of bits...)
461  // and the same local bunch crossing for all boards
462  int bxCross = iEvent.bunchCrossing();
463  boost::uint16_t bxCrossHw = 0;
464  if ((bxCross & 0xFFF) == bxCross) {
465  bxCrossHw = static_cast<boost::uint16_t> (bxCross);
466  }
467  else {
468  bxCrossHw = 0; // Bx number too large, set to 0!
469  if (m_verbosity) {
470 
471  LogDebug("l1t|Global")
472  << "\nBunch cross number [hex] = " << std::hex << bxCross
473  << "\n larger than 12 bits. Set to 0! \n" << std::dec
474  << std::endl;
475  }
476  }
477  LogDebug("l1t|Global") << "HW BxCross " << bxCrossHw << std::endl;
478 
479 /* ** No Record for Now
480  if (m_produceL1GtDaqRecord) {
481 
482  for (CItBoardMaps
483  itBoard = boardMaps.begin();
484  itBoard != boardMaps.end(); ++itBoard) {
485 
486  int iPosition = itBoard->gtPositionDaqRecord();
487  if (iPosition > 0) {
488 
489  int iActiveBit = itBoard->gtBitDaqActiveBoards();
490  bool activeBoard = false;
491 
492  if (iActiveBit >= 0) {
493  activeBoard = m_activeBoardsGtDaq & (1 << iActiveBit);
494  }
495 
496  // use board if: in the record, but not in ActiveBoardsMap (iActiveBit < 0)
497  // in the record and ActiveBoardsMap, and active
498  if ((iActiveBit < 0) || activeBoard) {
499 
500  switch (itBoard->gtBoardType()) {
501 
502  case GTFE: {
503  L1GtfeWord gtfeWordValue;
504 
505  gtfeWordValue.setBoardId( itBoard->gtBoardId() );
506 
507  // cast int to boost::uint16_t
508  // there are normally 3 or 5 BxInEvent
509  gtfeWordValue.setRecordLength(
510  static_cast<boost::uint16_t>(recordLength0));
511 
512  gtfeWordValue.setRecordLength1(
513  static_cast<boost::uint16_t>(recordLength1));
514 
515  // bunch crossing
516  gtfeWordValue.setBxNr(bxCrossHw);
517 
518  // set the list of active boards
519  gtfeWordValue.setActiveBoards(m_activeBoardsGtDaq);
520 
521  // set alternative for number of BX per board
522  gtfeWordValue.setAltNrBxBoard(
523  static_cast<boost::uint16_t> (m_alternativeNrBxBoardDaq));
524 
525  // set the TOTAL_TRIGNR as read from iEvent
526  // TODO check again - PTC stuff
527 
528  gtfeWordValue.setTotalTriggerNr(
529  static_cast<boost::uint32_t>(iEvent.id().event()));
530 
531  // ** fill L1GtfeWord in GT DAQ record
532 
533  gtDaqReadoutRecord->setGtfeWord(gtfeWordValue);
534  }
535 
536  break;
537  case TCS: {
538  // nothing
539  }
540 
541  break;
542  case TIM: {
543  // nothing
544  }
545 
546  break;
547  default: {
548  // do nothing, all blocks are given in GtBoardType enum
549  }
550 
551  break;
552  }
553  }
554  }
555 
556  }
557 
558  }
559 */
560 
561 
562  // get the prescale factor set used in the actual luminosity segment
563 // int pfAlgoSetIndex = 0; // FIXME
564  // comment out for now DMP
565 // const std::vector<int>& prescaleFactorsAlgoTrig =
566 // (*m_prescaleFactorsAlgoTrig).at(pfAlgoSetIndex);
567 
568 // LogDebug("l1t|Global") << "Size of prescale vector" << prescaleFactorsAlgoTrig.size() << std::endl;
569  //
570 
571 
572 // Load the calorimeter input onto the uGt Board
573  m_uGtBrd->receiveCaloObjectData(iEvent, m_caloInputTag,
574  receiveEG, m_nrL1EG,
575  receiveTau, m_nrL1Tau,
576  receiveJet, m_nrL1Jet,
577  receiveEtSums );
578 
579  m_uGtBrd->receiveMuonObjectData(iEvent, m_muInputTag,
580  receiveMu, m_nrL1Mu );
581 
582 
583  // loop over BxInEvent
584  for (int iBxInEvent = minEmulBxInEvent; iBxInEvent <= maxEmulBxInEvent;
585  ++iBxInEvent) {
586 
587  // run GTL
588  LogDebug("l1t|Global")
589  << "\nGtProducer : running GTL for bx = " << iBxInEvent << "\n"
590  << std::endl;
591 
592 
593 // Run the GTL for this BX
594  m_uGtBrd->runGTL(iEvent, evSetup,
595  m_produceL1GtObjectMapRecord, iBxInEvent, gtObjectMapRecord,
596  m_numberPhysTriggers,
597  m_nrL1Mu,
598  m_nrL1EG,
599  m_nrL1Tau,
600  m_nrL1Jet,
601  m_nrL1JetCounts );
602 
603 
604  // run FDL
605  LogDebug("l1t|Global")
606  << "\nGtProducer : running FDL for bx = " << iBxInEvent << "\n"
607  << std::endl;
608 
609 
610 // Run the Final Decision Logic for this BX
611  m_uGtBrd->runFDL(iEvent,
612  iBxInEvent,
613  m_algorithmTriggersUnprescaled,
614  m_algorithmTriggersUnmasked
615  );
616 
617 
618 
619 // Fill in the DAQ Records
620  if (m_produceL1GtDaqRecord) {
621 
622  // These need to be defined elsewhere
623  cms_uint64_t orbNr = iEvent.orbitNumber();
624  int abBx = iEvent.bunchCrossing();
625  m_uGtBrd->fillAlgRecord(iBxInEvent, uGtAlgRecord, orbNr, abBx);
626  m_uGtBrd->fillExtRecord(iBxInEvent, uGtExtRecord, orbNr, abBx);
627  }
628 
629 
630 
631  } //End Loop over Bx
632 
633 
634  // Add explicit reset of Board
635  m_uGtBrd->reset();
636 
637 
638 
639  if ( m_verbosity && m_isDebugEnabled ) {
640 
641  std::ostringstream myCoutStream;
642 
643  for(int bx=minEmulBxInEvent; bx<maxEmulBxInEvent; bx++) {
644 
646  (uGtAlgRecord->at(bx,0)).print(myCoutStream);
647  (uGtExtRecord->at(bx,0)).print(myCoutStream);
648 
649  }
650 
651  LogTrace("l1t|Global")
652  << "\n The following L1 GT DAQ readout record was produced:\n"
653  << myCoutStream.str() << "\n"
654  << std::endl;
655 
656  myCoutStream.str("");
657  myCoutStream.clear();
658 /*
659  const std::vector<L1GlobalTriggerObjectMap> objMapVec =
660  gtObjectMapRecord->gtObjectMap();
661 
662  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator
663  it = objMapVec.begin(); it != objMapVec.end(); ++it) {
664 
665  (*it).print(myCoutStream);
666 
667  }
668 
669 
670  LogDebug("l1t|Global")
671  << "Test gtObjectMapRecord in GtProducer \n\n" << myCoutStream.str() << "\n\n"
672  << std::endl;
673 
674  myCoutStream.str("");
675  myCoutStream.clear();
676 */
677  }
678 
679 
680 
681 
682  // register products
683  if (m_produceL1GtDaqRecord) {
684  iEvent.put( uGtAlgRecord );
685  iEvent.put( uGtExtRecord );
686  }
687 
695 }
696 
697 //define this as a plug-in
#define LogDebug(id)
bool isDebugEnabled()
BXVector< GlobalExtBlk > GlobalExtBlkBxCollection
Definition: GlobalExtBlk.h:30
void setVerbosity(const int verbosity)
Definition: GtBoard.h:200
bool m_algorithmTriggersUnprescaled
Definition: GtProducer.h:182
bool m_produceL1GtObjectMapRecord
logical flag to produce the L1 GT object map record
Definition: GtProducer.h:158
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
std::string print(const Track &, edm::Verbosity=edm::Concise)
Track print utility.
Definition: print.cc:10
int bunchCrossing() const
Definition: EventBase.h:66
bool m_writePsbL1GtDaqRecord
logical flag to write the PSB content in the L1 GT DAQ record
Definition: GtProducer.h:161
int m_L1DataBxInEvent
Bx expected in Data coming to GT.
Definition: GtProducer.h:170
BXVector< GlobalAlgBlk > GlobalAlgBlkBxCollection
Definition: GlobalAlgBlk.h:31
bool m_algorithmTriggersUnmasked
Definition: GtProducer.h:186
unsigned int m_numberPhysTriggers
number of physics triggers
Definition: GtProducer.h:78
boost::uint16_t m_activeBoardsGtDaq
active boards in L1 GT DAQ record
Definition: GtProducer.h:108
unsigned int m_numberDaqPartitions
number of DAQ partitions
Definition: GtProducer.h:81
int m_totalBxInEvent
total number of Bx&#39;s in the event coming from EventSetup
Definition: GtProducer.h:105
int m_ifCaloEtaNumberBits
Definition: GtProducer.h:97
unsigned long long m_l1GtParCacheID
Definition: GtProducer.h:102
GtBoard * m_uGtBrd
Definition: GtProducer.h:146
int iEvent
Definition: GenABIO.cc:230
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:120
unsigned int m_alternativeNrBxBoardDaq
Definition: GtProducer.h:174
unsigned long long m_l1GtStableParCacheID
Definition: GtProducer.h:75
int orbitNumber() const
Definition: EventBase.h:67
#define LogTrace(id)
unsigned long long m_l1GtTmVetoAlgoCacheID
Definition: GtProducer.h:132
unsigned int m_bstLengthBytes
length of BST record (in bytes) from event setup
Definition: GtProducer.h:111
unsigned long long m_l1GtBMCacheID
Definition: GtProducer.h:115
int m_ifMuEtaNumberBits
Definition: GtProducer.h:96
const T & get() const
Definition: EventSetup.h:56
T const * product() const
Definition: ESHandle.h:86
bool m_produceL1GtDaqRecord
logical flag to produce the L1 GT DAQ readout record
Definition: GtProducer.h:155
int m_emulateBxInEvent
Definition: GtProducer.h:167
GtProducer(const edm::ParameterSet &)
Definition: GtProducer.cc:66
unsigned long long m_l1GtTmAlgoCacheID
Definition: GtProducer.h:129
edm::InputTag m_caloInputTag
input tag for calorimeter collections from GCT
Definition: GtProducer.h:152
edm::InputTag m_muInputTag
input tag for muon collection from GMT
Definition: GtProducer.h:149
unsigned long long cms_uint64_t
Definition: typedefs.h:17
virtual void produce(edm::Event &, const edm::EventSetup &)
Definition: GtProducer.cc:219
int m_psBstLengthBytes
length of BST record (in bytes) from parameter set
Definition: GtProducer.h:177
int m_verbosity
verbosity level
Definition: GtProducer.h:192
unsigned long long m_l1GtPfAlgoCacheID
Definition: GtProducer.h:120