CMS 3D CMS Logo

JetCorrectionESSource.h
Go to the documentation of this file.
1 #ifndef JetCorrectionESSource_h
2 #define JetCorrectionESSource_h
3 
4 //
5 // Original Author: Fedor Ratnikov
6 // Created: Dec. 28, 2006 (originally JetCorrectionService, renamed in 2011)
7 //
8 
9 #include <memory>
10 #include <string>
11 #include <iostream>
12 
21 
22 class JetCorrector;
24 
25 namespace edm {
26  namespace eventsetup {
27  class EventSetupRecordKey;
28  }
29 }
30 
31 #define DEFINE_JET_CORRECTION_ESSOURCE(corrector_, name_ ) \
32 typedef JetCorrectionESSource <corrector_> name_; \
33 DEFINE_FWK_EVENTSETUP_SOURCE(name_)
34 
35 template <class Corrector>
38 {
39 private:
45  bool mDebug;
46 
47 public:
48  JetCorrectionESSource(edm::ParameterSet const& fConfig) : mParameterSet(fConfig)
49  {
50  std::string label = fConfig.getParameter<std::string>("@module_label");
51  mLevel = fConfig.getParameter<std::string>("level");
52  mEra = fConfig.getParameter<std::string>("era");
53  mAlgo = fConfig.getParameter<std::string>("algorithm");
54  mSection = fConfig.getParameter<std::string>("section");
55  mDebug = fConfig.getUntrackedParameter<bool>("debug",false);
56 
57  setWhatProduced(this, label);
58  findingRecord<JetCorrectionsRecord>();
59  }
60 
61  ~JetCorrectionESSource() override {}
62 
63  std::unique_ptr<JetCorrector> produce(JetCorrectionsRecord const& iRecord)
64  {
65  std::string fileName("CondFormats/JetMETObjects/data/");
66  if (!mEra.empty())
67  fileName += mEra;
68  if (!mLevel.empty())
69  fileName += "_"+mLevel;
70  if (!mAlgo.empty())
71  fileName += "_"+mAlgo;
72  fileName += ".txt";
73  if (mDebug)
74  std::cout << "Parameter File: " << fileName << std::endl;
75  edm::FileInPath fip(fileName);
76  JetCorrectorParameters *tmpJetCorPar = new JetCorrectorParameters(fip.fullPath(), mSection);
77  return std::make_unique<Corrector>(*tmpJetCorPar, mParameterSet);
78  }
79 
81  {
83  }
84 };
85 #endif
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:82
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
char const * label
static const IOVSyncValue & beginOfTime()
Definition: IOVSyncValue.cc:88
std::unique_ptr< JetCorrector > produce(JetCorrectionsRecord const &iRecord)
JetCorrectionESSource(edm::ParameterSet const &fConfig)
void setIntervalFor(edm::eventsetup::EventSetupRecordKey const &, edm::IOVSyncValue const &, edm::ValidityInterval &fIOV) override
HLT enums.
edm::ParameterSet mParameterSet
std::string fullPath() const
Definition: FileInPath.cc:163