File indexing completed on 2024-04-06 12:02:11
0001
0002
0003
0004
0005
0006
0007
0008 #include <memory>
0009
0010 #include "FWCore/Framework/interface/Frameworkfwd.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012
0013 #include "FWCore/Framework/interface/ModuleFactory.h"
0014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0015 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0016 #include "FWCore/Framework/interface/ESProducts.h"
0017
0018 #include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h"
0019
0020 #include "CondCore/CondDB/interface/Serialization.h"
0021 #include "CondFormats/External/interface/EcalDetID.h"
0022 #include "CondFormats/External/interface/SMatrix.h"
0023 #include "CondFormats/External/interface/Timestamp.h"
0024
0025 #include "CondFormats/DataRecord/interface/EcalTimeBiasCorrectionsRcd.h"
0026
0027 #include "FWCore/ServiceRegistry/interface/Service.h"
0028 #include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
0029
0030 class EcalTimeBiasCorrectionsFillInitial : public edm::one::EDAnalyzer<> {
0031 public:
0032 explicit EcalTimeBiasCorrectionsFillInitial(const edm::ParameterSet &);
0033 ~EcalTimeBiasCorrectionsFillInitial();
0034
0035 void analyze(const edm::Event &, const edm::EventSetup &);
0036 void endJob();
0037
0038 private:
0039 std::vector<double> EBtimeCorrAmplitudeBins_;
0040 std::vector<double> EBtimeCorrShiftBins_;
0041 std::vector<double> EEtimeCorrAmplitudeBins_;
0042 std::vector<double> EEtimeCorrShiftBins_;
0043
0044 EcalTimeBiasCorrections bias_;
0045 };
0046
0047 EcalTimeBiasCorrectionsFillInitial::EcalTimeBiasCorrectionsFillInitial(const edm::ParameterSet &ps) {
0048 EBtimeCorrAmplitudeBins_ = ps.getParameter<std::vector<double> >("EBtimeCorrAmplitudeBins");
0049 EBtimeCorrShiftBins_ = ps.getParameter<std::vector<double> >("EBtimeCorrShiftBins");
0050 EEtimeCorrAmplitudeBins_ = ps.getParameter<std::vector<double> >("EEtimeCorrAmplitudeBins");
0051 EEtimeCorrShiftBins_ = ps.getParameter<std::vector<double> >("EEtimeCorrShiftBins");
0052
0053 if (EBtimeCorrAmplitudeBins_.size() != EBtimeCorrShiftBins_.size()) {
0054 edm::LogError("EcalRecHitError") << "Size of EBtimeCorrAmplitudeBins "
0055 "different from EBtimeCorrShiftBins.";
0056 }
0057
0058 if (EEtimeCorrAmplitudeBins_.size() != EEtimeCorrShiftBins_.size()) {
0059 edm::LogError("EcalRecHitError") << "Size of EEtimeCorrAmplitudeBins "
0060 "different from EEtimeCorrShiftBins.";
0061 }
0062
0063 copy(EBtimeCorrAmplitudeBins_.begin(), EBtimeCorrAmplitudeBins_.end(), back_inserter(bias_.EBTimeCorrAmplitudeBins));
0064
0065 copy(EBtimeCorrShiftBins_.begin(), EBtimeCorrShiftBins_.end(), back_inserter(bias_.EBTimeCorrShiftBins));
0066
0067 copy(EEtimeCorrAmplitudeBins_.begin(), EEtimeCorrAmplitudeBins_.end(), back_inserter(bias_.EETimeCorrAmplitudeBins));
0068
0069 copy(EEtimeCorrShiftBins_.begin(), EEtimeCorrShiftBins_.end(), back_inserter(bias_.EETimeCorrShiftBins));
0070 }
0071
0072 EcalTimeBiasCorrectionsFillInitial::~EcalTimeBiasCorrectionsFillInitial() {}
0073
0074 void EcalTimeBiasCorrectionsFillInitial::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) {}
0075 void EcalTimeBiasCorrectionsFillInitial::endJob() {
0076 edm::Service<cond::service::PoolDBOutputService> poolDbService;
0077 if (poolDbService.isAvailable()) {
0078 poolDbService->writeOneIOV(bias_, poolDbService->beginOfTime(), "EcalTimeBiasCorrectionsRcd");
0079 }
0080 }
0081
0082 #include "FWCore/Framework/interface/MakerMacros.h"
0083 DEFINE_FWK_MODULE(EcalTimeBiasCorrectionsFillInitial);