00001 #ifndef DataFormats_PatCandidates_MHT_h 00002 #define DataFormats_PatCandidates_MHT_h 00003 00004 #include "DataFormats/Candidate/interface/CompositeRefBaseCandidate.h" 00005 #include "DataFormats/Candidate/interface/Candidate.h" 00006 00007 00008 namespace pat { 00009 00010 class MHT : public reco::CompositeRefBaseCandidate { 00011 public: 00012 MHT () {} 00013 MHT (const Candidate::LorentzVector& p4, double ht, double signif) : 00014 CompositeRefBaseCandidate(0,p4), ht_(ht), significance_(signif) {} 00015 virtual ~MHT () {} 00016 00017 double mht() const {return pt();}; 00018 double phi() const {return phi();}; 00019 double ht() const {return ht_;}; 00020 double significance() const {return significance_;}; 00021 double error() const{return 0.5*significance()*mht()*mht();}; 00022 00023 double getNumberOfJets() const; 00024 void setNumberOfJets(const double & numberOfJets); 00025 00026 double getNumberOfElectrons() const; 00027 void setNumberOfElectrons(const double & numberOfElectrons); 00028 00029 double getNumberOfMuons() const; 00030 void setNumberOfMuons(const double & numberOfMuons); 00031 00032 private: 00033 00034 double ht_; 00035 double significance_; 00036 double number_of_jets_; 00037 double number_of_electrons_; 00038 double number_of_muons_; 00039 }; 00040 00041 typedef std::vector<pat::MHT> MHTCollection; 00042 } 00043 00044 #endif 00045 00046 00047 00048 00049 00050