25 minVtxNdof_(fConfig.getParameter<int>(
"minVtxNdof"))
28 std::unique_ptr<reco::JetCorrectorImpl>
34 for(
auto const& vertex : *recVtxs) {
35 if ((not vertex.isFake()) and (vertex.ndof() >
minVtxNdof_)) {
43 if ( level !=
"L1Offset") {
44 throw cms::Exception(
"L1OffsetCorrectorImpl")<<
" correction level: "<<level<<
" is not L1Offset";
56 desc.
add<
int>(
"minVtxNdof");
65 corrector_(calculator),
76 <<
"Wrong interface correction(LorentzVector), event required!";
static void fillDescriptions(edm::ConfigurationDescriptions &iDescriptions)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Base class for all types of Jets.
std::unique_ptr< reco::JetCorrectorImpl > make(edm::Event const &, edm::EventSetup const &)
reco::Particle::LorentzVector LorentzVector
std::vector< Vertex > VertexCollection
collection of Vertex objects
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
void setJetEta(float fEta)
virtual double energy() const
energy
void addDefault(ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< reco::VertexCollection > verticesToken_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
virtual double correction(const LorentzVector &fJet) const override
get correction using Jet information only
std::shared_ptr< FactorizedJetCorrectorCalculator const > corrector_
static void addToDescription(edm::ParameterSetDescription &iDescription)
L1OffsetCorrectorImpl(std::shared_ptr< FactorizedJetCorrectorCalculator const > calculator, int npv)
std::shared_ptr< FactorizedJetCorrectorCalculator const > getCalculator(edm::EventSetup const &, std::function< void(std::string const &)> levelCheck)
L1OffsetCorrectorImplMaker(edm::ParameterSet const &, edm::ConsumesCollector)