24 std::unique_ptr<reco::JetCorrectorImpl>
27 unsigned int level =0;
31 if (levelName ==
"L2Relative")
33 else if (levelName ==
"L3Absolute")
35 else if (levelName ==
"L4EMF")
37 else if (levelName ==
"L5Flavor")
39 else if (levelName ==
"L7Parton")
44 return std::unique_ptr<reco::JetCorrectorImpl>(
new LXXXCorrectorImpl(calculator,level));
61 mCorrector(calculator)
71 throw cms::Exception(
"Invalid jet type") <<
"L4EMFCorrection is applicable to CaloJets only";
93 values.setJetEta(fJet.
eta());
94 values.setJetPt(fJet.
pt());
Jets made from CaloTowers.
LXXXCorrectorImpl(std::shared_ptr< FactorizedJetCorrectorCalculator const > calculator, unsigned int level)
Base class for all types of Jets.
reco::Particle::LorentzVector LorentzVector
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
void setJetEta(float fEta)
LXXXCorrectorImplMaker(edm::ParameterSet const &, edm::ConsumesCollector)
static void fillDescriptions(edm::ConfigurationDescriptions &iDescriptions)
void addDefault(ParameterSetDescription const &psetDescription)
const char * levelName(LogLevel)
std::unique_ptr< reco::JetCorrectorImpl > make(edm::Event const &, edm::EventSetup const &)
virtual double correction(const LorentzVector &fJet) const override
get correction using Jet information only
static void addToDescription(edm::ParameterSetDescription &iDescription)
std::shared_ptr< FactorizedJetCorrectorCalculator const > mCorrector
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
std::shared_ptr< FactorizedJetCorrectorCalculator const > getCalculator(edm::EventSetup const &, std::function< void(std::string const &)> levelCheck)
float emEnergyFraction() const