diff --git a/L1Trigger/L1TGlobal/plugins/L1TGlobalProducer.cc b/L1Trigger/L1TGlobal/plugins/L1TGlobalProducer.cc index 40d4d8af5db07..6e37dcecf9f81 100644 --- a/L1Trigger/L1TGlobal/plugins/L1TGlobalProducer.cc +++ b/L1Trigger/L1TGlobal/plugins/L1TGlobalProducer.cc @@ -397,7 +397,7 @@ void L1TGlobalProducer::produce(edm::Event& iEvent, const edm::EventSetup& evSet } else{ // Set Prescale factors to initial dummy values - m_prescaleSet = 1; + m_prescaleSet = 0; m_prescaleFactorsAlgoTrig = &m_initialPrescaleFactorsAlgoTrig; m_triggerMaskAlgoTrig = &m_initialTriggerMaskAlgoTrig; m_triggerMaskVetoAlgoTrig = &m_initialTriggerMaskVetoAlgoTrig; @@ -520,22 +520,18 @@ void L1TGlobalProducer::produce(edm::Event& iEvent, const edm::EventSetup& evSet } LogDebug("L1TGlobalProducer") << "HW BxCross " << bxCrossHw << std::endl; - // get the prescale factor from the configuration for now - // Prescale set indexed by zero internally, but externally indexed by 1 - unsigned int pfAlgoSetIndex = m_prescaleSet-1; - - // Require that prescale set be positive - if( m_prescaleSet<=0 ) pfAlgoSetIndex = 0; + // prescale set index counts from zero + unsigned int pfAlgoSetIndex = m_prescaleSet; - if( pfAlgoSetIndex > (*m_prescaleFactorsAlgoTrig).size()-1 ){ - LogTrace("L1TGlobalProducer") + auto max = (*m_prescaleFactorsAlgoTrig).size()-1; + if (pfAlgoSetIndex > max) { + edm::LogWarning("L1TGlobalProducer") << "\nAttempting to access prescale algo set: " << m_prescaleSet - << "\nNumber of prescale algo sets available: " << (*m_prescaleFactorsAlgoTrig).size() + << "\nNumber of prescale algo sets available: 0.." << max << "Setting former to latter." << std::endl; - - pfAlgoSetIndex = (*m_prescaleFactorsAlgoTrig).size()-1; + pfAlgoSetIndex = max; } const std::vector& prescaleFactorsAlgoTrig = (*m_prescaleFactorsAlgoTrig).at(pfAlgoSetIndex);