CMS 3D CMS Logo

SiStripDelayESProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiStripDelayESProducer
4 // Class: SiStripDelayESProducer
5 //
13 //
14 // Original Author: M. De Mattia
15 // Created: 26/10/2010
16 //
17 //
18 
19 // system include files
20 #include <memory>
21 
22 // user include files
26 
29 
33 
35 public:
38 
39  std::unique_ptr<SiStripDelay> produce(const SiStripDelayRcd&);
40 
41 private:
42  struct TokenSign {
46  label_{label},
47  sumSign_{sumSign} {}
51  int sumSign_;
52  };
53  std::vector<TokenSign> tokens_;
54 };
55 
57  auto cc = setWhatProduced(this);
58 
59  edm::LogInfo("SiStripDelayESProducer") << "ctor" << std::endl;
60 
61  for (const auto& pset : iConfig.getParameter<std::vector<edm::ParameterSet>>("ListOfRecordToMerge")) {
62  auto recordName = pset.getParameter<std::string>("Record");
63  auto label = pset.getParameter<std::string>("Label");
64 
65  edm::LogInfo("SiStripDelayESProducer")
66  << "[SiStripDelayESProducer::ctor] Going to get data from record " << recordName << " with label " << label;
67 
68  // Is the "recordName" parameter really useful?
69  if (recordName == "SiStripBaseDelayRcd") {
70  tokens_.emplace_back(cc, recordName, label, pset.getParameter<int>("SumSign"));
71  } else {
72  // Would an exception make sense?
73  edm::LogError("SiStripDelayESProducer")
74  << "[SiStripDelayESProducer::ctor] Skipping the requested data for unexisting record " << recordName
75  << " with tag " << label << std::endl;
76  }
77  }
78 }
79 
80 std::unique_ptr<SiStripDelay> SiStripDelayESProducer::produce(const SiStripDelayRcd& iRecord) {
81  edm::LogInfo("SiStripDelayESProducer") << "produce called" << std::endl;
82  auto delay = std::make_unique<SiStripDelay>();
83 
84  for (const auto& tokenSign : tokens_) {
85  const auto& baseDelay = iRecord.get(tokenSign.token_);
86  delay->fillNewDelay(baseDelay, tokenSign.sumSign_, std::make_pair(tokenSign.recordName_, tokenSign.label_));
87  }
88 
89  delay->makeDelay();
90 
91  return delay;
92 }
93 
SiStripDelay.h
SiStripDependentRecords.h
edm::ESInputTag
Definition: ESInputTag.h:87
SiStripDelayESProducer::~SiStripDelayESProducer
~SiStripDelayESProducer() override
Definition: SiStripDelayESProducer.cc:37
MessageLogger.h
edm::ESConsumesCollector
Definition: ESConsumesCollector.h:58
SiStripDelayESProducer::TokenSign::sumSign_
int sumSign_
Definition: SiStripDelayESProducer.cc:51
align_cfg.recordName
recordName
Definition: align_cfg.py:66
edm::LogInfo
Definition: MessageLogger.h:254
SiStripDelayESProducer
Definition: SiStripDelayESProducer.cc:34
edm::ESProducer::setWhatProduced
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:138
ESProducer.h
SiStripDelayESProducer::produce
std::unique_ptr< SiStripDelay > produce(const SiStripDelayRcd &)
Definition: SiStripDelayESProducer.cc:80
SiStripBaseDelay
Definition: SiStripBaseDelay.h:24
SiStripDelayESProducer::TokenSign::TokenSign
TokenSign(edm::ESConsumesCollector &cc, const std::string &recordName, const std::string &label, int sumSign)
Definition: SiStripDelayESProducer.cc:43
edm::eventsetup::DependentRecordImplementation::get
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
Definition: DependentRecordImplementation.h:112
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripConstants.h
edm::ParameterSet
Definition: ParameterSet.h:36
edm::LogError
Definition: MessageLogger.h:183
SiStripDelayESProducer::tokens_
std::vector< TokenSign > tokens_
Definition: SiStripDelayESProducer.cc:53
SiStripDelayESProducer::SiStripDelayESProducer
SiStripDelayESProducer(const edm::ParameterSet &)
Definition: SiStripDelayESProducer.cc:56
SiStripDelayESProducer::TokenSign
Definition: SiStripDelayESProducer.cc:42
cc
edm::ESGetToken< SiStripBaseDelay, SiStripBaseDelayRcd >
SiStripDelayESProducer::TokenSign::label_
std::string label_
Definition: SiStripDelayESProducer.cc:50
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
ModuleFactory.h
SiStripDelayESProducer::TokenSign::recordName_
std::string recordName_
Definition: SiStripDelayESProducer.cc:49
DEFINE_FWK_EVENTSETUP_MODULE
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
SiStripBaseDelayRcd
Definition: SiStripCondDataRecords.h:38
edm::ESProducer
Definition: ESProducer.h:101
phase2TrackerDigitizer_cfi.delay
delay
Definition: phase2TrackerDigitizer_cfi.py:67
ParameterSet.h
SiStripDelayRcd
Definition: SiStripDependentRecords.h:36
label
const char * label
Definition: PFTauDecayModeTools.cc:11
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
SiStripDelayESProducer::TokenSign::token_
edm::ESGetToken< SiStripBaseDelay, SiStripBaseDelayRcd > token_
Definition: SiStripDelayESProducer.cc:48