2 #include "Math/GenVector/VectorUtil.h"
12 maxInvMassPairOnly_(iConfig.getParameter<bool>(
"maxInvMassPairOnly")),
13 removeMaxInvMassPair_(iConfig.getParameter<bool>(
"removeMaxInvMassPair")) {
14 produces<reco::PFJetCollection>();
28 if (jets->size() > 1) {
29 for (
unsigned i = 0;
i < jets->size();
i++) {
30 for (
unsigned j =
i + 1;
j < jets->size();
j++) {
31 double test = ((*jets)[
i].p4() + (*jets)[
j].p4()).M();
41 addPFJets->push_back((*jets)[iCan]);
42 addPFJets->push_back((*jets)[jCan]);
44 for (
unsigned i = 0;
i < jets->size();
i++) {
45 if (
i != iCan &&
i != jCan)
46 addPFJets->push_back((*jets)[
i]);
57 desc.
add<
bool>(
"maxInvMassPairOnly",
true)->setComment(
"Add only max mjj pair");
58 desc.
add<
bool>(
"removeMaxInvMassPair",
false)->setComment(
"Remove max mjj pair and keep all other jets");
60 "This module produces a collection of PFJets that are cross-cleaned with respect to PFTaus passing a HLT "
62 descriptions.
add(
"PFJetsMaxInvMassModule", desc);
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool removeMaxInvMassPair_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
~PFJetsMaxInvMassModule() override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void setComment(std::string const &value)
PFJetsMaxInvMassModule(const edm::ParameterSet &)
const edm::EDGetTokenT< reco::PFJetCollection > pfJetSrc_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< PFJet > PFJetCollection
collection of PFJet objects
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override