47 : tauSrc_(consumes(iConfig.getParameter<
edm::
InputTag>(
"tauSrc"))),
48 pfJetSrc_(consumes(iConfig.getParameter<
edm::
InputTag>(
"pfJetSrc"))),
49 extraTauPtCut_(iConfig.getParameter<double>(
"extraTauPtCut")),
50 mjjMin_(iConfig.getParameter<double>(
"mjjMin")),
51 m2jjMin_(mjjMin_ * mjjMin_),
52 dRmin_(iConfig.getParameter<double>(
"dRmin")),
53 dRmin2_(dRmin_ * dRmin_) {
56 <<
"invalid value for parameter \"dRmin\" (must be > 0): " <<
dRmin_;
58 produces<reco::PFJetCollection>();
66 auto cleanedPFJets = std::make_unique<reco::PFJetCollection>();
67 cleanedPFJets->reserve(
pfJets.size());
74 for (
unsigned int iJet1 = 0; iJet1 <
pfJets.size(); iJet1++) {
75 for (
unsigned int iJet2 = iJet1 + 1; iJet2 <
pfJets.size(); iJet2++) {
76 bool correctComb =
false;
83 for (
unsigned int iTau1 = 0; iTau1 <
taus.size(); iTau1++) {
89 if (
taus.size() == 1) {
95 for (
unsigned int iTau2 = iTau1 + 1; iTau2 <
taus.size(); iTau2++) {
119 cleanedPFJets->emplace_back(
pfJets[
i]);
130 ->setComment(
"Input collection of PFTaus that have passed ID and isolation requirements");
131 desc.add<
double>(
"extraTauPtCut", 45)->setComment(
"In case of asymmetric tau pt cuts");
132 desc.add<
double>(
"mjjMin", 500)->setComment(
"VBF dijet mass condition");
133 desc.add<
double>(
"dRmin", 0.5)->setComment(
"Minimum dR between PFJets and filtered PFTaus");
135 "This module produces a collection of PFJets that are cross-cleaned with respect to PFTaus passing a HLT "
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
GreaterByPt< reco::PFJet > pTComparator_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tauSrc_
Jets made from PFObjects.
const LorentzVector & p4() const final
four-momentum Lorentz vector
#define DEFINE_FWK_MODULE(type)
void setComment(std::string const &value)
const double extraTauPtCut_
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
const edm::EDGetTokenT< reco::PFJetCollection > pfJetSrc_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
HLTDiPFJetPlusTausCandidatePFJetProducer(const edm::ParameterSet &)
std::vector< reco::PFTauRef > VRpftau