CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
JetCorrectionESChain.cc
Go to the documentation of this file.
1 //
2 // Original Author: Fedor Ratnikov
3 // Created: Dec. 28, 2006
4 //
5 //
6 
13 
14 #include <algorithm>
15 
17  : mCorrectors (fParameters.getParameter < std::vector<std::string> > ("correctors")),
18  mChainCorrector (new ChainedJetCorrector ())
19 {
20  std::string label(fParameters.getParameter<std::string>("@module_label"));
21  if (std::find(mCorrectors.begin(), mCorrectors.end(), label) != mCorrectors.end()) {
22  throw cms::Exception("Recursion is not allowed")
23  << "JetCorrectionESChain: corrector " << label << " is chained to itself";
24  }
25  setWhatProduced(this, label);
26 }
27 
29 
30 boost::shared_ptr<JetCorrector> JetCorrectionESChain::produce(JetCorrectionsRecord const& fRecord) {
32  corrector->clear ();
33  for (size_t i = 0; i < mCorrectors.size(); ++i) {
35  fRecord.get(mCorrectors[i], handle);
36  corrector->push_back(&*handle);
37  }
38  return mChainCorrector;
39 }
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
void push_back(const JetCorrector *fCorrector)
tuple corrector
Definition: mvaPFMET_cff.py:86
void get(HolderT &iHolder) const
std::vector< std::string > mCorrectors
tuple handle
Definition: patZpeak.py:22
boost::shared_ptr< JetCorrector > mChainCorrector
boost::shared_ptr< JetCorrector > produce(JetCorrectionsRecord const &)
JetCorrectionESChain(edm::ParameterSet const &fParameters)