diff --git a/src/WWjets.cc b/src/WWjets.cc index dfddcbb..c19d1a3 100644 --- a/src/WWjets.cc +++ b/src/WWjets.cc @@ -1,132 +1,130 @@ /** * \authors The HEJ collaboration (see AUTHORS for details) * \date 2020 * \copyright GPLv2 or later */ #include "HEJ/WWjets.hh" #include #include #include #include #include #include "HEJ/Constants.hh" #include "HEJ/EWConstants.hh" #include "HEJ/LorentzVector.hh" #include "HEJ/exceptions.hh" #include "HEJ/jets.hh" // generated headers #include "HEJ/currents/jV_jV.hh" namespace HEJ { namespace currents { namespace { using std::conj; // W Propagator double WProp(const HLV & plbar, const HLV & pl, ParticleProperties const & wprop ){ COM propW = COM(0.,-1.)/( (pl+plbar).m2() - wprop.mass*wprop.mass + COM(0.,1.)*wprop.mass*wprop.width); double PropFactor=(propW*conj(propW)).real(); return PropFactor; } //! WW+Jets FKL Contributions /** * @brief WW+Jets Currents * @param p1out Outgoing Particle 1 (W1 emission) * @param pl1bar Outgoing anti-lepton 1 momenta * @param pl1 Outgoing lepton 1 momenta * @param p1in Incoming Particle 1 (W1 emission) * @param p2out Outgoing Particle 2 (W2 emission) * @param pl2bar Outgoing anti-lepton 2 momenta * @param pl2 Outgoing lepton 2 momenta * @param p2in Incoming Particle 2 (W2 emission) * @param aqlineb Bool. Is Backwards quark line an anti-quark line? * @param aqlinef Bool. Is Forwards quark line an anti-quark line? * * Calculates jW^\mu jW_\mu */ double jW_jW( HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, bool aqlineb, bool aqlinef, ParticleProperties const & wprop ){ using helicity::minus; using helicity::plus; HLV const q1 = (p1in-p1out-pl1bar-pl1); HLV const q2 = -(p2in-p2out-pl2bar-pl2); double const wProp1 = WProp(pl1bar, pl1, wprop); double const wProp2 = WProp(pl2bar, pl2, wprop); if(aqlineb) std::swap(pl1, pl1bar); if(aqlinef) std::swap(pl2, pl2bar); - std::cout << "Forward anti:\t" << aqlinef << "\nBackward anti:\t" << aqlineb << "\n-----\n"; - COM const amp = jV_jV(p1in,p1out,p2in,p2out,pl1,pl1bar,pl2,pl2bar); double const Msqr = std::norm(amp); // Division by colour and Helicity average (Nc2-1)(4) // Multiply by Cf^2 return C_F*C_F*wProp1*wProp2*Msqr/(q1.m2()*q2.m2()*(N_C*N_C - 1)*4); } } double ME_WW_qQ( HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, ParticleProperties const & wprop ){ return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, false, false, wprop ); } double ME_WW_qbarQ( HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, ParticleProperties const & wprop ){ return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, true, false, wprop ); } double ME_WW_qQbar( HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, ParticleProperties const & wprop ){ return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, false, true, wprop ); } double ME_WW_qbarQbar( HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, ParticleProperties const & wprop ){ return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, true, true, wprop ); } } // namespace currents } // namespace HEJ