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::EDProducer 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::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 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
 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 (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) 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
 
bool m_algorithmTriggersUnmasked
 
bool m_algorithmTriggersUnprescaled
 
unsigned int m_alternativeNrBxBoardDaq
 
unsigned int m_alternativeNrBxBoardEvm
 
unsigned int m_bstLengthBytes
 length of BST record (in bytes) from event setup More...
 
edm::InputTag m_caloGctInputTag
 input tag for calorimeter collections from GCT More...
 
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
 
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
 
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
 
bool m_produceL1GtDaqRecord
 logical flag to produce the L1 GT DAQ readout record More...
 
bool m_produceL1GtEvmRecord
 logical flag to produce the L1 GT EVM readout record More...
 
bool m_produceL1GtObjectMapRecord
 logical flag to produce the L1 GT object map record More...
 
int m_psBstLengthBytes
 length of BST record (in bytes) from parameter set More...
 
bool m_readTechnicalTriggerRecords
 logical flag to read the technical trigger records More...
 
std::vector< int > m_recordLength
 
std::vector< edm::InputTagm_technicalTriggersInputTags
 input tag for technical triggers More...
 
bool m_technicalTriggersUnmasked
 
bool m_technicalTriggersUnprescaled
 
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
 
int m_verbosity
 verbosity level More...
 
bool m_writePsbL1GtDaqRecord
 logical flag to write the PSB content in the L1 GT DAQ record More...
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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: 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.

Description: see header file.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - 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 edm::EDConsumerBase::consumesCollector(), 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, max(), L1GlobalTriggerFDL::setVerbosity(), L1GlobalTriggerGTL::setVerbosity(), and L1GlobalTriggerPSB::setVerbosity().

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

Definition at line 267 of file L1GlobalTrigger.cc.

References m_gtFDL, m_gtGTL, and m_gtPSB.

268 {
269 
270  delete m_gtPSB;
271  delete m_gtGTL;
272  delete m_gtFDL;
273 }
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::EDProducer.

Definition at line 278 of file L1GlobalTrigger.cc.

References BptxQ, edm::EventBase::bunchCrossing(), CastorQ, CenJetQ, 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().

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

bool L1GlobalTrigger::m_algorithmTriggersUnmasked
private

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

Definition at line 230 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

bool L1GlobalTrigger::m_algorithmTriggersUnprescaled
private

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

Definition at line 226 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

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 214 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

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

edm::InputTag L1GlobalTrigger::m_caloGctInputTag
private

input tag for calorimeter collections from GCT

Definition at line 178 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

edm::InputTag L1GlobalTrigger::m_castorInputTag
private

input tag for CASTOR record

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

Referenced by L1GlobalTrigger(), and produce().

L1GlobalTriggerFDL* L1GlobalTrigger::m_gtFDL
private

Definition at line 172 of file L1GlobalTrigger.h.

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

L1GlobalTriggerGTL* L1GlobalTrigger::m_gtGTL
private

Definition at line 171 of file L1GlobalTrigger.h.

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

L1GlobalTriggerPSB* L1GlobalTrigger::m_gtPSB
private

Definition at line 170 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().

bool L1GlobalTrigger::m_isDebugEnabled
private

Definition at line 250 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().

edm::InputTag L1GlobalTrigger::m_muGmtInputTag
private

input tag for muon collection from GMT

Definition at line 175 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().

bool L1GlobalTrigger::m_produceL1GtDaqRecord
private

logical flag to produce the L1 GT DAQ readout record

Definition at line 187 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

bool L1GlobalTrigger::m_produceL1GtEvmRecord
private

logical flag to produce the L1 GT EVM readout record

Definition at line 190 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

bool L1GlobalTrigger::m_produceL1GtObjectMapRecord
private

logical flag to produce the L1 GT object map record

Definition at line 193 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

int L1GlobalTrigger::m_psBstLengthBytes
private

length of BST record (in bytes) from parameter set

Definition at line 221 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

bool L1GlobalTrigger::m_readTechnicalTriggerRecords
private

logical flag to read the technical trigger records

Definition at line 199 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

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 210 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

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

input tag for technical triggers

Definition at line 184 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

bool L1GlobalTrigger::m_technicalTriggersUnmasked
private

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

Definition at line 239 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

bool L1GlobalTrigger::m_technicalTriggersUnprescaled
private

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

Definition at line 235 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

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

int L1GlobalTrigger::m_verbosity
private

verbosity level

Definition at line 249 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().

bool L1GlobalTrigger::m_writePsbL1GtDaqRecord
private

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

Definition at line 196 of file L1GlobalTrigger.h.

Referenced by L1GlobalTrigger(), and produce().