24 verticesToken_(fCollector.consumes<
reco::
VertexCollection>(fConfig.getParameter<
edm::InputTag>(
"vertexCollection"))),
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");
76 <<
"Wrong interface correction(LorentzVector), event required!";
static void fillDescriptions(edm::ConfigurationDescriptions &iDescriptions)
double eta() const final
momentum pseudorapidity
std::shared_ptr< FactorizedJetCorrectorCalculator const > corrector_
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
double pt() const final
transverse momentum
std::vector< Vertex > VertexCollection
collection of Vertex objects
void setJetEta(float fEta)
void addDefault(ParameterSetDescription const &psetDescription)
double energy() const final
energy
edm::EDGetTokenT< reco::VertexCollection > verticesToken_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
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)