diff --git a/include/HEJ/WWjets.hh b/include/HEJ/WWjets.hh index ff5ee9e..bf24c58 100644 --- a/include/HEJ/WWjets.hh +++ b/include/HEJ/WWjets.hh @@ -1,49 +1,49 @@ /** * \authors The HEJ collaboration (see AUTHORS for details) * \date 2019-2020 * \copyright GPLv2 or later */ /** \file * \brief Functions computing the square of current contractions in WW+Jets. * * This file contains the WW+jet specific code to compute current contractions. */ #pragma once #include #include "CLHEP/Vector/LorentzVector.h" namespace HEJ { struct ParticleProperties; namespace currents { using HLV = CLHEP::HepLorentzVector; std::vector ME_WW_qQ( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ); std::vector ME_WW_qbarQ( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ); std::vector ME_WW_qQbar( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ); std::vector ME_WW_qbarQbar( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ); } // namespace currents } // namespace HEJ diff --git a/src/WWjets.cc b/src/WWjets.cc index 1950d88..7087bb4 100644 --- a/src/WWjets.cc +++ b/src/WWjets.cc @@ -1,149 +1,149 @@ /** * \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 */ template std::vector jW_jW( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV & pl1bar, const HLV & pl1, const HLV & p1in, + const HLV & p2out, const HLV & pl2bar, const HLV & pl2, const HLV & p2in, ParticleProperties const & wprop ){ using helicity::minus; const COM amp_top = jV_jV(p1in,p1out,p2in,p2out,pl1,pl1bar,pl2,pl2bar); const COM amp_bot = jV_jV(p1in,p1out,p2in,p2out,pl2,pl2bar,pl1,pl1bar); double res_top = norm(amp_top); double res_bot = norm(amp_bot); double res_mix = 2.*real(amp_top*conj(amp_bot)); const double t1_top = (p1in-p1out-pl1bar-pl1).m2(); const double t2_top = (p2in-p2out-pl2bar-pl2).m2(); const double t1_bot = (p1in-p1out-pl2bar-pl2).m2(); const double t2_bot = (p2in-p2out-pl1bar-pl1).m2(); res_top /= t1_top * t2_top; res_bot /= t1_bot * t2_bot; res_mix /= sqrt(t1_top * t2_top * t1_bot * t2_bot); double const wProp1 = WProp(pl1bar, pl1, wprop); double const wProp2 = WProp(pl2bar, pl2, wprop); // Division by colour and Helicity average (Nc2-1)(4) // Multiply by Cf^2 const double pref = C_F*C_F*wProp1*wProp2/((N_C*N_C - 1)*4); return {res_top*pref, res_bot*pref, res_mix*pref}; } - } + } // namespace std::vector ME_WW_qQ( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ){ using helicity::minus; return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, wprop ); } std::vector ME_WW_qbarQ( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ){ using helicity::minus; using helicity::plus; return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, wprop ); } std::vector ME_WW_qQbar( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ){ using helicity::minus; using helicity::plus; return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, wprop ); } std::vector ME_WW_qbarQbar( - HLV const & p1out, HLV pl1bar, HLV pl1, HLV const & p1in, - HLV const & p2out, HLV pl2bar, HLV pl2, HLV const & p2in, + const HLV & p1out, const HLV& pl1bar, const HLV& pl1, const HLV & p1in, + const HLV & p2out, const HLV& pl2bar, const HLV& pl2, const HLV & p2in, ParticleProperties const & wprop ){ using helicity::plus; return jW_jW( p1out, pl1bar, pl1, p1in, p2out, pl2bar, pl2, p2in, wprop ); } } // namespace currents } // namespace HEJ