CMS 3D CMS Logo

Public Member Functions | Private Attributes

JetCorrectionServiceChain Class Reference

#include <JetCorrectionServiceChain.h>

Inheritance diagram for JetCorrectionServiceChain:
edm::ESProducer edm::EventSetupRecordIntervalFinder edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Member Functions

 JetCorrectionServiceChain (const edm::ParameterSet &fParameters)
boost::shared_ptr< JetCorrectorproduce (const JetCorrectionsRecord &)
void setIntervalFor (const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &fIOV)
 ~JetCorrectionServiceChain ()

Private Attributes

boost::shared_ptr< JetCorrectormChainCorrector
std::vector< std::string > mCorrectors

Detailed Description

Definition at line 21 of file JetCorrectionServiceChain.h.


Constructor & Destructor Documentation

JetCorrectionServiceChain::JetCorrectionServiceChain ( const edm::ParameterSet fParameters)

Definition at line 18 of file JetCorrectionServiceChain.cc.

References Exception, spr::find(), edm::ParameterSet::getParameter(), label, mCorrectors, and edm::ESProducer::setWhatProduced().

  : mCorrectors (fParameters.getParameter < vector<string> > ("correctors")),
    mChainCorrector (new ChainedJetCorrector ())
{
  string label(fParameters.getParameter<string>("@module_label"));
  if (std::find(mCorrectors.begin(),mCorrectors.end(),label)!=mCorrectors.end ()) {
    throw cms::Exception("Recursion is not allowed")
      <<"JetCorrectionServiceChain: corrector "<<label<<" is chained to itself";
  }
  setWhatProduced (this, label);
  findingRecord <JetCorrectionsRecord> ();
}
JetCorrectionServiceChain::~JetCorrectionServiceChain ( )

Definition at line 31 of file JetCorrectionServiceChain.cc.

{}

Member Function Documentation

boost::shared_ptr< JetCorrector > JetCorrectionServiceChain::produce ( const JetCorrectionsRecord fRecord)

Definition at line 33 of file JetCorrectionServiceChain.cc.

References ChainedJetCorrector::clear(), edm::eventsetup::EventSetupRecord::get(), patZpeak::handle, i, mChainCorrector, mCorrectors, and ChainedJetCorrector::push_back().

                                                                                                     {
  ChainedJetCorrector* corrector = dynamic_cast<ChainedJetCorrector*> (&*mChainCorrector);
  corrector->clear ();
  for (size_t i = 0; i < mCorrectors.size (); ++i) {
    edm::ESHandle <JetCorrector> handle;
    fRecord.get (mCorrectors[i], handle);
    corrector->push_back (&*handle);
  }
  return mChainCorrector;
}
void JetCorrectionServiceChain::setIntervalFor ( const edm::eventsetup::EventSetupRecordKey ,
const edm::IOVSyncValue ,
edm::ValidityInterval fIOV 
) [virtual]

Member Data Documentation

Definition at line 34 of file JetCorrectionServiceChain.h.

Referenced by produce().

std::vector<std::string> JetCorrectionServiceChain::mCorrectors [private]

Definition at line 33 of file JetCorrectionServiceChain.h.

Referenced by JetCorrectionServiceChain(), and produce().