test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
L1GlobalTrigger Class Reference

#include <L1GlobalTrigger.h>

Inheritance diagram for L1GlobalTrigger:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

const L1GlobalTriggerFDLgtFDL () const
 
const L1GlobalTriggerGTLgtGTL () const
 
const L1GlobalTriggerPSBgtPSB () const
 
 L1GlobalTrigger (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
 ~L1GlobalTrigger ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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 ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
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)
 

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 90 of file L1GlobalTrigger.cc.

References edm::EDConsumerBase::consumesCollector(), 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, bookConverter::max, L1GlobalTriggerFDL::setVerbosity(), L1GlobalTriggerGTL::setVerbosity(), and L1GlobalTriggerPSB::setVerbosity().

90  :
91  m_muGmtInputTag(parSet.getParameter<edm::InputTag> ("GmtInputTag")),
92  m_caloGctInputTag(parSet.getParameter<edm::InputTag> ("GctInputTag")),
93  m_castorInputTag(parSet.getParameter<edm::InputTag> ("CastorInputTag")),
94  m_technicalTriggersInputTags(parSet.getParameter<std::vector<edm::InputTag> > (
95  "TechnicalTriggersInputTags")),
96  m_produceL1GtDaqRecord(parSet.getParameter<bool> ("ProduceL1GtDaqRecord")),
97  m_produceL1GtEvmRecord(parSet.getParameter<bool> ("ProduceL1GtEvmRecord")),
98  m_produceL1GtObjectMapRecord(parSet.getParameter<bool> ("ProduceL1GtObjectMapRecord")),
99  m_writePsbL1GtDaqRecord(parSet.getParameter<bool> ("WritePsbL1GtDaqRecord")),
100  m_readTechnicalTriggerRecords(parSet.getParameter<bool> ("ReadTechnicalTriggerRecords")),
101  m_emulateBxInEvent(parSet.getParameter<int> ("EmulateBxInEvent")),
102  m_recordLength(parSet.getParameter<std::vector<int> > ("RecordLength")),
103  m_alternativeNrBxBoardDaq(parSet.getParameter<unsigned int> ("AlternativeNrBxBoardDaq")),
104  m_alternativeNrBxBoardEvm(parSet.getParameter<unsigned int> ("AlternativeNrBxBoardEvm")),
105  m_psBstLengthBytes(parSet.getParameter<int> ("BstLengthBytes")),
106  m_algorithmTriggersUnprescaled(parSet.getParameter<bool> ("AlgorithmTriggersUnprescaled")),
107  m_algorithmTriggersUnmasked(parSet.getParameter<bool> ("AlgorithmTriggersUnmasked")),
108  m_technicalTriggersUnprescaled(parSet.getParameter<bool> ("TechnicalTriggersUnprescaled")),
109  m_technicalTriggersUnmasked(parSet.getParameter<bool> ("TechnicalTriggersUnmasked")),
110  m_technicalTriggersVetoUnmasked(parSet.getParameter<bool> ("TechnicalTriggersVetoUnmasked")),
111  m_verbosity(parSet.getUntrackedParameter<int>("Verbosity", 0)),
113 
114 
115 {
116 
117  if (m_verbosity) {
118 
119  LogDebug("L1GlobalTrigger") << std::endl;
120 
121  LogTrace("L1GlobalTrigger")
122  << "\nInput tag for muon collection from GMT: " << m_muGmtInputTag
123  << "\nInput tag for calorimeter collections from GCT: " << m_caloGctInputTag
124  << "\nInput tag for CASTOR record: " << m_castorInputTag
125  << "\nInput tag for technical triggers: "
126  << std::endl;
127 
128  // loop over all producers of technical trigger records
129  for (std::vector<edm::InputTag>::const_iterator it = m_technicalTriggersInputTags.begin(); it
130  != m_technicalTriggersInputTags.end(); it++) {
131  LogTrace("L1GlobalTrigger") << "\n " << ( *it ) << std::endl;
132  }
133 
134  LogTrace("L1GlobalTrigger")
135  << "\nProduce the L1 GT DAQ readout record: " << m_produceL1GtDaqRecord
136  << "\nProduce the L1 GT EVM readout record: " << m_produceL1GtEvmRecord
137  << "\nProduce the L1 GT Object Map record: " << m_produceL1GtObjectMapRecord
138  << " \n"
139  << "\nWrite Psb content to L1 GT DAQ Record: " << m_writePsbL1GtDaqRecord
140  << " \n"
141  << "\nRead technical trigger records: " << m_readTechnicalTriggerRecords
142  << " \n"
143  << "\nNumber of BxInEvent to be emulated: " << m_emulateBxInEvent
144  << "\nNumber of BXs corresponding to alternative 0: " << m_recordLength.at(0)
145  << "\nNumber of BXs corresponding to alternative 1: " << m_recordLength.at(1)
146  << " \n"
147  << "\nAlternative for number of BX in GT DAQ record: 0x" << std::hex
149  << "\nAlternative for number of BX in GT EVM record: 0x" << std::hex
151  << " \n"
152  << "\nLength of BST message [bytes]: " << m_psBstLengthBytes
153  << "\n"
154  << "\nRun algorithm triggers unprescaled: " << m_algorithmTriggersUnprescaled
155  << "\nRun algorithm triggers unmasked (all enabled): " << m_algorithmTriggersUnmasked
156  << "\n"
157  << "\nRun technical triggers unprescaled: " << m_technicalTriggersUnprescaled
158  << "\nRun technical triggers unmasked (all enabled): " << m_technicalTriggersUnmasked
159  << "\nRun technical triggers veto unmasked (no veto): " << m_technicalTriggersUnmasked
160  << "\n"
161  << std::endl;
162  }
163 
164 
165  if ( ( m_emulateBxInEvent > 0 ) && ( ( m_emulateBxInEvent % 2 ) == 0 )) {
167 
168  if (m_verbosity) {
169  edm::LogWarning("L1GlobalTrigger")
170  << "\nWARNING: Number of bunch crossing to be emulated rounded to: "
171  << m_emulateBxInEvent << "\n The number must be an odd number!\n"
172  << std::endl;
173  }
174  }
175 
176  int requiredRecordLength = std::max(m_recordLength.at(0), m_recordLength.at(1));
177  if ((m_emulateBxInEvent >= 0) && (m_emulateBxInEvent < requiredRecordLength) ) {
178 
179  m_emulateBxInEvent = requiredRecordLength;
180 
181  if (m_verbosity) {
182  edm::LogWarning("L1GlobalTrigger")
183  << "\nWARNING: Number of bunch crossing required to be emulated ( "
184  << m_emulateBxInEvent << " BX) smaller as required in RecordLength:"
185  << "\n Number of BXs corresponding to alternative 0: " << m_recordLength.at(0)
186  << "\n Number of BXs corresponding to alternative 1: " << m_recordLength.at(1)
187  << "\nEmulating " << requiredRecordLength << " BX!"
188  << "\n"
189  << std::endl;
190  }
191 
192  }
193 
194  // register products
196  produces<L1GlobalTriggerReadoutRecord>();
197  }
198 
200  produces<L1GlobalTriggerEvmReadoutRecord>();
201  }
202 
204  produces<L1GlobalTriggerObjectMapRecord>();
205  }
206 
207  // create new PSBs
210 
211  // create new GTL
214 
215  // create new FDL
216  m_gtFDL = new L1GlobalTriggerFDL();
218 
219  // initialize cached IDs
220 
221  //
222  m_l1GtStableParCacheID = 0ULL;
223 
227 
228  m_nrL1Mu = 0;
229 
230  m_nrL1NoIsoEG = 0;
231  m_nrL1IsoEG = 0;
232 
233  m_nrL1CenJet = 0;
234  m_nrL1ForJet = 0;
235  m_nrL1TauJet = 0;
236 
237  m_nrL1JetCounts = 0;
238 
241 
242  //
243  m_l1GtParCacheID = 0ULL;
244 
245  m_totalBxInEvent = 0;
246 
249  m_bstLengthBytes = 0;
250 
251  //
252  m_l1GtBMCacheID = 0ULL;
253 
254  //
255  m_l1GtPfAlgoCacheID = 0ULL;
256  m_l1GtPfTechCacheID = 0ULL;
257 
258  m_l1GtTmAlgoCacheID = 0ULL;
259  m_l1GtTmTechCacheID = 0ULL;
260 
263 
264  consumes<L1MuGMTReadoutCollection>(m_muGmtInputTag);
265 }
#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)
void setVerbosity(const int verbosity)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
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 ( )

Definition at line 268 of file L1GlobalTrigger.cc.

References m_gtFDL, m_gtGTL, and m_gtPSB.

269 {
270 
271  delete m_gtPSB;
272  delete m_gtGTL;
273  delete m_gtFDL;
274 }
L1GlobalTriggerGTL * m_gtGTL
L1GlobalTriggerFDL * m_gtFDL
L1GlobalTriggerPSB * m_gtPSB

Member Function Documentation

const L1GlobalTriggerFDL* L1GlobalTrigger::gtFDL ( ) const
inline

Definition at line 78 of file L1GlobalTrigger.h.

References m_gtFDL.

79  {
80  return m_gtFDL;
81  }
L1GlobalTriggerFDL * m_gtFDL
const L1GlobalTriggerGTL* L1GlobalTrigger::gtGTL ( ) const
inline

Definition at line 72 of file L1GlobalTrigger.h.

References m_gtGTL.

73  {
74  return m_gtGTL;
75  }
L1GlobalTriggerGTL * m_gtGTL
const L1GlobalTriggerPSB* L1GlobalTrigger::gtPSB ( ) const
inline

Definition at line 66 of file L1GlobalTrigger.h.

References m_gtPSB.

67  {
68  return m_gtPSB;
69  }
L1GlobalTriggerPSB * m_gtPSB
void L1GlobalTrigger::produce ( edm::Event iEvent,
const edm::EventSetup evSetup 
)
virtual

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

receive technical trigger

Implements edm::stream::EDProducerBase.

Definition at line 279 of file L1GlobalTrigger.cc.

References BptxQ, edm::EventBase::bunchCrossing(), CastorQ, CenJetQ, TauDecayModes::dec, 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, NoIsoEGQ, edm::EventBase::orbitNumber(), edm::ESHandle< class >::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().

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

Referenced by L1GlobalTrigger(), and produce().

boost::uint16_t L1GlobalTrigger::m_activeBoardsGtEvm
private

Definition at line 128 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 227 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 223 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 211 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 215 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 131 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 175 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const edm::InputTag L1GlobalTrigger::m_castorInputTag
private

input tag for CASTOR record

Definition at line 178 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 202 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

L1GlobalTriggerFDL* L1GlobalTrigger::m_gtFDL
private

Definition at line 169 of file L1GlobalTrigger.h.

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

L1GlobalTriggerGTL* L1GlobalTrigger::m_gtGTL
private

Definition at line 168 of file L1GlobalTrigger.h.

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

L1GlobalTriggerPSB* L1GlobalTrigger::m_gtPSB
private

Definition at line 167 of file L1GlobalTrigger.h.

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

int L1GlobalTrigger::m_ifCaloEtaNumberBits
private

Definition at line 116 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_ifMuEtaNumberBits
private

Definition at line 115 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const bool L1GlobalTrigger::m_isDebugEnabled
private

Definition at line 244 of file L1GlobalTrigger.h.

Referenced by produce().

const L1GtBoardMaps* L1GlobalTrigger::m_l1GtBM
private

board maps - cache only the record

Definition at line 134 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtBMCacheID
private

Definition at line 135 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtParameters* L1GlobalTrigger::m_l1GtPar
private

parameters

Definition at line 120 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtParCacheID
private

Definition at line 121 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtPrescaleFactors* L1GlobalTrigger::m_l1GtPfAlgo
private

prescale factors

Definition at line 139 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtPfAlgoCacheID
private

Definition at line 140 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtPrescaleFactors* L1GlobalTrigger::m_l1GtPfTech
private

Definition at line 142 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtPfTechCacheID
private

Definition at line 143 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtStableParameters* L1GlobalTrigger::m_l1GtStablePar
private

cached stuff

stable parameters

Definition at line 88 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtStableParCacheID
private

Definition at line 89 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmAlgo
private

trigger masks & veto masks

Definition at line 149 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmAlgoCacheID
private

Definition at line 150 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmTech
private

Definition at line 152 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmTechCacheID
private

Definition at line 153 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmVetoAlgo
private

Definition at line 155 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmVetoAlgoCacheID
private

Definition at line 156 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

const L1GtTriggerMask* L1GlobalTrigger::m_l1GtTmVetoTech
private

Definition at line 158 of file L1GlobalTrigger.h.

Referenced by produce().

unsigned long long L1GlobalTrigger::m_l1GtTmVetoTechCacheID
private

Definition at line 159 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 172 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1CenJet
private

Definition at line 107 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1ForJet
private

Definition at line 108 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1IsoEG
private

Definition at line 105 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1JetCounts
private

Definition at line 111 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 102 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1NoIsoEG
private

Definition at line 104 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_nrL1TauJet
private

Definition at line 109 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

unsigned int L1GlobalTrigger::m_numberDaqPartitions
private

number of DAQ partitions

Definition at line 98 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

unsigned int L1GlobalTrigger::m_numberPhysTriggers
private

number of physics triggers

Definition at line 92 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

unsigned int L1GlobalTrigger::m_numberTechnicalTriggers
private

number of technical triggers

Definition at line 95 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

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

Definition at line 145 of file L1GlobalTrigger.h.

Referenced by produce().

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

Definition at line 146 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 184 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 187 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 190 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 218 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 196 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 207 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 181 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 236 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 232 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 240 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 124 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

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

Definition at line 161 of file L1GlobalTrigger.h.

Referenced by produce().

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

Definition at line 162 of file L1GlobalTrigger.h.

Referenced by produce().

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

Definition at line 164 of file L1GlobalTrigger.h.

Referenced by produce().

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

Definition at line 165 of file L1GlobalTrigger.h.

Referenced by produce().

const int L1GlobalTrigger::m_verbosity
private

verbosity level

Definition at line 243 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 193 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().