File indexing completed on 2023-03-17 10:48:49
0001 #include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
0002 #include "FWCore/Framework/interface/EventSetup.h"
0003 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0004 #include "FWCore/ServiceRegistry/interface/Service.h"
0005 #include "CondFormats/DataRecord/interface/SiStripCondDataRecords.h"
0006 #include "CondFormats/SiStripObjects/interface/SiStripApvSimulationParameters.h"
0007
0008 class SiStripApvSimulationParametersBuilder : public edm::one::EDAnalyzer<> {
0009 public:
0010 explicit SiStripApvSimulationParametersBuilder(const edm::ParameterSet& iConfig) : m_parametersToken(esConsumes()) {}
0011 ~SiStripApvSimulationParametersBuilder() override {}
0012
0013 void analyze(const edm::Event&, const edm::EventSetup&) override;
0014
0015 private:
0016 const edm::ESGetToken<SiStripApvSimulationParameters, SiStripApvSimulationParametersRcd> m_parametersToken;
0017 };
0018
0019 void SiStripApvSimulationParametersBuilder::analyze(const edm::Event&, const edm::EventSetup& evtSetup) {
0020
0021 auto obj = std::make_unique<SiStripApvSimulationParameters>(evtSetup.getData(m_parametersToken));
0022
0023 edm::Service<cond::service::PoolDBOutputService> mydbservice;
0024 if (mydbservice.isAvailable()) {
0025 if (mydbservice->isNewTagRequest("SiStripApvSimulationParametersRcd")) {
0026 mydbservice->createOneIOV<SiStripApvSimulationParameters>(
0027 *obj, mydbservice->beginOfTime(), "SiStripApvSimulationParametersRcd");
0028 } else {
0029 mydbservice->appendOneIOV<SiStripApvSimulationParameters>(
0030 *obj, mydbservice->currentTime(), "SiStripApvSimulationParametersRcd");
0031 }
0032 } else {
0033 edm::LogError("SiStripApvSimulationParametersBuilder") << "Service is unavailable";
0034 }
0035 }
0036
0037 #include "FWCore/PluginManager/interface/ModuleDef.h"
0038 #include "FWCore/Framework/interface/MakerMacros.h"
0039 DEFINE_FWK_MODULE(SiStripApvSimulationParametersBuilder);