File indexing completed on 2024-04-06 12:03:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0024
0025 #include "CondTools/L1Trigger/plugins/L1TriggerKeyOnlineProd.h"
0026
0027 #include "CondTools/L1Trigger/interface/Exception.h"
0028
0029 #include "FWCore/Framework/interface/EventSetup.h"
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046 L1TriggerKeyOnlineProd::L1TriggerKeyOnlineProd(const edm::ParameterSet& iConfig)
0047 : m_subsystemLabels(iConfig.getParameter<std::vector<std::string> >("subsystemLabels")) {
0048
0049
0050 auto cc = setWhatProduced(this);
0051
0052
0053 l1TriggerKeyToken_ = cc.consumes(edm::ESInputTag("", "SubsystemKeysOnly"));
0054 for (const auto& mlabel : m_subsystemLabels) {
0055 l1TriggerKeyTokenVec_.emplace_back(cc.consumes(edm::ESInputTag("", mlabel)));
0056 }
0057 }
0058
0059 L1TriggerKeyOnlineProd::~L1TriggerKeyOnlineProd() {
0060
0061
0062 }
0063
0064
0065
0066
0067
0068
0069 L1TriggerKeyOnlineProd::ReturnType L1TriggerKeyOnlineProd::produce(const L1TriggerKeyRcd& iRecord) {
0070
0071 edm::ESHandle<L1TriggerKey> subsystemKeys;
0072 try {
0073 subsystemKeys = iRecord.getHandle(l1TriggerKeyToken_);
0074 } catch (l1t::DataAlreadyPresentException& ex) {
0075 throw ex;
0076 }
0077
0078 std::unique_ptr<L1TriggerKey> pL1TriggerKey = std::make_unique<L1TriggerKey>(*subsystemKeys);
0079
0080
0081 for (const auto& l1token : l1TriggerKeyTokenVec_) {
0082 edm::ESHandle<L1TriggerKey> objectKeys;
0083 try {
0084 objectKeys = iRecord.getHandle(l1token);
0085 } catch (l1t::DataAlreadyPresentException& ex) {
0086 throw ex;
0087 }
0088
0089 pL1TriggerKey->add(objectKeys->recordToKeyMap());
0090 }
0091
0092 return pL1TriggerKey;
0093 }
0094
0095
0096