Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:44

0001 /****************************************************************************

0002 * Author: 

0003 *  Mateusz Kocot (mateuszkocot99@gmail.com)

0004 ****************************************************************************/
0005 
0006 #include "FWCore/Framework/interface/Frameworkfwd.h"
0007 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0008 #include "FWCore/Framework/interface/Event.h"
0009 #include "FWCore/Framework/interface/EventSetup.h"
0010 #include "FWCore/Framework/interface/ESHandle.h"
0011 #include "FWCore/Framework/interface/MakerMacros.h"
0012 
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "FWCore/ServiceRegistry/interface/Service.h"
0015 
0016 #include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
0017 
0018 #include "CondFormats/PPSObjects/interface/PPSAlignmentConfiguration.h"
0019 #include "CondFormats/DataRecord/interface/PPSAlignmentConfigurationRcd.h"
0020 
0021 #include <memory>
0022 
0023 class WritePPSAlignmentConfiguration : public edm::one::EDAnalyzer<> {
0024 public:
0025   explicit WritePPSAlignmentConfiguration(const edm::ParameterSet &);
0026 
0027 private:
0028   void analyze(const edm::Event &, const edm::EventSetup &) override;
0029 
0030   edm::ESGetToken<PPSAlignmentConfiguration, PPSAlignmentConfigurationRcd> esToken_;
0031 };
0032 
0033 WritePPSAlignmentConfiguration::WritePPSAlignmentConfiguration(const edm::ParameterSet &iConfig)
0034     : esToken_(esConsumes<PPSAlignmentConfiguration, PPSAlignmentConfigurationRcd>(
0035           edm::ESInputTag("", iConfig.getParameter<std::string>("label")))) {}
0036 
0037 void WritePPSAlignmentConfiguration::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) {
0038   // get the data

0039   const auto &ppsAlignmentConfiguration = iSetup.getData(esToken_);
0040 
0041   // store the data in a DB object

0042   edm::Service<cond::service::PoolDBOutputService> poolDbService;
0043   if (poolDbService.isAvailable()) {
0044     poolDbService->writeOneIOV(ppsAlignmentConfiguration, poolDbService->currentTime(), "PPSAlignmentConfigurationRcd");
0045   } else {
0046     throw cms::Exception("WritePPSAlignmentConfiguration") << "PoolDBService required.";
0047   }
0048 }
0049 
0050 //define this as a plug-in

0051 DEFINE_FWK_MODULE(WritePPSAlignmentConfiguration);