File indexing completed on 2024-04-06 12:24:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021
0022
0023 #include "FWCore/Framework/interface/ModuleFactory.h"
0024 #include "FWCore/Framework/interface/ESProducer.h"
0025 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0026 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0027
0028 #include "CondFormats/DataRecord/interface/EcalMustacheSCParametersRcd.h"
0029 #include "RecoEcal/EgammaCoreTools/interface/MustacheSCParametersHelper.h"
0030
0031
0032
0033
0034
0035 class EcalMustacheSCParametersESProducer : public edm::ESProducer {
0036 public:
0037 EcalMustacheSCParametersESProducer(const edm::ParameterSet&);
0038 ~EcalMustacheSCParametersESProducer() override;
0039
0040 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0041
0042 using ReturnType = std::unique_ptr<EcalMustacheSCParameters>;
0043
0044 ReturnType produce(const EcalMustacheSCParametersRcd&);
0045
0046 private:
0047 EcalMustacheSCParameters params_;
0048 };
0049
0050
0051
0052
0053 EcalMustacheSCParametersESProducer::EcalMustacheSCParametersESProducer(const edm::ParameterSet& iConfig) {
0054 setWhatProduced(this);
0055
0056 reco::MustacheSCParametersHelper mustacheSCParams(params_, iConfig);
0057 }
0058
0059 EcalMustacheSCParametersESProducer::~EcalMustacheSCParametersESProducer() {}
0060
0061
0062
0063
0064
0065
0066 EcalMustacheSCParametersESProducer::ReturnType EcalMustacheSCParametersESProducer::produce(
0067 const EcalMustacheSCParametersRcd& iRecord) {
0068 auto product = std::make_unique<EcalMustacheSCParameters>(params_);
0069 return product;
0070 }
0071
0072 void EcalMustacheSCParametersESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0073 edm::ParameterSetDescription desc;
0074 desc.add<double>("sqrtLogClustETuning", 1.1);
0075 {
0076 edm::ParameterSetDescription vpsd1;
0077 vpsd1.add<double>("log10EMin");
0078 vpsd1.add<double>("etaMin");
0079 vpsd1.add<std::vector<double>>("pUp");
0080 vpsd1.add<std::vector<double>>("pLow");
0081 vpsd1.add<std::vector<double>>("w0Up");
0082 vpsd1.add<std::vector<double>>("w1Up");
0083 vpsd1.add<std::vector<double>>("w0Low");
0084 vpsd1.add<std::vector<double>>("w1Low");
0085 std::vector<edm::ParameterSet> temp1;
0086 temp1.reserve(1);
0087 {
0088 edm::ParameterSet temp2;
0089 temp2.addParameter<double>("log10EMin", -3.);
0090 temp2.addParameter<double>("etaMin", 0.);
0091 temp2.addParameter<std::vector<double>>("pUp", {-0.107537, 0.590969, -0.076494});
0092 temp2.addParameter<std::vector<double>>("pLow", {-0.0268843, 0.147742, -0.0191235});
0093 temp2.addParameter<std::vector<double>>("w0Up", {-0.00681785, -0.00239516});
0094 temp2.addParameter<std::vector<double>>("w1Up", {0.000699995, -0.00554331});
0095 temp2.addParameter<std::vector<double>>("w0Low", {-0.00681785, -0.00239516});
0096 temp2.addParameter<std::vector<double>>("w1Low", {0.000699995, -0.00554331});
0097 temp1.push_back(temp2);
0098 }
0099 desc.addVPSet("parabolaParameterSets", vpsd1, temp1);
0100 }
0101 descriptions.add("ecalMustacheSCParametersESProducer", desc);
0102 }
0103
0104
0105 DEFINE_FWK_EVENTSETUP_MODULE(EcalMustacheSCParametersESProducer);