42 produces<L1GlobalTriggerRecord>();
47 LogDebug(
"L1GlobalTriggerRecordProducer").log([&parSet](
auto&
l) {
48 l<<
"\nInput tag for L1 GT DAQ record: " 81 if (!gtReadoutRecord.
isValid()) {
83 LogDebug(
"L1GlobalTriggerRecordProducer").log([
this](
auto&
l) {
84 l <<
"\n\n Error: no L1GlobalTriggerReadoutRecord found with input tag ";
88 <<
"\n Returning empty L1GlobalTriggerRecord.\n\n";
96 int physicsDaqPartition = 0;
97 bool gtDecision =
static_cast<bool> (gtFinalOR & (1 << physicsDaqPartition));
105 unsigned long long l1GtTmAlgoCacheID =
121 unsigned long long l1GtTmTechCacheID =
138 gtRecord->setDecisionWordBeforeMask(algoDecisionWord);
139 gtRecord->setTechnicalTriggerWordBeforeMask(techDecisionWord);
149 for (std::vector<bool>::iterator
150 itBit = algoDecisionWord.begin(); itBit != algoDecisionWord.end(); ++itBit) {
161 if (triggerMaskAlgoTrigBit) {
174 for (std::vector<bool>::iterator
175 itBit = techDecisionWord.begin(); itBit != techDecisionWord.end(); ++itBit) {
186 if (triggerMaskTechTrigBit) {
200 gtRecord->setDecision(gtDecision);
201 gtRecord->setDecisionWord(algoDecisionWord);
202 gtRecord->setTechnicalTriggerWord(techDecisionWord);
205 unsigned int pfIndexTech =
206 static_cast<unsigned int> ((gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexTech());
207 unsigned int pfIndexAlgo =
208 static_cast<unsigned int> ((gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexAlgo());
210 gtRecord->setGtPrescaleFactorIndexTech(pfIndexTech);
211 gtRecord->setGtPrescaleFactorIndexAlgo(pfIndexAlgo);
214 std::ostringstream myCoutStream;
215 gtRecord->print(myCoutStream);
216 LogTrace(
"L1GlobalTriggerRecordProducer")
217 <<
"\n The following L1 GT record was produced.\n" 218 << myCoutStream.str() <<
"\n"
T getParameter(std::string const &) const
const L1GtTriggerMask * m_l1GtTmTech
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_l1GtReadoutRecordTag
InputTag for the L1 Global Trigger DAQ readout record.
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< unsigned int > m_triggerMaskAlgoTrig
unsigned long long m_l1GtTmAlgoCacheID
unsigned long long m_l1GtTmTechCacheID
const cms_uint16_t finalOR(int bxInEventValue) const
~L1GlobalTriggerRecordProducer() override
destructor
const L1GtTriggerMask * m_l1GtTmAlgo
cached stuff
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
std::vector< bool > DecisionWord
typedefs
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
unsigned short cms_uint16_t
std::vector< unsigned int > m_triggerMaskTechTrig
const DecisionWord & decisionWord(int bxInEventValue) const
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
char const * productInstance
T const * product() const
L1GlobalTriggerRecordProducer(const edm::ParameterSet &)
constructor(s)