00001 #ifndef METReco_GenMET_h 00002 #define METReco_GenMET_h 00003 00016 #include "DataFormats/METReco/interface/SpecificGenMETData.h" 00017 #include "DataFormats/METReco/interface/MET.h" 00018 00019 namespace reco 00020 { 00021 class GenMET : public MET 00022 { 00023 public: 00024 /* Constructors*/ 00025 GenMET() ; 00026 GenMET( SpecificGenMETData gen_data_, double sumet_, 00027 const LorentzVector& fP4, const Point& fVertex ) 00028 : MET( sumet_, fP4, fVertex ), gen_data( gen_data_ ) {} 00029 /* Default destructor*/ 00030 virtual ~GenMET() {} 00031 00032 //Get Neutral EM Et Fraction 00033 double NeutralEMEtFraction() const { return gen_data.NeutralEMEtFraction ; } 00034 00035 //Get Neutral EM Et 00036 double NeutralEMEt () const{ return gen_data.NeutralEMEtFraction * sumEt(); } 00037 00038 //Get Charged EM Et Fraction 00039 double ChargedEMEtFraction()const { return gen_data.ChargedEMEtFraction ; } 00040 00041 //Get Charged EM Et 00042 double ChargedEMEt() const{return gen_data.ChargedEMEtFraction * sumEt() ; } 00043 00044 //Get Neutral Had Et Fraction 00045 double NeutralHadEtFraction() const{ return gen_data.NeutralHadEtFraction ; } 00046 00047 //Get Neutral Had Et 00048 double NeutralHadEt() const{ return gen_data.NeutralHadEtFraction * sumEt(); } 00049 00050 //Get Charged Had Et Fraction 00051 double ChargedHadEtFraction()const { return gen_data.ChargedHadEtFraction ; } 00052 00053 //Get Charged Had Et 00054 double ChargedHadEt()const { return gen_data.ChargedHadEtFraction * sumEt() ; } 00055 00056 //Get Muon Et Fraction 00057 double MuonEtFraction()const { return gen_data.MuonEtFraction ; } 00058 00059 //Get Muon Et 00060 double MuonEt() const{ return gen_data.MuonEtFraction * sumEt() ; } 00061 00062 //Get Invisible Et Fraction 00063 double InvisibleEtFraction() const{ return gen_data.InvisibleEtFraction ; } 00064 00065 //Get Invisible Et 00066 double InvisibleEt()const { return gen_data.InvisibleEtFraction * sumEt() ; } 00067 00068 00069 // Old Accessors (to be removed as soon as possible) 00071 double emEnergy() const {return gen_data.m_EmEnergy;}; 00073 double hadEnergy() const {return gen_data.m_HadEnergy;}; 00075 double invisibleEnergy() const {return gen_data.m_InvisibleEnergy;}; 00077 double auxiliaryEnergy() const {return gen_data.m_AuxiliaryEnergy;}; 00078 // block accessors 00079 00080 00081 // block accessors 00082 private: 00083 virtual bool overlap( const Candidate & ) const; 00084 // Data members 00085 //Variables specific to to the GenMET class 00086 SpecificGenMETData gen_data; 00087 }; 00088 } 00089 #endif