File indexing completed on 2023-03-17 10:40:52
0001 #include "AnalysisDataFormats/EWK/interface/WMuNuCandidate.h"
0002 #include "DataFormats/TrackReco/interface/Track.h"
0003 #include "CommonTools/CandUtils/interface/CandCombiner.h"
0004 #include "CommonTools/CandUtils/interface/AddFourMomenta.h"
0005
0006 using namespace edm;
0007 using namespace std;
0008 using namespace reco;
0009
0010 WMuNuCandidate::WMuNuCandidate() {}
0011
0012 WMuNuCandidate::WMuNuCandidate(edm::Ptr<reco::Muon> muon, edm::Ptr<reco::MET> met) : muon_(muon), neutrino_(met) {
0013 addDaughter(*muon, "Muon");
0014 addDaughter(*met, "Met");
0015 AddFourMomenta addP4;
0016 addP4.set(*this);
0017
0018
0019
0020
0021 }
0022
0023 WMuNuCandidate::~WMuNuCandidate() {}
0024
0025 double WMuNuCandidate::eT() const {
0026 double e_t = 0;
0027 e_t = muon_->pt() + neutrino_->pt();
0028 return e_t;
0029 }
0030
0031 double WMuNuCandidate::massT() const {
0032
0033
0034
0035 double wpx = px();
0036 double wpy = py();
0037 double mt = eT() * eT() - wpx * wpx - wpy * wpy;
0038 mt = (mt > 0) ? sqrt(mt) : 0;
0039 return mt;
0040 }
0041
0042 double WMuNuCandidate::acop() const {
0043
0044 Geom::Phi<double> deltaphi(daughter(0)->phi() - daughter(1)->phi());
0045 double acop = deltaphi.value();
0046 if (acop < 0)
0047 acop = -acop;
0048 acop = M_PI - acop;
0049 return acop;
0050 }