diff --git a/include/HEJ/Tensor.hh b/include/HEJ/Tensor.hh index bc5c180..2f6dcfb 100644 --- a/include/HEJ/Tensor.hh +++ b/include/HEJ/Tensor.hh @@ -1,180 +1,186 @@ /** \file * \brief Tensor Template Class declaration. * * This file contains the declaration of the Tensor Template class. This * is used to calculate some of the more complex currents within the * W+Jets implementation particularly. * * \authors The HEJ collaboration (see AUTHORS for details) * \date 2019 * \copyright GPLv2 or later */ #pragma once #include <array> #include <complex> #include <valarray> namespace CLHEP { class HepLorentzVector; } class CCurrent; typedef std::complex<double> COM; ///@TODO put in some namespace template <unsigned int N> class Tensor{ public: //! Constructor Tensor(); Tensor(COM x); //! Rank of Tensor int rank(){ return N; }; //! total number of entries int len(){ return size; }; /** * @{ * @TODO these functions are a mess and dangerous (out of bound) * better something like <code> COM at(std::array<int, N> idx) </code> * maybe in combination with <code> std::gslice <code> */ //! Value of rank 1 Tensor for given i value. COM at(int i); //! Value of rank 2 Tensor for given (i,j) value. COM at(int i, int j); //! Value of rank 3 Tensor for given (i,j,k) value. COM at(int i, int j, int k); //! Value of rank 4 Tensor for given (i,j,k,l) value. COM at(int i, int j, int k, int l); //! Value of rank 3 Tensor for given (i,j,k,l,m) value. COM at(int i, int j, int k, int l, int m); //! Set all entries to x void Fill(COM x); //! Set value of rank 1 Tensor for given i value to x. void Set(int i, COM x); //! Set value of rank 2 Tensor for given i,j value to x. void Set(int i, int j, COM x); //! Set value of rank 3 Tensor for given i,j,k value to x. void Set(int i, int j, int k, COM x); //! Set value of rank 4 Tensor for given i,j,k,l value to x. void Set(int i, int j, int k, int l, COM x); //! Set value of rank 5 Tensor for given i,j,k,l,m value to x. void Set(int i, int j, int k, int l, int m, COM x); //!@} Tensor<N> operator*(const double x); Tensor<N> operator*(const COM x); Tensor<N> operator/(const double x); Tensor<N> operator/(const COM x); Tensor<N> operator+(const Tensor<N> T2); Tensor<N> operator-(const Tensor<N> T2); void operator+=(const Tensor<N> T2); void operator-=(const Tensor<N> T2); /** * \brief Multiply Tensor from Right: T1^(mu1...mk..mN-1)T2_(muN) * @param T2 Tensor of Rank 1 to multiply from right with with. * @returns T1.contract(T2,1) -> T1^(mu,nu,rho...)T2^sigma */ Tensor<N+1> rightprod(const Tensor<1> T2); /** * \brief Multiply Tensor from Left: T2_(muN)T1^(mu1...mk..mN-1) * @param T2 Tensor of Rank 1 to multiply from left with with. * @returns T1.contract(T2,1) -> T2^sigma T1^(mu,nu,rho...) */ Tensor<N+1> leftprod(const Tensor<1> T2); /** * \brief T^(mu1...mk..mN)T2_(muk) contract kth index, where k member of [1,N] * @param T2 Tensor of Rank 1 to contract with. * @param k int to contract Tensor T2 with from original Tensor. * @returns T1.contract(T2,1) -> T1^(mu,nu,rho...)T2_mu */ Tensor<N-1> contract(const Tensor<1> T2, int k); std::valarray<COM> components; private: int size; COM sign(unsigned int i); }; /** - * \brief Returns +--- Metric - * @returns Metric (+,-,-,-) {(1,0,0,0),(0,-1,0,0),(0,0,-1,0),(0,0,0,-1)} + * \brief Returns diag(+---) Metric + * @returns Metric {(1,0,0,0),(0,-1,0,0),(0,0,-1,0),(0,0,0,-1)} */ Tensor<2> Metric(); /** * \brief Calculates current <p1|mu|p2> * @param p1 Momentum of Particle 1 * @param h1 Helicity of Particle 1 (Boolean, False = -h, True = +h) * @param p2 Momentum of Particle 2 * @param h2 Helicity of Particle 2 (Boolean, False = -h, True = +h) - * @returns Tensor T^mu = <p1|mu|p2> (in/out configuration considered in calc) + * @returns Tensor T^mu = <p1|mu|p2> + * + * @note in/out configuration considered in calculation */ Tensor<1> TCurrent(CLHEP::HepLorentzVector p1, bool h1, CLHEP::HepLorentzVector p2, bool h2); /** * \brief Calculates current <p1|mu nu rho|p2> * @param p1 Momentum of Particle 1 * @param h1 Helicity of Particle 1 (Boolean, False = -h, True = +h) * @param p2 Momentum of Particle 2 * @param h2 Helicity of Particle 2 (Boolean, False = -h, True = +h) - * @returns Tensor T^mu^nu^rho = <p1|mu nu rho|p2> (in/out configuration considered in calc) + * @returns Tensor T^mu^nu^rho = <p1|mu nu rho|p2> + * + * @note in/out configuration considered in calculation */ Tensor<3> T3Current(CLHEP::HepLorentzVector p1, bool h1, CLHEP::HepLorentzVector p2, bool h2); /** * \brief Calculates current <p1|mu nu rho tau sigma|p2> * @param p1 Momentum of Particle 1 * @param h1 Helicity of Particle 1 (Boolean, False = -h, True = +h) * @param p2 Momentum of Particle 2 * @param h2 Helicity of Particle 2 (Boolean, False = -h, True = +h) - * @returns Tensor T^mu^nu^rho = <p1|mu nu rho tau sigma|p2> (in/out configuration considered in calc) + * @returns Tensor T^mu^nu^rho = <p1|mu nu rho tau sigma|p2> + * + * @note in/out configuration considered in calculation */ Tensor<5> T5Current(CLHEP::HepLorentzVector p1, bool h1, CLHEP::HepLorentzVector p2, bool h2); /** * \brief Convert from CCurrent class * @param j Current in CCurrent format * @returns Current in Tensor Format */ Tensor<1> Construct1Tensor(CCurrent j); /** * \brief Convert from HLV class * @param p Current in HLV format * @returns Current in Tensor Format */ Tensor<1> Construct1Tensor(CLHEP::HepLorentzVector p); /** * \brief Construct Epsilon (Polarisation) Tensor * @param k Momentum of incoming/outgoing boson * @param ref Reference momentum for calculation * @param pol Polarisation of boson * @returns Polarisation Tensor E^mu */ Tensor<1> eps(CLHEP::HepLorentzVector k, CLHEP::HepLorentzVector ref, bool pol); //! Initialises Tensor values by iterating over permutations of gamma matrices. bool init_sigma_index(); // implementation of template functions #include "HEJ/detail/Tensor_impl.hh" diff --git a/include/HEJ/currents.hh b/include/HEJ/currents.hh index f40c8d0..2bfa948 100644 --- a/include/HEJ/currents.hh +++ b/include/HEJ/currents.hh @@ -1,1297 +1,1212 @@ /** * \authors The HEJ collaboration (see AUTHORS for details) * \date 2019 * \copyright GPLv2 or later */ /** \file * \brief Functions computing the square of current contractions. * * This file contains all the necessary functions to compute the current - * contractions for all valid HEJ processes. PJETS, H+JETS and W+JETS along with - * some unordered counterparts. + * contractions for all valid HEJ processes. PJETS, H+JETS and W+JETS along + * with some unordered counterparts. * * @TODO add a namespace */ #pragma once #include <complex> #include <vector> #include <ostream> #include <CLHEP/Vector/LorentzVector.h> typedef std::complex<double> COM; typedef COM current[4]; typedef CLHEP::HepLorentzVector HLV; //! Square of qQ->qenuQ W+Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @returns Square of the current contractions for qQ->qenuQ Scattering + * @param p1out Momentum of final state quark + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @returns Square of the current contractions for qQ->qenuQ Scattering * * This returns the square of the current contractions in qQ->qenuQ scattering * with an emission of a W Boson. */ -double jMWqQ (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, - CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jMWqQ (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in); //! Square of qbarQ->qbarenuQ W+Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @returns Square of the current contractions for qbarQ->qbarenuQ Scattering + * @param p1out Momentum of final state anti-quark + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @returns Square of the current contractions for qbarQ->qbarenuQ Scattering * - * This returns the square of the current contractions in qbarQ->qbarenuQ scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarQ->qbarenuQ + * scattering with an emission of a W Boson. */ -double jMWqbarQ (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, - CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jMWqbarQ (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in); //! Square of qQbar->qenuQbar W+Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @returns Square of the current contractions for qQbar->qenuQbar Scattering + * @param p1out Momentum of final state quark + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @returns Square of the current contractions for qQbar->qenuQbar Scattering * - * This returns the square of the current contractions in qQbar->qenuQbar scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qQbar->qenuQbar + * scattering with an emission of a W Boson. */ -double jMWqQbar (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, - CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jMWqQbar (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in); //! Square of qbarQbar->qbarenuQbar W+Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @returns Square of the current contractions for qbarQbar->qbarenuQbar Scattering + * @param p1out Momentum of final state anti-quark + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @returns Square of the current contractions for qbarQbar->qbarenuQbar Scattering * - * This returns the square of the current contractions in qbarQbar->qbarenuQbar scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarQbar->qbarenuQbar + * scattering with an emission of a W Boson. */ -double jMWqbarQbar (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, - CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jMWqbarQbar (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in); //! Square of qg->qenug W+Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @returns Square of the current contractions for qg->qenug Scattering + * @param p1out Momentum of final state quark + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @returns Square of the current contractions for qg->qenug Scattering * * This returns the square of the current contractions in qg->qenug scattering * with an emission of a W Boson. */ -double jMWqg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, - CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jMWqg (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in); //! Square of qbarg->qbarenug W+Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @returns Square of the current contractions for qbarg->qbarenug Scattering + * @param p1out Momentum of final state anti-quark + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @returns Square of the current contractions for qbarg->qbarenug Scattering * - * This returns the square of the current contractions in qbarg->qbarenug scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarg->qbarenug + * scattering with an emission of a W Boson. */ -double jMWqbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, - CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jMWqbarg (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in); // W+Jets Unordered Functions //! qQg Wjets Unordered backwards opposite leg to W /** - * @param p1out Momentum of final state quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state quark b - * @param p2in Momentum of intial state quark b - * @param pg Momentum of final state unordered gluon - * @returns Square of the current contractions for qQ->qQg Scattering + * @param p1out Momentum of final state quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state quark b + * @param p2in Momentum of intial state quark b + * @param pg Momentum of final state unordered gluon + * @returns Square of the current contractions for qQ->qQg Scattering * * This returns the square of the current contractions in qQg->qQg scattering * with an emission of a W Boson. */ -double junobMWqQg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector pg); +double junobMWqQg (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in, HLV pg); //! qbarQg Wjets Unordered backwards opposite leg to W /** - * @param p1out Momentum of final state anti-quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state anti-quark a - * @param p2out Momentum of final state quark b - * @param p2in Momentum of intial state quark b - * @param pg Momentum of final state unordered gluon - * @returns Square of the current contractions for qbarQ->qbarQg Scattering + * @param p1out Momentum of final state anti-quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state anti-quark a + * @param p2out Momentum of final state quark b + * @param p2in Momentum of intial state quark b + * @param pg Momentum of final state unordered gluon + * @returns Square of the current contractions for qbarQ->qbarQg Scattering * - * This returns the square of the current contractions in qbarQg->qbarQg scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarQg->qbarQg + * scattering with an emission of a W Boson. */ -double junobMWqbarQg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector pg); - +double junobMWqbarQg (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in, HLV pg); //! qQbarg Wjets Unordered backwards opposite leg to W /** - * @param p1out Momentum of final state quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state anti-quark b - * @param p2in Momentum of intial state anti-quark b - * @param pg Momentum of final state unordered gluon - * @returns Square of the current contractions for qQbar->qQbarg Scattering + * @param p1out Momentum of final state quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state anti-quark b + * @param p2in Momentum of intial state anti-quark b + * @param pg Momentum of final state unordered gluon + * @returns Square of the current contractions for qQbar->qQbarg Scattering * - * This returns the square of the current contractions in qQbarg->qQbarg scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qQbarg->qQbarg + * scattering with an emission of a W Boson. */ -double junobMWqQbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector pg); +double junobMWqQbarg (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in, HLV pg); //! qbarQbarg Wjets Unordered backwards opposite leg to W /** - * @param p1out Momentum of final state anti-quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state anti-quark a - * @param p2out Momentum of final state anti-quark b - * @param p2in Momentum of intial state anti-quark b - * @param pg Momentum of final state unordered gluon - * @returns Square of the current contractions for qbarQbar->qbarQbarg Scattering + * @param p1out Momentum of final state anti-quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state anti-quark a + * @param p2out Momentum of final state anti-quark b + * @param p2in Momentum of intial state anti-quark b + * @param pg Momentum of final state unordered gluon + * @returns Square of the current contractions for qbarQbar->qbarQbarg Scattering * - * This returns the square of the current contractions in qbarQbarg->qbarQbarg scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarQbarg->qbarQbarg + * scattering with an emission of a W Boson. */ -double junobMWqbarQbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector pg); - +double junobMWqbarQbarg (HLV p1out, HLV pe, HLV pnu, HLV p1in, HLV p2out, HLV p2in, HLV pg); //!Wjets Unordered forwards opposite leg to W /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state quark b - * @param p2in Momentum of intial state quark b - * @returns Square of the current contractions for qQ->gqQ Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state quark b + * @param p2in Momentum of intial state quark b + * @returns Square of the current contractions for qQ->gqQ Scattering * * This returns the square of the current contractions in qQg->gqQ scattering * with an emission of a W Boson. */ -double junofMWgqQ (CLHEP::HepLorentzVector pg,CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p2in); +double junofMWgqQ (HLV pg,HLV p1out, HLV p1in, HLV p2out, HLV pe, HLV pnu, HLV p2in); //!Wjets Unordered forwards opposite leg to W /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state anti-quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state anti-quark a - * @param p2out Momentum of final state quark b - * @param p2in Momentum of intial state quark b - * @returns Square of the current contractions for qbarQ->gqbarQ Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state anti-quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state anti-quark a + * @param p2out Momentum of final state quark b + * @param p2in Momentum of intial state quark b + * @returns Square of the current contractions for qbarQ->gqbarQ Scattering * - * This returns the square of the current contractions in qbarQg->gqbarQ scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarQg->gqbarQ + * scattering with an emission of a W Boson. */ -double junofMWgqbarQ (CLHEP::HepLorentzVector pg,CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p2in); +double junofMWgqbarQ (HLV pg,HLV p1out, HLV p1in, HLV p2out, HLV pe, HLV pnu, HLV p2in); //!Wjets Unordered forwards opposite leg to W /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state anti-quark b - * @param p2in Momentum of intial state anti-quark b - * @returns Square of the current contractions for qQbar->gqQbar Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state anti-quark b + * @param p2in Momentum of intial state anti-quark b + * @returns Square of the current contractions for qQbar->gqQbar Scattering * - * This returns the square of the current contractions in qQbarg->gqQbar scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qQbarg->gqQbar + * scattering with an emission of a W Boson. */ -double junofMWgqQbar (CLHEP::HepLorentzVector pg,CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p2in); +double junofMWgqQbar (HLV pg,HLV p1out, HLV p1in, HLV p2out, HLV pe, HLV pnu, HLV p2in); //!Wjets Unordered forwards opposite leg to W /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state anti-quark a - * @param pe Momentum of final state electron - * @param pnu Momentum of final state Neutrino - * @param p1in Momentum of initial state anti-quark a - * @param p2out Momentum of final state anti-quark b - * @param p2in Momentum of intial state anti-quark b - * @returns Square of the current contractions for qbarQbar->gqbarQbar Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state anti-quark a + * @param pe Momentum of final state electron + * @param pnu Momentum of final state Neutrino + * @param p1in Momentum of initial state anti-quark a + * @param p2out Momentum of final state anti-quark b + * @param p2in Momentum of intial state anti-quark b + * @returns Square of the current contractions for qbarQbar->gqbarQbar Scattering * - * This returns the square of the current contractions in qbarQbarg->gqbarQbar scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarQbarg->gqbarQbar + * scattering with an emission of a W Boson. */ -double junofMWgqbarQbar (CLHEP::HepLorentzVector pg,CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector pe, CLHEP::HepLorentzVector pnu, CLHEP::HepLorentzVector p2in); +double junofMWgqbarQbar (HLV pg,HLV p1out, HLV p1in, HLV p2out, HLV pe, HLV pnu, HLV p2in); //!W+uno same leg /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state quark b - * @param p2in Momentum of intial state quark b - * @returns Square of the current contractions for qQ->qQg Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state quark b + * @param p2in Momentum of intial state quark b + * @returns Square of the current contractions for qQ->qQg Scattering * * This returns the square of the current contractions in gqQ->gqQ scattering * with an emission of a W Boson. */ -double jM2WunogqQ(CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2WunogqQ(HLV pg, HLV p1out,HLV plbar,HLV pl, HLV p1in, HLV p2out, HLV p2in); //! @TODO What does this function do? Crossed contribution is Exqqx..? /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state quark b - * @param p2in Momentum of intial state quark b - * @returns Square of the current contractions for qQ->gqQ Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state quark b + * @param p2in Momentum of intial state quark b + * @returns Square of the current contractions for qQ->gqQ Scattering * * This returns the square of the current contractions in gqQ->gqQ scattering * with an emission of a W Boson. */ -double jM2WunogqQ_crossqQ(CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2WunogqQ_crossqQ(HLV pg, HLV p1out,HLV plbar,HLV pl, HLV p1in, HLV p2out, HLV p2in); //! W+uno same leg. quark anti-quark /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state anti-quark b - * @param p2in Momentum of intial state anti-quark b - * @returns Square of the current contractions for qQbar->gqQbar Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state anti-quark b + * @param p2in Momentum of intial state anti-quark b + * @returns Square of the current contractions for qQbar->gqQbar Scattering * - * This returns the square of the current contractions in gqQbar->gqQbar scattering - * with an emission of a W Boson. (Unordered Same Leg) + * This returns the square of the current contractions in gqQbar->gqQbar + * scattering with an emission of a W Boson. (Unordered Same Leg) */ -double jM2WunogqQbar(CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2WunogqQbar(HLV pg, HLV p1out,HLV plbar,HLV pl, HLV p1in, HLV p2out, HLV p2in); //! W+uno same leg. quark gluon /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param p1in Momentum of initial state quark a - * @param p2out Momentum of final state gluon b - * @param p2in Momentum of intial state gluon b - * @returns Square of the current contractions for qg->gqg Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param p1in Momentum of initial state quark a + * @param p2out Momentum of final state gluon b + * @param p2in Momentum of intial state gluon b + * @returns Square of the current contractions for qg->gqg Scattering * * This returns the square of the current contractions in qg->gqg scattering * with an emission of a W Boson. */ -double jM2Wunogqg(CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2Wunogqg(HLV pg, HLV p1out,HLV plbar,HLV pl, HLV p1in, HLV p2out, HLV p2in); //! W+uno same leg. anti-quark quark /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state anti-quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param p1in Momentum of initial state anti-quark a - * @param p2out Momentum of final state quark b - * @param p2in Momentum of intial state quark b - * @returns Square of the current contractions for qbarQ->gqbarQ Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state anti-quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param p1in Momentum of initial state anti-quark a + * @param p2out Momentum of final state quark b + * @param p2in Momentum of intial state quark b + * @returns Square of the current contractions for qbarQ->gqbarQ Scattering * - * This returns the square of the current contractions in qbarQ->gqbarQ scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarQ->gqbarQ + * scattering with an emission of a W Boson. */ -double jM2WunogqbarQ(CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2WunogqbarQ(HLV pg, HLV p1out,HLV plbar,HLV pl, HLV p1in, HLV p2out, HLV p2in); //! W+uno same leg. anti-quark anti-quark /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state anti-quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param p1in Momentum of initial state anti-quark a - * @param p2out Momentum of final state anti-quark b - * @param p2in Momentum of intial state anti-quark b - * @returns Square of the current contractions for qbarQbar->gqbarQbar Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state anti-quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param p1in Momentum of initial state anti-quark a + * @param p2out Momentum of final state anti-quark b + * @param p2in Momentum of intial state anti-quark b + * @returns Square of the current contractions for qbarQbar->gqbarQbar Scattering * - * This returns the square of the current contractions in gqbarQbar->qbarQbar scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in gqbarQbar->qbarQbar + * scattering with an emission of a W Boson. */ -double jM2WunogqbarQbar(CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2WunogqbarQbar(HLV pg, HLV p1out,HLV plbar,HLV pl, HLV p1in, HLV p2out, HLV p2in); //! W+uno same leg. anti-quark gluon /** - * @param pg Momentum of final state unordered gluon - * @param p1out Momentum of final state anti-quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param p1in Momentum of initial state anti-quark a - * @param p2out Momentum of final state gluon b - * @param p2in Momentum of intial state gluon b - * @returns Square of the current contractions for ->gqbarg Scattering + * @param pg Momentum of final state unordered gluon + * @param p1out Momentum of final state anti-quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param p1in Momentum of initial state anti-quark a + * @param p2out Momentum of final state gluon b + * @param p2in Momentum of intial state gluon b + * @returns Square of the current contractions for ->gqbarg Scattering * - * This returns the square of the current contractions in qbarg->gqbarg scattering - * with an emission of a W Boson. + * This returns the square of the current contractions in qbarg->gqbarg + * scattering with an emission of a W Boson. */ -double jM2Wunogqbarg(CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2Wunogqbarg(HLV pg, HLV p1out,HLV plbar,HLV pl, HLV p1in, HLV p2out, HLV p2in); //W+Jets qqxExtremal //! W+Extremal qqx. qxqQ /** - * @param pgin Momentum of initial state gluon - * @param pqout Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param pqbarout Momentum of final state anti-quark a - * @param p2out Momentum of initial state anti-quark b - * @param p2in Momentum of final state gluon b - * @returns Square of the current contractions for ->qbarqQ Scattering + * @param pgin Momentum of initial state gluon + * @param pqout Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param pqbarout Momentum of final state anti-quark a + * @param p2out Momentum of initial state anti-quark b + * @param p2in Momentum of final state gluon b + * @returns Square of the current contractions for ->qbarqQ Scattering * * Calculates the square of the current contractions with extremal qqbar pair * production. This is calculated through the use of crossing symmetry. */ -double jM2WgQtoqbarqQ(CLHEP::HepLorentzVector pgin, CLHEP::HepLorentzVector pqout,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector pqbarout, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2WgQtoqbarqQ(HLV pgin, HLV pqout,HLV plbar,HLV pl, HLV pqbarout, HLV p2out, HLV p2in); //W+Jets qqxExtremal //! W+Extremal qqx. qqxQ /** - * @param pgin Momentum of initial state gluon - * @param pqout Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param pqbarout Momentum of final state anti-quark a - * @param p2out Momentum of initial state anti-quark b - * @param p2in Momentum of final state gluon b - * @returns Square of the current contractions for ->qqbarQ Scattering + * @param pgin Momentum of initial state gluon + * @param pqout Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param pqbarout Momentum of final state anti-quark a + * @param p2out Momentum of initial state anti-quark b + * @param p2in Momentum of final state gluon b + * @returns Square of the current contractions for ->qqbarQ Scattering * * Calculates the square of the current contractions with extremal qqbar pair * production. This is calculated through the use of crossing symmetry. */ -double jM2WgQtoqqbarQ(CLHEP::HepLorentzVector pgin, CLHEP::HepLorentzVector pqout,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector pqbarout, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2WgQtoqqbarQ(HLV pgin, HLV pqout,HLV plbar,HLV pl, HLV pqbarout, HLV p2out, HLV p2in); //W+Jets qqxExtremal //! W+Extremal qqx. gg->qxqg /** - * @param pgin Momentum of initial state gluon - * @param pqout Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param pqbarout Momentum of final state anti-quark a - * @param p2out Momentum of initial state gluon b - * @param p2in Momentum of final state gluon b - * @returns Square of the current contractions for gg->qbarqg Scattering + * @param pgin Momentum of initial state gluon + * @param pqout Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param pqbarout Momentum of final state anti-quark a + * @param p2out Momentum of initial state gluon b + * @param p2in Momentum of final state gluon b + * @returns Square of the current contractions for gg->qbarqg Scattering * * Calculates the square of the current contractions with extremal qqbar pair * production. This is calculated through the use of crossing symmetry. */ -double jM2Wggtoqbarqg(CLHEP::HepLorentzVector pgin, CLHEP::HepLorentzVector pqout,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector pqbarout, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2Wggtoqbarqg(HLV pgin, HLV pqout,HLV plbar,HLV pl, HLV pqbarout, HLV p2out, HLV p2in); //W+Jets qqxExtremal //! W+Extremal qqx. gg->qqxg /** - * @param pgin Momentum of initial state gluon - * @param pqout Momentum of final state quark a - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param pqbarout Momentum of final state anti-quark a - * @param p2out Momentum of initial state gluon a - * @param p2in Momentum of final state gluon b - * @returns Square of the current contractions for gg->qqbarg Scattering + * @param pgin Momentum of initial state gluon + * @param pqout Momentum of final state quark a + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param pqbarout Momentum of final state anti-quark a + * @param p2out Momentum of initial state gluon a + * @param p2in Momentum of final state gluon b + * @returns Square of the current contractions for gg->qqbarg Scattering * * Calculates the square of the current contractions with extremal qqbar pair * production. This is calculated through the use of crossing symmetry. */ -double jM2Wggtoqqbarg(CLHEP::HepLorentzVector pgin, CLHEP::HepLorentzVector pqbarout,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, CLHEP::HepLorentzVector pqout, CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); +double jM2Wggtoqqbarg(HLV pgin, HLV pqbarout,HLV plbar,HLV pl, HLV pqout, HLV p2out, HLV p2in); //W+Jets qqxExtremal, W emission from opposite leg //! W+Extremal qqx. gg->qqxg. qqx on forwards leg, W emission backwards leg. /** - * @param pa Momentum of initial state (anti-)quark - * @param pb Momentum of initial state gluon - * @param p1 Momentum of final state (anti-)quark (after W emission) - * @param p2 Momentum of final state anti-quark - * @param p3 Momentum of final state quark - * @param plbar Momentum of final state anti-lepton - * @param pl Momentum of final state lepton - * @param aqlinepa Is opposite extremal leg to qqx a quark or antiquark line - * @returns Square of the current contractions for gq->qqbarqW Scattering + * @param pa Momentum of initial state (anti-)quark + * @param pb Momentum of initial state gluon + * @param p1 Momentum of final state (anti-)quark (after W emission) + * @param p2 Momentum of final state anti-quark + * @param p3 Momentum of final state quark + * @param plbar Momentum of final state anti-lepton + * @param pl Momentum of final state lepton + * @param aqlinepa Is opposite extremal leg to qqx a quark or antiquark line + * @returns Square of the current contractions for gq->qqbarqW Scattering * * Calculates the square of the current contractions with extremal qqbar pair * production. This is calculated via current contraction of existing currents. * Assumes qqx split from forwards leg, W emission from backwards leg. * Switch input (pa<->pb, p1<->pn) if calculating forwards qqx. */ -double jM2WgqtoQQqW(CLHEP::HepLorentzVector pa, CLHEP::HepLorentzVector pb, CLHEP::HepLorentzVector p1, CLHEP::HepLorentzVector p2, CLHEP::HepLorentzVector p3,CLHEP::HepLorentzVector plbar,CLHEP::HepLorentzVector pl, bool aqlinepa); +double jM2WgqtoQQqW(HLV pa, HLV pb, HLV p1, HLV p2, HLV p3,HLV plbar,HLV pl, bool aqlinepa); //! W+Jets qqxCentral. qqx W emission. /** * @param pa Momentum of initial state particle a * @param pb Momentum of initial state particle b * @param pl Momentum of final state lepton * @param plbar Momentum of final state anti-lepton * @param partons Vector of outgoing parton momenta - * @param aqlinepa Bool: True= pa is anti-quark - * @param aqlinepb Bool: True= pb is anti-quark - * @param qqxmarker Bool: Ordering of the qqbar pair produced (qqx vs qxq) + * @param aqlinepa True= pa is anti-quark + * @param aqlinepb True= pb is anti-quark + * @param qqxmarker Ordering of the qqbar pair produced (qqx vs qxq) * @param nabove Number of lipatov vertices "above" qqbar pair * @param nbelow Number of lipatov vertices "below" qqbar pair * @returns Square of the current contractions for qq>qQQbarWq Scattering * * Calculates the square of the current contractions with extremal qqbar pair * production. This is calculated through the use of crossing symmetry. */ -double jM2WqqtoqQQq(HLV pa, HLV pb,HLV pl,HLV plbar, std::vector<HLV> partons, bool aqlinepa, bool aqlinepb, bool qqxmarker, int nabove); +double jM2WqqtoqQQq(HLV pa, HLV pb,HLV pl,HLV plbar, std::vector<HLV> partons, + bool aqlinepa, bool aqlinepb, bool qqxmarker, int nabove); //emission from backwards leg //! W+Jets qqxCentral. W emission from backwards leg. /** - * @param ka HLV: Momentum of initial state particle a - * @param kb HLV: Momentum of initial state particle b - * @param pl HLV: Momentum of final state lepton - * @param plbar HLV: Momentum of final state anti-lepton - * @param partons Vector(HLV): outgoing parton momenta - * @param aqlinepa Bool: True= pa is anti-quark - * @param aqlinepb Bool: True= pb is anti-quark - * @param qqxmarker Bool: Ordering of the qqbar pair produced (qqx vs qxq) - * @param nabove Int: Number of lipatov vertices "above" qqbar pair - * @param nbelow Int: Number of lipatov vertices "below" qqbar pair - * @param forwards Bool: Swap to emission off front leg TODO:remove so args can be const + * @param ka Momentum of initial state particle a + * @param kb Momentum of initial state particle b + * @param pl Momentum of final state lepton + * @param plbar Momentum of final state anti-lepton + * @param partons outgoing parton momenta + * @param aqlinepa True= pa is anti-quark + * @param aqlinepb True= pb is anti-quark + * @param qqxmarker Ordering of the qqbar pair produced (qqx vs qxq) + * @param nabove Number of lipatov vertices "above" qqbar pair + * @param nbelow Number of lipatov vertices "below" qqbar pair + * @param forwards Swap to emission off front leg TODO:remove so args can be const * @returns Square of the current contractions for qq>qQQbarWq Scattering * * Calculates the square of the current contractions with extremal qqbar pair * production. This is calculated through the use of crossing symmetry. */ -double jM2WqqtoqQQqW(HLV ka, HLV kb,HLV pl,HLV plbar, std::vector<HLV> partons, bool aqlinepa, bool aqlinepb, bool qqxmarker, int nabove, int nbelow, bool forwards); //Doing - +double jM2WqqtoqQQqW(HLV ka, HLV kb,HLV pl,HLV plbar, std::vector<HLV> partons, + bool aqlinepa, bool aqlinepb, bool qqxmarker, int nabove, + int nbelow, bool forwards); //Doing //! Square of qQ->qQ Pure Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @returns Square of the current contractions for qQ->qQ Scattering - * - * This returns the square of the current contractions in qQ->qQ Pure Jet Scattering. + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @returns Square of the current contractions for qQ->qQ Scattering */ -double jM2qQ (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jM2qQ (HLV p1out, HLV p1in, HLV p2out, HLV p2in); //! Square of qQbar->qQbar Pure Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @returns Square of the current contractions for qQbar->qQbar Scattering + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @returns Square of the current contractions for qQbar->qQbar Scattering * - * This returns the square of the current contractions in qQbar->qQbar Pure Jet Scattering. - * Note this can be used for qbarQ->qbarQ Scattering by inputting arguments appropriately. + * @note this can be used for qbarQ->qbarQ Scattering by inputting arguments + * appropriately. */ -double jM2qQbar (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jM2qQbar (HLV p1out, HLV p1in, HLV p2out, HLV p2in); //! Square of qbarQbar->qbarQbar Pure Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @returns Square of the current contractions for qbarQbar->qbarQbar Scattering - * - * This returns the square of the current contractions in qbarQbar->qbarQbar Pure Jet Scattering. + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @returns Square of the current contractions for qbarQbar->qbarQbar Scattering */ -double jM2qbarQbar (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jM2qbarQbar (HLV p1out, HLV p1in, HLV p2out, HLV p2in); //! Square of qg->qg Pure Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @returns Square of the current contractions for qg->qg Scattering + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @returns Square of the current contractions for qg->qg Scattering * - * This returns the square of the current contractions in qg->qg Pure Jet Scattering. - * Note this can be used for gq->gq Scattering by inputting arguments appropriately. + * @note this can be used for gq->gq Scattering by inputting arguments + * appropriately. */ -double jM2qg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jM2qg (HLV p1out, HLV p1in, HLV p2out, HLV p2in); //! Square of qbarg->qbarg Pure Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @returns Square of the current contractions for qbarg->qbarg Scattering + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @returns Square of the current contractions for qbarg->qbarg Scattering * - * This returns the square of the current contractions in qbarg->qbarg Pure Jet Scattering. - * Note this can be used for gqbar->gqbar Scattering by inputting arguments appropriately. + * @note this can be used for gqbar->gqbar Scattering by inputting arguments + * appropriately. */ -double jM2qbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jM2qbarg (HLV p1out, HLV p1in, HLV p2out, HLV p2in); //! Square of gg->gg Pure Jets Scattering Current /** - * @param p1out Momentum of final state gluon - * @param p1in Momentum of initial state gluon - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @returns Square of the current contractions for gg->gg Scattering - * - * This returns the square of the current contractions in gg->gg Pure Jet Scattering. + * @param p1out Momentum of final state gluon + * @param p1in Momentum of initial state gluon + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @returns Square of the current contractions for gg->gg Scattering */ -double jM2gg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in); - +double jM2gg (HLV p1out, HLV p1in, HLV p2out, HLV p2in); //! Square of gg->gg Higgs+Jets Scattering Current /** - * @param p1out Momentum of final state gluon - * @param p1in Momentum of initial state gluon - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @param q1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for gg->gg Scattering - * - * This returns the square of the current contractions in gg->gg Higgs+Jet Scattering. + * @param p1out Momentum of final state gluon + * @param p1in Momentum of initial state gluon + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @param q1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for gg->gg Scattering * * g~p1 g~p2 * should be called with q1 meant to be contracted with p2 in first part of vertex * (i.e. if g is backward, q1 is forward) */ -double MH2gg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector q1, CLHEP::HepLorentzVector qH2, +double MH2gg (HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV q1, HLV qH2, double mt, bool include_bottom, double mb); //! Square of gq->gq Higgs+Jets Scattering Current with Higgs before Gluon /** - * @param p1out Momentum of final state gluon - * @param p1in Momentum of initial state gluon - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @param pH Momentum of Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contraction - * - */ -double MH2gq_outsideH(CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector pH, + * @param p1out Momentum of final state gluon + * @param p1in Momentum of initial state gluon + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @param pH Momentum of Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contraction + */ +double MH2gq_outsideH(HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV pH, double mt, bool include_bottom, double mb); - //! Square of qg->qg Higgs+Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @param q1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qg->qg Scattering - * - * This returns the square of the current contractions in qg->qg Higgs+Jet Scattering. + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @param q1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qg->qg Scattering * * q~p1 g~p2 (i.e. ALWAYS p1 for quark, p2 for gluon) * should be called with q1 meant to be contracted with p2 in first part of vertex * (i.e. if g is backward, q1 is forward) */ -double MH2qg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector q1, CLHEP::HepLorentzVector qH2, +double MH2qg (HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV q1, HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qbarg->qbarg Higgs+Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @param q1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarg->qbarg Scattering - * - * This returns the square of the current contractions in qbarg->qbarg Higgs+Jet Scattering. + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @param q1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarg->qbarg Scattering * * qbar~p1 g~p2 (i.e. ALWAYS p1 for anti-quark, p2 for gluon) * should be called with q1 meant to be contracted with p2 in first part of vertex * (i.e. if g is backward, q1 is forward) */ -double MH2qbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector q1, CLHEP::HepLorentzVector qH2, +double MH2qbarg (HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV q1, HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qQ->qQ Higgs+Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @param q1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qQ->qQ Scattering - * - * This returns the square of the current contractions in qQ->qQ Higgs+Jet Scattering. + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @param q1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qQ->qQ Scattering * * q~p1 Q~p2 (i.e. ALWAYS p1 for quark, p2 for quark) * should be called with q1 meant to be contracted with p2 in first part of vertex * (i.e. if Q is backward, q1 is forward) */ -double MH2qQ (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector q1, CLHEP::HepLorentzVector qH2, +double MH2qQ (HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV q1, HLV qH2, double mt, bool include_bottom, double mb); //! Square of qQbar->qQbar Higgs+Jets Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @param q1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qQ->qQ Scattering - * - * This returns the square of the current contractions in qQbar->qQbar Higgs+Jet Scattering. + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @param q1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qQ->qQ Scattering * * q~p1 Qbar~p2 (i.e. ALWAYS p1 for quark, p2 for anti-quark) * should be called with q1 meant to be contracted with p2 in first part of vertex * (i.e. if Qbar is backward, q1 is forward) */ -double MH2qQbar (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector q1, CLHEP::HepLorentzVector qH2, +double MH2qQbar (HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV q1, HLV qH2, double mt, bool include_bottom, double mb); //! Square of qbarQ->qbarQ Higgs+Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @param q1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarQ->qbarQ Scattering - * - * This returns the square of the current contractions in qbarQ->qbarQ Higgs+Jet Scattering. + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @param q1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarQ->qbarQ Scattering * * qbar~p1 Q~p2 (i.e. ALWAYS p1 for anti-quark, p2 for quark) * should be called with q1 meant to be contracted with p2 in first part of vertex * (i.e. if Q is backward, q1 is forward) */ -double MH2qbarQ (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector q1, CLHEP::HepLorentzVector qH2, +double MH2qbarQ (HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV q1, HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qbarQbar->qbarQbar Higgs+Jets Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @param q1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarQbar->qbarQbar Scattering - * - * This returns the square of the current contractions in qbarQbar->qbarQbar Higgs+Jet Scattering. + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @param q1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarQbar->qbarQbar Scattering * * qbar~p1 Qbar~p2 (i.e. ALWAYS p1 for anti-quark, p2 for anti-quark) * should be called with q1 meant to be contracted with p2 in first part of vertex * (i.e. if Qbar is backward, q1 is forward) */ -double MH2qbarQbar (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector p2out, CLHEP::HepLorentzVector p2in, - CLHEP::HepLorentzVector q1, CLHEP::HepLorentzVector qH2, +double MH2qbarQbar (HLV p1out, HLV p1in, + HLV p2out, HLV p2in, + HLV q1, HLV qH2, double mt, bool include_bottom, double mb); - // Unordered f //! Square of qQ->gqQ Higgs+Jets Unordered f Scattering Current /** - * @param pg Momentum of unordered gluon - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qQ->gqQ Scattering - * - * This returns the square of the current contractions in qQ->gqQ Higgs+Jet Scattering. + * @param pg Momentum of unordered gluon + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qQ->gqQ Scattering * * This construction is taking rapidity order: pg > p1out >> p2out */ -double jM2unogqHQ (CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out, - CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unogqHQ (HLV pg, HLV p1out, + HLV p1in, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qQbar->gqQbar Higgs+Jets Unordered f Scattering Current /** - * @param pg Momentum of unordered gluon - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qQbar->gqQbar Scattering - * - * This returns the square of the current contractions in qQbar->gqQbar Higgs+Jet Scattering. + * @param pg Momentum of unordered gluon + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qQbar->gqQbar Scattering * * This construction is taking rapidity order: pg > p1out >> p2out */ -double jM2unogqHQbar (CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out, - CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unogqHQbar (HLV pg, HLV p1out, + HLV p1in, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); //! Square of qbarQ->gqbarQ Higgs+Jets Unordered f Scattering Current /** - * @param pg Momentum of unordered gluon - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarQ->gqbarQ Scattering - * - * This returns the square of the current contractions in qbarQ->gqbarQ Higgs+Jet Scattering. + * @param pg Momentum of unordered gluon + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarQ->gqbarQ Scattering * * This construction is taking rapidity order: pg > p1out >> p2out */ -double jM2unogqbarHQ (CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out, - CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unogqbarHQ (HLV pg, HLV p1out, + HLV p1in, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); //! Square of qbarQbar->gqbarQbar Higgs+Jets Unordered f Scattering Current /** - * @param pg Momentum of unordered gluon - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarQbar->gqbarQbar Scattering - * - * This returns the square of the current contractions in qbarQbar->gqbarQbar Higgs+Jet Scattering. + * @param pg Momentum of unordered gluon + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarQbar->gqbarQbar Scattering * * This construction is taking rapidity order: pg > p1out >> p2out */ -double jM2unogqbarHQbar (CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out, - CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unogqbarHQbar (HLV pg, HLV p1out, + HLV p1in, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qg->gqg Higgs+Jets Unordered f Scattering Current /** - * @param pg Momentum of unordered gluon - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qg->gqg Scattering - * - * This returns the square of the current contractions in qg->gqg Higgs+Jet Scattering. + * @param pg Momentum of unordered gluon + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qg->gqg Scattering * * This construction is taking rapidity order: pg > p1out >> p2out */ -double jM2unogqHg (CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out, - CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unogqHg (HLV pg, HLV p1out, + HLV p1in, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qbarg->gqbarg Higgs+Jets Unordered f Scattering Current /** - * @param pg Momentum of unordered gluon - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param p2out Momentum of final state gluon - * @param p2in Momentum of intial state gluon - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarg->gbarg Scattering - * - * This returns the square of the current contractions in qbarg->gqbarg Higgs+Jet Scattering. + * @param pg Momentum of unordered gluon + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param p2out Momentum of final state gluon + * @param p2in Momentum of intial state gluon + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarg->gbarg Scattering * * This construction is taking rapidity order: pg > p1out >> p2out */ -double jM2unogqbarHg (CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p1out, - CLHEP::HepLorentzVector p1in, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unogqbarHg (HLV pg, HLV p1out, + HLV p1in, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); - //Unordered b //! Square of qbarQ->qbarQg Higgs+Jets Unordered b Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param pg Momentum of unordered b gluon - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarQ->qbarQg Scattering - * - * This returns the square of the current contractions in qbarQ->qbarQg Higgs+Jet Scattering. + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param pg Momentum of unordered b gluon + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarQ->qbarQg Scattering * * This construction is taking rapidity order: p1out >> p2out > pg */ -double jM2unobqbarHQg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unobqbarHQg (HLV p1out, HLV p1in, + HLV pg, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qQ->qQg Higgs+Jets Unordered b Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param pg Momentum of unordered b gluon - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qQ->qQg Scattering - * - * This returns the square of the current contractions in qQ->qQg Higgs+Jet Scattering. + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param pg Momentum of unordered b gluon + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qQ->qQg Scattering * * This construction is taking rapidity order: p1out >> p2out > pg */ -double jM2unobqHQg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unobqHQg (HLV p1out, HLV p1in, + HLV pg, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); - //! Square of qQbar->qQbarg Higgs+Jets Unordered b Scattering Current /** - * @param p1out Momentum of final state quark - * @param p1in Momentum of initial state quark - * @param pg Momentum of unordered b gluon - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qQbar->qQbarg Scattering - * - * This returns the square of the current contractions in qQbar->qQbarg Higgs+Jet Scattering. + * @param p1out Momentum of final state quark + * @param p1in Momentum of initial state quark + * @param pg Momentum of unordered b gluon + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qQbar->qQbarg Scattering * * This construction is taking rapidity order: p1out >> p2out > pg */ -double jM2unobqHQbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unobqHQbarg (HLV p1out, HLV p1in, + HLV pg, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); //! Square of qbarQbar->qbarQbarg Higgs+Jets Unordered b Scattering Current /** - * @param p1out Momentum of final state anti-quark - * @param p1in Momentum of initial state anti-quark - * @param pg Momentum of unordered b gluon - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for qbarQbar->qbarQbarg Scattering - * - * This returns the square of the current contractions in qbarQbar->qbarQbarg Higgs+Jet Scattering. + * @param p1out Momentum of final state anti-quark + * @param p1in Momentum of initial state anti-quark + * @param pg Momentum of unordered b gluon + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for qbarQbar->qbarQbarg Scattering * * This construction is taking rapidity order: p1out >> p2out > pg */ -double jM2unobqbarHQbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, + +double jM2unobqbarHQbarg (HLV p1out, HLV p1in, + HLV pg, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); - //! Square of gQbar->gQbarg Higgs+Jets Unordered b Scattering Current /** - * @param p1out Momentum of final state gluon - * @param p1in Momentum of initial state gluon - * @param pg Momentum of unordered b gluon - * @param p2out Momentum of final state anti-quark - * @param p2in Momentum of intial state anti-quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for gQbar->gQbarg Scattering - * - * This returns the square of the current contractions in gQbar->gQbarg Higgs+Jet Scattering. + * @param p1out Momentum of final state gluon + * @param p1in Momentum of initial state gluon + * @param pg Momentum of unordered b gluon + * @param p2out Momentum of final state anti-quark + * @param p2in Momentum of intial state anti-quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for gQbar->gQbarg Scattering * * This construction is taking rapidity order: p1out >> p2out > pg */ -double jM2unobgHQbarg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unobgHQbarg (HLV p1out, HLV p1in, + HLV pg, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); //! Square of gQ->gQg Higgs+Jets Unordered b Scattering Current /** - * @param p1out Momentum of final state gluon - * @param p1in Momentum of initial state gluon - * @param pg Momentum of unordered b gluon - * @param p2out Momentum of final state quark - * @param p2in Momentum of intial state quark - * @param qH1 Momentum of t-channel propagator before Higgs - * @param qH2 Momentum of t-channel propagator after Higgs - * @param mt Top quark mass - * @param include_bottom Specifies whether bottom corrections are included - * @param mb Bottom quark mass - * @returns Square of the current contractions for gQ->gQg Scattering - * - * This returns the square of the current contractions in gQ->gQg Higgs+Jet Scattering. + * @param p1out Momentum of final state gluon + * @param p1in Momentum of initial state gluon + * @param pg Momentum of unordered b gluon + * @param p2out Momentum of final state quark + * @param p2in Momentum of intial state quark + * @param qH1 Momentum of t-channel propagator before Higgs + * @param qH2 Momentum of t-channel propagator after Higgs + * @param mt Top quark mass + * @param include_bottom Specifies whether bottom corrections are included + * @param mb Bottom quark mass + * @returns Square of the current contractions for gQ->gQg Scattering * * This construction is taking rapidity order: p1out >> p2out > pg */ -double jM2unobgHQg (CLHEP::HepLorentzVector p1out, CLHEP::HepLorentzVector p1in, - CLHEP::HepLorentzVector pg, CLHEP::HepLorentzVector p2out, - CLHEP::HepLorentzVector p2in, CLHEP::HepLorentzVector qH1, - CLHEP::HepLorentzVector qH2, +double jM2unobgHQg (HLV p1out, HLV p1in, + HLV pg, HLV p2out, + HLV p2in, HLV qH1, + HLV qH2, double mt, bool include_bottom, double mb); // impact factors for Higgs + jet - //! Implements Eq. (4.22) in hep-ph/0301013 with modifications to incoming plus momenta /** * @param p2 Momentum of Particle 2 * @param p1 Momentum of Particle 1 * @param pH Momentum of Higgs * @returns Value of Eq. (4.22) in Hep-ph/0301013 with modifications * - * This gives the impact factor. First it determines first whether this is the case - * p1p\sim php>>p3p or the opposite + * This gives the impact factor. First it determines first whether this is the + * case p1p\sim php>>p3p or the opposite */ -double C2gHgm(CLHEP::HepLorentzVector p2, CLHEP::HepLorentzVector p1, - CLHEP::HepLorentzVector pH); - +double C2gHgm(HLV p2, HLV p1, HLV pH); //! Implements Eq. (4.23) in hep-ph/0301013 with modifications to incoming plus momenta /** * @param p2 Momentum of Particle 2 * @param p1 Momentum of Particle 1 * @param pH Momentum of Higgs * @returns Value of Eq. (4.23) in Hep-ph/0301013 * - * This gives the impact factor. First it determines first whether this is the case - * p1p\sim php>>p3p or the opposite + * This gives the impact factor. First it determines first whether this is the + * case p1p\sim php>>p3p or the opposite */ -double C2gHgp(CLHEP::HepLorentzVector p2, CLHEP::HepLorentzVector p1, - CLHEP::HepLorentzVector pH); - +double C2gHgp(HLV p2, HLV p1, HLV pH); //! Implements Eq. (4.22) in hep-ph/0301013 /** * @param p2 Momentum of Particle 2 * @param p1 Momentum of Particle 1 * @param pH Momentum of Higgs * @returns Value of Eq. (4.22) in Hep-ph/0301013 * - * This gives the impact factor. First it determines first whether this is the case - * p1p\sim php>>p3p or the opposite + * This gives the impact factor. First it determines first whether this is the + * case p1p\sim php>>p3p or the opposite */ -double C2qHqm(CLHEP::HepLorentzVector p2, CLHEP::HepLorentzVector p1, - CLHEP::HepLorentzVector pH); +double C2qHqm(HLV p2, HLV p1, HLV pH); /** \class CCurrent currents.hh "include/HEJ/currents.hh" * \brief This is the a new class structure for currents. */ class CCurrent { public: CCurrent(COM sc0, COM sc1, COM sc2, COM sc3) :c0(sc0),c1(sc1),c2(sc2),c3(sc3) {}; - CCurrent(const CLHEP::HepLorentzVector p) + CCurrent(const HLV p) { c0=p.e(); c1=p.px(); c2=p.py(); c3=p.pz(); }; CCurrent() {}; CCurrent operator+(const CCurrent& other); CCurrent operator-(const CCurrent& other); CCurrent operator*(const double x); CCurrent operator*(const COM x); CCurrent operator/(const double x); CCurrent operator/(const COM x); friend std::ostream& operator<<(std::ostream& os, const CCurrent& cur); - COM dot(CLHEP::HepLorentzVector p1); + COM dot(HLV p1); COM dot(CCurrent p1); COM c0,c1,c2,c3; -private: }; /* std::ostream& operator <<(std::ostream& os, const CCurrent& cur); */ CCurrent operator * ( double x, CCurrent& m); CCurrent operator * ( COM x, CCurrent& m); CCurrent operator / ( double x, CCurrent& m); CCurrent operator / ( COM x, CCurrent& m); //! Current <incoming state | mu | outgoing state> /** - * These functions are a mess. There are many more defined in the source file than declared in the - * header - and the arguments are mislabelled in some cases. Need to investigate. + * These functions are a mess. There are many more defined in the source file + * than declared in the header - and the arguments are mislabelled in some + * cases. Need to investigate. */ void jio(HLV pin, bool helin, HLV pout, bool helout, current &cur); //! Current <outgoing state | mu | outgoing state> /** - * These functions are a mess. There are many more defined in the source file than declared in the - * header - and the arguments are mislabelled in some cases. Need to investigate. + * These functions are a mess. There are many more defined in the source file + * than declared in the header - and the arguments are mislabelled in some + * cases. Need to investigate. */ void joo(HLV pi, bool heli, HLV pj, bool helj, current &cur); //! Current <outgoing state | mu | incoming state> /** - * These functions are a mess. There are many more defined in the source file than declared in the - * header - and the arguments are mislabelled in some cases. Need to investigate. + * These functions are a mess. There are many more defined in the source file + * than declared in the header - and the arguments are mislabelled in some + * cases. Need to investigate. */ void joi(HLV pout, bool helout, HLV pin, bool helin, current &cur); //! Current <outgoing state | mu | incoming state> /** - * These functions are a mess. There are many more defined in the source file than declared in the - * header - and the arguments are mislabelled in some cases. Need to investigate. + * These functions are a mess. There are many more defined in the source file + * than declared in the header - and the arguments are mislabelled in some + * cases. Need to investigate. */ -CCurrent joi (CLHEP::HepLorentzVector pout, bool helout, CLHEP::HepLorentzVector pin, bool helin); +CCurrent joi (HLV pout, bool helout, HLV pin, bool helin); //! Current <incoming state | mu | outgoing state> /** - * These functions are a mess. There are many more defined in the source file than declared in the - * header - and the arguments are mislabelled in some cases. Need to investigate. + * These functions are a mess. There are many more defined in the source file + * than declared in the header - and the arguments are mislabelled in some + * cases. Need to investigate. */ -CCurrent jio (CLHEP::HepLorentzVector pout, bool helout, CLHEP::HepLorentzVector pin, bool helin); +CCurrent jio (HLV pout, bool helout, HLV pin, bool helin); //! Current <outgoing state | mu | outgoing state> /** - * These functions are a mess. There are many more defined in the source file than declared in the - * header - and the arguments are mislabelled in some cases. Need to investigate. + * These functions are a mess. There are many more defined in the source file + * than declared in the header - and the arguments are mislabelled in some + * cases. Need to investigate. */ -CCurrent joo (CLHEP::HepLorentzVector pout, bool helout, CLHEP::HepLorentzVector pin, bool helin); +CCurrent joo (HLV pout, bool helout, HLV pin, bool helin); inline COM cdot(const current & j1, const current & j2) { return j1[0]*j2[0]-j1[1]*j2[1]-j1[2]*j2[2]-j1[3]*j2[3]; } inline COM cdot(const HLV & p, const current & j1) { return j1[0]*p.e()-j1[1]*p.x()-j1[2]*p.y()-j1[3]*p.z(); } inline void cmult(const COM & factor, const current & j1, current &cur) { cur[0]=factor*j1[0]; cur[1]=factor*j1[1]; cur[2]=factor*j1[2]; cur[3]=factor*j1[3]; } // WHY!?! inline void cadd(const current & j1, const current & j2, const current & j3, const current & j4, const current & j5, current &sum) { sum[0]=j1[0]+j2[0]+j3[0]+j4[0]+j5[0]; sum[1]=j1[1]+j2[1]+j3[1]+j4[1]+j5[1]; sum[2]=j1[2]+j2[2]+j3[2]+j4[2]+j5[2]; sum[3]=j1[3]+j2[3]+j3[3]+j4[3]+j5[3]; } inline void cadd(const current & j1, const current & j2, const current & j3, const current & j4, current &sum) { sum[0] = j1[0] + j2[0] + j3[0] + j4[0]; sum[1] = j1[1] + j2[1] + j3[1] + j4[1]; sum[2] = j1[2] + j2[2] + j3[2] + j4[2]; sum[3] = j1[3] + j2[3] + j3[3] + j4[3]; } inline void cadd(const current & j1, const current & j2, const current & j3, current &sum) { sum[0]=j1[0]+j2[0]+j3[0]; sum[1]=j1[1]+j2[1]+j3[1]; sum[2]=j1[2]+j2[2]+j3[2]; sum[3]=j1[3]+j2[3]+j3[3]; } inline void cadd(const current & j1, const current & j2, current &sum) { sum[0]=j1[0]+j2[0]; sum[1]=j1[1]+j2[1]; sum[2]=j1[2]+j2[2]; sum[3]=j1[3]+j2[3]; } inline double abs2(const COM & a) { return (a*conj(a)).real(); } inline double vabs2(const CCurrent & cur) { return abs2(cur.c0)-abs2(cur.c1)-abs2(cur.c2)-abs2(cur.c3); } inline double vre(const CCurrent & a, const CCurrent & b) { return real(a.c0*conj(b.c0)-a.c1*conj(b.c1)-a.c2*conj(b.c2)-a.c3*conj(b.c3)); } // @TODO: These are not currents and should be moved elsewhere. double K_g(double p1minus, double paminus); -double K_g(CLHEP::HepLorentzVector const & pout, CLHEP::HepLorentzVector const & pin); +double K_g(HLV const & pout, HLV const & pin);