19 double NeutralEMEt = 0.0;
20 double NeutralHadEt = 0.0;
21 double ChargedEMEt = 0.0;
22 double ChargedHadEt = 0.0;
27 for (
auto const& pfCandPtr : pfCands.
ptrs()) {
60 const double Et_total = NeutralEMEt + NeutralHadEt + ChargedEMEt + ChargedHadEt + MuonEt + type6Et + type7Et;
62 if (Et_total != 0.0) {
63 specific.NeutralEMFraction = NeutralEMEt / Et_total;
64 specific.NeutralHadFraction = NeutralHadEt / Et_total;
65 specific.ChargedEMFraction = ChargedEMEt / Et_total;
66 specific.ChargedHadFraction = ChargedHadEt / Et_total;
67 specific.MuonFraction = MuonEt / Et_total;
68 specific.Type6Fraction = type6Et / Et_total;
69 specific.Type7Fraction = type7Et / Et_total;
SpecificPFMETData run(const edm::View< reco::Candidate > &pfCands, edm::ValueMap< float > const *weights=nullptr)
virtual double energy() const =0
energy
std::vector< Ptr< value_type > > const & ptrs() const
T get() const
get a component
Sin< T >::type sin(const T &t)
virtual double theta() const =0
momentum polar angle
Abs< T >::type abs(const T &t)
MET made from Particle Flow Candidates.
virtual int pdgId() const =0
PDG identifier.
Geom::Theta< T > theta() const