00001 #include "DataFormats/Math/interface/LorentzVector.h" 00002 #include "RecoMET/METAlgorithms/interface/GenSpecificAlgo.h" 00003 00004 using namespace reco; 00005 using namespace std; 00006 00007 //------------------------------------------------------------------------- 00008 // This algorithm adds calorimeter specific global event information to 00009 // the MET object which may be useful/needed for MET Data Quality Monitoring 00010 // and MET cleaning. This list is not exhaustive and additional 00011 // information will be added in the future. 00012 //------------------------------------- 00013 //reco::GenMET GenSpecificAlgo::addInfo(const CandidateCollection *particles, CommonMETData met) 00014 reco::GenMET GenSpecificAlgo::addInfo(edm::Handle<edm::View<Candidate> > particles, CommonMETData met) 00015 { 00016 // Instantiate the container to hold the calorimeter specific information 00017 SpecificGenMETData specific; 00018 // Initialise the container 00019 specific.m_EmEnergy = 0.0; // EM Energy 00020 specific.m_HadEnergy = 0.0; // Hadronic Energy 00021 specific.m_InvisibleEnergy = 0.0; // Invisible energy 00022 specific.m_AuxiliaryEnergy = 0.0; // Other Energy 00023 // Instantiate containers for the MET candidate and initialise them with 00024 // the MET information in "met" (of type CommonMETData) 00025 const LorentzVector p4( met.mex, met.mey, 0.0, met.met ); 00026 const Point vtx( 0.0, 0.0, 0.0 ); 00027 // Create and return an object of type GenMET, which is a MET object with 00028 // the extra calorimeter specfic information added 00029 GenMET specificmet( specific, met.sumet, p4, vtx ); 00030 return specificmet; 00031 } 00032 //-------------------------------------------------------------------------