Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:15

0001 #ifndef JetMETCorrections_Algorithms_JetCorrectorImplMakerBase_h
0002 #define JetMETCorrections_Algorithms_JetCorrectorImplMakerBase_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     JetMETCorrections/Algorithms
0006 // Class  :     JetCorrectorImplMakerBase
0007 //
0008 /**\class JetCorrectorImplMakerBase JetCorrectorImplMakerBase.h "JetMETCorrections/Algorithms/interface/JetCorrectorImplMakerBase.h"
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Christopher Jones
0018 //         Created:  Fri, 29 Aug 2014 19:52:21 GMT
0019 //
0020 
0021 // system include files
0022 #include <string>
0023 #include <memory>
0024 #include <functional>
0025 
0026 // user include files
0027 #include "CondFormats/JetMETObjects/interface/FactorizedJetCorrectorCalculator.h"
0028 #include "FWCore/Framework/interface/ConsumesCollector.h"
0029 #include "FWCore/Framework/interface/FrameworkfwdMostUsed.h"
0030 
0031 // forward declarations
0032 class JetCorrectorParametersCollection;
0033 class JetCorrectionsRecord;
0034 
0035 class JetCorrectorImplMakerBase {
0036 public:
0037   JetCorrectorImplMakerBase(edm::ParameterSet const&, edm::ConsumesCollector iC);
0038   JetCorrectorImplMakerBase(const JetCorrectorImplMakerBase&) = delete;                   // stop default
0039   const JetCorrectorImplMakerBase& operator=(const JetCorrectorImplMakerBase&) = delete;  // stop default
0040   virtual ~JetCorrectorImplMakerBase();
0041 
0042   // ---------- const member functions ---------------------
0043 
0044   // ---------- static member functions --------------------
0045   static void addToDescription(edm::ParameterSetDescription& iDescription);
0046 
0047   // ---------- member functions ---------------------------
0048 
0049 protected:
0050   std::shared_ptr<FactorizedJetCorrectorCalculator const> getCalculator(
0051       edm::EventSetup const&, std::function<void(std::string const&)> levelCheck);
0052 
0053 private:
0054   // ---------- member data --------------------------------
0055   std::string level_;
0056   edm::ESGetToken<JetCorrectorParametersCollection, JetCorrectionsRecord> algoToken_;
0057   std::shared_ptr<FactorizedJetCorrectorCalculator const> corrector_;
0058   unsigned long long cacheId_;
0059 };
0060 
0061 #endif