CMS 3D CMS Logo

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

#include <L1GlobalTrigger.h>

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

Public Member Functions

const L1GlobalTriggerFDLgtFDL () const
 
const L1GlobalTriggerGTLgtGTL () const
 
const L1GlobalTriggerPSBgtPSB () const
 
 L1GlobalTrigger (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~L1GlobalTrigger () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 

Private Attributes

boost::uint16_t m_activeBoardsGtDaq
 active boards in L1 GT DAQ record and in L1 GT EVM record More...
 
boost::uint16_t m_activeBoardsGtEvm
 
const bool m_algorithmTriggersUnmasked
 
const bool m_algorithmTriggersUnprescaled
 
const unsigned int m_alternativeNrBxBoardDaq
 
const unsigned int m_alternativeNrBxBoardEvm
 
unsigned int m_bstLengthBytes
 length of BST record (in bytes) from event setup More...
 
const edm::InputTag m_caloGctInputTag
 input tag for calorimeter collections from GCT More...
 
const edm::InputTag m_castorInputTag
 input tag for CASTOR record More...
 
int m_emulateBxInEvent
 
L1GlobalTriggerFDLm_gtFDL
 
L1GlobalTriggerGTLm_gtGTL
 
L1GlobalTriggerPSBm_gtPSB
 
int m_ifCaloEtaNumberBits
 
int m_ifMuEtaNumberBits
 
const bool m_isDebugEnabled
 
const L1GtBoardMapsm_l1GtBM
 board maps - cache only the record More...
 
unsigned long long m_l1GtBMCacheID
 
const L1GtParametersm_l1GtPar
 parameters More...
 
unsigned long long m_l1GtParCacheID
 
const L1GtPrescaleFactorsm_l1GtPfAlgo
 prescale factors More...
 
unsigned long long m_l1GtPfAlgoCacheID
 
const L1GtPrescaleFactorsm_l1GtPfTech
 
unsigned long long m_l1GtPfTechCacheID
 
const L1GtStableParametersm_l1GtStablePar
 cached stuff More...
 
unsigned long long m_l1GtStableParCacheID
 
const L1GtTriggerMaskm_l1GtTmAlgo
 trigger masks & veto masks More...
 
unsigned long long m_l1GtTmAlgoCacheID
 
const L1GtTriggerMaskm_l1GtTmTech
 
unsigned long long m_l1GtTmTechCacheID
 
const L1GtTriggerMaskm_l1GtTmVetoAlgo
 
unsigned long long m_l1GtTmVetoAlgoCacheID
 
const L1GtTriggerMaskm_l1GtTmVetoTech
 
unsigned long long m_l1GtTmVetoTechCacheID
 
const edm::InputTag m_muGmtInputTag
 input tag for muon collection from GMT More...
 
int m_nrL1CenJet
 
int m_nrL1ForJet
 
int m_nrL1IsoEG
 
int m_nrL1JetCounts
 
int m_nrL1Mu
 
int m_nrL1NoIsoEG
 
int m_nrL1TauJet
 
unsigned int m_numberDaqPartitions
 number of DAQ partitions More...
 
unsigned int m_numberPhysTriggers
 number of physics triggers More...
 
unsigned int m_numberTechnicalTriggers
 number of technical triggers More...
 
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
 
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
 
const bool m_produceL1GtDaqRecord
 logical flag to produce the L1 GT DAQ readout record More...
 
const bool m_produceL1GtEvmRecord
 logical flag to produce the L1 GT EVM readout record More...
 
const bool m_produceL1GtObjectMapRecord
 logical flag to produce the L1 GT object map record More...
 
const int m_psBstLengthBytes
 length of BST record (in bytes) from parameter set More...
 
const bool m_readTechnicalTriggerRecords
 logical flag to read the technical trigger records More...
 
const std::vector< int > m_recordLength
 
const std::vector< edm::InputTagm_technicalTriggersInputTags
 input tag for technical triggers More...
 
const bool m_technicalTriggersUnmasked
 
const bool m_technicalTriggersUnprescaled
 
const bool m_technicalTriggersVetoUnmasked
 
int m_totalBxInEvent
 total number of Bx's in the event coming from EventSetup More...
 
std::vector< unsigned int > m_triggerMaskAlgoTrig
 
std::vector< unsigned int > m_triggerMaskTechTrig
 
std::vector< unsigned int > m_triggerMaskVetoAlgoTrig
 
std::vector< unsigned int > m_triggerMaskVetoTechTrig
 
const int m_verbosity
 verbosity level More...
 
const bool m_writePsbL1GtDaqRecord
 logical flag to write the PSB content in the L1 GT DAQ record More...
 

Additional Inherited Members

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

Detailed Description

Description: see header file.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - HEPHY Vienna

Description: L1 Global Trigger producer.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - HEPHY Vienna

The CMSSW implementation of the L1 Global Trigger emulator uses concepts and code from the ORCA L1 Global Trigger simulation, authors: N. Neumeister, M. Fierro, M. Eder - HEPHY Vienna.

Definition at line 55 of file L1GlobalTrigger.h.

Constructor & Destructor Documentation

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

Definition at line 89 of file L1GlobalTrigger.cc.

References TauDecayModes::dec, LogDebug, LogTrace, m_activeBoardsGtDaq, m_activeBoardsGtEvm, m_algorithmTriggersUnmasked, m_algorithmTriggersUnprescaled, m_alternativeNrBxBoardDaq, m_alternativeNrBxBoardEvm, m_bstLengthBytes, m_caloGctInputTag, m_castorInputTag, m_emulateBxInEvent, m_gtFDL, m_gtGTL, m_gtPSB, m_ifCaloEtaNumberBits, m_ifMuEtaNumberBits, m_l1GtBMCacheID, m_l1GtParCacheID, m_l1GtPfAlgoCacheID, m_l1GtPfTechCacheID, m_l1GtStableParCacheID, m_l1GtTmAlgoCacheID, m_l1GtTmTechCacheID, m_l1GtTmVetoAlgoCacheID, m_l1GtTmVetoTechCacheID, m_muGmtInputTag, m_nrL1CenJet, m_nrL1ForJet, m_nrL1IsoEG, m_nrL1JetCounts, m_nrL1Mu, m_nrL1NoIsoEG, m_nrL1TauJet, m_numberDaqPartitions, m_numberPhysTriggers, m_numberTechnicalTriggers, m_produceL1GtDaqRecord, m_produceL1GtEvmRecord, m_produceL1GtObjectMapRecord, m_psBstLengthBytes, m_readTechnicalTriggerRecords, m_recordLength, m_technicalTriggersInputTags, m_technicalTriggersUnmasked, m_technicalTriggersUnprescaled, m_totalBxInEvent, m_verbosity, m_writePsbL1GtDaqRecord, SiStripPI::max, L1GlobalTriggerFDL::setVerbosity(), and L1GlobalTriggerGTL::setVerbosity().

90  : m_muGmtInputTag(parSet.getParameter<edm::InputTag>("GmtInputTag")),
91  m_caloGctInputTag(parSet.getParameter<edm::InputTag>("GctInputTag")),
92  m_castorInputTag(parSet.getParameter<edm::InputTag>("CastorInputTag")),
94  parSet.getParameter<std::vector<edm::InputTag>>(
95  "TechnicalTriggersInputTags")),
96  m_produceL1GtDaqRecord(parSet.getParameter<bool>("ProduceL1GtDaqRecord")),
97  m_produceL1GtEvmRecord(parSet.getParameter<bool>("ProduceL1GtEvmRecord")),
99  parSet.getParameter<bool>("ProduceL1GtObjectMapRecord")),
101  parSet.getParameter<bool>("WritePsbL1GtDaqRecord")),
103  parSet.getParameter<bool>("ReadTechnicalTriggerRecords")),
104  m_emulateBxInEvent(parSet.getParameter<int>("EmulateBxInEvent")),
105  m_recordLength(parSet.getParameter<std::vector<int>>("RecordLength")),
107  parSet.getParameter<unsigned int>("AlternativeNrBxBoardDaq")),
109  parSet.getParameter<unsigned int>("AlternativeNrBxBoardEvm")),
110  m_psBstLengthBytes(parSet.getParameter<int>("BstLengthBytes")),
112  parSet.getParameter<bool>("AlgorithmTriggersUnprescaled")),
114  parSet.getParameter<bool>("AlgorithmTriggersUnmasked")),
116  parSet.getParameter<bool>("TechnicalTriggersUnprescaled")),
118  parSet.getParameter<bool>("TechnicalTriggersUnmasked")),
120  parSet.getParameter<bool>("TechnicalTriggersVetoUnmasked")),
121  m_verbosity(parSet.getUntrackedParameter<int>("Verbosity", 0)),
123 
124 {
125 
126  if (m_verbosity) {
127 
128  LogDebug("L1GlobalTrigger") << std::endl;
129 
130  LogTrace("L1GlobalTrigger")
131  << "\nInput tag for muon collection from GMT: "
132  << m_muGmtInputTag
133  << "\nInput tag for calorimeter collections from GCT: "
135  << "\nInput tag for CASTOR record: "
137  << "\nInput tag for technical triggers: " << std::endl;
138 
139  // loop over all producers of technical trigger records
140  for (std::vector<edm::InputTag>::const_iterator it =
142  it != m_technicalTriggersInputTags.end(); it++) {
143  LogTrace("L1GlobalTrigger") << "\n " << (*it) << std::endl;
144  }
145 
146  LogTrace("L1GlobalTrigger")
147  << "\nProduce the L1 GT DAQ readout record: "
149  << "\nProduce the L1 GT EVM readout record: "
151  << "\nProduce the L1 GT Object Map record: "
152  << m_produceL1GtObjectMapRecord << " \n"
153  << "\nWrite Psb content to L1 GT DAQ Record: "
154  << m_writePsbL1GtDaqRecord << " \n"
155  << "\nRead technical trigger records: "
157  << "\nNumber of BxInEvent to be emulated: "
159  << "\nNumber of BXs corresponding to alternative 0: "
160  << m_recordLength.at(0)
161  << "\nNumber of BXs corresponding to alternative 1: "
162  << m_recordLength.at(1) << " \n"
163  << "\nAlternative for number of BX in GT DAQ record: 0x" << std::hex
165  << "\nAlternative for number of BX in GT EVM record: 0x" << std::hex
166  << m_alternativeNrBxBoardEvm << std::dec << " \n"
167  << "\nLength of BST message [bytes]: "
168  << m_psBstLengthBytes << "\n"
169  << "\nRun algorithm triggers unprescaled: "
171  << "\nRun algorithm triggers unmasked (all enabled): "
172  << m_algorithmTriggersUnmasked << "\n"
173  << "\nRun technical triggers unprescaled: "
175  << "\nRun technical triggers unmasked (all enabled): "
177  << "\nRun technical triggers veto unmasked (no veto): "
178  << m_technicalTriggersUnmasked << "\n"
179  << std::endl;
180  }
181 
182  if ((m_emulateBxInEvent > 0) && ((m_emulateBxInEvent % 2) == 0)) {
184 
185  if (m_verbosity) {
186  edm::LogWarning("L1GlobalTrigger")
187  << "\nWARNING: Number of bunch crossing to be emulated rounded to: "
189  << "\n The number must be an odd number!\n"
190  << std::endl;
191  }
192  }
193 
194  int requiredRecordLength =
195  std::max(m_recordLength.at(0), m_recordLength.at(1));
196  if ((m_emulateBxInEvent >= 0) &&
197  (m_emulateBxInEvent < requiredRecordLength)) {
198 
199  m_emulateBxInEvent = requiredRecordLength;
200 
201  if (m_verbosity) {
202  edm::LogWarning("L1GlobalTrigger")
203  << "\nWARNING: Number of bunch crossing required to be emulated ( "
204  << m_emulateBxInEvent << " BX) smaller as required in RecordLength:"
205  << "\n Number of BXs corresponding to alternative 0: "
206  << m_recordLength.at(0)
207  << "\n Number of BXs corresponding to alternative 1: "
208  << m_recordLength.at(1) << "\nEmulating " << requiredRecordLength
209  << " BX!"
210  << "\n"
211  << std::endl;
212  }
213  }
214 
215  // register products
217  produces<L1GlobalTriggerReadoutRecord>();
218  }
219 
221  produces<L1GlobalTriggerEvmReadoutRecord>();
222  }
223 
225  produces<L1GlobalTriggerObjectMapRecord>();
226  }
227 
228  // create new PSBs
230  m_caloGctInputTag, m_technicalTriggersInputTags, consumesCollector());
231  m_gtPSB->setVerbosity(m_verbosity);
232 
233  // create new GTL
234  m_gtGTL = new L1GlobalTriggerGTL(m_muGmtInputTag, consumesCollector());
236 
237  // create new FDL
238  m_gtFDL = new L1GlobalTriggerFDL();
240 
241  // initialize cached IDs
242 
243  //
244  m_l1GtStableParCacheID = 0ULL;
245 
249 
250  m_nrL1Mu = 0;
251 
252  m_nrL1NoIsoEG = 0;
253  m_nrL1IsoEG = 0;
254 
255  m_nrL1CenJet = 0;
256  m_nrL1ForJet = 0;
257  m_nrL1TauJet = 0;
258 
259  m_nrL1JetCounts = 0;
260 
263 
264  //
265  m_l1GtParCacheID = 0ULL;
266 
267  m_totalBxInEvent = 0;
268 
271  m_bstLengthBytes = 0;
272 
273  //
274  m_l1GtBMCacheID = 0ULL;
275 
276  //
277  m_l1GtPfAlgoCacheID = 0ULL;
278  m_l1GtPfTechCacheID = 0ULL;
279 
280  m_l1GtTmAlgoCacheID = 0ULL;
281  m_l1GtTmTechCacheID = 0ULL;
282 
285 
286  consumes<L1MuGMTReadoutCollection>(m_muGmtInputTag);
287 }
#define LogDebug(id)
const std::vector< edm::InputTag > m_technicalTriggersInputTags
input tag for technical triggers
T getParameter(std::string const &) const
bool isDebugEnabled()
T getUntrackedParameter(std::string const &, T const &) const
const std::vector< int > m_recordLength
unsigned long long m_l1GtParCacheID
const edm::InputTag m_caloGctInputTag
input tag for calorimeter collections from GCT
const bool m_readTechnicalTriggerRecords
logical flag to read the technical trigger records
const bool m_technicalTriggersVetoUnmasked
const bool m_produceL1GtObjectMapRecord
logical flag to produce the L1 GT object map record
const bool m_writePsbL1GtDaqRecord
logical flag to write the PSB content in the L1 GT DAQ record
unsigned long long m_l1GtStableParCacheID
const bool m_produceL1GtDaqRecord
logical flag to produce the L1 GT DAQ readout record
unsigned int m_numberPhysTriggers
number of physics triggers
L1GlobalTriggerGTL * m_gtGTL
unsigned int m_bstLengthBytes
length of BST record (in bytes) from event setup
const bool m_produceL1GtEvmRecord
logical flag to produce the L1 GT EVM readout record
const bool m_algorithmTriggersUnmasked
const bool m_technicalTriggersUnmasked
void setVerbosity(const int verbosity)
boost::uint16_t m_activeBoardsGtEvm
unsigned long long m_l1GtPfTechCacheID
const unsigned int m_alternativeNrBxBoardEvm
L1GlobalTriggerFDL * m_gtFDL
const bool m_algorithmTriggersUnprescaled
const bool m_isDebugEnabled
unsigned long long m_l1GtTmAlgoCacheID
#define LogTrace(id)
const int m_verbosity
verbosity level
boost::uint16_t m_activeBoardsGtDaq
active boards in L1 GT DAQ record and in L1 GT EVM record
unsigned long long m_l1GtTmVetoTechCacheID
unsigned long long m_l1GtBMCacheID
L1GlobalTriggerPSB * m_gtPSB
const edm::InputTag m_muGmtInputTag
input tag for muon collection from GMT
const bool m_technicalTriggersUnprescaled
const int m_psBstLengthBytes
length of BST record (in bytes) from parameter set
const unsigned int m_alternativeNrBxBoardDaq
int m_totalBxInEvent
total number of Bx&#39;s in the event coming from EventSetup
unsigned int m_numberTechnicalTriggers
number of technical triggers
void setVerbosity(const int verbosity)
unsigned long long m_l1GtTmTechCacheID
unsigned int m_numberDaqPartitions
number of DAQ partitions
const edm::InputTag m_castorInputTag
input tag for CASTOR record
unsigned long long m_l1GtTmVetoAlgoCacheID
unsigned long long m_l1GtPfAlgoCacheID
L1GlobalTrigger::~L1GlobalTrigger ( )
override

Definition at line 290 of file L1GlobalTrigger.cc.

References m_gtFDL, m_gtGTL, and m_gtPSB.

290  {
291 
292  delete m_gtPSB;
293  delete m_gtGTL;
294  delete m_gtFDL;
295 }
L1GlobalTriggerGTL * m_gtGTL
L1GlobalTriggerFDL * m_gtFDL
L1GlobalTriggerPSB * m_gtPSB

Member Function Documentation

const L1GlobalTriggerFDL* L1GlobalTrigger::gtFDL ( ) const
inline

Definition at line 70 of file L1GlobalTrigger.h.

References m_gtFDL.

70 { return m_gtFDL; }
L1GlobalTriggerFDL * m_gtFDL
const L1GlobalTriggerGTL* L1GlobalTrigger::gtGTL ( ) const
inline

Definition at line 67 of file L1GlobalTrigger.h.

References m_gtGTL.

67 { return m_gtGTL; }
L1GlobalTriggerGTL * m_gtGTL
const L1GlobalTriggerPSB* L1GlobalTrigger::gtPSB ( ) const
inline

Definition at line 64 of file L1GlobalTrigger.h.

References m_gtPSB.

64 { return m_gtPSB; }
L1GlobalTriggerPSB * m_gtPSB
void L1GlobalTrigger::produce ( edm::Event iEvent,
const edm::EventSetup evSetup 
)
override

length of BST message (in bytes) for L1 GT EVM record

receive technical trigger

Definition at line 300 of file L1GlobalTrigger.cc.

References BptxQ, edm::EventBase::bunchCrossing(), CastorQ, CenJetQ, TauDecayModes::dec, DEFINE_FWK_MODULE, ESumsQ, edm::EventID::event(), FDL, L1GlobalTriggerFDL::fillDaqFdlBlock(), L1GlobalTriggerFDL::fillEvmFdlBlock(), L1GlobalTriggerPSB::fillPsbBlock(), ForJetQ, edm::EventSetup::get(), edm::Event::getByLabel(), GMT, L1GtBoardMaps::gtBoardMaps(), L1GtParameters::gtBstLengthBytes(), L1GtParameters::gtDaqActiveBoards(), L1GtParameters::gtEvmActiveBoards(), GtExternalQ, GTFE, L1GtStableParameters::gtIfCaloEtaNumberBits(), L1GtStableParameters::gtIfMuEtaNumberBits(), L1GtStableParameters::gtNumberL1CenJet(), L1GtStableParameters::gtNumberL1ForJet(), L1GtStableParameters::gtNumberL1IsoEG(), L1GtStableParameters::gtNumberL1JetCounts(), L1GtStableParameters::gtNumberL1Mu(), L1GtStableParameters::gtNumberL1NoIsoEG(), L1GtStableParameters::gtNumberL1TauJet(), L1GtStableParameters::gtNumberPhysTriggers(), L1GtStableParameters::gtNumberTechnicalTriggers(), L1GtPrescaleFactors::gtPrescaleFactors(), L1GtParameters::gtTotalBxInEvent(), L1GtTriggerMask::gtTriggerMask(), HfQ, edm::EventBase::id(), L1GlobalTriggerGTL::init(), L1GlobalTriggerPSB::init(), IsoEGQ, edm::HandleBase::isValid(), JetCountsQ, LogDebug, LogTrace, edm::EventBase::luminosityBlock(), m_activeBoardsGtDaq, m_activeBoardsGtEvm, m_algorithmTriggersUnmasked, m_algorithmTriggersUnprescaled, m_alternativeNrBxBoardDaq, m_alternativeNrBxBoardEvm, m_bstLengthBytes, m_caloGctInputTag, m_emulateBxInEvent, m_gtFDL, m_gtGTL, m_gtPSB, m_ifCaloEtaNumberBits, m_ifMuEtaNumberBits, m_isDebugEnabled, m_l1GtBM, m_l1GtBMCacheID, m_l1GtPar, m_l1GtParCacheID, m_l1GtPfAlgo, m_l1GtPfAlgoCacheID, m_l1GtPfTech, m_l1GtPfTechCacheID, m_l1GtStablePar, m_l1GtStableParCacheID, m_l1GtTmAlgo, m_l1GtTmAlgoCacheID, m_l1GtTmTech, m_l1GtTmTechCacheID, m_l1GtTmVetoAlgo, m_l1GtTmVetoAlgoCacheID, m_l1GtTmVetoTech, m_l1GtTmVetoTechCacheID, m_muGmtInputTag, m_nrL1CenJet, m_nrL1ForJet, m_nrL1IsoEG, m_nrL1JetCounts, m_nrL1Mu, m_nrL1NoIsoEG, m_nrL1TauJet, m_numberDaqPartitions, m_numberPhysTriggers, m_numberTechnicalTriggers, m_prescaleFactorsAlgoTrig, m_prescaleFactorsTechTrig, m_produceL1GtDaqRecord, m_produceL1GtEvmRecord, m_produceL1GtObjectMapRecord, m_psBstLengthBytes, m_readTechnicalTriggerRecords, m_recordLength, m_technicalTriggersInputTags, m_technicalTriggersUnmasked, m_technicalTriggersUnprescaled, m_technicalTriggersVetoUnmasked, m_totalBxInEvent, m_triggerMaskAlgoTrig, m_triggerMaskTechTrig, m_triggerMaskVetoAlgoTrig, m_triggerMaskVetoTechTrig, m_verbosity, m_writePsbL1GtDaqRecord, eostools::move(), NoIsoEGQ, edm::EventBase::orbitNumber(), edm::ESHandle< T >::product(), PSB, edm::Event::put(), L1GlobalTriggerPSB::receiveGctObjectData(), L1GlobalTriggerGTL::receiveGmtObjectData(), L1GlobalTriggerPSB::receiveTechnicalTriggers(), L1GlobalTriggerGTL::reset(), L1GlobalTriggerFDL::reset(), L1GlobalTriggerPSB::reset(), L1GlobalTriggerFDL::run(), L1GlobalTriggerGTL::run(), L1GtfeWord::setActiveBoards(), L1GtfeWord::setAltNrBxBoard(), L1GtfeWord::setBoardId(), L1TcsWord::setBoardId(), L1GtfeExtWord::setBstSource(), L1TcsWord::setBxNr(), L1GtfeWord::setBxNr(), L1TcsWord::setEventNr(), L1GtfeExtWord::setGpsTime(), L1TcsWord::setLuminositySegmentNr(), L1TcsWord::setOrbitNr(), L1GtfeWord::setRecordLength(), L1GtfeWord::setRecordLength1(), L1GtfeWord::setTotalTriggerNr(), L1TcsWord::setTriggerType(), TauJetQ, TCS, TechTr, TIM, edm::EventBase::time(), and edm::Timestamp::value().

301  {
302 
303  // process event iEvent
304 
305  // get / update the stable parameters from the EventSetup
306  // local cache & check on cacheIdentifier
307 
308  unsigned long long l1GtStableParCacheID =
309  evSetup.get<L1GtStableParametersRcd>().cacheIdentifier();
310 
311  if (m_l1GtStableParCacheID != l1GtStableParCacheID) {
312 
314  evSetup.get<L1GtStableParametersRcd>().get(l1GtStablePar);
315  m_l1GtStablePar = l1GtStablePar.product();
316 
317  // number of physics triggers
319 
320  // number of technical triggers
322 
323  // number of DAQ partitions
324  m_numberDaqPartitions = 8; // FIXME add it to stable parameters
325 
326  // number of objects of each type
327  m_nrL1Mu = static_cast<int>(m_l1GtStablePar->gtNumberL1Mu());
328 
329  m_nrL1NoIsoEG = static_cast<int>(m_l1GtStablePar->gtNumberL1NoIsoEG());
330  m_nrL1IsoEG = static_cast<int>(m_l1GtStablePar->gtNumberL1IsoEG());
331 
332  m_nrL1CenJet = static_cast<int>(m_l1GtStablePar->gtNumberL1CenJet());
333  m_nrL1ForJet = static_cast<int>(m_l1GtStablePar->gtNumberL1ForJet());
334  m_nrL1TauJet = static_cast<int>(m_l1GtStablePar->gtNumberL1TauJet());
335 
336  m_nrL1JetCounts = static_cast<int>(m_l1GtStablePar->gtNumberL1JetCounts());
337 
338  // ... the rest of the objects are global
339 
341  static_cast<int>(m_l1GtStablePar->gtIfMuEtaNumberBits());
343  static_cast<int>(m_l1GtStablePar->gtIfCaloEtaNumberBits());
344 
345  // (re)initialize L1GlobalTriggerGTL
347 
348  // (re)initialize L1GlobalTriggerPSB
351 
352  //
353  m_l1GtStableParCacheID = l1GtStableParCacheID;
354  }
355 
356  // get / update the parameters from the EventSetup
357  // local cache & check on cacheIdentifier
358 
359  unsigned long long l1GtParCacheID =
360  evSetup.get<L1GtParametersRcd>().cacheIdentifier();
361 
362  if (m_l1GtParCacheID != l1GtParCacheID) {
363 
365  evSetup.get<L1GtParametersRcd>().get(l1GtPar);
366  m_l1GtPar = l1GtPar.product();
367 
368  // total number of Bx's in the event coming from EventSetup
370 
371  // active boards in L1 GT DAQ record and in L1 GT EVM record
374 
377 
378  m_l1GtParCacheID = l1GtParCacheID;
379  }
380 
381  // negative value: emulate TotalBxInEvent as given in EventSetup
382  if (m_emulateBxInEvent < 0) {
384  }
385 
386  int minBxInEvent = (m_emulateBxInEvent + 1) / 2 - m_emulateBxInEvent;
387  int maxBxInEvent = (m_emulateBxInEvent + 1) / 2 - 1;
388 
389  int recordLength0 = m_recordLength.at(0);
390  int recordLength1 = m_recordLength.at(1);
391 
392  if ((recordLength0 < 0) || (recordLength1 < 0)) {
393 
394  // take them from event setup
395  // FIXME implement later - temporary solution
396 
397  recordLength0 = m_emulateBxInEvent;
398  recordLength1 = m_emulateBxInEvent;
399  }
400 
401  if (m_verbosity) {
402 
403  LogDebug("L1GlobalTrigger")
404  << "\nTotal number of BX to emulate in the GT readout record: "
405  << m_emulateBxInEvent << " = "
406  << "[" << minBxInEvent << ", " << maxBxInEvent << "] BX\n"
407  << "\nNumber of BX for alternative 0: " << recordLength0
408  << "\nNumber of BX for alternative 1: " << recordLength1
409  << "\nActive boards in L1 GT DAQ record (hex format) = " << std::hex
410  << std::setw(sizeof(m_activeBoardsGtDaq) * 2) << std::setfill('0')
411  << m_activeBoardsGtDaq << std::dec << std::setfill(' ')
412  << "\nActive boards in L1 GT EVM record (hex format) = " << std::hex
413  << std::setw(sizeof(m_activeBoardsGtEvm) * 2) << std::setfill('0')
414  << m_activeBoardsGtEvm << std::dec << std::setfill(' ') << "\n"
415  << std::endl;
416  }
417 
418  // get / update the board maps from the EventSetup
419  // local cache & check on cacheIdentifier
420 
421  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
422 
423  unsigned long long l1GtBMCacheID =
424  evSetup.get<L1GtBoardMapsRcd>().cacheIdentifier();
425 
426  if (m_l1GtBMCacheID != l1GtBMCacheID) {
427 
429  evSetup.get<L1GtBoardMapsRcd>().get(l1GtBM);
430  m_l1GtBM = l1GtBM.product();
431 
432  m_l1GtBMCacheID = l1GtBMCacheID;
433  }
434 
435  // TODO need changes in CondFormats to cache the maps
436  const std::vector<L1GtBoard> &boardMaps = m_l1GtBM->gtBoardMaps();
437 
438  // get / update the prescale factors from the EventSetup
439  // local cache & check on cacheIdentifier
440 
441  unsigned long long l1GtPfAlgoCacheID =
442  evSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().cacheIdentifier();
443 
444  if (m_l1GtPfAlgoCacheID != l1GtPfAlgoCacheID) {
445 
447  evSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().get(l1GtPfAlgo);
448  m_l1GtPfAlgo = l1GtPfAlgo.product();
449 
451 
452  m_l1GtPfAlgoCacheID = l1GtPfAlgoCacheID;
453  }
454 
455  unsigned long long l1GtPfTechCacheID =
456  evSetup.get<L1GtPrescaleFactorsTechTrigRcd>().cacheIdentifier();
457 
458  if (m_l1GtPfTechCacheID != l1GtPfTechCacheID) {
459 
461  evSetup.get<L1GtPrescaleFactorsTechTrigRcd>().get(l1GtPfTech);
462  m_l1GtPfTech = l1GtPfTech.product();
463 
465 
466  m_l1GtPfTechCacheID = l1GtPfTechCacheID;
467  }
468 
469  // get / update the trigger mask from the EventSetup
470  // local cache & check on cacheIdentifier
471 
472  unsigned long long l1GtTmAlgoCacheID =
473  evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().cacheIdentifier();
474 
475  if (m_l1GtTmAlgoCacheID != l1GtTmAlgoCacheID) {
476 
478  evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().get(l1GtTmAlgo);
479  m_l1GtTmAlgo = l1GtTmAlgo.product();
480 
482 
483  m_l1GtTmAlgoCacheID = l1GtTmAlgoCacheID;
484  }
485 
486  unsigned long long l1GtTmTechCacheID =
487  evSetup.get<L1GtTriggerMaskTechTrigRcd>().cacheIdentifier();
488 
489  if (m_l1GtTmTechCacheID != l1GtTmTechCacheID) {
490 
492  evSetup.get<L1GtTriggerMaskTechTrigRcd>().get(l1GtTmTech);
493  m_l1GtTmTech = l1GtTmTech.product();
494 
496 
497  m_l1GtTmTechCacheID = l1GtTmTechCacheID;
498  }
499 
500  unsigned long long l1GtTmVetoAlgoCacheID =
501  evSetup.get<L1GtTriggerMaskVetoAlgoTrigRcd>().cacheIdentifier();
502 
503  if (m_l1GtTmVetoAlgoCacheID != l1GtTmVetoAlgoCacheID) {
504 
505  edm::ESHandle<L1GtTriggerMask> l1GtTmVetoAlgo;
506  evSetup.get<L1GtTriggerMaskVetoAlgoTrigRcd>().get(l1GtTmVetoAlgo);
507  m_l1GtTmVetoAlgo = l1GtTmVetoAlgo.product();
508 
510 
511  m_l1GtTmVetoAlgoCacheID = l1GtTmVetoAlgoCacheID;
512  }
513 
514  unsigned long long l1GtTmVetoTechCacheID =
515  evSetup.get<L1GtTriggerMaskVetoTechTrigRcd>().cacheIdentifier();
516 
517  if (m_l1GtTmVetoTechCacheID != l1GtTmVetoTechCacheID) {
518 
519  edm::ESHandle<L1GtTriggerMask> l1GtTmVetoTech;
520  evSetup.get<L1GtTriggerMaskVetoTechTrigRcd>().get(l1GtTmVetoTech);
521  m_l1GtTmVetoTech = l1GtTmVetoTech.product();
522 
524 
525  m_l1GtTmVetoTechCacheID = l1GtTmVetoTechCacheID;
526  }
527 
528  // loop over blocks in the GT DAQ record receiving data, count them if they
529  // are active all board type are defined in CondFormats/L1TObjects/L1GtFwd
530  // enum L1GtBoardType { GTFE, FDL, PSB, GMT, TCS, TIM };
531  // &
532  // set the active flag for each object type received from GMT and GCT
533  // all objects in the GT system are defined in enum L1GtObject from
534  // DataFormats/L1Trigger/L1GlobalTriggerReadoutSetupFwd
535 
536  int daqNrGtfeBoards = 0;
537 
538  int daqNrFdlBoards = 0;
539  int daqNrPsbBoards = 0;
540  int daqNrGmtBoards = 0;
541  int daqNrTcsBoards = 0;
542  int daqNrTimBoards = 0;
543 
544  //
545  bool receiveMu = false;
546  bool receiveNoIsoEG = false;
547  bool receiveIsoEG = false;
548  bool receiveCenJet = false;
549  bool receiveForJet = false;
550  bool receiveTauJet = false;
551  bool receiveETM = false;
552  bool receiveETT = false;
553  bool receiveHTT = false;
554  bool receiveHTM = false;
555  bool receiveJetCounts = false;
556  bool receiveHfBitCounts = false;
557  bool receiveHfRingEtSums = false;
558 
559  bool receiveExternal = false;
560 
561  bool receiveTechTr = false;
562 
563  for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end();
564  ++itBoard) {
565 
566  int iPosition = itBoard->gtPositionDaqRecord();
567  if (iPosition > 0) {
568 
569  int iActiveBit = itBoard->gtBitDaqActiveBoards();
570  bool activeBoard = false;
571 
572  if (iActiveBit >= 0) {
573  activeBoard = m_activeBoardsGtDaq & (1 << iActiveBit);
574  }
575 
576  // use board if: in the record, but not in ActiveBoardsMap (iActiveBit <
577  // 0)
578  // in the record and ActiveBoardsMap, and active
579  if ((iActiveBit < 0) || activeBoard) {
580 
581  switch (itBoard->gtBoardType()) {
582 
583  case GTFE: {
584  daqNrGtfeBoards++;
585  }
586 
587  break;
588  case FDL: {
589  daqNrFdlBoards++;
590  }
591 
592  break;
593  case PSB: {
594  daqNrPsbBoards++;
595 
596  // get the objects coming to this PSB
597  std::vector<L1GtPsbQuad> quadInPsb = itBoard->gtQuadInPsb();
598  for (std::vector<L1GtPsbQuad>::const_iterator itQuad =
599  quadInPsb.begin();
600  itQuad != quadInPsb.end(); ++itQuad) {
601 
602  switch (*itQuad) {
603 
604  case TechTr: {
605  receiveTechTr = true;
606  }
607 
608  break;
609  case NoIsoEGQ: {
610  receiveNoIsoEG = true;
611  }
612 
613  break;
614  case IsoEGQ: {
615  receiveIsoEG = true;
616  }
617 
618  break;
619  case CenJetQ: {
620  receiveCenJet = true;
621  }
622 
623  break;
624  case ForJetQ: {
625  receiveForJet = true;
626  }
627 
628  break;
629  case TauJetQ: {
630  receiveTauJet = true;
631  }
632 
633  break;
634  case ESumsQ: {
635  receiveETM = true;
636  receiveETT = true;
637  receiveHTT = true;
638  receiveHTM = true;
639  }
640 
641  break;
642  case JetCountsQ: {
643  receiveJetCounts = true;
644  }
645 
646  break;
647  case CastorQ: {
648  // obsolete
649  }
650 
651  break;
652  case BptxQ: {
653  // obsolete
654  }
655 
656  break;
657  case GtExternalQ: {
658  receiveExternal = true;
659  }
660 
661  break;
662  case HfQ: {
663  receiveHfBitCounts = true;
664  receiveHfRingEtSums = true;
665  }
666 
667  break;
668  // FIXME add MIP/Iso bits
669  default: {
670  // do nothing
671  }
672 
673  break;
674  }
675  }
676 
677  }
678 
679  break;
680  case GMT: {
681  daqNrGmtBoards++;
682  receiveMu = true;
683  }
684 
685  break;
686  case TCS: {
687  daqNrTcsBoards++;
688  }
689 
690  break;
691  case TIM: {
692  daqNrTimBoards++;
693  }
694 
695  break;
696  default: {
697  // do nothing, all blocks are given in GtBoardType enum
698  }
699 
700  break;
701  }
702  }
703  }
704  }
705 
706  // produce the L1GlobalTriggerReadoutRecord now, after we found how many
707  // BxInEvent the record has and how many boards are active
708  std::unique_ptr<L1GlobalTriggerReadoutRecord> gtDaqReadoutRecord(
710  daqNrPsbBoards));
711 
712  // * produce the L1GlobalTriggerEvmReadoutRecord
713  std::unique_ptr<L1GlobalTriggerEvmReadoutRecord> gtEvmReadoutRecord(
715  // daqNrFdlBoards OK, just reserve memory at this point
716 
717  // * produce the L1GlobalTriggerObjectMapRecord
718  std::unique_ptr<L1GlobalTriggerObjectMapRecord> gtObjectMapRecord(
720 
721  // fill the boards not depending on the BxInEvent in the L1 GT DAQ record
722  // GMT, PSB and FDL depend on BxInEvent
723 
724  // fill in emulator the same bunch crossing (12 bits - hardwired number of
725  // bits...) and the same local bunch crossing for all boards
726  int bxCross = iEvent.bunchCrossing();
727  boost::uint16_t bxCrossHw = 0;
728  if ((bxCross & 0xFFF) == bxCross) {
729  bxCrossHw = static_cast<boost::uint16_t>(bxCross);
730  } else {
731  bxCrossHw = 0; // Bx number too large, set to 0!
732  if (m_verbosity) {
733 
734  LogDebug("L1GlobalTrigger")
735  << "\nBunch cross number [hex] = " << std::hex << bxCross
736  << "\n larger than 12 bits. Set to 0! \n"
737  << std::dec << std::endl;
738  }
739  }
740 
742 
743  for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end();
744  ++itBoard) {
745 
746  int iPosition = itBoard->gtPositionDaqRecord();
747  if (iPosition > 0) {
748 
749  int iActiveBit = itBoard->gtBitDaqActiveBoards();
750  bool activeBoard = false;
751 
752  if (iActiveBit >= 0) {
753  activeBoard = m_activeBoardsGtDaq & (1 << iActiveBit);
754  }
755 
756  // use board if: in the record, but not in ActiveBoardsMap (iActiveBit <
757  // 0)
758  // in the record and ActiveBoardsMap, and active
759  if ((iActiveBit < 0) || activeBoard) {
760 
761  switch (itBoard->gtBoardType()) {
762 
763  case GTFE: {
764  L1GtfeWord gtfeWordValue;
765 
766  gtfeWordValue.setBoardId(itBoard->gtBoardId());
767 
768  // cast int to boost::uint16_t
769  // there are normally 3 or 5 BxInEvent
770  gtfeWordValue.setRecordLength(
771  static_cast<boost::uint16_t>(recordLength0));
772 
773  gtfeWordValue.setRecordLength1(
774  static_cast<boost::uint16_t>(recordLength1));
775 
776  // bunch crossing
777  gtfeWordValue.setBxNr(bxCrossHw);
778 
779  // set the list of active boards
780  gtfeWordValue.setActiveBoards(m_activeBoardsGtDaq);
781 
782  // set alternative for number of BX per board
783  gtfeWordValue.setAltNrBxBoard(
784  static_cast<boost::uint16_t>(m_alternativeNrBxBoardDaq));
785 
786  // set the TOTAL_TRIGNR as read from iEvent
787  // TODO check again - PTC stuff
788 
789  gtfeWordValue.setTotalTriggerNr(
790  static_cast<boost::uint32_t>(iEvent.id().event()));
791 
792  // ** fill L1GtfeWord in GT DAQ record
793 
794  gtDaqReadoutRecord->setGtfeWord(gtfeWordValue);
795  }
796 
797  break;
798  case TCS: {
799  // nothing
800  }
801 
802  break;
803  case TIM: {
804  // nothing
805  }
806 
807  break;
808  default: {
809  // do nothing, all blocks are given in GtBoardType enum
810  }
811 
812  break;
813  }
814  }
815  }
816  }
817  }
818 
819  // fill the boards not depending on the BxInEvent in the L1 GT EVM record
820 
821  int evmNrFdlBoards = 0;
822 
824 
825  // get the length of the BST message from parameter set or from event setup
826 
827  int bstLengthBytes = 0;
828 
829  if (m_psBstLengthBytes < 0) {
830  // length from event setup
831  bstLengthBytes = static_cast<int>(m_bstLengthBytes);
832 
833  } else {
834  // length from parameter set
835  bstLengthBytes = m_psBstLengthBytes;
836  }
837 
838  if (m_verbosity) {
839 
840  LogTrace("L1GlobalTrigger")
841  << "\n Length of BST message (in bytes): " << bstLengthBytes << "\n"
842  << std::endl;
843  }
844 
845  for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end();
846  ++itBoard) {
847 
848  int iPosition = itBoard->gtPositionEvmRecord();
849  if (iPosition > 0) {
850 
851  int iActiveBit = itBoard->gtBitEvmActiveBoards();
852  bool activeBoard = false;
853 
854  if (iActiveBit >= 0) {
855  activeBoard = m_activeBoardsGtEvm & (1 << iActiveBit);
856  }
857 
858  // use board if: in the record, but not in ActiveBoardsMap (iActiveBit <
859  // 0)
860  // in the record and ActiveBoardsMap, and active
861  if ((iActiveBit < 0) || activeBoard) {
862 
863  switch (itBoard->gtBoardType()) {
864 
865  case GTFE: {
866  L1GtfeExtWord gtfeWordValue(bstLengthBytes);
867 
868  gtfeWordValue.setBoardId(itBoard->gtBoardId());
869 
870  // cast int to boost::uint16_t
871  // there are normally 3 or 5 BxInEvent
872  gtfeWordValue.setRecordLength(
873  static_cast<boost::uint16_t>(recordLength0));
874 
875  gtfeWordValue.setRecordLength1(
876  static_cast<boost::uint16_t>(recordLength1));
877 
878  // bunch crossing
879  gtfeWordValue.setBxNr(bxCrossHw);
880 
881  // set the list of active boards
882  gtfeWordValue.setActiveBoards(m_activeBoardsGtEvm);
883 
884  // set alternative for number of BX per board
885  gtfeWordValue.setAltNrBxBoard(
886  static_cast<boost::uint16_t>(m_alternativeNrBxBoardEvm));
887 
888  // set the TOTAL_TRIGNR as read from iEvent
889  // TODO check again - PTC stuff
890 
891  gtfeWordValue.setTotalTriggerNr(
892  static_cast<boost::uint32_t>(iEvent.id().event()));
893 
894  // set the GPS time to the value read from Timestamp
895  edm::TimeValue_t evTime = iEvent.time().value();
896 
897  gtfeWordValue.setGpsTime(evTime);
898 
899  // LogDebug("L1GlobalTrigger")
900  //<< "\nEvent timestamp value [hex] = " << std::hex << evTime
901  //<< "\nBST retrieved value [hex] = " << gtfeWordValue.gpsTime()
902  //<< std::dec << std::endl;
903 
904  // source of BST message: DDDD simulated data
905  boost::uint16_t bstSourceVal = 0xDDDD;
906  gtfeWordValue.setBstSource(bstSourceVal);
907 
908  // ** fill L1GtfeWord in GT EVM record
909 
910  gtEvmReadoutRecord->setGtfeWord(gtfeWordValue);
911  }
912 
913  break;
914  case FDL: {
915  evmNrFdlBoards++;
916  }
917 
918  break;
919  case TCS: {
920 
921  L1TcsWord tcsWordValue;
922 
923  tcsWordValue.setBoardId(itBoard->gtBoardId());
924 
925  // bunch crossing
926  tcsWordValue.setBxNr(bxCrossHw);
927 
928  boost::uint16_t trigType = 0x5; // 0101 simulated event
929  tcsWordValue.setTriggerType(trigType);
930 
931  // luminosity segment number
932  tcsWordValue.setLuminositySegmentNr(
933  static_cast<boost::uint16_t>(iEvent.luminosityBlock()));
934 
935  // set the Event_Nr as read from iEvent
936  tcsWordValue.setEventNr(
937  static_cast<boost::uint32_t>(iEvent.id().event()));
938 
939  // orbit number
940  tcsWordValue.setOrbitNr(
941  static_cast<boost::uint64_t>(iEvent.orbitNumber()));
942 
943  // ** fill L1TcsWord in the EVM record
944 
945  gtEvmReadoutRecord->setTcsWord(tcsWordValue);
946 
947  }
948 
949  break;
950  case TIM: {
951  // nothing
952  }
953 
954  break;
955  default: {
956  // do nothing, all blocks are given in GtBoardType enum
957  }
958 
959  break;
960  }
961  }
962  }
963  }
964  }
965 
966  // get the prescale factor set used in the actual luminosity segment
967  int pfAlgoSetIndex = 0; // FIXME
968  const std::vector<int> &prescaleFactorsAlgoTrig =
969  (*m_prescaleFactorsAlgoTrig).at(pfAlgoSetIndex);
970 
971  int pfTechSetIndex = 0; // FIXME
972  const std::vector<int> &prescaleFactorsTechTrig =
973  (*m_prescaleFactorsTechTrig).at(pfTechSetIndex);
974 
975  //
976 
977  // loop over BxInEvent
978  for (int iBxInEvent = minBxInEvent; iBxInEvent <= maxBxInEvent;
979  ++iBxInEvent) {
980 
981  // * receive GCT object data via PSBs
982  // LogDebug("L1GlobalTrigger")
983  //<< "\nL1GlobalTrigger : receiving PSB data for bx = " << iBxInEvent <<
984  //"\n"
985  //<< std::endl;
986 
988  iEvent, m_caloGctInputTag, iBxInEvent, receiveNoIsoEG, m_nrL1NoIsoEG,
989  receiveIsoEG, m_nrL1IsoEG, receiveCenJet, m_nrL1CenJet, receiveForJet,
990  m_nrL1ForJet, receiveTauJet, m_nrL1TauJet, receiveETM, receiveETT,
991  receiveHTT, receiveHTM, receiveJetCounts, receiveHfBitCounts,
992  receiveHfRingEtSums);
993 
997  iBxInEvent, receiveTechTr,
999  }
1000 
1001  if (receiveExternal) {
1002  // FIXME read the external conditions
1003  }
1004 
1006  m_gtPSB->fillPsbBlock(iEvent, m_activeBoardsGtDaq, recordLength0,
1007  recordLength1, m_alternativeNrBxBoardDaq, boardMaps,
1008  iBxInEvent, gtDaqReadoutRecord.get());
1009  }
1010 
1011  // * receive GMT object data via GTL
1012  // LogDebug("L1GlobalTrigger")
1013  //<< "\nL1GlobalTrigger : receiving GMT data for bx = " << iBxInEvent <<
1014  //"\n"
1015  //<< std::endl;
1016 
1017  m_gtGTL->receiveGmtObjectData(iEvent, m_muGmtInputTag, iBxInEvent,
1018  receiveMu, m_nrL1Mu);
1019 
1020  // * run GTL
1021  // LogDebug("L1GlobalTrigger")
1022  //<< "\nL1GlobalTrigger : running GTL for bx = " << iBxInEvent << "\n"
1023  //<< std::endl;
1024 
1025  m_gtGTL->run(iEvent, evSetup, m_gtPSB, m_produceL1GtObjectMapRecord,
1026  iBxInEvent, gtObjectMapRecord.get(), m_numberPhysTriggers,
1030 
1031  // LogDebug("L1GlobalTrigger")
1032  //<< "\n AlgorithmOR\n" << m_gtGTL->getAlgorithmOR() << "\n"
1033  //<< std::endl;
1034 
1035  // * run FDL
1036  // LogDebug("L1GlobalTrigger")
1037  //<< "\nL1GlobalTrigger : running FDL for bx = " << iBxInEvent << "\n"
1038  //<< std::endl;
1039 
1040  m_gtFDL->run(iEvent, prescaleFactorsAlgoTrig, prescaleFactorsTechTrig,
1043  boardMaps, m_emulateBxInEvent, iBxInEvent,
1045  m_numberDaqPartitions, m_gtGTL, m_gtPSB, pfAlgoSetIndex,
1046  pfTechSetIndex, m_algorithmTriggersUnprescaled,
1049 
1050  if (m_produceL1GtDaqRecord && (daqNrFdlBoards > 0)) {
1051  m_gtFDL->fillDaqFdlBlock(iBxInEvent, m_activeBoardsGtDaq, recordLength0,
1052  recordLength1, m_alternativeNrBxBoardDaq,
1053  boardMaps, gtDaqReadoutRecord.get());
1054  }
1055 
1056  if (m_produceL1GtEvmRecord && (evmNrFdlBoards > 0)) {
1057  m_gtFDL->fillEvmFdlBlock(iBxInEvent, m_activeBoardsGtEvm, recordLength0,
1058  recordLength1, m_alternativeNrBxBoardEvm,
1059  boardMaps, gtEvmReadoutRecord.get());
1060  }
1061 
1062  // reset
1063  m_gtPSB->reset();
1064  m_gtGTL->reset();
1065  m_gtFDL->reset();
1066 
1067  // LogDebug("L1GlobalTrigger") << "\n Reset PSB, GTL, FDL\n" << std::endl;
1068  }
1069 
1070  if (receiveMu) {
1071 
1072  // LogDebug("L1GlobalTrigger")
1073  //<< "\n**** "
1074  //<< "\n Persistent reference for L1MuGMTReadoutCollection with input tag:
1075  //"
1076  //<< m_muGmtInputTag
1077  //<< "\n**** \n"
1078  //<< std::endl;
1079 
1080  // get L1MuGMTReadoutCollection reference and set it in GT record
1081 
1083  iEvent.getByLabel(m_muGmtInputTag, gmtRcHandle);
1084 
1085  if (!gmtRcHandle.isValid()) {
1086  if (m_verbosity) {
1087  edm::LogWarning("L1GlobalTrigger")
1088  << "\nWarning: L1MuGMTReadoutCollection with input tag "
1089  << m_muGmtInputTag
1090  << "\nrequested in configuration, but not found in the event.\n"
1091  << std::endl;
1092  }
1093  } else {
1094 
1095  gtDaqReadoutRecord->setMuCollectionRefProd(gmtRcHandle);
1096  }
1097  }
1098 
1099  if (m_verbosity && m_isDebugEnabled) {
1100 
1101  std::ostringstream myCoutStream;
1102  gtDaqReadoutRecord->print(myCoutStream);
1103  LogTrace("L1GlobalTrigger")
1104  << "\n The following L1 GT DAQ readout record was produced:\n"
1105  << myCoutStream.str() << "\n"
1106  << std::endl;
1107 
1108  myCoutStream.str("");
1109  myCoutStream.clear();
1110 
1111  gtEvmReadoutRecord->print(myCoutStream);
1112  LogTrace("L1GlobalTrigger")
1113  << "\n The following L1 GT EVM readout record was produced:\n"
1114  << myCoutStream.str() << "\n"
1115  << std::endl;
1116 
1117  myCoutStream.str("");
1118  myCoutStream.clear();
1119 
1120  const std::vector<L1GlobalTriggerObjectMap> objMapVec =
1121  gtObjectMapRecord->gtObjectMap();
1122 
1123  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator it =
1124  objMapVec.begin();
1125  it != objMapVec.end(); ++it) {
1126 
1127  (*it).print(myCoutStream);
1128  }
1129 
1130  LogDebug("L1GlobalTrigger")
1131  << "Test gtObjectMapRecord in L1GlobalTrigger \n\n"
1132  << myCoutStream.str() << "\n\n"
1133  << std::endl;
1134 
1135  myCoutStream.str("");
1136  myCoutStream.clear();
1137  }
1138 
1139  // **
1140  // register products
1141  if (m_produceL1GtDaqRecord) {
1142  iEvent.put(std::move(gtDaqReadoutRecord));
1143  }
1144 
1145  if (m_produceL1GtEvmRecord) {
1146  iEvent.put(std::move(gtEvmReadoutRecord));
1147  }
1148 
1150  iEvent.put(std::move(gtObjectMapRecord));
1151  }
1152 }
#define LogDebug(id)
unsigned int gtNumberL1TauJet() const
get / set the number of L1 tau jets received by GT
const std::vector< edm::InputTag > m_technicalTriggersInputTags
input tag for technical triggers
EventNumber_t event() const
Definition: EventID.h:41
const L1GtTriggerMask * m_l1GtTmVetoTech
void init(const int nrL1Mu, const int numberPhysTriggers)
initialize the class (mainly reserve)
const L1GtTriggerMask * m_l1GtTmVetoAlgo
const std::vector< int > m_recordLength
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
unsigned long long m_l1GtParCacheID
const L1GtStableParameters * m_l1GtStablePar
cached stuff
std::vector< unsigned int > m_triggerMaskVetoAlgoTrig
void setBxNr(cms_uint16_t bxNrValue)
Definition: L1GtfeWord.h:127
const edm::InputTag m_caloGctInputTag
input tag for calorimeter collections from GCT
const boost::uint16_t gtDaqActiveBoards() const
get / set the active boards for L1 GT DAQ record
const int gtTotalBxInEvent() const
get / set the total Bx&#39;s in the event
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
const bool m_readTechnicalTriggerRecords
logical flag to read the technical trigger records
std::vector< unsigned int > m_triggerMaskAlgoTrig
void setBxNr(const cms_uint16_t bxNrValue)
Definition: L1TcsWord.h:92
const unsigned int gtBstLengthBytes() const
get / set length of BST message (in bytes) for L1 GT EVM record
const bool m_technicalTriggersVetoUnmasked
int bunchCrossing() const
Definition: EventBase.h:64
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
void receiveGctObjectData(edm::Event &iEvent, const edm::InputTag &caloGctInputTag, const int iBxInEvent, const bool receiveNoIsoEG, const int nrL1NoIsoEG, const bool receiveIsoEG, const int nrL1IsoEG, const bool receiveCenJet, const int nrL1CenJet, const bool receiveForJet, const int nrL1ForJet, const bool receiveTauJet, const int nrL1TauJet, const bool receiveETM, const bool receiveETT, const bool receiveHTT, const bool receiveHTM, const bool receiveJetCounts, const bool receiveHfBitCounts, const bool receiveHfRingEtSums)
receive Global Calorimeter Trigger objects
const bool m_produceL1GtObjectMapRecord
logical flag to produce the L1 GT object map record
const bool m_writePsbL1GtDaqRecord
logical flag to write the PSB content in the L1 GT DAQ record
unsigned long long m_l1GtStableParCacheID
void setRecordLength(cms_uint16_t recordLengthValue)
Definition: L1GtfeWord.h:109
const bool m_produceL1GtDaqRecord
logical flag to produce the L1 GT DAQ readout record
void setLuminositySegmentNr(const cms_uint16_t luminositySegmentNrValue)
Definition: L1TcsWord.h:171
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
unsigned int m_numberPhysTriggers
number of physics triggers
unsigned int gtNumberL1CenJet() const
get / set the number of L1 central jets received by GT
L1GlobalTriggerGTL * m_gtGTL
unsigned int m_bstLengthBytes
length of BST record (in bytes) from event setup
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
std::vector< unsigned int > m_triggerMaskVetoTechTrig
const bool m_produceL1GtEvmRecord
logical flag to produce the L1 GT EVM readout record
unsigned int gtNumberTechnicalTriggers() const
get / set the number of technical triggers
void fillEvmFdlBlock(const int iBxInEvent, const boost::uint16_t &activeBoardsGtEvm, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardEvm, const std::vector< L1GtBoard > &boardMaps, L1GlobalTriggerEvmReadoutRecord *gtEvmReadoutRecord)
fill the FDL block in the L1 GT EVM record for iBxInEvent
const bool m_algorithmTriggersUnmasked
void setAltNrBxBoard(cms_uint16_t altNrBxBoardValue)
Definition: L1GtfeWord.h:192
unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
void setTotalTriggerNr(cms_uint32_t totalTriggerNrValue)
Definition: L1GtfeWord.h:216
unsigned int gtIfMuEtaNumberBits() const
get / set the number of bits for eta of muon objects
const L1GtTriggerMask * m_l1GtTmTech
const bool m_technicalTriggersUnmasked
unsigned int gtNumberL1ForJet() const
get / set the number of L1 forward jets received by GT
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
boost::uint16_t m_activeBoardsGtEvm
unsigned long long m_l1GtPfTechCacheID
void receiveTechnicalTriggers(edm::Event &iEvent, const std::vector< edm::InputTag > &technicalTriggersInputTags, const int iBxInEvent, const bool receiveTechTr, const int nrL1TechTr)
receive technical trigger
void reset()
clear PSB
const unsigned int m_alternativeNrBxBoardEvm
L1GlobalTriggerFDL * m_gtFDL
const bool m_algorithmTriggersUnprescaled
const bool m_isDebugEnabled
const L1GtParameters * m_l1GtPar
parameters
std::vector< unsigned int > m_triggerMaskTechTrig
void run(edm::Event &iEvent, const edm::EventSetup &evSetup, const L1GlobalTriggerPSB *ptrGtPSB, const bool produceL1GtObjectMapRecord, const int iBxInEvent, L1GlobalTriggerObjectMapRecord *gtObjectMapRecord, const unsigned int numberPhysTriggers, const int nrL1Mu, const int nrL1NoIsoEG, const int nrL1IsoEG, const int nrL1CenJet, const int nrL1ForJet, const int nrL1TauJet, const int nrL1JetCounts, const int ifMuEtaNumberBits, const int ifCaloEtaNumberBits)
run the GTL
const L1GtPrescaleFactors * m_l1GtPfTech
unsigned long long m_l1GtTmAlgoCacheID
int orbitNumber() const
Definition: EventBase.h:65
void setRecordLength1(cms_uint16_t recordLengthValue)
Definition: L1GtfeWord.h:90
bool isValid() const
Definition: HandleBase.h:74
unsigned long long TimeValue_t
Definition: Timestamp.h:28
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:480
#define LogTrace(id)
unsigned int gtNumberL1NoIsoEG() const
get / set the number of L1 e/gamma objects received by GT
unsigned int gtNumberL1JetCounts() const
get / set the number of L1 jet counts received by GT
const int m_verbosity
verbosity level
void setBoardId(cms_uint16_t boardIdValue)
set BoardId from a BoardId value
Definition: L1GtfeWord.h:71
void setBoardId(const cms_uint16_t boardIdValue)
set BoardId from a BoardId value
Definition: L1TcsWord.h:72
boost::uint16_t m_activeBoardsGtDaq
active boards in L1 GT DAQ record and in L1 GT EVM record
unsigned int gtIfCaloEtaNumberBits() const
get / set the number of bits for eta of calorimeter objects
void reset()
clear FDL
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks & veto masks
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
void setActiveBoards(cms_uint16_t activeBoardsValue)
Definition: L1GtfeWord.h:168
const boost::uint16_t gtEvmActiveBoards() const
get / set the active boards for L1 GT EVM record
unsigned long long m_l1GtTmVetoTechCacheID
void receiveGmtObjectData(edm::Event &, const edm::InputTag &, const int iBxInEvent, const bool receiveMu, const int nrL1Mu)
receive data from Global Muon Trigger
void fillPsbBlock(edm::Event &iEvent, const boost::uint16_t &activeBoardsGtDaq, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardDaq, const std::vector< L1GtBoard > &boardMaps, const int iBxInEvent, L1GlobalTriggerReadoutRecord *gtDaqReadoutRecord)
fill the content of active PSB boards
unsigned long long m_l1GtBMCacheID
L1GlobalTriggerPSB * m_gtPSB
const edm::InputTag m_muGmtInputTag
input tag for muon collection from GMT
const bool m_technicalTriggersUnprescaled
edm::EventID id() const
Definition: EventBase.h:59
const int m_psBstLengthBytes
length of BST record (in bytes) from parameter set
void run(edm::Event &iEvent, const std::vector< int > &prescaleFactorsAlgoTrig, const std::vector< int > &prescaleFactorsTechTrig, const std::vector< unsigned int > &triggerMaskAlgoTrig, const std::vector< unsigned int > &triggerMaskTechTrig, const std::vector< unsigned int > &triggerMaskVetoAlgoTrig, const std::vector< unsigned int > &triggerMaskVetoTechTrig, const std::vector< L1GtBoard > &boardMaps, const int totalBxInEvent, const int iBxInEvent, const unsigned int numberPhysTriggers, const unsigned int numberTechnicalTriggers, const unsigned int numberDaqPartitions, const L1GlobalTriggerGTL *ptrGTL, const L1GlobalTriggerPSB *ptrPSB, const int pfAlgoSetIndex, const int pfTechSetIndex, const bool algorithmTriggersUnprescaled, const bool algorithmTriggersUnmasked, const bool technicalTriggersUnprescaled, const bool technicalTriggersUnmasked, const bool technicalTriggersVetoUnmasked)
run the FDL
const std::vector< L1GtBoard > & gtBoardMaps() const
get / set / print the L1 GT board map
Definition: L1GtBoardMaps.h:47
T get() const
Definition: EventSetup.h:71
const unsigned int m_alternativeNrBxBoardDaq
void setTriggerType(const cms_uint16_t triggerTypeValue)
Definition: L1TcsWord.h:132
int m_totalBxInEvent
total number of Bx&#39;s in the event coming from EventSetup
unsigned int m_numberTechnicalTriggers
number of technical triggers
void setEventNr(const cms_uint32_t eventNrValue)
Definition: L1TcsWord.h:251
const L1GtBoardMaps * m_l1GtBM
board maps - cache only the record
unsigned long long m_l1GtTmTechCacheID
unsigned int m_numberDaqPartitions
number of DAQ partitions
T const * product() const
Definition: ESHandle.h:86
void init(const int nrL1NoIsoEG, const int nrL1IsoEG, const int nrL1CenJet, const int nrL1ForJet, const int nrL1TauJet, const int numberTechnicalTriggers)
initialize the class (mainly reserve)
unsigned int gtNumberL1IsoEG() const
get / set the number of L1 isolated e/gamma objects received by GT
void fillDaqFdlBlock(const int iBxInEvent, const boost::uint16_t &activeBoardsGtDaq, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardDaq, const std::vector< L1GtBoard > &boardMaps, L1GlobalTriggerReadoutRecord *gtDaqReadoutRecord)
fill the FDL block in the L1 GT DAQ record for iBxInEvent
TimeValue_t value() const
Definition: Timestamp.h:56
void setOrbitNr(const cms_uint64_t orbitNrValue)
Definition: L1TcsWord.h:271
edm::Timestamp time() const
Definition: EventBase.h:60
def move(src, dest)
Definition: eostools.py:511
unsigned long long m_l1GtTmVetoAlgoCacheID
unsigned int gtNumberL1Mu() const
get / set the number of L1 muons received by GT
unsigned long long m_l1GtPfAlgoCacheID
void reset()
clear GTL

Member Data Documentation

boost::uint16_t L1GlobalTrigger::m_activeBoardsGtDaq
private

active boards in L1 GT DAQ record and in L1 GT EVM record

Definition at line 115 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

boost::uint16_t L1GlobalTrigger::m_activeBoardsGtEvm
private

Definition at line 116 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_algorithmTriggersUnmasked
private

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

Definition at line 215 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_algorithmTriggersUnprescaled
private

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

Definition at line 211 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const unsigned int L1GlobalTrigger::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 199 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const unsigned int L1GlobalTrigger::m_alternativeNrBxBoardEvm
private

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

Definition at line 203 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

unsigned int L1GlobalTrigger::m_bstLengthBytes
private

length of BST record (in bytes) from event setup

Definition at line 119 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const edm::InputTag L1GlobalTrigger::m_caloGctInputTag
private

input tag for calorimeter collections from GCT

Definition at line 162 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const edm::InputTag L1GlobalTrigger::m_castorInputTag
private

input tag for CASTOR record

Definition at line 165 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger().

int L1GlobalTrigger::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 190 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

L1GlobalTriggerFDL* L1GlobalTrigger::m_gtFDL
private

Definition at line 156 of file L1GlobalTrigger.h.

Referenced by gtFDL(), L1GlobalTrigger(), produce(), and ~L1GlobalTrigger().

L1GlobalTriggerGTL* L1GlobalTrigger::m_gtGTL
private

Definition at line 155 of file L1GlobalTrigger.h.

Referenced by gtGTL(), L1GlobalTrigger(), produce(), and ~L1GlobalTrigger().

L1GlobalTriggerPSB* L1GlobalTrigger::m_gtPSB
private

Definition at line 154 of file L1GlobalTrigger.h.

Referenced by gtPSB(), L1GlobalTrigger(), produce(), and ~L1GlobalTrigger().

int L1GlobalTrigger::m_ifCaloEtaNumberBits
private

Definition at line 105 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_ifMuEtaNumberBits
private

Definition at line 104 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_isDebugEnabled
private

Definition at line 232 of file L1GlobalTrigger.h.

Referenced by produce().

const L1GtBoardMaps* L1GlobalTrigger::m_l1GtBM
private

board maps - cache only the record

Definition at line 122 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtBMCacheID
private

Definition at line 123 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtParameters* L1GlobalTrigger::m_l1GtPar
private

parameters

Definition at line 108 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtParCacheID
private

Definition at line 109 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtPrescaleFactors* L1GlobalTrigger::m_l1GtPfAlgo
private

prescale factors

Definition at line 126 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtPfAlgoCacheID
private

Definition at line 127 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtPrescaleFactors* L1GlobalTrigger::m_l1GtPfTech
private

Definition at line 129 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtPfTechCacheID
private

Definition at line 130 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtStableParameters* L1GlobalTrigger::m_l1GtStablePar
private

cached stuff

stable parameters

Definition at line 76 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtStableParCacheID
private

Definition at line 77 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmAlgo
private

trigger masks & veto masks

Definition at line 136 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmAlgoCacheID
private

Definition at line 137 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmTech
private

Definition at line 139 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmTechCacheID
private

Definition at line 140 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmVetoAlgo
private

Definition at line 142 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmVetoAlgoCacheID
private

Definition at line 143 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmVetoTech
private

Definition at line 145 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmVetoTechCacheID
private

Definition at line 146 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const edm::InputTag L1GlobalTrigger::m_muGmtInputTag
private

input tag for muon collection from GMT

Definition at line 159 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1CenJet
private

Definition at line 96 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1ForJet
private

Definition at line 97 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1IsoEG
private

Definition at line 94 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1JetCounts
private

Definition at line 100 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1Mu
private

number of objects of each type { Mu, NoIsoEG, IsoEG, CenJet, ForJet, TauJet, ETM, ETT, HTT, JetCounts };

Definition at line 91 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1NoIsoEG
private

Definition at line 93 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1TauJet
private

Definition at line 98 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

unsigned int L1GlobalTrigger::m_numberDaqPartitions
private

number of DAQ partitions

Definition at line 86 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

unsigned int L1GlobalTrigger::m_numberPhysTriggers
private

number of physics triggers

Definition at line 80 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

unsigned int L1GlobalTrigger::m_numberTechnicalTriggers
private

number of technical triggers

Definition at line 83 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const std::vector<std::vector<int> >* L1GlobalTrigger::m_prescaleFactorsAlgoTrig
private

Definition at line 132 of file L1GlobalTrigger.h.

Referenced by produce().

const std::vector<std::vector<int> >* L1GlobalTrigger::m_prescaleFactorsTechTrig
private

Definition at line 133 of file L1GlobalTrigger.h.

Referenced by produce().

const bool L1GlobalTrigger::m_produceL1GtDaqRecord
private

logical flag to produce the L1 GT DAQ readout record

Definition at line 171 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_produceL1GtEvmRecord
private

logical flag to produce the L1 GT EVM readout record

Definition at line 174 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_produceL1GtObjectMapRecord
private

logical flag to produce the L1 GT object map record

Definition at line 177 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const int L1GlobalTrigger::m_psBstLengthBytes
private

length of BST record (in bytes) from parameter set

Definition at line 206 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_readTechnicalTriggerRecords
private

logical flag to read the technical trigger records

Definition at line 183 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const std::vector<int> L1GlobalTrigger::m_recordLength
private

number of BXs in the event corresponding to alternative 0 and 1 in altNrBxBoard() EmulateBxInEvent >= max(RecordLength[0], RecordLength[1]) negative values: take the numbers from event setup, from L1GtParameters

Definition at line 195 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const std::vector<edm::InputTag> L1GlobalTrigger::m_technicalTriggersInputTags
private

input tag for technical triggers

Definition at line 168 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_technicalTriggersUnmasked
private

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

Definition at line 224 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_technicalTriggersUnprescaled
private

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

Definition at line 220 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_technicalTriggersVetoUnmasked
private

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

Definition at line 228 of file L1GlobalTrigger.h.

Referenced by produce().

int L1GlobalTrigger::m_totalBxInEvent
private

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

Definition at line 112 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

std::vector<unsigned int> L1GlobalTrigger::m_triggerMaskAlgoTrig
private

Definition at line 148 of file L1GlobalTrigger.h.

Referenced by produce().

std::vector<unsigned int> L1GlobalTrigger::m_triggerMaskTechTrig
private

Definition at line 149 of file L1GlobalTrigger.h.

Referenced by produce().

std::vector<unsigned int> L1GlobalTrigger::m_triggerMaskVetoAlgoTrig
private

Definition at line 151 of file L1GlobalTrigger.h.

Referenced by produce().

std::vector<unsigned int> L1GlobalTrigger::m_triggerMaskVetoTechTrig
private

Definition at line 152 of file L1GlobalTrigger.h.

Referenced by produce().

const int L1GlobalTrigger::m_verbosity
private

verbosity level

Definition at line 231 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_writePsbL1GtDaqRecord
private

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

Definition at line 180 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().