19 minPt_ (iConfig.getParameter<double>(
"minPt")),
20 CHF_ (iConfig.getParameter<double>(
"CHF")),
21 NHF_ (iConfig.getParameter<double>(
"NHF")),
22 CEF_ (iConfig.getParameter<double>(
"CEF")),
23 NEF_ (iConfig.getParameter<double>(
"NEF")),
24 NCH_ (iConfig.getParameter<int>(
"NCH")),
25 NTOT_ (iConfig.getParameter<int>(
"NTOT")),
26 inputTag_ (iConfig.getParameter<edm::
InputTag>(
"jetsInput")) {
30 produces<reco::PFJetCollection>();
39 desc.
add<
double>(
"minPt", 20.);
40 desc.
add<
double>(
"CHF", -99.);
41 desc.
add<
double>(
"NHF", 99.);
42 desc.
add<
double>(
"CEF", 99.);
43 desc.
add<
double>(
"NEF", 99.);
44 desc.
add<
int>(
"NCH", 0);
45 desc.
add<
int>(
"NTOT", 0);
47 descriptions.
add(
"hltPFJetIDProducer", desc);
59 for (reco::PFJetCollection::const_iterator
j = pfjets->begin();
j != pfjets->end(); ++
j) {
62 double eta =
j->eta();
64 if (!(pt > 0.))
continue;
73 double chf =
j->chargedHadronEnergyFraction();
75 double nhf =
j->neutralHadronEnergyFraction();
76 double cef =
j->chargedEmEnergyFraction();
77 double nef =
j->neutralEmEnergyFraction();
78 int nch =
j->chargedMultiplicity();
79 int ntot =
j->numberOfDaughters();
82 pass = pass && (ntot >
NTOT_);
83 pass = pass && (nef <
NEF_);
84 pass = pass && (nhf <
NHF_);
85 pass = pass && (cef < CEF_ || std::abs(eta) >= 2.4);
90 if (pass) result->push_back(*
j);
bool getByToken(EDGetToken token, Handle< PROD > &result) const
HLTPFJetIDProducer(const edm::ParameterSet &iConfig)
edm::EDGetTokenT< reco::PFJetCollection > m_thePFJetToken
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
double NHF_
neutral hadron fraction
Abs< T >::type abs(const T &t)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
double NEF_
neutral EM fraction
int NTOT_
number of constituents
double CHF_
charged hadron fraction
int NCH_
number of charged constituents
edm::InputTag inputTag_
input PFJet collection
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< PFJet > PFJetCollection
collection of PFJet objects
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup)