8 ps.getParameter<
edm::InputTag>(
"pfMETCollection"))),
10 ps.getParameter<
edm::InputTag>(
"muonCollection"))) {
11 produces<reco::PFMETCollection>();
24 <<
"invalid collection for pfMet" << std::endl;
29 <<
"invalid collection for muons" << std::endl;
34 double pfMetNoMuPx = thePFMetNoMu.
px();
35 double pfMetNoMuPy = thePFMetNoMu.
py();
37 double muPx(0.), muPy(0.);
39 for (
auto muon = muons->begin();
muon != muons->end(); ++
muon) {
40 if (
muon->isPFMuon()) {
49 hypot(pfMetNoMuPx, pfMetNoMuPy));
51 thePFMetNoMu.
setP4(pfMetNoMuP4);
55 thePFMetNoMu.
p4(), thePFMetNoMu.
vertex());
SpecificPFMETData getSpecific() const
double px() const final
x coordinate of momentum vector
void produce(edm::Event &event, const edm::EventSetup &eventSetup)
std::vector< Muon > MuonCollection
collection of Muon objects
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
#define DEFINE_FWK_MODULE(type)
const Point & vertex() const override
vertex position (overwritten by PF...)
const LorentzVector & p4() const final
four-momentum Lorentz vector
T const * product() const
double py() const final
y coordinate of momentum vector
const edm::EDGetTokenT< reco::MuonCollection > theMuonCollection_
const edm::EDGetTokenT< reco::PFMETCollection > thePFMETCollection_
std::vector< reco::PFMET > PFMETCollection
collection of PFMET objects
L1TPFMetNoMuProducer(const edm::ParameterSet &ps)
void setP4(const LorentzVector &p4) final
set 4-momentum