Go to the documentation of this file.
2 #include "Math/GenVector/VectorUtil.h"
12 : tauSrc_(consumes<
trigger::TriggerFilterObjectWithRefs>(iConfig.getParameter<
edm::
InputTag>(
"TauSrc"))),
14 matchingR2_(iConfig.getParameter<double>(
"Min_dR") * iConfig.getParameter<double>(
"Min_dR")) {
15 produces<reco::PFJetCollection>();
32 for (
unsigned int iJet = 0; iJet <
PFJets->size(); iJet++) {
35 for (
unsigned int iTau = 0; iTau <
taus.size(); iTau++) {
42 cleanedPFJets->push_back(myPFJet);
52 ->setComment(
"Input collection of PFTaus that have passed ID and isolation requirements");
53 desc.add<
double>(
"Min_dR", 0.5)->setComment(
"Minimum dR outside of which PFJets will be saved");
55 "This module produces a collection of PFJets that are cross-cleaned with respect to PFTaus passing a HLT "
57 descriptions.
add(
"PFJetsTauOverlapRemoval",
desc);
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
void add(std::string const &label, ParameterSetDescription const &psetDescription)
PFJetsTauOverlapRemoval(const edm::ParameterSet &)
bool isMatched(TrackingRecHit const &hit)
const edm::EDGetTokenT< reco::PFJetCollection > pfJetSrc_
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
void setComment(std::string const &value)
const LorentzVector & p4() const final
four-momentum Lorentz vector
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tauSrc_
~PFJetsTauOverlapRemoval() override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< PFJet > PFJetCollection
collection of PFJet objects
Jets made from PFObjects.
std::vector< reco::PFTauRef > VRpftau