File indexing completed on 2024-04-06 12:04:45
0001 #ifndef METReco_PFMET_h
0002 #define METReco_PFMET_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "DataFormats/METReco/interface/MET.h"
0016 #include "DataFormats/METReco/interface/SpecificPFMETData.h"
0017 namespace reco {
0018 class PFMET : public MET {
0019 public:
0020 PFMET();
0021 PFMET(const SpecificPFMETData& pf_data_,
0022 double sumet_,
0023 const LorentzVector& fP4,
0024 const Point& fVertex,
0025 bool isWeighted = false)
0026 : MET(sumet_, fP4, fVertex, isWeighted), pf_data(pf_data_) {}
0027
0028 ~PFMET() override {}
0029
0030
0031 double photonEtFraction() const { return pf_data.NeutralEMFraction; }
0032 double photonEt() const { return pf_data.NeutralEMFraction * sumEt(); }
0033
0034 double neutralHadronEtFraction() const { return pf_data.NeutralHadFraction; }
0035 double neutralHadronEt() const { return pf_data.NeutralHadFraction * sumEt(); }
0036
0037 double electronEtFraction() const { return pf_data.ChargedEMFraction; }
0038 double electronEt() const { return pf_data.ChargedEMFraction * sumEt(); }
0039
0040 double chargedHadronEtFraction() const { return pf_data.ChargedHadFraction; }
0041 double chargedHadronEt() const { return pf_data.ChargedHadFraction * sumEt(); }
0042
0043 double muonEtFraction() const { return pf_data.MuonFraction; }
0044 double muonEt() const { return pf_data.MuonFraction * sumEt(); }
0045
0046 double HFHadronEtFraction() const { return pf_data.Type6Fraction; }
0047 double HFHadronEt() const { return pf_data.Type6Fraction * sumEt(); }
0048
0049 double HFEMEtFraction() const { return pf_data.Type7Fraction; }
0050 double HFEMEt() const { return pf_data.Type7Fraction * sumEt(); }
0051
0052
0053 double NeutralEMEtFraction() const { return pf_data.NeutralEMFraction; }
0054 double NeutralEMEt() const { return pf_data.NeutralEMFraction * sumEt(); }
0055 double NeutralHadEtFraction() const { return pf_data.NeutralHadFraction; }
0056 double NeutralHadEt() const { return pf_data.NeutralHadFraction * sumEt(); }
0057 double ChargedEMEtFraction() const { return pf_data.ChargedEMFraction; }
0058 double ChargedEMEt() const { return pf_data.ChargedEMFraction * sumEt(); }
0059 double ChargedHadEtFraction() const { return pf_data.ChargedHadFraction; }
0060 double ChargedHadEt() const { return pf_data.ChargedHadFraction * sumEt(); }
0061 double MuonEtFraction() const { return pf_data.MuonFraction; }
0062 double MuonEt() const { return pf_data.MuonFraction * sumEt(); }
0063 double Type6EtFraction() const { return pf_data.Type6Fraction; }
0064 double Type6Et() const { return pf_data.Type6Fraction * sumEt(); }
0065 double Type7EtFraction() const { return pf_data.Type7Fraction; }
0066 double Type7Et() const { return pf_data.Type7Fraction * sumEt(); }
0067 double NeutralEMFraction() const { return pf_data.NeutralEMFraction; }
0068 double NeutralHadFraction() const { return pf_data.NeutralHadFraction; }
0069 double ChargedEMFraction() const { return pf_data.ChargedEMFraction; }
0070 double ChargedHadFraction() const { return pf_data.ChargedHadFraction; }
0071 double MuonFraction() const { return pf_data.MuonFraction; }
0072
0073
0074 SpecificPFMETData getSpecific() const { return pf_data; }
0075
0076 private:
0077 SpecificPFMETData pf_data;
0078 };
0079 }
0080 #endif