00001 #ifndef METzCalculator_h 00002 #define METzCalculator_h 00003 00013 //#include "FWCore/Framework/interface/Event.h" 00014 //#include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 00016 #include "DataFormats/PatCandidates/interface/Particle.h" 00017 #include "DataFormats/PatCandidates/interface/MET.h" 00018 00019 #include "TLorentzVector.h" 00020 00021 class METzCalculator { 00022 00023 public: 00025 METzCalculator(); 00026 //METzCalculator(const edm::ParameterSEt& iConf); 00028 virtual ~METzCalculator(); 00030 void SetMET(const pat::MET &MET) { MET_ = MET; } ; 00031 void SetMET(TLorentzVector MET) { 00032 pat::Particle::LorentzVector p(MET.Px(),MET.Py(),MET.Pz(),MET.E()); 00033 MET_.setP4(p); 00034 } 00036 void SetMuon(const pat::Particle &lepton) { lepton_ = lepton; }; 00037 void SetMuon(TLorentzVector lepton) { 00038 pat::Particle::LorentzVector p(lepton.Px(), lepton.Py(), lepton.Pz(), lepton.E() ); 00039 lepton_.setP4(p); 00040 } 00052 double Calculate(int type = 0); 00054 bool IsComplex() const { return isComplex_; }; 00055 00056 void Print() { 00057 std::cout << " METzCalculator: pxmu = " << lepton_.px() << " pzmu= " << lepton_.pz() << std::endl; 00058 std::cout << " METzCalculator: pxnu = " << MET_.px() << " pynu= " << MET_.py() << std::endl; 00059 } 00060 00061 private: 00062 00063 bool isComplex_; 00064 pat::Particle lepton_; 00065 pat::MET MET_; 00066 00067 }; 00068 00069 #endif