CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 "boost/shared_ptr.hpp"
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:
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 
62 
63  boost::shared_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);
77  boost::shared_ptr<JetCorrector> mCorrector(new Corrector(*tmpJetCorPar, mParameterSet));
78  return mCorrector;
79  }
80 
82  {
84  }
85 };
86 #endif
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
boost::shared_ptr< JetCorrector > produce(JetCorrectionsRecord const &iRecord)
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:97
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
static const IOVSyncValue & beginOfTime()
void setIntervalFor(edm::eventsetup::EventSetupRecordKey const &, edm::IOVSyncValue const &, edm::ValidityInterval &fIOV)
JetCorrectionESSource(edm::ParameterSet const &fConfig)
edm::ParameterSet mParameterSet
tuple cout
Definition: gather_cfg.py:121
std::string fullPath() const
Definition: FileInPath.cc:165