Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Package:    RecoEcal/EgammaCoreTools
0004 // Class:      EcalMustacheSCParametersESProducer
0005 //
0006 /**\class EcalMustacheSCParametersESProducer
0007 
0008  Description: Produces the mustache superclusedr parameters
0009 
0010  Implementation:
0011      [Notes on implementation]
0012 */
0013 //
0014 // Original Author:  Thomas Reis <Thomas.Reis@stfc.ac.uk>
0015 //         Created:  Wed, 21 Oct 2020 15:05:26 GMT
0016 //
0017 //
0018 
0019 // system include files
0020 #include <memory>
0021 
0022 // user include files
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 // class declaration
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 // constructors and destructor
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 // member functions
0063 //
0064 
0065 // ------------ method called to produce the data  ------------
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 //define this as a plug-in
0105 DEFINE_FWK_EVENTSETUP_MODULE(EcalMustacheSCParametersESProducer);