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
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
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
void setP4(const LorentzVector &p4) final
set 4-momentum