33 , addMuonToJet_(fConfig.getParameter<bool>(
"addMuonToJet"))
37 std::unique_ptr<reco::JetCorrectorImpl>
63 desc.
add<
bool>(
"addMuonToJet");
73 edm::RefProd<std::vector<reco::SoftLeptonTagInfo>>
const& bTagInfoMuon,
74 edm::RefProd<std::vector<reco::SoftLeptonTagInfo>>
const& bTagInfoElec,
76 corrector_(corrector),
77 bTagInfoMuon_(bTagInfoMuon),
78 bTagInfoElec_(bTagInfoElec),
79 addMuonToJet_(addMuonToJet)
91 <<
"Wrong interface correction(LorentzVector), event required!";
100 <<
"Wrong interface correction(reco::Jet), event required!";
147 const vector<reco::SoftLeptonTagInfo>&
tags)
150 for (
unsigned int i=0;
i<tags.size();
i++)
151 if (tags[
i].
jet().get()==refToRawJet.
get())
return i;
const REF & lepton(size_t i) const
value_type const * get() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
TemplatedSoftLeptonTagInfo< TrackBaseRef > SoftLeptonTagInfo
Base class for all types of Jets.
std::shared_ptr< FactorizedJetCorrectorCalculator const > corrector_
void setLepPx(float fLepPx)
reco::Particle::LorentzVector LorentzVector
double px() const
x coordinate of momentum vector
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
void setLepPz(float fLepPz)
void setJetEta(float fEta)
L6SLBCorrectorImplMaker(edm::ParameterSet const &, edm::ConsumesCollector)
virtual double energy() const
energy
void addDefault(ParameterSetDescription const &psetDescription)
L6SLBCorrectorImpl(std::shared_ptr< FactorizedJetCorrectorCalculator const > corrector, edm::RefProd< std::vector< reco::SoftLeptonTagInfo >> const &bTagInfoMuon, edm::RefProd< std::vector< reco::SoftLeptonTagInfo >> const &bTagInfoElec, bool addMuonToJet)
edm::EDGetTokenT< std::vector< reco::SoftLeptonTagInfo > > muonToken_
int getBTagInfoIndex(const edm::RefToBase< reco::Jet > &refToRawJet, const std::vector< reco::SoftLeptonTagInfo > &tags) const
ParameterDescriptionBase * add(U const &iLabel, T const &value)
double pz() const
z coordinate of momentum vector
virtual double correction(const LorentzVector &fJet) const override
apply correction using Jet information only
edm::RefProd< std::vector< reco::SoftLeptonTagInfo > > bTagInfoMuon_
void setAddLepToJet(bool fAddLepToJet)
static void fillDescriptions(edm::ConfigurationDescriptions &iDescriptions)
static void addToDescription(edm::ParameterSetDescription &iDescription)
edm::RefProd< std::vector< reco::SoftLeptonTagInfo > > bTagInfoElec_
void setLepPy(float fLepPy)
virtual double phi() const
momentum azimuthal angle
std::shared_ptr< FactorizedJetCorrectorCalculator const > getCalculator(edm::EventSetup const &, std::function< void(std::string const &)> levelCheck)
edm::EDGetTokenT< std::vector< reco::SoftLeptonTagInfo > > elecToken_
unsigned int leptons(void) const
double py() const
y coordinate of momentum vector
std::unique_ptr< reco::JetCorrectorImpl > make(edm::Event const &, edm::EventSetup const &)