21 : usePt_(iConfig.getParameter<bool>(
"usePt")),
22 excludePFMuons_(iConfig.getParameter<bool>(
"excludePFMuons")),
23 minNJetHt_(iConfig.getParameter<int>(
"minNJetHt")),
24 minNJetMht_(iConfig.getParameter<int>(
"minNJetMht")),
25 minPtJetHt_(iConfig.getParameter<double>(
"minPtJetHt")),
26 minPtJetMht_(iConfig.getParameter<double>(
"minPtJetMht")),
27 maxEtaJetHt_(iConfig.getParameter<double>(
"maxEtaJetHt")),
28 maxEtaJetMht_(iConfig.getParameter<double>(
"maxEtaJetMht")),
29 jetsLabel_(iConfig.getParameter<edm::
InputTag>(
"jetsLabel")),
30 pfCandidatesLabel_(iConfig.getParameter<edm::
InputTag>(
"pfCandidatesLabel")) {
35 produces<reco::METCollection>();
45 desc.
add<
bool>(
"usePt",
false);
46 desc.
add<
bool>(
"excludePFMuons",
false);
47 desc.
add<
int>(
"minNJetHt", 0);
48 desc.
add<
int>(
"minNJetMht", 0);
49 desc.
add<
double>(
"minPtJetHt", 40.);
50 desc.
add<
double>(
"minPtJetMht", 30.);
51 desc.
add<
double>(
"maxEtaJetHt", 3.);
52 desc.
add<
double>(
"maxEtaJetMht", 5.);
55 descriptions.
add(
"hltHtMhtProducer", desc);
73 int nj_ht = 0, nj_mht = 0;
74 double ht = 0., mhx = 0., mhy = 0.;
76 for (
auto const& aJet : *jets) {
77 double const pt =
usePt_ ? aJet.pt() : aJet.et();
78 double const eta = aJet.eta();
79 double const phi = aJet.phi();
80 double const px =
usePt_ ? aJet.px() : aJet.et() *
cos(phi);
81 double const py =
usePt_ ? aJet.py() : aJet.et() *
sin(phi);
96 for (
auto const& aCand : *pfCandidates) {
115 result->push_back(htmht);
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::InputTag pfCandidatesLabel_
edm::EDGetTokenT< reco::PFCandidateCollection > m_thePFCandidateToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
int minNJetHt_
Minimum number of jets passing pt and eta requirements.
Sin< T >::type sin(const T &t)
double minPtJetHt_
Minimum pt requirement for jets.
std::vector< reco::MET > METCollection
collection of MET objects
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
double maxEtaJetHt_
Maximum (abs) eta requirement for jets.
math::XYZTLorentzVector LorentzVector
Lorentz vector.
bool usePt_
Use pt; otherwise, use et.
~HLTHtMhtProducer() override
edm::EDGetTokenT< reco::CandidateView > m_theJetToken
math::XYZPoint Point
point in the space
HLTHtMhtProducer(const edm::ParameterSet &iConfig)
edm::InputTag jetsLabel_
Input jet, PFCandidate collections.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)