File indexing completed on 2024-04-06 12:22:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include "L1TriggerConfig/L1GtConfigProducers/interface/L1GtParametersTrivialProducer.h"
0017
0018
0019 #include <memory>
0020
0021
0022
0023 #include "FWCore/Framework/interface/ESProducer.h"
0024
0025 #include "FWCore/Framework/interface/ModuleFactory.h"
0026
0027 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0028 #include "FWCore/MessageLogger/interface/MessageDrop.h"
0029
0030 #include "CondFormats/DataRecord/interface/L1GtParametersRcd.h"
0031 #include <cstdint>
0032
0033
0034
0035
0036 L1GtParametersTrivialProducer::L1GtParametersTrivialProducer(const edm::ParameterSet& parSet) {
0037
0038 setWhatProduced(this, &L1GtParametersTrivialProducer::produceGtParameters);
0039
0040
0041
0042
0043
0044 m_totalBxInEvent = parSet.getParameter<int>("TotalBxInEvent");
0045
0046 if (m_totalBxInEvent > 0) {
0047 if ((m_totalBxInEvent % 2) == 0) {
0048 m_totalBxInEvent = m_totalBxInEvent - 1;
0049
0050 edm::LogInfo("L1GtParametersTrivialProducer")
0051 << "\nWARNING: Number of bunch crossing in event rounded to: " << m_totalBxInEvent
0052 << "\n The number must be an odd number!\n"
0053 << std::endl;
0054 }
0055 } else {
0056 edm::LogInfo("L1GtParametersTrivialProducer")
0057 << "\nWARNING: Number of bunch crossing in event must be a positive number!"
0058 << "\n Requested value was: " << m_totalBxInEvent << "\n Reset to 1 (L1Accept bunch only).\n"
0059 << std::endl;
0060
0061 m_totalBxInEvent = 1;
0062 }
0063
0064 m_daqActiveBoards = static_cast<uint16_t>(parSet.getParameter<unsigned int>("DaqActiveBoards"));
0065
0066 m_evmActiveBoards = static_cast<uint16_t>(parSet.getParameter<unsigned int>("EvmActiveBoards"));
0067
0068 m_daqNrBxBoard = parSet.getParameter<std::vector<int> >("DaqNrBxBoard");
0069
0070 m_evmNrBxBoard = parSet.getParameter<std::vector<int> >("EvmNrBxBoard");
0071
0072 m_bstLengthBytes = parSet.getParameter<unsigned int>("BstLengthBytes");
0073 }
0074
0075
0076 L1GtParametersTrivialProducer::~L1GtParametersTrivialProducer() {
0077
0078 }
0079
0080
0081
0082
0083 std::unique_ptr<L1GtParameters> L1GtParametersTrivialProducer::produceGtParameters(const L1GtParametersRcd& iRecord) {
0084 auto pL1GtParameters = std::make_unique<L1GtParameters>();
0085
0086
0087 pL1GtParameters->setGtTotalBxInEvent(m_totalBxInEvent);
0088
0089
0090 pL1GtParameters->setGtDaqActiveBoards(m_daqActiveBoards);
0091
0092
0093 pL1GtParameters->setGtEvmActiveBoards(m_evmActiveBoards);
0094
0095
0096 pL1GtParameters->setGtDaqNrBxBoard(m_daqNrBxBoard);
0097
0098
0099 pL1GtParameters->setGtEvmNrBxBoard(m_evmNrBxBoard);
0100
0101
0102 pL1GtParameters->setGtBstLengthBytes(m_bstLengthBytes);
0103
0104 return pL1GtParameters;
0105 }