CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DataFormats/METReco/interface/GenMET.h

Go to the documentation of this file.
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