Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F9501447
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
227 KB
Subscribers
None
View Options
diff --git a/include/HEJ/Constants.hh b/include/HEJ/Constants.hh
index 19be946..9b93cf5 100644
--- a/include/HEJ/Constants.hh
+++ b/include/HEJ/Constants.hh
@@ -1,41 +1,40 @@
/** \file
* \brief Header file defining all global constants used for HEJ
*
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
#pragma once
namespace HEJ{
/// @name QCD parameters
//@{
constexpr double N_C = 3.; //!< number of Colours
constexpr double C_A = N_C; //!< \f$C_A\f$
constexpr double C_F = (N_C*N_C - 1.)/(2.*N_C); //!< \f$C_F\f$
constexpr double t_f = 0.5; //!< \f$t_f\f$
constexpr double n_f = 5.; //!< number light flavours
constexpr double beta0 = 11./3.*C_A - 4./3.*t_f*n_f; //!< \f$\beta_0\f$
//@}
/// @name QFT parameters
//@{
- constexpr double vev = 246.2196508; //!< Higgs vacuum expectation value in GeV
constexpr double gw = 0.653233; //!< elector-weak coupling
constexpr double MW = 80.419; //!< The W mass in GeV/c^2
constexpr double GammaW = 2.0476; //!< the W width in GeV/c^2
//@}
/// @name Generation Parameters
//@{
//! @brief Default scale for virtual correction
//! \f$\lambda\f$ cf. eq. (20) in \cite Andersen:2011hs
constexpr double CLAMBDA = 0.2;
constexpr double CMINPT = 0.2; //!< minimal \f$p_t\f$ of all partons
//@}
/// @name Conventional Parameters
//@{
//! Value of first colour for colour dressing, according to LHE convention
//! \cite Boos:2001cv
constexpr int COLOUR_OFFSET = 501;
//@}
}
diff --git a/include/HEJ/Hjets.hh b/include/HEJ/Hjets.hh
index 1f234e7..9ccb831 100644
--- a/include/HEJ/Hjets.hh
+++ b/include/HEJ/Hjets.hh
@@ -1,384 +1,403 @@
/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
/** \file
* \brief Functions computing the square of current contractions in H+Jets.
*
* This file contains all the H+Jet specific components to compute
* the current contractions for valid HEJ processes, to form a full
* H+Jets ME, currently one would have to use functions from the
* jets.hh header also. We have FKL and also unordered components for
* H+Jets.
*
* @TODO add a namespace
*/
#pragma once
#include <CLHEP/Vector/LorentzVector.h>
typedef CLHEP::HepLorentzVector HLV;
//! 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
+ * @param vev Vacuum expectation value
* @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 ME_H_gg (HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV q1, HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @returns Square of the current contraction
*/
double ME_Houtside_gq(HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV pH,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @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 ME_H_qg (HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV q1, HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @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 ME_H_qbarg (HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV q1, HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @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 ME_H_qQ (HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV q1, HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @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 ME_H_qQbar (HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV q1, HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @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 ME_H_qbarQ (HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV q1, HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @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 ME_H_qbarQbar (HLV p1out, HLV p1in,
HLV p2out, HLV p2in,
HLV q1, HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! @name Unordered backwards
//! @{
//! 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
+ * @param vev Vacuum expectation value
* @returns Square of the current contractions for qbarQ->qbarQg Scattering
*
* This construction is taking rapidity order: p1out >> p2out > pg
*/
double ME_H_unob_qbarQ (HLV p1out, HLV p1in,
HLV pg, HLV p2out,
HLV p2in, HLV qH1,
HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @returns Square of the current contractions for qQ->qQg Scattering
*
* This construction is taking rapidity order: p1out >> p2out > pg
*/
double ME_H_unob_qQ (HLV p1out, HLV p1in,
HLV pg, HLV p2out,
HLV p2in, HLV qH1,
HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @returns Square of the current contractions for qQbar->qQbarg Scattering
*
* This construction is taking rapidity order: p1out >> p2out > pg
*/
double ME_H_unob_qQbar (HLV p1out, HLV p1in,
HLV pg, HLV p2out,
HLV p2in, HLV qH1,
HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @returns Square of the current contractions for qbarQbar->qbarQbarg Scattering
*
* This construction is taking rapidity order: p1out >> p2out > pg
*/
double ME_H_unob_qbarQbar (HLV p1out, HLV p1in,
HLV pg, HLV p2out,
HLV p2in, HLV qH1,
HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @returns Square of the current contractions for gQbar->gQbarg Scattering
*
* This construction is taking rapidity order: p1out >> p2out > pg
*/
double ME_H_unob_gQbar (HLV p1out, HLV p1in,
HLV pg, HLV p2out,
HLV p2in, HLV qH1,
HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! 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
+ * @param vev Vacuum expectation value
* @returns Square of the current contractions for gQ->gQg Scattering
*
* This construction is taking rapidity order: p1out >> p2out > pg
*/
double ME_H_unob_gQ (HLV p1out, HLV p1in,
HLV pg, HLV p2out,
HLV p2in, HLV qH1,
HLV qH2,
double mt,
- bool include_bottom, double mb);
+ bool include_bottom, double mb, double vev);
//! @}
//! @name impact factors for Higgs + jet
//! @{
//! Implements Eq. (4.22) in \cite DelDuca:2003ba with modifications to incoming plus momenta
/**
* @param p2 Momentum of Particle 2
* @param p1 Momentum of Particle 1
* @param pH Momentum of Higgs
+ * @param vev Vacuum expectation value
* @returns Value of Eq. (4.22) in \cite DelDuca:2003ba with modifications
*
* This gives the impact factor. First it determines whether this is the
* case \f$p1p\sim php\gg p3p\f$ or the opposite
*/
-double C2gHgm(HLV p2, HLV p1, HLV pH);
+double C2gHgm(HLV p2, HLV p1, HLV pH, double vev);
//! Implements Eq. (4.23) in \cite DelDuca:2003ba with modifications to incoming plus momenta
/**
* @param p2 Momentum of Particle 2
* @param p1 Momentum of Particle 1
* @param pH Momentum of Higgs
+ * @param vev Vacuum expectation value
* @returns Value of Eq. (4.23) in \cite DelDuca:2003ba
*
* This gives the impact factor. First it determines whether this is the
* case \f$p1p\sim php\gg p3p\f$ or the opposite
*/
-double C2gHgp(HLV p2, HLV p1, HLV pH);
+double C2gHgp(HLV p2, HLV p1, HLV pH, double vev);
//! Implements Eq. (4.22) in \cite DelDuca:2003ba
/**
* @param p2 Momentum of Particle 2
* @param p1 Momentum of Particle 1
* @param pH Momentum of Higgs
+ * @param vev Vacuum expectation value
* @returns Value of Eq. (4.22) in \cite DelDuca:2003ba
*
* This gives the impact factor. First it determines whether this is the
* case \f$p1p\sim php\gg p3p\f$ or the opposite
+ *
+ * @TODO remove this function is not used
*/
-double C2qHqm(HLV p2, HLV p1, HLV pH);
+double C2qHqm(HLV p2, HLV p1, HLV pH, double vev);
//! @}
diff --git a/src/Hjets.cc b/src/Hjets.cc
index 665f0a1..4ae5158 100644
--- a/src/Hjets.cc
+++ b/src/Hjets.cc
@@ -1,1083 +1,1083 @@
/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
#include "HEJ/jets.hh"
#include "HEJ/Hjets.hh"
#include <assert.h>
#include <limits>
#include "HEJ/Constants.hh"
#ifdef HEJ_BUILD_WITH_QCDLOOP
#include "qcdloop/qcdloop.h"
#endif
const COM looprwfactor = (COM(0.,1.)*M_PI*M_PI)/pow((2.*M_PI),4);
constexpr double infinity = std::numeric_limits<double>::infinity();
namespace {
// Loop integrals
#ifdef HEJ_BUILD_WITH_QCDLOOP
COM B0DD(HLV q, double mq)
{
static std::vector<std::complex<double>> result(3);
static auto ql_B0 = [](){
ql::Bubble<std::complex<double>,double,double> ql_B0;
ql_B0.setCacheSize(100);
return ql_B0;
}();
static std::vector<double> masses(2);
static std::vector<double> momenta(1);
for(auto & m: masses) m = mq*mq;
momenta.front() = q.m2();
ql_B0.integral(result, 1, masses, momenta);
return result[0];
}
COM C0DD(HLV q1, HLV q2, double mq)
{
static std::vector<std::complex<double>> result(3);
static auto ql_C0 = [](){
ql::Triangle<std::complex<double>,double,double> ql_C0;
ql_C0.setCacheSize(100);
return ql_C0;
}();
static std::vector<double> masses(3);
static std::vector<double> momenta(3);
for(auto & m: masses) m = mq*mq;
momenta[0] = q1.m2();
momenta[1] = q2.m2();
momenta[2] = (q1+q2).m2();
ql_C0.integral(result, 1, masses, momenta);
return result[0];
}
COM D0DD(HLV q1,HLV q2, HLV q3, double mq)
{
static std::vector<std::complex<double>> result(3);
static auto ql_D0 = [](){
ql::Box<std::complex<double>,double,double> ql_D0;
ql_D0.setCacheSize(100);
return ql_D0;
}();
static std::vector<double> masses(4);
static std::vector<double> momenta(6);
for(auto & m: masses) m = mq*mq;
momenta[0] = q1.m2();
momenta[1] = q2.m2();
momenta[2] = q3.m2();
momenta[3] = (q1+q2+q3).m2();
momenta[4] = (q1+q2).m2();
momenta[5] = (q2+q3).m2();
ql_D0.integral(result, 1, masses, momenta);
return result[0];
}
COM A1(HLV q1, HLV q2, double mt)
// As given in Eq. (B.2) of VDD
{
double q12,q22,Q2;
HLV Q;
double Delta3,mt2;
COM ans(COM(0.,0.));
q12=q1.m2();
q22=q2.m2();
Q=-q1-q2; // Define all momenta ingoing as in appendix of VDD
Q2=Q.m2();
Delta3=q12*q12+q22*q22+Q2*Q2-2*q12*q22-2*q12*Q2-2*q22*Q2;
assert(mt > 0.);
mt2=mt*mt;
ans=looprwfactor*COM(0,-1)*C0DD(q1,q2,mt)*( 4.*mt2/Delta3*(Q2-q12-q22)
-1.-4.*q12*q22/Delta3-12.*q12*q22*Q2/Delta3/Delta3*(q12+q22-Q2) )
- looprwfactor*COM(0,-1)*( B0DD(q2,mt)-B0DD(Q,mt) )
* ( 2.*q22/Delta3+12.*q12*q22/Delta3/Delta3*(q22-q12+Q2) )
- looprwfactor*COM(0,-1)*( B0DD(q1,mt)-B0DD(Q,mt) )
* ( 2.*q12/Delta3+12.*q12*q22/Delta3/Delta3*(q12-q22+Q2) )
- 2./Delta3/16/M_PI/M_PI*(q12+q22-Q2);
return ans;
}
COM A2(HLV q1, HLV q2, double mt)
// As given in Eq. (B.2) of VDD, but with high energy limit
// of invariants taken.
{
double q12,q22,Q2;
HLV Q;
double Delta3,mt2;
COM ans(COM(0.,0.));
assert(mt > 0.);
mt2=mt*mt;
q12=q1.m2();
q22=q2.m2();
Q=-q1-q2; // Define all momenta ingoing as in appendix of VDD
Q2=Q.m2();
Delta3=q12*q12+q22*q22+Q2*Q2-2*q12*q22-2*q12*Q2-2*q22*Q2;
ans=looprwfactor*COM(0,-1)*C0DD(q1,q2,mt)*( 2.*mt2+1./2.*(q12+q22-Q2)
+2.*q12*q22*Q2/Delta3 )
+looprwfactor*COM(0,-1)*(B0DD(q2,mt)-B0DD(Q,mt))
*q22*(q22-q12-Q2)/Delta3
+looprwfactor*COM(0,-1)*(B0DD(q1,mt)-B0DD(Q,mt))
*q12*(q12-q22-Q2)/Delta3+1./16/M_PI/M_PI;
return ans;
}
#else // no QCDloop
COM A1(HLV, HLV, double) {
throw std::logic_error{"A1 called without QCDloop support"};
}
COM A2(HLV, HLV, double) {
throw std::logic_error{"A2 called without QCDloop support"};
}
#endif
void to_current(const HLV & q, current & ret){
ret[0]=q.e();
ret[1]=q.x();
ret[2]=q.y();
ret[3]=q.z();
}
/**
* @brief Higgs vertex contracted with current @param C1 and @param C2
*/
COM cHdot(const current & C1, const current & C2, const current & q1,
- const current & q2, double mt, bool incBot, double mb)
+ const current & q2, double mt, bool incBot, double mb, double vev)
{
if (mt == infinity) {
- return (cdot(C1,C2)*cdot(q1,q2)-cdot(C1,q2)*cdot(C2,q1))/(3*M_PI*HEJ::vev);
+ return (cdot(C1,C2)*cdot(q1,q2)-cdot(C1,q2)*cdot(C2,q1))/(3*M_PI*vev);
}
else {
HLV vq1,vq2;
vq1.set(q1[1].real(),q1[2].real(),q1[3].real(),q1[0].real());
vq2.set(q2[1].real(),q2[2].real(),q2[3].real(),q2[0].real());
// first minus sign obtained because of q1-difference to VDD
- // Factor is because 4 mt^2 g^2/HEJ::vev A1 -> 16 pi mt^2/HEJ::vev alphas,
+ // Factor is because 4 mt^2 g^2/vev A1 -> 16 pi mt^2/vev alphas,
if(!(incBot))
- return 16.*M_PI*mt*mt/HEJ::vev*(-cdot(C1,q2)*cdot(C2,q1)*A1(-vq1,vq2,mt)
+ return 16.*M_PI*mt*mt/vev*(-cdot(C1,q2)*cdot(C2,q1)*A1(-vq1,vq2,mt)
-cdot(C1,C2)*A2(-vq1,vq2,mt));
else
- return 16.*M_PI*mt*mt/HEJ::vev*(-cdot(C1,q2)*cdot(C2,q1)*A1(-vq1,vq2,mt)
+ return 16.*M_PI*mt*mt/vev*(-cdot(C1,q2)*cdot(C2,q1)*A1(-vq1,vq2,mt)
-cdot(C1,C2)*A2(-vq1,vq2,mt))
- + 16.*M_PI*mb*mb/HEJ::vev*(-cdot(C1,q2)*cdot(C2,q1)*A1(-vq1,vq2,mb)
+ + 16.*M_PI*mb*mb/vev*(-cdot(C1,q2)*cdot(C2,q1)*A1(-vq1,vq2,mb)
-cdot(C1,C2)*A2(-vq1,vq2,mb));
}
}
//@{
/**
* @brief Higgs+Jets FKL Contributions, function to handle all incoming types.
* @param p1out Outgoing Particle 1. (W emission)
* @param p1in Incoming Particle 1. (W emission)
* @param p2out Outgoing Particle 2 (Quark, unordered emission this side.)
* @param p2in Incoming Particle 2 (Quark, unordered emission this side.)
* @param q1 t-channel momenta into higgs vertex
* @param q2 t-channel momenta out of higgs vertex
* @param mt top mass (inf or value)
* @param incBot Bool, to include bottom mass (true) or not (false)?
* @param mb bottom mass (value)
* @param pg Unordered Gluon momenta
* @param aqlineb Bool. Is Backwards quark line an anti-quark line?
* @param aqlinef Bool. Is Forwards quark line an anti-quark line?
*
* Calculates j^\mu H j_\mu. FKL with higgs vertex somewhere in the FKL chain.
* Handles all possible incoming states.
*/
double j_h_j(HLV p1out, HLV p1in, HLV p2out, HLV p2in,
HLV q1, HLV q2, double mt, bool incBot,
- double mb, bool aqlineb, bool aqlinef){
+ double mb, double vev, bool aqlineb, bool aqlinef){
current j1p,j1m,j2p,j2m, q1v, q2v;
// Note need to flip helicities in anti-quark case.
joi(p1out,!aqlineb, p1in,!aqlineb, j1p);
joi(p1out, aqlineb, p1in, aqlineb, j1m);
joi(p2out,!aqlinef, p2in,!aqlinef, j2p);
joi(p2out, aqlinef, p2in, aqlinef, j2m);
to_current(q1, q1v);
to_current(q2, q2v);
- COM Mmp=cHdot(j1m,j2p,q1v,q2v,mt, incBot, mb);
- COM Mmm=cHdot(j1m,j2m,q1v,q2v,mt, incBot, mb);
- COM Mpp=cHdot(j1p,j2p,q1v,q2v,mt, incBot, mb);
- COM Mpm=cHdot(j1p,j2m,q1v,q2v,mt, incBot, mb);
+ COM Mmp=cHdot(j1m,j2p,q1v,q2v,mt, incBot, mb, vev);
+ COM Mmm=cHdot(j1m,j2m,q1v,q2v,mt, incBot, mb, vev);
+ COM Mpp=cHdot(j1p,j2p,q1v,q2v,mt, incBot, mb, vev);
+ COM Mpm=cHdot(j1p,j2m,q1v,q2v,mt, incBot, mb, vev);
// average over helicities
const double sst=(abs2(Mmp)+abs2(Mmm)+abs2(Mpp)+abs2(Mpm))/4.;
return sst/((p1in-p1out).m2()*(p2in-p2out).m2()*q1.m2()*q2.m2());
}
} // namespace anonymous
double ME_H_qQ(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV q1, HLV q2,
- double mt, bool incBot, double mb){
- return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, false, false);
+ double mt, bool incBot, double mb, double vev){
+ return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, vev, false, false);
}
double ME_H_qQbar(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV q1, HLV q2,
- double mt, bool incBot, double mb){
- return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, false, true);
+ double mt, bool incBot, double mb, double vev){
+ return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, vev, false, true);
}
double ME_H_qbarQ(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV q1, HLV q2,
- double mt, bool incBot, double mb){
- return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, true, false);
+ double mt, bool incBot, double mb, double vev){
+ return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, vev, true, false);
}
double ME_H_qbarQbar(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV q1, HLV q2,
- double mt, bool incBot, double mb){
- return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, true, true);
+ double mt, bool incBot, double mb, double vev){
+ return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, vev, true, true);
}
double ME_H_qg(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV q1, HLV q2,
- double mt, bool incBot, double mb){
- return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, false, false)
+ double mt, bool incBot, double mb, double vev){
+ return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, vev, false, false)
* K_g(p2out,p2in)/HEJ::C_A;
}
double ME_H_qbarg(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV q1, HLV q2,
- double mt, bool incBot, double mb){
- return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, true, false)
+ double mt, bool incBot, double mb, double vev){
+ return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, vev, true, false)
* K_g(p2out,p2in)/HEJ::C_A;
}
double ME_H_gg(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV q1, HLV q2,
- double mt, bool incBot, double mb){
- return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, false, false)
+ double mt, bool incBot, double mb, double vev){
+ return j_h_j(p1out, p1in, p2out, p2in, q1, q2, mt, incBot, mb, vev, false, false)
* K_g(p2out,p2in)/HEJ::C_A * K_g(p1out,p1in)/HEJ::C_A;
}
//@}
namespace {
//@{
/// @brief Higgs vertex contracted with one current
CCurrent jH(HLV pout, bool helout, HLV pin,
bool helin, HLV q1, HLV q2,
- double mt, bool incBot, double mb)
+ double mt, bool incBot, double mb, double vev)
{
CCurrent j2 = joi(pout,helout,pin,helin);
CCurrent jq2(q2.e(),q2.px(),q2.py(),q2.pz());
if(mt == infinity)
- return ((q1.dot(q2))*j2 - j2.dot(q1)*jq2)/(3*M_PI*HEJ::vev);
+ return ((q1.dot(q2))*j2 - j2.dot(q1)*jq2)/(3*M_PI*vev);
else
{
if(incBot)
- return (-16.*M_PI*mb*mb/HEJ::vev*j2.dot(q1)*jq2*A1(-q1,q2,mb)
- -16.*M_PI*mb*mb/HEJ::vev*j2*A2(-q1,q2,mb))
- + (-16.*M_PI*mt*mt/HEJ::vev*j2.dot(q1)*jq2*A1(-q1,q2,mt)
- -16.*M_PI*mt*mt/HEJ::vev*j2*A2(-q1,q2,mt));
+ return (-16.*M_PI*mb*mb/vev*j2.dot(q1)*jq2*A1(-q1,q2,mb)
+ -16.*M_PI*mb*mb/vev*j2*A2(-q1,q2,mb))
+ + (-16.*M_PI*mt*mt/vev*j2.dot(q1)*jq2*A1(-q1,q2,mt)
+ -16.*M_PI*mt*mt/vev*j2*A2(-q1,q2,mt));
else
- return (-16.*M_PI*mt*mt/HEJ::vev*j2.dot(q1)*jq2*A1(-q1,q2,mt)
- -16.*M_PI*mt*mt/HEJ::vev*j2*A2(-q1,q2,mt));
+ return (-16.*M_PI*mt*mt/vev*j2.dot(q1)*jq2*A1(-q1,q2,mt)
+ -16.*M_PI*mt*mt/vev*j2*A2(-q1,q2,mt));
}
}
//@}
//@{
/**
* @brief Higgs+Jets Unordered Contributions, function to handle all incoming types.
* @param pg Unordered Gluon momenta
* @param p1out Outgoing Particle 1. (W emission)
* @param p1in Incoming Particle 1. (W emission)
* @param p2out Outgoing Particle 2 (Quark, unordered emission this side.)
* @param p2in Incoming Particle 2 (Quark, unordered emission this side.)
* @param q1 t-channel momenta into higgs vertex
* @param q2 t-channel momenta out of higgs vertex
* @param mt top mass (inf or value)
* @param incBot Bool, to include bottom mass (true) or not (false)?
* @param mb bottom mass (value)
* @param aqlineb Bool. Is Backwards quark line an anti-quark line?
* @param aqlinef Bool. Is Forwards quark line an anti-quark line?
*
* Calculates j_{uno}^\mu H j_\mu. Unordered with higgs vertex
* somewhere in the FKL chain. Handles all possible incoming states.
*/
double juno_h_j(HLV pg, HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV qH1, HLV qH2,
- double mt, bool incBot, double mb, bool aqlineb
+ double mt, bool incBot, double mb, double vev, bool aqlineb
){
// This construction is taking rapidity order: pg > p1out >> p2out
HLV q1=p1in-p1out; // Top End
HLV q2=-(p2in-p2out); // Bottom End
HLV qg=p1in-p1out-pg; // Extra bit post-gluon
// Note <p1|eps|pa> current split into two by gauge choice.
// See James C's Thesis (p72). <p1|eps|pa> -> <p1|pg><pg|pa>
CCurrent mj1p=joi(p1out,!aqlineb, p1in,!aqlineb);
CCurrent mj1m=joi(p1out, aqlineb, p1in, aqlineb);
CCurrent jgap=joi(pg, !aqlineb, p1in,!aqlineb);
CCurrent jgam=joi(pg, aqlineb, p1in, aqlineb);
// Note for function joo(): <p1+|pg+> = <pg-|p1->.
CCurrent j2gp=joo(p1out, !aqlineb, pg, !aqlineb);
CCurrent j2gm=joo(p1out, aqlineb, pg, aqlineb);
- CCurrent mjH2p=jH(p2out, true,p2in, true,qH1,qH2,mt,incBot,mb);
- CCurrent mjH2m=jH(p2out,false,p2in,false,qH1,qH2,mt,incBot,mb);
+ CCurrent mjH2p=jH(p2out, true,p2in, true,qH1,qH2,mt,incBot,mb, vev);
+ CCurrent mjH2m=jH(p2out,false,p2in,false,qH1,qH2,mt,incBot,mb, vev);
// Dot products of these which occur again and again
COM MHmp=mj1m.dot(mjH2p);
COM MHmm=mj1m.dot(mjH2m);
COM MHpp=mj1p.dot(mjH2p);
COM MHpm=mj1p.dot(mjH2m);
CCurrent p2o(p2out), p2i(p2in), p1o(p1out), p1i(p1in), qsum(q1+qg);
CCurrent Lmm=(qsum*(MHmm) + (-2.*mjH2m.dot(pg))*mj1m + 2.*mj1m.dot(pg)*mjH2m
+ ( p2o/pg.dot(p2out) + p2i/pg.dot(p2in) )*( qg.m2()*MHmm/2.) )/q1.m2();
CCurrent Lmp=(qsum*(MHmp) + (-2.*mjH2p.dot(pg))*mj1m + 2.*mj1m.dot(pg)*mjH2p
+ ( p2o/pg.dot(p2out) + p2i/pg.dot(p2in) )*( qg.m2()*MHmp/2.) )/q1.m2();
CCurrent Lpm=(qsum*(MHpm) + (-2.*mjH2m.dot(pg))*mj1p + 2.*mj1p.dot(pg)*mjH2m
+ ( p2o/pg.dot(p2out) + p2i/pg.dot(p2in) )*( qg.m2()*MHpm/2.) )/q1.m2();
CCurrent Lpp=(qsum*(MHpp) + (-2.*mjH2p.dot(pg))*mj1p + 2.*mj1p.dot(pg)*mjH2p
+ ( p2o/pg.dot(p2out) + p2i/pg.dot(p2in) )*( qg.m2()*MHpp/2.) )/q1.m2();
CCurrent U1mm=(jgam.dot(mjH2m)*j2gm+2.*p1o*MHmm)/(p1out+pg).m2();
CCurrent U1mp=(jgam.dot(mjH2p)*j2gm+2.*p1o*MHmp)/(p1out+pg).m2();
CCurrent U1pm=(jgap.dot(mjH2m)*j2gp+2.*p1o*MHpm)/(p1out+pg).m2();
CCurrent U1pp=(jgap.dot(mjH2p)*j2gp+2.*p1o*MHpp)/(p1out+pg).m2();
CCurrent U2mm=((-1.)*j2gm.dot(mjH2m)*jgam+2.*p1i*MHmm)/(p1in-pg).m2();
CCurrent U2mp=((-1.)*j2gm.dot(mjH2p)*jgam+2.*p1i*MHmp)/(p1in-pg).m2();
CCurrent U2pm=((-1.)*j2gp.dot(mjH2m)*jgap+2.*p1i*MHpm)/(p1in-pg).m2();
CCurrent U2pp=((-1.)*j2gp.dot(mjH2p)*jgap+2.*p1i*MHpp)/(p1in-pg).m2();
constexpr double cf=HEJ::C_F;
double amm=cf*(2.*vre(Lmm-U1mm,Lmm+U2mm))+2.*cf*cf/3.*vabs2(U1mm+U2mm);
double amp=cf*(2.*vre(Lmp-U1mp,Lmp+U2mp))+2.*cf*cf/3.*vabs2(U1mp+U2mp);
double apm=cf*(2.*vre(Lpm-U1pm,Lpm+U2pm))+2.*cf*cf/3.*vabs2(U1pm+U2pm);
double app=cf*(2.*vre(Lpp-U1pp,Lpp+U2pp))+2.*cf*cf/3.*vabs2(U1pp+U2pp);
double ampsq=-(amm+amp+apm+app)/(q2.m2()*qH2.m2());
// Now add the t-channels for the Higgs
ampsq/=qH1.m2()*qg.m2();
ampsq/=16.;
// Factor of (Cf/Ca) for each quark to match ME_H_qQ.
ampsq*=HEJ::C_F*HEJ::C_F/HEJ::C_A/HEJ::C_A;
return ampsq;
}
} // namespace anonymous
double ME_H_unob_qQ(HLV pg, HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV qH1,
- HLV qH2, double mt, bool incBot, double mb){
- return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, false);
+ HLV qH2, double mt, bool incBot, double mb, double vev){
+ return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, vev, false);
}
double ME_H_unob_qbarQ(HLV pg, HLV p1out, HLV p1in, HLV p2out, HLV p2in,
- HLV qH1, HLV qH2, double mt, bool incBot, double mb){
- return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, true);
+ HLV qH1, HLV qH2, double mt, bool incBot, double mb, double vev){
+ return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, vev, true);
}
double ME_H_unob_qQbar(HLV pg, HLV p1out, HLV p1in, HLV p2out, HLV p2in,
- HLV qH1, HLV qH2, double mt, bool incBot, double mb){
- return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, false);
+ HLV qH1, HLV qH2, double mt, bool incBot, double mb, double vev){
+ return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, vev, false);
}
double ME_H_unob_qbarQbar(HLV pg, HLV p1out, HLV p1in, HLV p2out, HLV p2in,
- HLV qH1, HLV qH2, double mt, bool incBot, double mb){
- return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, true);
+ HLV qH1, HLV qH2, double mt, bool incBot, double mb, double vev){
+ return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, vev, true);
}
double ME_H_unob_gQ(HLV pg, HLV p1out, HLV p1in, HLV p2out, HLV p2in,
- HLV qH1, HLV qH2, double mt, bool incBot, double mb){
- return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, false)*K_g(p2out,p2in)/HEJ::C_F;
+ HLV qH1, HLV qH2, double mt, bool incBot, double mb, double vev){
+ return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, vev, false)*K_g(p2out,p2in)/HEJ::C_F;
}
double ME_H_unob_gQbar(HLV pg, HLV p1out, HLV p1in, HLV p2out, HLV p2in,
- HLV qH1, HLV qH2, double mt, bool incBot, double mb){
- return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, true)*K_g(p2out,p2in)/HEJ::C_F;
+ HLV qH1, HLV qH2, double mt, bool incBot, double mb, double vev){
+ return juno_h_j(pg, p1out, p1in, p2out, p2in, qH1, qH2, mt, incBot, mb, vev, true)*K_g(p2out,p2in)/HEJ::C_F;
}
//@}
// Begin finite mass stuff
#ifdef HEJ_BUILD_WITH_QCDLOOP
namespace {
// All the stuff needed for the box functions in qg->qgH now...
COM E1(HLV k1, HLV k2, HLV kh, double mq){
HLV q2=-(k1+k2+kh);
double Delta, Sigma, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
Sigma = 4.*s12*s34 - pow(S1+S2,2);
return looprwfactor*(-s12*D0DD(k2, k1, q2, mq)*(1 - 8.*mq*mq/s12 + S2/(2.*s12) +
S2*(s12 - 8.*mq*mq)*(s34 + S1)/(2.*s12*Delta) +
2.*(s34 + S1)*(s34 + S1)/Delta +
S2*pow((s34 + S1),3)/Delta/Delta) - ((s12 + S2)*C0DD(k2,
k1 + q2, mq) -
s12*C0DD(k1, k2, mq) + (S1 - S2)*C0DD(k1 + k2, q2, mq) -
S1*C0DD(k1, q2,
mq))*(S2*(s12 - 4.*mq*mq)/(2.*s12*Delta) +
2.*(s34 + S1)/Delta +
S2*pow((s34 + S1),2)/Delta/Delta) + (C0DD(k1, q2, mq) -
C0DD(k1 + k2, q2, mq))*(1. - 4.*mq*mq/s12) -
C0DD(k1 + k2, q2, mq)*2.*s34/
S1 - (B0DD(k1 + q2, mq) -
B0DD(k1 + k2 + q2, mq))*2.*s34*(s34 +
S1)/(S1*Delta) + (B0DD(q2, mq) -
B0DD(k1 + k2 + q2, mq) +
s12*C0DD(k1 + k2, q2,
mq))*(2.*s34*(s34 +
S1)*(S1 - S2)/(Delta*Sigma) +
2.*s34*(s34 + S1)/(S1*Delta)) + (B0DD(k1 + k2, mq) -
B0DD(k1 + k2 + q2,
mq) - (s34 + S1 + S2)*C0DD(k1 + k2, q2, mq))*2.*(s34 +
S1)*(2.*s12*s34 -
S2*(S1 + S2))/(Delta*Sigma));
}
COM F1(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, Sigma, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
Sigma = 4.*s12*s34 - pow(S1+S2,2);
return looprwfactor*(-S2*D0DD(k1, k2, q2,
mq)*(0.5 - (s12 - 8.*mq*mq)*(s34 + S2)/(2.*Delta) -
s12*pow((s34 + S2),3)/Delta/Delta) + ((s12 + S1)*C0DD(k1,
k2 + q2, mq) -
s12*C0DD(k1, k2, mq) - (S1 - S2)*C0DD(k1 + k2, q2, mq) -
S2*C0DD(k2, q2,
mq))*(S2*(s12 - 4.*mq*mq)/(2.*s12*Delta) +
S2*pow((s34 + S2),2)/Delta/Delta)
- (C0DD(k1 + k2, q2, mq) - C0DD(k1, k2 + q2, mq))*(1. - 4.*mq*mq/s12)
- C0DD(k1, k2 + q2, mq) + (B0DD(k2 + q2, mq) -
B0DD(k1 + k2 + q2,
mq))*2.*pow((s34 + S2),2)/((s12 + S1)*Delta) - (B0DD(
q2, mq) - B0DD(k1 + k2 + q2, mq) +
s12*C0DD(k1 + k2, q2, mq))*2.*s34*(s34 +
S2)*(S2 - S1)/(Delta*Sigma) + (B0DD(
k1 + k2, mq) -
B0DD(k1 + k2 + q2,
mq) - (s34 + S1 + S2)*C0DD(k1 + k2, q2, mq))*2.*(s34 +
S2)*(2.*s12*s34 -
S2*(S1 + S2))/(Delta*Sigma));
}
COM G1(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
return looprwfactor*(S2*D0DD(k1, q2, k2,
mq)*(Delta/s12/s12 - 4.*mq*mq/s12) -
S2*((s12 + S1)*C0DD(k1, k2 + q2, mq) -
S1*C0DD(k1, q2, mq))*(1./
s12/s12 - (s12 - 4.*mq*mq)/(2.*s12*Delta)) -
S2*((s12 + S2)*C0DD(k1 + q2, k2, mq) -
S2*C0DD(k2, q2, mq))*(1./
s12/s12 + (s12 - 4.*mq*mq)/(2.*s12*Delta)) -
C0DD(k1, q2, mq) - (C0DD(k1, k2 + q2, mq) -
C0DD(k1, q2, mq))*4.*mq*mq/
s12 + (B0DD(k1 + q2, mq) - B0DD(k1 + k2 + q2, mq))*2./
s12 + (B0DD(k1 + q2, mq) -
B0DD(q2, mq))*2.*s34/(s12*S1) + (B0DD(k2 + q2, mq) -
B0DD(k1 + k2 + q2, mq))*2.*(s34 + S2)/(s12*(s12 + S1)));
}
COM E4(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, Sigma, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
Sigma = 4.*s12*s34 - pow(S1+S2,2);
return looprwfactor* (-s12*D0DD(k2, k1, q2,
mq)*(0.5 - (S1 - 8.*mq*mq)*(s34 + S1)/(2.*Delta) -
s12*pow((s34 + S1),3)/Delta/Delta) + ((s12 + S2)*C0DD(k2,
k1 + q2, mq) -
s12*C0DD(k1, k2, mq) + (S1 - S2)*C0DD(k1 + k2, q2, mq) -
S1*C0DD(k1, q2, mq))*((S1 - 4.*mq*mq)/(2.*Delta) +
s12*pow((s34 + S1),2)/Delta/Delta) -
C0DD(k1 + k2, q2, mq) + (B0DD(k1 + q2, mq) -
B0DD(k1 + k2 + q2, mq))*(2.*s34/Delta +
2.*s12*(s34 + S1)/((s12 + S2)*Delta)) - (B0DD(
q2, mq) - B0DD(k1 + k2 + q2, mq) +
s12*C0DD(k1 + k2, q2,
mq))*((2.*s34*(2.*s12*s34 - S2*(S1 + S2) +
s12*(S1 - S2)))/(Delta*Sigma)) + (B0DD(k1 + k2, mq) -
B0DD(k1 + k2 + q2, mq) - (s34 + S1 + S2)*C0DD(k1 + k2, q2, mq))
*((2.*s12*(2.*s12*s34 - S1*(S1 + S2) + s34*(S2 - S1)))/(Delta*Sigma)));
}
COM F4(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, Sigma, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
Sigma = 4.*s12*s34 - pow(S1+S2,2);
return looprwfactor* (-s12*D0DD(k1, k2, q2,
mq)*(0.5 + (S1 - 8.*mq*mq)*(s34 + S2)/(2.*Delta) +
s12*pow((s34 + S2),3)/Delta/Delta) - ((s12 + S1)*C0DD(k1,
k2 + q2, mq) -
s12*C0DD(k1, k2, mq) - (S1 - S2)*C0DD(k1 + k2, q2, mq) -
S2*C0DD(k2, q2, mq))*((S1 - 4.*mq*mq)/(2.*Delta) +
s12*pow((s34 + S2),2)/Delta/Delta) -
C0DD(k1 + k2, q2, mq) - (B0DD(k2 + q2, mq) -
B0DD(k1 + k2 + q2, mq))*2.*(s34 +
S2)/Delta + (B0DD(q2, mq) -
B0DD(k1 + k2 + q2, mq) +
s12*C0DD(k1 + k2, q2, mq))*2.*s34*(2.*s12*s34 -
S1*(S1 + S2) +
s12*(S2 - S1))/(Delta*Sigma) - (B0DD(k1 + k2, mq) -
B0DD(k1 + k2 + q2, mq) - (s34 + S1 + S2)*C0DD(k1 + k2, q2, mq))
*(2.*s12*(2.*s12*s34 - S2*(S1 + S2) + s34*(S1 - S2))/(Delta*Sigma)));
}
COM G4(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
return looprwfactor* (-D0DD(k1, q2, k2,
mq)*(Delta/s12 + (s12 + S1)/2. -
4.*mq*mq) + ((s12 + S1)*C0DD(k1, k2 + q2, mq) -
S1*C0DD(k1, q2, mq))*(1./
s12 - (S1 - 4.*mq*mq)/(2.*Delta)) + ((s12 + S2)*C0DD(
k1 + q2, k2, mq) -
S2*C0DD(k2, q2, mq))*(1./
s12 + (S1 - 4.*mq*mq)/(2.*Delta)) + (B0DD(
k1 + k2 + q2, mq) -
B0DD(k1 + q2, mq))*2./(s12 + S2));
}
COM E10(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, Sigma, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
Sigma = 4.*s12*s34 - pow(S1+S2,2);
return looprwfactor*(-s12*D0DD(k2, k1, q2, mq)*((s34 + S1)/Delta +
12.*mq*mq*S1*(s34 + S1)/Delta/Delta -
4.*s12*S1*pow((s34 + S1),3)/Delta/Delta/Delta) - ((s12 + S2)*C0DD(k2, k1 + q2, mq) -
s12*C0DD(k1, k2, mq) + (S1 - S2)*C0DD(k1 + k2, q2, mq) -
S1*C0DD(k1, q2, mq))*(1./Delta +
4.*mq*mq*S1/Delta/Delta -
4.*s12*S1*pow((s34 + S1),2)/Delta/Delta/Delta) +
C0DD(k1 + k2, q2, mq)*(4.*s12*s34*(S1 - S2)/(Delta*Sigma) -
4.*(s12 -
2.*mq*mq)*(2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma)) + (B0DD(k1 + q2, mq) -
B0DD(k1 + k2 + q2, mq))*(4.*(s34 + S1)/((s12 + S2)*Delta) +
8.*S1*(s34 + S1)/Delta/Delta) + (B0DD(q2, mq) -
B0DD(k1 + k2 + q2, mq) +
s12*C0DD(k1 + k2, q2, mq))*(12.*s34*(2.*s12 + S1 +
S2)*(2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma*Sigma) -
4.*s34*(4.*s12 + 3.*S1 +
S2)/(Delta*Sigma) +
8.*s12*s34*(s34*(s12 + S2) -
S1*(s34 +
S1))/(Delta*Delta*Sigma)) + (B0DD(k1 + k2, mq) -
B0DD(k1 + k2 + q2, mq) - (s34 + S1 + S2)*C0DD(k1 + k2, q2,
mq))*(12.*s12*(2.*s34 + S1 +
S2)*(2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma*Sigma) +
8.*s12*S1*(s34*(s12 + S2) -
S1*(s34 +
S1))/(Delta*Delta*Sigma))) + (COM(0.,1.)/(4.*M_PI*M_PI))*((2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma));
}
COM F10(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, Sigma, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
Sigma = 4.*s12*s34 - pow(S1+S2,2);
return looprwfactor* (s12*D0DD(k1, k2, q2,
mq)*((s34 + S2)/Delta - 4.*mq*mq/Delta +
12.*mq*mq*s34*(s12 + S1)/Delta/Delta -
4.*s12*pow((s34 + S2),2)/Delta/Delta -
4.*s12*S1*pow((s34 + S2),3)/Delta/Delta/Delta) + ((s12 + S1)*C0DD(k1, k2 + q2, mq) -
s12*C0DD(k1, k2, mq) - (S1 - S2)*C0DD(k1 + k2, q2, mq) -
S2*C0DD(k2, q2, mq))*(1./Delta +
4.*mq*mq*S1/Delta/Delta -
4.*s12*(s34 + S2)/Delta/Delta -
4.*s12*S1*pow((s34 + S2),2)/Delta/Delta/Delta) -
C0DD(k1 + k2, q2, mq)*(4.*s12*s34/(S2*Delta) +
4.*s12*s34*(S2 - S1)/(Delta*Sigma) +
4.*(s12 -
2.*mq*mq)*(2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma)) - (B0DD(
k2 + q2, mq) -
B0DD(k1 + k2 + q2, mq))*(4.*s34/(S2*Delta) +
8.*s34*(s12 + S1)/Delta/Delta) - (B0DD(q2, mq) -
B0DD(k1 + k2 + q2, mq) +
s12*C0DD(k1 + k2, q2,
mq))*(-12*s34*(2*s12 + S1 +
S2)*(2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma*Sigma) -
4.*s12*s34*s34/(S2*Delta*Delta) +
4.*s34*S1/(Delta*Sigma) -
4.*s34*(s12*s34*(2.*s12 + S2) -
S1*S1*(2.*s12 +
S1))/(Delta*Delta*Sigma)) - (B0DD(k1 + k2, mq) -
B0DD(k1 + k2 + q2, mq) - (s34 + S1 + S2)*C0DD(k1 + k2, q2, mq))*(-12.*s12*(2.*s34 + S1 +
S2)*(2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma*Sigma) +
8.*s12*(2.*s34 + S1)/(Delta*Sigma) -
8.*s12*s34*(2.*s12*s34 - S1*(S1 + S2) +
s12*(S2 -
S1))/(Delta*Delta*Sigma))) + (COM(0.,1.)/(4.*M_PI*M_PI))*((2.*s12*s34 -
S1*(S1 + S2))/(Delta*Sigma));
}
COM G10(HLV k1, HLV k2, HLV kh, double mq){
HLV q2 = -(k1+k2+kh);
double Delta, S1, S2, s12, s34;
S1 = 2.*k1.dot(q2);
S2 = 2.*k2.dot(q2);
s12 = 2.*k1.dot(k2);
s34 = q2.m2();
Delta = s12*s34 - S1*S2;
return looprwfactor* (-D0DD(k1, q2, k2, mq)*(1. +
4.*S1*mq*mq/Delta) + ((s12 + S1)*C0DD(k1,
k2 + q2, mq) -
S1*C0DD(k1, q2, mq))*(1./Delta +
4.*S1*mq*mq/Delta/Delta) - ((s12 + S2)*C0DD(k1 + q2,
k2, mq) - S2*C0DD(k2, q2, mq))*(1./Delta +
4.*S1*mq*mq/Delta/Delta) + (B0DD(k1 + k2 + q2, mq) -
B0DD(k1 + q2, mq))*4.*(s34 +
S1)/(Delta*(s12 + S2)) + (B0DD(q2, mq) -
B0DD(k2 + q2, mq))*4.*s34/(Delta*S2));
}
COM H1(HLV k1, HLV k2, HLV kh, double mq){
return E1(k1,k2,kh,mq)+F1(k1,k2,kh,mq)+G1(k1,k2,kh,mq);
}
COM H4(HLV k1, HLV k2, HLV kh, double mq){
return E4(k1,k2,kh,mq)+F4(k1,k2,kh,mq)+G4(k1,k2,kh,mq);
}
COM H10(HLV k1, HLV k2, HLV kh, double mq){
return E10(k1,k2,kh,mq)+F10(k1,k2,kh,mq)+G10(k1,k2,kh,mq);
}
COM H2(HLV k1, HLV k2, HLV kh, double mq){
return -1.*H1(k2,k1,kh,mq);
}
COM H5(HLV k1, HLV k2, HLV kh, double mq){
return -1.*H4(k2,k1,kh,mq);
}
COM H12(HLV k1, HLV k2, HLV kh, double mq){
return -1.*H10(k2,k1,kh,mq);
}
// FL and FT functions
COM FL(HLV q1, HLV q2, double mq){
HLV Q = q1 + q2;
double detQ2 = q1.m2()*q2.m2() - q1.dot(q2)*q1.dot(q2);
return -1./(2.*detQ2)*((2.-
3.*q1.m2()*q2.dot(Q)/detQ2)*(B0DD(q1, mq) -
B0DD(Q, mq)) + (2. -
3.*q2.m2()*q1.dot(Q)/detQ2)*(B0DD(q2, mq) -
B0DD(Q, mq)) - (4.*mq*mq + q1.m2() + q2.m2() +
Q.m2() - 3.*q1.m2()*q2.m2()*Q.m2()/detQ2)*C0DD(
q1, q2, mq) - 2.);
}
COM FT(HLV q1, HLV q2, double mq){
HLV Q = q1 + q2;
double detQ2 = q1.m2()*q2.m2() - q1.dot(q2)*q1.dot(q2);
return -1./(2.*detQ2)*(Q.m2()*(B0DD(q1, mq) + B0DD(q2, mq) - 2.*B0DD(Q, mq) -
2.*q1.dot(q2)*C0DD(q1, q2, mq)) + (q1.m2() -
q2.m2()) *(B0DD(q1, mq) - B0DD(q2, mq))) -
q1.dot(q2)*FL(q1, q2, mq);
}
HLV ParityFlip(HLV p){
HLV flippedVector;
flippedVector.setE(p.e());
flippedVector.setX(-p.x());
flippedVector.setY(-p.y());
flippedVector.setZ(-p.z());
return flippedVector;
}
/// @brief HC amp for qg->qgH with finite top (i.e. j^{++}_H)
void g_gH_HC(HLV pa, HLV p1,
- HLV pH, double mq, current &retAns)
+ HLV pH, double mq, double vev, current &retAns)
{
current cura1,pacur,p1cur,pHcur,conjeps1,conjepsH1,epsa,epsHa,epsHapart1,
epsHapart2,conjepsH1part1,conjepsH1part2;
COM ang1a,sqa1;
- const double F = 4.*mq*mq/HEJ::vev;
+ const double F = 4.*mq*mq/vev;
// Easier to have the whole thing as current object so I can use cdot functionality.
// Means I need to write pa,p1 as current objects
to_current(pa, pacur);
to_current(p1,p1cur);
to_current(pH,pHcur);
bool gluonforward = true;
if(pa.z() < 0)
gluonforward = false;
//HEJ gauge
jio(pa,false,p1,false,cura1);
if(gluonforward){
// sqrt(2pa_-/p1_-)*p1_perp/abs(p1_perp)
ang1a = sqrt(pa.plus()*p1.minus())*(p1.x()+COM(0.,1.)*p1.y())/p1.perp();
// sqrt(2pa_-/p1_-)*p1_perp*/abs(p1_perp)
sqa1 = sqrt(pa.plus()*p1.minus())*(p1.x()-COM(0.,1.)*p1.y())/p1.perp();
} else {
ang1a = sqrt(pa.minus()*p1.plus());
sqa1 = sqrt(pa.minus()*p1.plus());
}
const double prop = (pa-p1-pH).m2();
cmult(-1./sqrt(2)/ang1a,cura1,conjeps1);
cmult(1./sqrt(2)/sqa1,cura1,epsa);
const COM Fta = FT(-pa,pa-pH,mq)/(pa-pH).m2();
const COM Ft1 = FT(-p1-pH,p1,mq)/(p1+pH).m2();
const COM h4 = H4(p1,-pa,pH,mq);
const COM h5 = H5(p1,-pa,pH,mq);
const COM h10 = H10(p1,-pa,pH,mq);
const COM h12 = H12(p1,-pa,pH,mq);
cmult(Fta*pa.dot(pH), epsa, epsHapart1);
cmult(-1.*Fta*cdot(pHcur,epsa), pacur, epsHapart2);
cmult(Ft1*cdot(pHcur,conjeps1), p1cur, conjepsH1part1);
cmult(-Ft1*p1.dot(pH), conjeps1, conjepsH1part2);
cadd(epsHapart1, epsHapart2, epsHa);
cadd(conjepsH1part1, conjepsH1part2, conjepsH1);
const COM aH1 = cdot(pHcur, cura1);
current T1,T2,T3,T4,T5,T6,T7,T8,T9,T10;
if(gluonforward){
cmult(sqrt(2.)*sqrt(p1.plus()/pa.plus())*prop/sqa1, conjepsH1, T1);
cmult(-sqrt(2.)*sqrt(pa.plus()/p1.plus())*prop/ang1a, epsHa, T2);
}
else{
cmult(-sqrt(2.)*sqrt(p1.minus()/pa.minus())
*((p1.x()-COM(0.,1.)*p1.y())/p1.perp())*prop/sqa1, conjepsH1, T1);
cmult(sqrt(2.)*sqrt(pa.minus()/p1.minus())
*((p1.x()-COM(0.,1.)*p1.y())/p1.perp())*prop/ang1a, epsHa, T2);
}
cmult(sqrt(2.)/ang1a*aH1, epsHa, T3);
cmult(sqrt(2.)/sqa1*aH1, conjepsH1, T4);
cmult(-sqrt(2.)*Fta*pa.dot(p1)*aH1/sqa1, conjeps1, T5);
cmult(-sqrt(2.)*Ft1*pa.dot(p1)*aH1/ang1a, epsa, T6);
cmult(-aH1/sqrt(2.)/sqa1*h4*8.*COM(0.,1.)*M_PI*M_PI, conjeps1, T7);
cmult(aH1/sqrt(2.)/ang1a*h5*8.*COM(0.,1.)*M_PI*M_PI, epsa, T8);
cmult(aH1*aH1/2./ang1a/sqa1*h10*8.*COM(0.,1.)*M_PI*M_PI, pacur, T9);
cmult(-aH1*aH1/2./ang1a/sqa1*h12*8.*COM(0.,1.)*M_PI*M_PI, p1cur, T10);
current ans;
for(int i=0;i<4;i++)
{
ans[i] = T1[i]+T2[i]+T3[i]+T4[i]+T5[i]+T6[i]+T7[i]+T8[i]+T9[i]+T10[i];
}
retAns[0] = F/prop*ans[0];
retAns[1] = F/prop*ans[1];
retAns[2] = F/prop*ans[2];
retAns[3] = F/prop*ans[3];
}
/// @brief HNC amp for qg->qgH with finite top (i.e. j^{+-}_H)
- void g_gH_HNC(HLV pa, HLV p1, HLV pH, double mq, current &retAns)
+ void g_gH_HNC(HLV pa, HLV p1, HLV pH, double mq, double vev, current &retAns)
{
- const double F = 4.*mq*mq/HEJ::vev;
+ const double F = 4.*mq*mq/vev;
COM ang1a,sqa1;
current conjepsH1,epsHa,p1cur,pacur,pHcur,conjeps1,epsa,paplusp1cur,
p1minuspacur,cur1a,cura1,epsHapart1,epsHapart2,conjepsH1part1,
conjepsH1part2;
// Find here if pa, meaning the gluon, is forward or backward
bool gluonforward = true;
if(pa.z() < 0)
gluonforward = false;
jio(pa,true,p1,true,cura1);
joi(p1,true,pa,true,cur1a);
to_current(pa,pacur);
to_current(p1,p1cur);
to_current(pH,pHcur);
to_current(pa+p1,paplusp1cur);
to_current(p1-pa,p1minuspacur);
const COM aH1 = cdot(pHcur,cura1);
const COM oneHa = std::conj(aH1); // = cdot(pHcur,cur1a)
if(gluonforward){
// sqrt(2pa_-/p1_-)*p1_perp/abs(p1_perp)
ang1a = sqrt(pa.plus()*p1.minus())*(p1.x()+COM(0.,1.)*p1.y())/p1.perp();
// sqrt(2pa_-/p1_-)*p1_perp*/abs(p1_perp)
sqa1 = sqrt(pa.plus()*p1.minus())*(p1.x()-COM(0.,1.)*p1.y())/p1.perp();
}
else {
ang1a = sqrt(pa.minus()*p1.plus());
sqa1 = sqrt(pa.minus()*p1.plus());
}
const double prop = (pa-p1-pH).m2();
cmult(1./sqrt(2)/sqa1, cur1a, epsa);
cmult(-1./sqrt(2)/sqa1, cura1, conjeps1);
const COM phase = cdot(conjeps1, epsa);
const COM Fta = FT(-pa,pa-pH,mq)/(pa-pH).m2();
const COM Ft1 = FT(-p1-pH,p1,mq)/(p1+pH).m2();
const COM Falpha = FT(p1-pa,pa-p1-pH,mq);
const COM Fbeta = FL(p1-pa,pa-p1-pH,mq);
const COM h1 = H1(p1,-pa, pH, mq);
const COM h2 = H2(p1,-pa, pH, mq);
const COM h4 = H4(p1,-pa, pH, mq);
const COM h5 = H5(p1,-pa, pH, mq);
const COM h10 = H10(p1,-pa, pH, mq);
const COM h12 = H12(p1,-pa, pH, mq);
cmult(Fta*pa.dot(pH), epsa, epsHapart1);
cmult(-1.*Fta*cdot(pHcur,epsa), pacur, epsHapart2);
cmult(Ft1*cdot(pHcur,conjeps1), p1cur, conjepsH1part1);
cmult(-Ft1*p1.dot(pH), conjeps1, conjepsH1part2);
cadd(epsHapart1, epsHapart2, epsHa);
cadd(conjepsH1part1, conjepsH1part2, conjepsH1);
current T1,T2,T3,T4,T5a,T5b,T6,T7,T8a,T8b,T9,T10,T11a,
T11b,T12a,T12b,T13;
if(gluonforward){
cmult(sqrt(2.)*sqrt(p1.plus()/pa.plus())*prop/sqa1, conjepsH1, T1);
cmult(-sqrt(2.)*sqrt(pa.plus()/p1.plus())*prop/sqa1, epsHa, T2);
}
else{
cmult(-sqrt(2.)*sqrt(p1.minus()/pa.minus())*((p1.x()-COM(0.,1.)*p1.y())/p1.perp())
*prop/sqa1, conjepsH1, T1);
cmult(sqrt(2.)*sqrt(pa.minus()/p1.minus())*((p1.x()+COM(0.,1.)*p1.y())/p1.perp())
*prop/sqa1, epsHa, T2);
}
const COM boxdiagFact = 8.*COM(0.,1.)*M_PI*M_PI;
cmult(aH1*sqrt(2.)/sqa1, epsHa, T3);
cmult(oneHa*sqrt(2.)/sqa1, conjepsH1, T4);
cmult(-2.*phase*Fta*pa.dot(pH), p1cur, T5a);
cmult(2.*phase*Ft1*p1.dot(pH), pacur, T5b);
cmult(-sqrt(2.)*Fta*p1.dot(pa)*oneHa/sqa1, conjeps1, T6);
cmult(-sqrt(2.)*Ft1*pa.dot(p1)*aH1/sqa1, epsa, T7);
cmult(-boxdiagFact*phase*h2, pacur, T8a);
cmult(boxdiagFact*phase*h1, p1cur, T8b);
cmult(boxdiagFact*aH1/sqrt(2.)/sqa1*h5, epsa, T9);
cmult(-boxdiagFact*oneHa/sqrt(2.)/sqa1*h4, conjeps1, T10);
cmult(boxdiagFact*aH1*oneHa/2./sqa1/sqa1*h10, pacur, T11a);
cmult(-boxdiagFact*aH1*oneHa/2./sqa1/sqa1*h12, p1cur, T11b);
cmult(-phase/(pa-p1).m2()*Falpha*(p1-pa).dot(pa-p1-pH), paplusp1cur, T12a);
cmult(phase/(pa-p1).m2()*Falpha*(pa+p1).dot(pa-p1-pH), p1minuspacur, T12b);
cmult(-phase*Fbeta*(pa-p1-pH).m2(), paplusp1cur, T13);
current ans;
for(int i=0;i<4;i++)
{
ans[i] = T1[i]+T2[i]+T3[i]+T4[i]+T5a[i]+T5b[i]+T6[i]+T7[i]+T8a[i]+T8b[i]
+T9[i]+T10[i]+T11a[i]+T11b[i]+T12a[i]+T12b[i]+T13[i];
}
retAns[0] = F/prop*ans[0];
retAns[1] = F/prop*ans[1];
retAns[2] = F/prop*ans[2];
retAns[3] = F/prop*ans[3];
}
} // namespace anonymous
// JDC - new amplitude with Higgs emitted close to gluon with full mt effects.
// Keep usual HEJ-style function call
double ME_Houtside_gq(HLV p1out, HLV p1in, HLV p2out, HLV p2in, HLV pH,
- double mq, bool includeBottom, double mq2
+ double mq, bool includeBottom, double mq2, double vev
){
current cur2bplus,cur2bminus, cur2bplusFlip, cur2bminusFlip;
current retAns,retAnsb;
joi(p2out,true,p2in,true,cur2bplus);
joi(p2out,false,p2in,false,cur2bminus);
joi(ParityFlip(p2out),true,ParityFlip(p2in),true,cur2bplusFlip);
joi(ParityFlip(p2out),false,ParityFlip(p2in),false,cur2bminusFlip);
COM app1,app2,apm1,apm2;
COM app3, app4, apm3, apm4;
if(!includeBottom)
{
- g_gH_HC(p1in,p1out,pH,mq,retAns);
+ g_gH_HC(p1in,p1out,pH,mq,vev,retAns);
app1=cdot(retAns,cur2bplus);
app2=cdot(retAns,cur2bminus);
- g_gH_HC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,retAns);
+ g_gH_HC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,vev,retAns);
app3=cdot(retAns,cur2bplusFlip);
app4=cdot(retAns,cur2bminusFlip);
// And non-conserving bits
- g_gH_HNC(p1in,p1out,pH,mq,retAns);
+ g_gH_HNC(p1in,p1out,pH,mq,vev,retAns);
apm1=cdot(retAns,cur2bplus);
apm2=cdot(retAns,cur2bminus);
- g_gH_HNC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,retAns);
+ g_gH_HNC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,vev,retAns);
apm3=cdot(retAns,cur2bplusFlip);
apm4=cdot(retAns,cur2bminusFlip);
} else {
- g_gH_HC(p1in,p1out,pH,mq,retAns);
- g_gH_HC(p1in,p1out,pH,mq2,retAnsb);
+ g_gH_HC(p1in,p1out,pH,mq,vev,retAns);
+ g_gH_HC(p1in,p1out,pH,mq2,vev,retAnsb);
app1=cdot(retAns,cur2bplus) + cdot(retAnsb,cur2bplus);
app2=cdot(retAns,cur2bminus) + cdot(retAnsb,cur2bminus);
- g_gH_HC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,retAns);
- g_gH_HC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq2,retAnsb);
+ g_gH_HC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,vev,retAns);
+ g_gH_HC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq2,vev,retAnsb);
app3=cdot(retAns,cur2bplusFlip) + cdot(retAnsb,cur2bplusFlip);
app4=cdot(retAns,cur2bminusFlip) + cdot(retAnsb,cur2bminusFlip);
// And non-conserving bits
- g_gH_HNC(p1in,p1out,pH,mq,retAns);
- g_gH_HNC(p1in,p1out,pH,mq2,retAnsb);
+ g_gH_HNC(p1in,p1out,pH,mq,vev,retAns);
+ g_gH_HNC(p1in,p1out,pH,mq2,vev,retAnsb);
apm1=cdot(retAns,cur2bplus) + cdot(retAnsb,cur2bplus);
apm2=cdot(retAns,cur2bminus) + cdot(retAnsb,cur2bminus);
- g_gH_HNC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,retAns);
- g_gH_HNC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq2,retAnsb);
+ g_gH_HNC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq,vev,retAns);
+ g_gH_HNC(ParityFlip(p1in),ParityFlip(p1out),ParityFlip(pH),mq2,vev,retAnsb);
apm3=cdot(retAns,cur2bplusFlip) + cdot(retAnsb,cur2bplusFlip);
apm4=cdot(retAns,cur2bminusFlip) + cdot(retAnsb,cur2bminusFlip);
}
return abs2(app1) + abs2(app2) + abs2(app3) + abs2(app4) + abs2(apm1)
+ abs2(apm2) + abs2(apm3) + abs2(apm4);
}
#endif // HEJ_BUILD_WITH_QCDLOOP
-double C2gHgm(HLV p2, HLV p1, HLV pH)
+double C2gHgm(HLV p2, HLV p1, HLV pH, double vev)
{
- static double A=1./(3.*M_PI*HEJ::vev);
+ const double A=1./(3.*M_PI*vev);
// Implements Eq. (4.22) in hep-ph/0301013 with modifications to incoming plus momenta
double s12,p1p,p2p;
COM p1perp,p3perp,phperp;
// Determine first whether this is the case p1p\sim php>>p3p or the opposite
s12=p1.invariantMass2(-p2);
if (p2.pz()>0.) { // case considered in hep-ph/0301013
p1p=p1.plus();
p2p=p2.plus();
} else { // opposite case
p1p=p1.minus();
p2p=p2.minus();
}
p1perp=p1.px()+COM(0,1)*p1.py();
phperp=pH.px()+COM(0,1)*pH.py();
p3perp=-(p1perp+phperp);
COM temp=COM(0,1)*A/(2.*s12)*(p2p/p1p*conj(p1perp)*p3perp+p1p/p2p*p1perp*conj(p3perp));
temp=temp*conj(temp);
return temp.real();
}
-double C2gHgp(HLV p2, HLV p1, HLV pH)
+double C2gHgp(HLV p2, HLV p1, HLV pH, double vev)
{
- static double A=1./(3.*M_PI*HEJ::vev);
+ const double A=1./(3.*M_PI*vev);
// Implements Eq. (4.23) in hep-ph/0301013
double s12,php,p1p,phm;
COM p1perp,p3perp,phperp;
// Determine first whether this is the case p1p\sim php>>p3p or the opposite
s12=p1.invariantMass2(-p2);
if (p2.pz()>0.) { // case considered in hep-ph/0301013
php=pH.plus();
phm=pH.minus();
p1p=p1.plus();
} else { // opposite case
php=pH.minus();
phm=pH.plus();
p1p=p1.minus();
}
p1perp=p1.px()+COM(0,1)*p1.py();
phperp=pH.px()+COM(0,1)*pH.py();
p3perp=-(p1perp+phperp);
COM temp=-COM(0,1)*A/(2.*s12)*( conj(p1perp*p3perp)*pow(php/p1p,2)/(1.+php/p1p)
+s12*(pow(conj(phperp),2)/(pow(abs(phperp),2)+p1p*phm)
-pow(conj(p3perp)
+(1.+php/p1p)*conj(p1perp),2)/((1.+php/p1p)*(pH.m2()+2.*p1.dot(pH)))) );
temp=temp*conj(temp);
return temp.real();
}
-double C2qHqm(HLV p2, HLV p1, HLV pH)
+double C2qHqm(HLV p2, HLV p1, HLV pH, double vev)
{
- static double A=1./(3.*M_PI*HEJ::vev);
+ const double A=1./(3.*M_PI*vev);
// Implements Eq. (4.22) in hep-ph/0301013
double s12,p2p,p1p;
COM p1perp,p3perp,phperp;
// Determine first whether this is the case p1p\sim php>>p3p or the opposite
s12=p1.invariantMass2(-p2);
if (p2.pz()>0.) { // case considered in hep-ph/0301013
p2p=p2.plus();
p1p=p1.plus();
} else { // opposite case
p2p=p2.minus();
p1p=p1.minus();
}
p1perp=p1.px()+COM(0,1)*p1.py();
phperp=pH.px()+COM(0,1)*pH.py();
p3perp=-(p1perp+phperp);
COM temp=A/(2.*s12)*( sqrt(p2p/p1p)*p3perp*conj(p1perp)
+sqrt(p1p/p2p)*p1perp*conj(p3perp) );
temp=temp*conj(temp);
return temp.real();
}
diff --git a/src/MatrixElement.cc b/src/MatrixElement.cc
index c94d305..addb071 100644
--- a/src/MatrixElement.cc
+++ b/src/MatrixElement.cc
@@ -1,1502 +1,1506 @@
/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
#include "HEJ/MatrixElement.hh"
#include <algorithm>
#include <assert.h>
#include <limits>
#include <math.h>
#include <stddef.h>
#include <unordered_map>
#include <utility>
#include "CLHEP/Vector/LorentzVector.h"
#include "HEJ/Constants.hh"
#include "HEJ/Wjets.hh"
#include "HEJ/Hjets.hh"
#include "HEJ/jets.hh"
#include "HEJ/PDG_codes.hh"
#include "HEJ/event_types.hh"
#include "HEJ/Event.hh"
#include "HEJ/exceptions.hh"
#include "HEJ/Particle.hh"
#include "HEJ/utility.hh"
namespace HEJ{
double MatrixElement::omega0(
double alpha_s, double mur,
fastjet::PseudoJet const & q_j
) const {
const double lambda = param_.regulator_lambda;
const double result = - alpha_s*N_C/M_PI*log(q_j.perp2()/(lambda*lambda));
if(! param_.log_correction) return result;
// use alpha_s(sqrt(q_j*lambda)), evolved to mur
return (
1. + alpha_s/(4.*M_PI)*beta0*log(mur*mur/(q_j.perp()*lambda))
)*result;
}
Weights MatrixElement::operator()(Event const & event) const {
return tree(event)*virtual_corrections(event);
}
Weights MatrixElement::tree(Event const & event) const {
return tree_param(event)*tree_kin(event);
}
Weights MatrixElement::tree_param(Event const & event) const {
if(! is_resummable(event.type())) {
return Weights{0., std::vector<double>(event.variations().size(), 0.)};
}
Weights result;
// only compute once for each renormalisation scale
std::unordered_map<double, double> known;
result.central = tree_param(event, event.central().mur);
known.emplace(event.central().mur, result.central);
for(auto const & var: event.variations()) {
const auto ME_it = known.find(var.mur);
if(ME_it == end(known)) {
const double wt = tree_param(event, var.mur);
result.variations.emplace_back(wt);
known.emplace(var.mur, wt);
}
else {
result.variations.emplace_back(ME_it->second);
}
}
return result;
}
Weights MatrixElement::virtual_corrections(Event const & event) const {
if(! is_resummable(event.type())) {
return Weights{0., std::vector<double>(event.variations().size(), 0.)};
}
Weights result;
// only compute once for each renormalisation scale
std::unordered_map<double, double> known;
result.central = virtual_corrections(event, event.central().mur);
known.emplace(event.central().mur, result.central);
for(auto const & var: event.variations()) {
const auto ME_it = known.find(var.mur);
if(ME_it == end(known)) {
const double wt = virtual_corrections(event, var.mur);
result.variations.emplace_back(wt);
known.emplace(var.mur, wt);
}
else {
result.variations.emplace_back(ME_it->second);
}
}
return result;
}
double MatrixElement::virtual_corrections_W(
Event const & event,
double mur,
Particle const & WBoson
) const{
auto const & in = event.incoming();
const auto partons = filter_partons(event.outgoing());
fastjet::PseudoJet const & pa = in.front().p;
#ifndef NDEBUG
fastjet::PseudoJet const & pb = in.back().p;
double const norm = (in.front().p + in.back().p).E();
#endif
assert(std::is_sorted(partons.begin(), partons.end(), rapidity_less{}));
assert(partons.size() >= 2);
assert(pa.pz() < pb.pz());
fastjet::PseudoJet q = pa - partons[0].p;
size_t first_idx = 0;
size_t last_idx = partons.size() - 1;
bool wc = true;
bool wqq = false;
// With extremal qqx or unordered gluon outside the extremal
// partons then it is not part of the FKL ladder and does not
// contribute to the virtual corrections. W emitted from the
// most backward leg must be taken into account in t-channel
if (event.type() == event_type::FKL) {
if (in[0].type != partons[0].type ){
q -= WBoson.p;
wc = false;
}
}
else if (event.type() == event_type::unob) {
q -= partons[1].p;
++first_idx;
if (in[0].type != partons[1].type ){
q -= WBoson.p;
wc = false;
}
}
else if (event.type() == event_type::qqxexb) {
q -= partons[1].p;
++first_idx;
if (abs(partons[0].type) != abs(partons[1].type)){
q -= WBoson.p;
wc = false;
}
}
if(event.type() == event_type::unof
|| event.type() == event_type::qqxexf){
--last_idx;
}
size_t first_idx_qqx = last_idx;
size_t last_idx_qqx = last_idx;
//if qqxMid event, virtual correction do not occur between
//qqx pair.
if(event.type() == event_type::qqxmid){
const auto backquark = std::find_if(
begin(partons) + 1, end(partons) - 1 ,
[](Particle const & s){ return (s.type != pid::gluon); }
);
if(backquark == end(partons) || (backquark+1)->type==pid::gluon) return 0;
if(abs(backquark->type) != abs((backquark+1)->type)) {
wqq=true;
wc=false;
}
last_idx = std::distance(begin(partons), backquark);
first_idx_qqx = last_idx+1;
}
double exponent = 0;
const double alpha_s = alpha_s_(mur);
for(size_t j = first_idx; j < last_idx; ++j){
exponent += omega0(alpha_s, mur, q)*(
partons[j+1].rapidity() - partons[j].rapidity()
);
q -=partons[j+1].p;
} // End Loop one
if (last_idx != first_idx_qqx) q -= partons[last_idx+1].p;
if (wqq) q -= WBoson.p;
for(size_t j = first_idx_qqx; j < last_idx_qqx; ++j){
exponent += omega0(alpha_s, mur, q)*(
partons[j+1].rapidity() - partons[j].rapidity()
);
q -= partons[j+1].p;
}
if (wc) q -= WBoson.p;
assert(
nearby(q, -1*pb, norm)
|| is_AWZH_boson(partons.back().type)
|| event.type() == event_type::unof
|| event.type() == event_type::qqxexf
);
return exp(exponent);
}
double MatrixElement::virtual_corrections(
Event const & event,
double mur
) const{
auto const & in = event.incoming();
auto const & out = event.outgoing();
fastjet::PseudoJet const & pa = in.front().p;
#ifndef NDEBUG
fastjet::PseudoJet const & pb = in.back().p;
double const norm = (in.front().p + in.back().p).E();
#endif
const auto AWZH_boson = std::find_if(
begin(out), end(out),
[](Particle const & p){ return is_AWZH_boson(p); }
);
if(AWZH_boson != end(out) && abs(AWZH_boson->type) == pid::Wp){
return virtual_corrections_W(event, mur, *AWZH_boson);
}
assert(std::is_sorted(out.begin(), out.end(), rapidity_less{}));
assert(out.size() >= 2);
assert(pa.pz() < pb.pz());
fastjet::PseudoJet q = pa - out[0].p;
size_t first_idx = 0;
size_t last_idx = out.size() - 1;
// if there is a Higgs boson, extremal qqx or unordered gluon
// outside the extremal partons then it is not part of the FKL
// ladder and does not contribute to the virtual corrections
if((out.front().type == pid::Higgs)
|| event.type() == event_type::unob
|| event.type() == event_type::qqxexb){
q -= out[1].p;
++first_idx;
}
if((out.back().type == pid::Higgs)
|| event.type() == event_type::unof
|| event.type() == event_type::qqxexf){
--last_idx;
}
size_t first_idx_qqx = last_idx;
size_t last_idx_qqx = last_idx;
//if qqxMid event, virtual correction do not occur between
//qqx pair.
if(event.type() == event_type::qqxmid){
const auto backquark = std::find_if(
begin(out) + 1, end(out) - 1 ,
[](Particle const & s){ return (s.type != pid::gluon && is_parton(s.type)); }
);
if(backquark == end(out) || (backquark+1)->type==pid::gluon) return 0;
last_idx = std::distance(begin(out), backquark);
first_idx_qqx = last_idx+1;
}
double exponent = 0;
const double alpha_s = alpha_s_(mur);
for(size_t j = first_idx; j < last_idx; ++j){
exponent += omega0(alpha_s, mur, q)*(
out[j+1].rapidity() - out[j].rapidity()
);
q -= out[j+1].p;
}
if (last_idx != first_idx_qqx) q -= out[last_idx+1].p;
for(size_t j = first_idx_qqx; j < last_idx_qqx; ++j){
exponent += omega0(alpha_s, mur, q)*(
out[j+1].rapidity() - out[j].rapidity()
);
q -= out[j+1].p;
}
assert(
nearby(q, -1*pb, norm)
|| out.back().type == pid::Higgs
|| event.type() == event_type::unof
|| event.type() == event_type::qqxexf
);
return exp(exponent);
}
} // namespace HEJ
namespace {
//! Lipatov vertex for partons emitted into extremal jets
double C2Lipatov(
CLHEP::HepLorentzVector const & qav,
CLHEP::HepLorentzVector const & qbv,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & p2
){
CLHEP::HepLorentzVector temptrans=-(qav+qbv);
CLHEP::HepLorentzVector p5=qav-qbv;
CLHEP::HepLorentzVector CL=temptrans
+ p1*(qav.m2()/p5.dot(p1) + 2.*p5.dot(p2)/p1.dot(p2))
- p2*(qbv.m2()/p5.dot(p2) + 2.*p5.dot(p1)/p1.dot(p2));
return -CL.dot(CL);
}
//! Lipatov vertex with soft subtraction for partons emitted into extremal jets
double C2Lipatovots(
CLHEP::HepLorentzVector const & qav,
CLHEP::HepLorentzVector const & qbv,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & p2,
double lambda
) {
double kperp=(qav-qbv).perp();
if (kperp>lambda)
return C2Lipatov(qav, qbv, p1, p2)/(qav.m2()*qbv.m2());
double Cls=(C2Lipatov(qav, qbv, p1, p2)/(qav.m2()*qbv.m2()));
return Cls-4./(kperp*kperp);
}
//! Lipatov vertex
double C2Lipatov( // B
CLHEP::HepLorentzVector const & qav,
CLHEP::HepLorentzVector const & qbv,
CLHEP::HepLorentzVector const & pim,
CLHEP::HepLorentzVector const & pip,
CLHEP::HepLorentzVector const & pom,
CLHEP::HepLorentzVector const & pop
){
CLHEP::HepLorentzVector temptrans=-(qav+qbv);
CLHEP::HepLorentzVector p5=qav-qbv;
CLHEP::HepLorentzVector CL=temptrans
+ qav.m2()*(1./p5.dot(pip)*pip + 1./p5.dot(pop)*pop)/2.
- qbv.m2()*(1./p5.dot(pim)*pim + 1./p5.dot(pom)*pom)/2.
+ ( pip*(p5.dot(pim)/pip.dot(pim) + p5.dot(pom)/pip.dot(pom))
+ pop*(p5.dot(pim)/pop.dot(pim) + p5.dot(pom)/pop.dot(pom))
- pim*(p5.dot(pip)/pip.dot(pim) + p5.dot(pop)/pop.dot(pim))
- pom*(p5.dot(pip)/pip.dot(pom) + p5.dot(pop)/pop.dot(pom)) )/2.;
return -CL.dot(CL);
}
//! Lipatov vertex with soft subtraction
double C2Lipatovots(
CLHEP::HepLorentzVector const & qav,
CLHEP::HepLorentzVector const & qbv,
CLHEP::HepLorentzVector const & pa,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & p2,
double lambda
) {
double kperp=(qav-qbv).perp();
if (kperp>lambda)
return C2Lipatov(qav, qbv, pa, pb, p1, p2)/(qav.m2()*qbv.m2());
double Cls=(C2Lipatov(qav, qbv, pa, pb, p1, p2)/(qav.m2()*qbv.m2()));
double temp=Cls-4./(kperp*kperp);
return temp;
}
/** Matrix element squared for tree-level current-current scattering
* @param aptype Particle a PDG ID
* @param bptype Particle b PDG ID
* @param pg Unordered gluon momentum
* @param pn Particle n Momentum
* @param pb Particle b Momentum
* @param p1 Particle 1 Momentum
* @param pa Particle a Momentum
* @returns ME Squared for Tree-Level Current-Current Scattering
*
* @note The unof contribution can be calculated by reversing the argument ordering.
*/
double ME_uno_current(
int aptype, int bptype,
CLHEP::HepLorentzVector const & pg,
CLHEP::HepLorentzVector const & pn,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & pa
){
assert(aptype!=21); // aptype cannot be gluon
if (bptype==21) {
if (aptype > 0)
return ME_unob_qg(pg,p1,pa,pn,pb);
else
return ME_unob_qbarg(pg,p1,pa,pn,pb);
}
else if (bptype<0) { // ----- || -----
if (aptype > 0)
return ME_unob_qQbar(pg,p1,pa,pn,pb);
else
return ME_unob_qbarQbar(pg,p1,pa,pn,pb);
}
else { //bptype == quark
if (aptype > 0)
return ME_unob_qQ(pg,p1,pa,pn,pb);
else
return ME_unob_qbarQ(pg,p1,pa,pn,pb);
}
}
/** Matrix element squared for tree-level current-current scattering
* @param aptype Particle a PDG ID
* @param bptype Particle b PDG ID
* @param pn Particle n Momentum
* @param pb Particle b Momentum
* @param p1 Particle 1 Momentum
* @param pa Particle a Momentum
* @returns ME Squared for Tree-Level Current-Current Scattering
*/
double ME_current(
int aptype, int bptype,
CLHEP::HepLorentzVector const & pn,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & pa
){
if (aptype==21&&bptype==21) {
return ME_gg(pn,pb,p1,pa);
} else if (aptype==21&&bptype!=21) {
if (bptype > 0)
return ME_qg(pn,pb,p1,pa);
else
return ME_qbarg(pn,pb,p1,pa);
}
else if (bptype==21&&aptype!=21) { // ----- || -----
if (aptype > 0)
return ME_qg(p1,pa,pn,pb);
else
return ME_qbarg(p1,pa,pn,pb);
}
else { // they are both quark
if (bptype>0) {
if (aptype>0)
return ME_qQ(pn,pb,p1,pa);
else
return ME_qQbar(pn,pb,p1,pa);
}
else {
if (aptype>0)
return ME_qQbar(p1,pa,pn,pb);
else
return ME_qbarQbar(pn,pb,p1,pa);
}
}
throw std::logic_error("unknown particle types");
}
/** Matrix element squared for tree-level current-current scattering With W+Jets
* @param aptype Particle a PDG ID
* @param bptype Particle b PDG ID
* @param pn Particle n Momentum
* @param pb Particle b Momentum
* @param p1 Particle 1 Momentum
* @param pa Particle a Momentum
* @param wc Boolean. True->W Emitted from b. Else; emitted from leg a
* @returns ME Squared for Tree-Level Current-Current Scattering
*/
double ME_W_current(
int aptype, int bptype,
CLHEP::HepLorentzVector const & pn,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & pa,
CLHEP::HepLorentzVector const & plbar,
CLHEP::HepLorentzVector const & pl,
bool const wc
){
// We know it cannot be gg incoming.
assert(!(aptype==21 && bptype==21));
if (aptype==21&&bptype!=21) {
if (bptype > 0)
return ME_W_qg(pn,plbar,pl,pb,p1,pa);
else
return ME_W_qbarg(pn,plbar,pl,pb,p1,pa);
}
else if (bptype==21&&aptype!=21) { // ----- || -----
if (aptype > 0)
return ME_W_qg(p1,plbar,pl,pa,pn,pb);
else
return ME_W_qbarg(p1,plbar,pl,pa,pn,pb);
}
else { // they are both quark
if (wc==true){ // emission off b, (first argument pbout)
if (bptype>0) {
if (aptype>0)
return ME_W_qQ(pn,plbar,pl,pb,p1,pa);
else
return ME_W_qQbar(pn,plbar,pl,pb,p1,pa);
}
else {
if (aptype>0)
return ME_W_qbarQ(pn,plbar,pl,pb,p1,pa);
else
return ME_W_qbarQbar(pn,plbar,pl,pb,p1,pa);
}
}
else{ // emission off a, (first argument paout)
if (aptype > 0) {
if (bptype > 0)
return ME_W_qQ(p1,plbar,pl,pa,pn,pb);
else
return ME_W_qQbar(p1,plbar,pl,pa,pn,pb);
}
else { // a is anti-quark
if (bptype > 0)
return ME_W_qbarQ(p1,plbar,pl,pa,pn,pb);
else
return ME_W_qbarQbar(p1,plbar,pl,pa,pn,pb);
}
}
}
throw std::logic_error("unknown particle types");
}
/** Matrix element squared for backwards uno tree-level current-current
* scattering With W+Jets
*
* @param aptype Particle a PDG ID
* @param bptype Particle b PDG ID
* @param pn Particle n Momentum
* @param pb Particle b Momentum
* @param p1 Particle 1 Momentum
* @param pa Particle a Momentum
* @param pg Unordered gluon momentum
* @param wc Boolean. True->W Emitted from b. Else; emitted from leg a
* @returns ME Squared for unob Tree-Level Current-Current Scattering
*
* @note The unof contribution can be calculated by reversing the argument ordering.
*/
double ME_W_uno_current(
int aptype, int bptype,
CLHEP::HepLorentzVector const & pn,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & pa,
CLHEP::HepLorentzVector const & pg,
CLHEP::HepLorentzVector const & plbar,
CLHEP::HepLorentzVector const & pl,
bool const wc
){
// we know they are not both gluons
if (bptype == 21 && aptype != 21) { // b gluon => W emission off a
if (aptype > 0)
return ME_Wuno_qg(p1,pa,pn,pb,pg,plbar,pl);
else
return ME_Wuno_qbarg(p1,pa,pn,pb,pg,plbar,pl);
}
else { // they are both quark
if (wc) {// emission off b, i.e. b is first current
if (bptype>0){
if (aptype>0)
return ME_W_unob_qQ(p1,pa,pn,pb,pg,plbar,pl);
else
return ME_W_unob_qQbar(p1,pa,pn,pb,pg,plbar,pl);
}
else{
if (aptype>0)
return ME_W_unob_qbarQ(p1,pa,pn,pb,pg,plbar,pl);
else
return ME_W_unob_qbarQbar(p1,pa,pn,pb,pg,plbar,pl);
}
}
else {// wc == false, emission off a, i.e. a is first current
if (aptype > 0) {
if (bptype > 0) //qq
return ME_Wuno_qQ(p1,pa,pn,pb,pg,plbar,pl);
else //qqbar
return ME_Wuno_qQbar(p1,pa,pn,pb,pg,plbar,pl);
}
else { // a is anti-quark
if (bptype > 0) //qbarq
return ME_Wuno_qbarQ(p1,pa,pn,pb,pg,plbar,pl);
else //qbarqbar
return ME_Wuno_qbarQbar(p1,pa,pn,pb,pg,plbar,pl);
}
}
}
throw std::logic_error("unknown particle types");
}
/** \brief Matrix element squared for backward qqx tree-level current-current
* scattering With W+Jets
*
* @param aptype Particle a PDG ID
* @param bptype Particle b PDG ID
* @param pa Initial state a Momentum
* @param pb Initial state b Momentum
* @param pq Final state q Momentum
* @param pqbar Final state qbar Momentum
* @param pn Final state n Momentum
* @param plbar Final state anti-lepton momentum
* @param pl Final state lepton momentum
* @param wc Boolean. True->W Emitted from b. Else; emitted from leg a
* @returns ME Squared for qqxb Tree-Level Current-Current Scattering
*
* @note calculate forwards qqx contribution by reversing argument ordering.
*/
double ME_W_qqx_current(
int aptype, int bptype,
CLHEP::HepLorentzVector const & pa,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & pq,
CLHEP::HepLorentzVector const & pqbar,
CLHEP::HepLorentzVector const & pn,
CLHEP::HepLorentzVector const & plbar,
CLHEP::HepLorentzVector const & pl,
bool const swap_q_qx, bool const wc
){
// CAM factors for the qqx amps, and qqbar ordering (default, qbar extremal)
// const bool swap_q_qx= pqbar.rapidity() > pq.rapidity();
const double CFbackward = K_g( (swap_q_qx)?pq:pqbar ,pa)/HEJ::C_F;
// With qqbar we could have 2 incoming gluons and W Emission
if (aptype==21&&bptype==21) {//a gluon, b gluon gg->qqbarWg
// This will be a wqqx emission as there is no other possible W Emission Site.
if (swap_q_qx)
return ME_WExqqx_qqbarg(pa, pqbar, plbar, pl, pq, pn, pb)*CFbackward;
else
return ME_WExqqx_qbarqg(pa, pq, plbar, pl, pqbar, pn, pb)*CFbackward;
}
else if (aptype==21&&bptype!=21 ) {//a gluon => W emission off b leg or qqx
if (!wc){ // W Emitted from backwards qqx
if (swap_q_qx)
return ME_WExqqx_qqbarQ(pa, pqbar, plbar, pl, pq, pn, pb)*CFbackward;
else
return ME_WExqqx_qbarqQ(pa, pq, plbar, pl, pqbar, pn, pb)*CFbackward;
}
else { // W Must be emitted from forwards leg.
if (swap_q_qx)
return ME_W_Exqqx_QQq(pb, pa, pn, pqbar, pq, plbar, pl, bptype<0)*CFbackward;
else
return ME_W_Exqqx_QQq(pb, pa, pn, pq, pqbar, plbar, pl, bptype<0)*CFbackward;
}
}
throw std::logic_error("Incompatible incoming particle types with qqxb");
}
/* \brief Matrix element squared for central qqx tree-level current-current
* scattering With W+Jets
*
* @param aptype Particle a PDG ID
* @param bptype Particle b PDG ID
* @param nabove Number of gluons emitted before central qqxpair
* @param nbelow Number of gluons emitted after central qqxpair
* @param pa Initial state a Momentum
* @param pb Initial state b Momentum\
* @param pq Final state qbar Momentum
* @param pqbar Final state q Momentum
* @param partons Vector of all outgoing partons
* @param plbar Final state anti-lepton momentum
* @param pl Final state lepton momentum
* @param wqq Boolean. True siginfies W boson is emitted from Central qqx
* @param wc Boolean. wc=true signifies w boson emitted from leg b; if wqq=false.
* @returns ME Squared for qqxmid Tree-Level Current-Current Scattering
*/
double ME_W_qqxmid_current(
int aptype, int bptype,
int nabove, int nbelow,
CLHEP::HepLorentzVector const & pa,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & pq,
CLHEP::HepLorentzVector const & pqbar,
std::vector<HLV> const & partons,
CLHEP::HepLorentzVector const & plbar,
CLHEP::HepLorentzVector const & pl,
bool const wqq, bool const wc
){
// CAM factors for the qqx amps, and qqbar ordering (default, pq backwards)
const bool swap_q_qx=pqbar.rapidity() < pq.rapidity();
double wt=1.;
if (aptype==21) wt*=K_g(partons.front(),pa)/HEJ::C_F;
if (bptype==21) wt*=K_g(partons.back(),pb)/HEJ::C_F;
if(wqq)
return wt*ME_WCenqqx_qq(pa, pb, pl, plbar, partons,(bptype<0),(aptype<0),
swap_q_qx, nabove);
return wt*ME_W_Cenqqx_qq(pa, pb, pl, plbar, partons, (bptype<0), (aptype<0),
swap_q_qx, nabove, nbelow, wc);
}
/** \brief Matrix element squared for tree-level current-current scattering with Higgs
* @param aptype Particle a PDG ID
* @param bptype Particle b PDG ID
* @param pn Particle n Momentum
* @param pb Particle b Momentum
* @param p1 Particle 1 Momentum
* @param pa Particle a Momentum
* @param qH t-channel momentum before Higgs
* @param qHp1 t-channel momentum after Higgs
* @returns ME Squared for Tree-Level Current-Current Scattering with Higgs
*/
double ME_Higgs_current(
int aptype, int bptype,
CLHEP::HepLorentzVector const & pn,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & pa,
CLHEP::HepLorentzVector const & qH, // t-channel momentum before Higgs
CLHEP::HepLorentzVector const & qHp1, // t-channel momentum after Higgs
- double mt, bool include_bottom, double mb
+ double mt, bool include_bottom, double mb, double vev
){
if (aptype==21&&bptype==21) // gg initial state
- return ME_H_gg(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb);
+ return ME_H_gg(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb,vev);
else if (aptype==21&&bptype!=21) {
if (bptype > 0)
- return ME_H_qg(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb)*4./9.;
+ return ME_H_qg(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb,vev)*4./9.;
else
- return ME_H_qbarg(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb)*4./9.;
+ return ME_H_qbarg(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb,vev)*4./9.;
}
else if (bptype==21&&aptype!=21) {
if (aptype > 0)
- return ME_H_qg(p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb)*4./9.;
+ return ME_H_qg(p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev)*4./9.;
else
- return ME_H_qbarg(p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb)*4./9.;
+ return ME_H_qbarg(p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev)*4./9.;
}
else { // they are both quark
if (bptype>0) {
if (aptype>0)
- return ME_H_qQ(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb)*4.*4./(9.*9.);
+ return ME_H_qQ(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb,vev)*4.*4./(9.*9.);
else
- return ME_H_qQbar(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb)*4.*4./(9.*9.);
+ return ME_H_qQbar(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb,vev)*4.*4./(9.*9.);
}
else {
if (aptype>0)
- return ME_H_qQbar(p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb)*4.*4./(9.*9.);
+ return ME_H_qQbar(p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev)*4.*4./(9.*9.);
else
- return ME_H_qbarQbar(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb)*4.*4./(9.*9.);
+ return ME_H_qbarQbar(pn,pb,p1,pa,-qHp1,-qH,mt,include_bottom,mb,vev)*4.*4./(9.*9.);
}
}
throw std::logic_error("unknown particle types");
}
/** \brief Current matrix element squared with Higgs and unordered backward emission
* @param aptype Particle A PDG ID
* @param bptype Particle B PDG ID
* @param pn Particle n Momentum
* @param pb Particle b Momentum
* @param pg Unordered back Particle Momentum
* @param p1 Particle 1 Momentum
* @param pa Particle a Momentum
* @param qH t-channel momentum before Higgs
* @param qHp1 t-channel momentum after Higgs
* @returns ME Squared with Higgs and unordered backward emission
*
* @note This function assumes unordered gluon backwards from pa-p1 current.
* For unof, reverse call order
*/
double ME_Higgs_current_uno(
int aptype, int bptype,
CLHEP::HepLorentzVector const & pg,
CLHEP::HepLorentzVector const & pn,
CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1,
CLHEP::HepLorentzVector const & pa,
CLHEP::HepLorentzVector const & qH, // t-channel momentum before Higgs
CLHEP::HepLorentzVector const & qHp1, // t-channel momentum after Higgs
- double mt, bool include_bottom, double mb
+ double mt, bool include_bottom, double mb, double vev
){
if (bptype==21&&aptype!=21) {
if (aptype > 0)
- return ME_H_unob_gQ(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb);
+ return ME_H_unob_gQ(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev);
else
- return ME_H_unob_gQbar(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb);
+ return ME_H_unob_gQbar(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev);
}
else { // they are both quark
if (aptype>0) {
if (bptype>0)
- return ME_H_unob_qQ(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb);
+ return ME_H_unob_qQ(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev);
else
- return ME_H_unob_qbarQ(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb);
+ return ME_H_unob_qbarQ(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev);
}
else {
if (bptype>0)
- return ME_H_unob_qQbar(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb);
+ return ME_H_unob_qQbar(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev);
else
- return ME_H_unob_qbarQbar(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb);
+ return ME_H_unob_qbarQbar(pg,p1,pa,pn,pb,-qH,-qHp1,mt,include_bottom,mb,vev);
}
}
throw std::logic_error("unknown particle types");
}
CLHEP::HepLorentzVector to_HepLorentzVector(HEJ::Particle const & particle){
return {particle.p.px(), particle.p.py(), particle.p.pz(), particle.p.E()};
}
void validate(HEJ::MatrixElementConfig const & config) {
#ifndef HEJ_BUILD_WITH_QCDLOOP
if(!config.Higgs_coupling.use_impact_factors) {
throw std::invalid_argument{
"Invalid Higgs coupling settings.\n"
"HEJ without QCDloop support can only use impact factors.\n"
"Set use_impact_factors to true or recompile HEJ.\n"
};
}
#endif
if(config.Higgs_coupling.use_impact_factors
&& config.Higgs_coupling.mt != std::numeric_limits<double>::infinity()) {
throw std::invalid_argument{
"Conflicting settings: "
"impact factors may only be used in the infinite top mass limit"
};
}
}
} // namespace anonymous
namespace HEJ{
MatrixElement::MatrixElement(
std::function<double (double)> alpha_s,
MatrixElementConfig conf
):
alpha_s_{std::move(alpha_s)},
param_{std::move(conf)}
{
validate(param_);
}
double MatrixElement::tree_kin(
Event const & ev
) const {
if(! is_resummable(ev.type())) return 0.;
auto AWZH_boson = std::find_if(
begin(ev.outgoing()), end(ev.outgoing()),
[](Particle const & p){return is_AWZH_boson(p);}
);
if(AWZH_boson == end(ev.outgoing()))
return tree_kin_jets(ev);
switch(AWZH_boson->type){
case pid::Higgs:
return tree_kin_Higgs(ev);
case pid::Wp:
case pid::Wm:
return tree_kin_W(ev);
// TODO
case pid::photon:
case pid::Z:
default:
throw not_implemented("Emission of boson of unsupported type");
}
}
namespace{
constexpr int extremal_jet_idx = 1;
constexpr int no_extremal_jet_idx = 0;
bool treat_as_extremal(Particle const & parton){
return parton.p.user_index() == extremal_jet_idx;
}
template<class InputIterator>
double FKL_ladder_weight(
InputIterator begin_gluon, InputIterator end_gluon,
CLHEP::HepLorentzVector const & q0,
CLHEP::HepLorentzVector const & pa, CLHEP::HepLorentzVector const & pb,
CLHEP::HepLorentzVector const & p1, CLHEP::HepLorentzVector const & pn,
double lambda
){
double wt = 1;
auto qi = q0;
for(auto gluon_it = begin_gluon; gluon_it != end_gluon; ++gluon_it){
assert(gluon_it->type == pid::gluon);
const auto g = to_HepLorentzVector(*gluon_it);
const auto qip1 = qi - g;
if(treat_as_extremal(*gluon_it)){
wt *= C2Lipatovots(qip1, qi, pa, pb, lambda)*C_A;
} else{
wt *= C2Lipatovots(qip1, qi, pa, pb, p1, pn, lambda)*C_A;
}
qi = qip1;
}
return wt;
}
} // namespace anonymous
std::vector<Particle> MatrixElement::tag_extremal_jet_partons(
Event const & ev
) const{
auto out_partons = filter_partons(ev.outgoing());
if(out_partons.size() == ev.jets().size()){
// no additional emissions in extremal jets, don't need to tag anything
for(auto & parton: out_partons){
parton.p.set_user_index(no_extremal_jet_idx);
}
return out_partons;
}
const auto & jets = ev.jets();
assert(jets.size() >= 2);
auto most_backward = begin(jets);
auto most_forward = end(jets) - 1;
// skip jets caused by unordered emission or qqx
if(ev.type() == event_type::unob || ev.type() == event_type::qqxexb){
assert(jets.size() >= 3);
++most_backward;
}
else if(ev.type() == event_type::unof || ev.type() == event_type::qqxexf){
assert(jets.size() >= 3);
--most_forward;
}
const auto extremal_jet_indices = ev.particle_jet_indices(
{*most_backward, *most_forward}
);
assert(extremal_jet_indices.size() == out_partons.size());
for(size_t i = 0; i < out_partons.size(); ++i){
assert(HEJ::is_parton(out_partons[i]));
const int idx = (extremal_jet_indices[i]>=0)?
extremal_jet_idx:
no_extremal_jet_idx;
out_partons[i].p.set_user_index(idx);
}
return out_partons;
}
namespace {
template<class InIter, class partIter>
double tree_kin_jets_uno(InIter BeginIn, InIter EndIn, partIter BeginPart,
partIter EndPart, double lambda){
const auto pa = to_HepLorentzVector(*BeginIn);
const auto pb = to_HepLorentzVector(*(EndIn-1));
const auto pg = to_HepLorentzVector(*BeginPart);
const auto p1 = to_HepLorentzVector(*(BeginPart+1));
const auto pn = to_HepLorentzVector(*(EndPart-1));
const double current_factor = ME_uno_current(
(BeginIn)->type, (EndIn-1)->type, pg, pn, pb, p1, pa
)/(4.*(N_C*N_C - 1.));
const double ladder_factor = FKL_ladder_weight(
(BeginPart+2), (EndPart-1),
pa-p1-pg, pa, pb, p1, pn, lambda
);
return current_factor*ladder_factor;
}
}
double MatrixElement::tree_kin_jets(Event const & ev) const {
auto const & incoming = ev.incoming();
const auto partons = tag_extremal_jet_partons(ev);
if (ev.type()==HEJ::event_type::FKL){
const auto pa = to_HepLorentzVector(incoming[0]);
const auto pb = to_HepLorentzVector(incoming[1]);
const auto p1 = to_HepLorentzVector(partons.front());
const auto pn = to_HepLorentzVector(partons.back());
return ME_current(
incoming[0].type, incoming[1].type,
pn, pb, p1, pa
)/(4.*(N_C*N_C - 1.))*FKL_ladder_weight(
begin(partons) + 1, end(partons) - 1,
pa - p1, pa, pb, p1, pn,
param_.regulator_lambda
);
}
else if (ev.type()==HEJ::event_type::unordered_backward){
return tree_kin_jets_uno(incoming.begin(), incoming.end(),
partons.begin(), partons.end(),
param_.regulator_lambda);
}
else if (ev.type()==HEJ::event_type::unordered_forward){
return tree_kin_jets_uno(incoming.rbegin(), incoming.rend(),
partons.rbegin(), partons.rend(),
param_.regulator_lambda);
}
else {
throw std::logic_error("Can only reweight FKL or uno processes in Pure Jets");
}
}
namespace{
double tree_kin_W_FKL(
int aptype, int bptype, HLV pa, HLV pb,
std::vector<Particle> const & partons,
HLV plbar, HLV pl,
double lambda
){
auto p1 = to_HepLorentzVector(partons[0]);
auto pn = to_HepLorentzVector(partons[partons.size() - 1]);
const auto begin_ladder = cbegin(partons) + 1;
const auto end_ladder = cend(partons) - 1;
bool wc = aptype==partons[0].type; //leg b emits w
auto q0 = pa - p1;
if(!wc)
q0 -= pl + plbar;
const double current_factor = ME_W_current(
aptype, bptype, pn, pb,
p1, pa, plbar, pl, wc
);
const double ladder_factor = FKL_ladder_weight(
begin_ladder, end_ladder,
q0, pa, pb, p1, pn,
lambda
);
return current_factor*ladder_factor;
}
template<class InIter, class partIter>
double tree_kin_W_uno(InIter BeginIn, partIter BeginPart,
partIter EndPart, const HLV & plbar, const HLV & pl,
double lambda){
const auto pa = to_HepLorentzVector(*BeginIn);
const auto pb = to_HepLorentzVector(*(BeginIn+1));
const auto pg = to_HepLorentzVector(*BeginPart);
const auto p1 = to_HepLorentzVector(*(BeginPart+1));
const auto pn = to_HepLorentzVector(*(EndPart-1));
bool wc = (BeginIn)->type==(BeginPart+1)->type; //leg b emits w
auto q0 = pa - p1 - pg;
if(!wc)
q0 -= pl + plbar;
const double current_factor = ME_W_uno_current(
(BeginIn)->type, (BeginIn+1)->type, pn, pb,
p1, pa, pg, plbar, pl, wc
);
const double ladder_factor = FKL_ladder_weight(
BeginPart+2, EndPart-1,
q0, pa, pb, p1, pn,
lambda
);
return current_factor*C_A*C_A/(N_C*N_C-1.)*ladder_factor;
}
template<class InIter, class partIter>
double tree_kin_W_qqx(InIter BeginIn, partIter BeginPart,
partIter EndPart, const HLV & plbar, const HLV & pl,
double lambda){
const bool swap_q_qx=is_quark(*BeginPart);
const auto pa = to_HepLorentzVector(*BeginIn);
const auto pb = to_HepLorentzVector(*(BeginIn+1));
const auto pq = to_HepLorentzVector(*(BeginPart+(swap_q_qx?0:1)));
const auto pqbar = to_HepLorentzVector(*(BeginPart+(swap_q_qx?1:0)));
const auto p1 = to_HepLorentzVector(*(BeginPart));
const auto pn = to_HepLorentzVector(*(EndPart-1));
const bool wc = (BeginIn+1)->type!=(EndPart-1)->type; //leg b emits w
auto q0 = pa - pq - pqbar;
if(!wc)
q0 -= pl + plbar;
const double current_factor = ME_W_qqx_current(
(BeginIn)->type, (BeginIn+1)->type, pa, pb,
pq, pqbar, pn, plbar, pl, swap_q_qx, wc
);
const double ladder_factor = FKL_ladder_weight(
BeginPart+2, EndPart-1,
q0, pa, pb, p1, pn,
lambda
);
return current_factor*C_A*C_A/(N_C*N_C-1.)*ladder_factor;
}
double tree_kin_W_qqxmid(
int aptype, int bptype, HLV pa, HLV pb,
std::vector<Particle> const & partons,
HLV plbar, HLV pl,
double lambda
){
HLV pq,pqbar;
const auto backmidquark = std::find_if(
begin(partons)+1, end(partons)-1,
[](Particle const & s){ return s.type != pid::gluon; }
);
assert(backmidquark!=end(partons)-1);
if (is_quark(backmidquark->type)){
pq = to_HepLorentzVector(*backmidquark);
pqbar = to_HepLorentzVector(*(backmidquark+1));
}
else {
pqbar = to_HepLorentzVector(*backmidquark);
pq = to_HepLorentzVector(*(backmidquark+1));
}
auto p1 = to_HepLorentzVector(partons[0]);
auto pn = to_HepLorentzVector(partons[partons.size() - 1]);
auto q0 = pa - p1;
// t-channel momentum after qqx
auto qqxt = q0;
bool wc, wqq;
if (backmidquark->type == -(backmidquark+1)->type){ // Central qqx does not emit
wqq=false;
if (aptype==partons[0].type) {
wc = true;
}
else{
wc = false;
q0-=pl+plbar;
}
}
else{
wqq = true;
wc = false;
qqxt-=pl+plbar;
}
const auto begin_ladder = cbegin(partons) + 1;
const auto end_ladder_1 = (backmidquark);
const auto begin_ladder_2 = (backmidquark+2);
const auto end_ladder = cend(partons) - 1;
for(auto parton_it = begin_ladder; parton_it < begin_ladder_2; ++parton_it){
qqxt -= to_HepLorentzVector(*parton_it);
}
int nabove = std::distance(begin_ladder, backmidquark);
int nbelow = std::distance(begin_ladder_2, end_ladder);
std::vector<HLV> partonsHLV;
partonsHLV.reserve(partons.size());
for (size_t i = 0; i != partons.size(); ++i) {
partonsHLV.push_back(to_HepLorentzVector(partons[i]));
}
const double current_factor = ME_W_qqxmid_current(
aptype, bptype, nabove, nbelow, pa, pb,
pq, pqbar, partonsHLV, plbar, pl, wqq, wc
);
const double ladder_factor = FKL_ladder_weight(
begin_ladder, end_ladder_1,
q0, pa, pb, p1, pn,
lambda
)*FKL_ladder_weight(
begin_ladder_2, end_ladder,
qqxt, pa, pb, p1, pn,
lambda
);
return current_factor*C_A*C_A/(N_C*N_C-1.)*ladder_factor;
}
} // namespace anonymous
double MatrixElement::tree_kin_W(Event const & ev) const {
using namespace event_type;
auto const & incoming(ev.incoming());
auto const & decays(ev.decays());
HLV plbar, pl;
for (auto& x: decays) {
if (x.second.at(0).type < 0){
plbar = to_HepLorentzVector(x.second.at(0));
pl = to_HepLorentzVector(x.second.at(1));
}
else{
pl = to_HepLorentzVector(x.second.at(0));
plbar = to_HepLorentzVector(x.second.at(1));
}
}
const auto pa = to_HepLorentzVector(incoming[0]);
const auto pb = to_HepLorentzVector(incoming[1]);
const auto partons = tag_extremal_jet_partons(ev);
if(ev.type() == FKL){
return tree_kin_W_FKL(incoming[0].type, incoming[1].type,
pa, pb, partons, plbar, pl,
param_.regulator_lambda);
}
if(ev.type() == unordered_backward){
return tree_kin_W_uno(cbegin(incoming), cbegin(partons),
cend(partons), plbar, pl,
param_.regulator_lambda);
}
if(ev.type() == unordered_forward){
return tree_kin_W_uno(crbegin(incoming), crbegin(partons),
crend(partons), plbar, pl,
param_.regulator_lambda);
}
if(ev.type() == extremal_qqxb){
return tree_kin_W_qqx(cbegin(incoming), cbegin(partons),
cend(partons), plbar, pl,
param_.regulator_lambda);
}
if(ev.type() == extremal_qqxf){
return tree_kin_W_qqx(crbegin(incoming), crbegin(partons),
crend(partons), plbar, pl,
param_.regulator_lambda);
}
assert(ev.type() == central_qqx);
return tree_kin_W_qqxmid(incoming[0].type, incoming[1].type,
pa, pb, partons, plbar, pl,
param_.regulator_lambda);
}
double MatrixElement::tree_kin_Higgs(Event const & ev) const {
if(is_uno(ev.type())){
return tree_kin_Higgs_between(ev);
}
if(ev.outgoing().front().type == pid::Higgs){
return tree_kin_Higgs_first(ev);
}
if(ev.outgoing().back().type == pid::Higgs){
return tree_kin_Higgs_last(ev);
}
return tree_kin_Higgs_between(ev);
}
namespace {
// Colour acceleration multipliers, for gluons see eq. (7) in arXiv:0910.5113
#ifdef HEJ_BUILD_WITH_QCDLOOP
// TODO: code duplication with jets.cc
double K_g(double p1minus, double paminus) {
return 1./2.*(p1minus/paminus + paminus/p1minus)*(C_A - 1./C_A) + 1./C_A;
}
double K_g(
CLHEP::HepLorentzVector const & pout,
CLHEP::HepLorentzVector const & pin
) {
if(pin.z() > 0) return K_g(pout.plus(), pin.plus());
return K_g(pout.minus(), pin.minus());
}
double K(
ParticleID type,
CLHEP::HepLorentzVector const & pout,
CLHEP::HepLorentzVector const & pin
) {
if(type == ParticleID::gluon) return K_g(pout, pin);
return C_F;
}
#endif
// Colour factor in strict MRK limit
double K_MRK(ParticleID type) {
return (type == ParticleID::gluon)?C_A:C_F;
}
}
double MatrixElement::MH2_forwardH(
CLHEP::HepLorentzVector const & p1out,
CLHEP::HepLorentzVector const & p1in,
ParticleID type2,
CLHEP::HepLorentzVector const & p2out,
CLHEP::HepLorentzVector const & p2in,
CLHEP::HepLorentzVector const & pH,
double t1, double t2
) const{
ignore(p2out, p2in);
const double shat = p1in.invariantMass2(p2in);
+ const double vev = param_.ew_parameters.vev();
// gluon case
#ifdef HEJ_BUILD_WITH_QCDLOOP
if(!param_.Higgs_coupling.use_impact_factors){
return K(type2, p2out, p2in)*C_A*1./(16*M_PI*M_PI)*t1/t2*ME_Houtside_gq(
p1out, p1in, p2out, p2in, pH,
param_.Higgs_coupling.mt, param_.Higgs_coupling.include_bottom,
- param_.Higgs_coupling.mb
+ param_.Higgs_coupling.mb, vev
)/(4*(N_C*N_C - 1));
}
#endif
return K_MRK(type2)/C_A*9./2.*shat*shat*(
- C2gHgp(p1in,p1out,pH) + C2gHgm(p1in,p1out,pH)
+ C2gHgp(p1in,p1out,pH,vev) + C2gHgm(p1in,p1out,pH,vev)
)/(t1*t2);
}
double MatrixElement::tree_kin_Higgs_first(Event const & ev) const {
auto const & incoming = ev.incoming();
auto const & outgoing = ev.outgoing();
assert(outgoing.front().type == pid::Higgs);
if(outgoing[1].type != pid::gluon) {
assert(incoming.front().type == outgoing[1].type);
return tree_kin_Higgs_between(ev);
}
const auto pH = to_HepLorentzVector(outgoing.front());
const auto partons = tag_extremal_jet_partons(
ev
);
const auto pa = to_HepLorentzVector(incoming[0]);
const auto pb = to_HepLorentzVector(incoming[1]);
const auto p1 = to_HepLorentzVector(partons.front());
const auto pn = to_HepLorentzVector(partons.back());
const auto q0 = pa - p1 - pH;
const double t1 = q0.m2();
const double t2 = (pn - pb).m2();
return MH2_forwardH(
p1, pa, incoming[1].type, pn, pb, pH,
t1, t2
)*FKL_ladder_weight(
begin(partons) + 1, end(partons) - 1,
q0, pa, pb, p1, pn,
param_.regulator_lambda
);
}
double MatrixElement::tree_kin_Higgs_last(Event const & ev) const {
auto const & incoming = ev.incoming();
auto const & outgoing = ev.outgoing();
assert(outgoing.back().type == pid::Higgs);
if(outgoing[outgoing.size()-2].type != pid::gluon) {
assert(incoming.back().type == outgoing[outgoing.size()-2].type);
return tree_kin_Higgs_between(ev);
}
const auto pH = to_HepLorentzVector(outgoing.back());
const auto partons = tag_extremal_jet_partons(
ev
);
const auto pa = to_HepLorentzVector(incoming[0]);
const auto pb = to_HepLorentzVector(incoming[1]);
auto p1 = to_HepLorentzVector(partons.front());
const auto pn = to_HepLorentzVector(partons.back());
auto q0 = pa - p1;
const double t1 = q0.m2();
const double t2 = (pn + pH - pb).m2();
return MH2_forwardH(
pn, pb, incoming[0].type, p1, pa, pH,
t2, t1
)*FKL_ladder_weight(
begin(partons) + 1, end(partons) - 1,
q0, pa, pb, p1, pn,
param_.regulator_lambda
);
}
namespace {
template<class InIter, class partIter>
double tree_kin_Higgs_uno(InIter BeginIn, InIter EndIn, partIter BeginPart,
partIter EndPart, const HLV & qH, const HLV & qHp1,
- double mt, bool inc_bot, double mb){
+ double mt, bool inc_bot, double mb, double vev){
const auto pa = to_HepLorentzVector(*BeginIn);
const auto pb = to_HepLorentzVector(*(EndIn-1));
const auto pg = to_HepLorentzVector(*BeginPart);
const auto p1 = to_HepLorentzVector(*(BeginPart+1));
const auto pn = to_HepLorentzVector(*(EndPart-1));
return ME_Higgs_current_uno(
(BeginIn)->type, (EndIn-1)->type, pg, pn, pb, p1, pa,
- qH, qHp1, mt, inc_bot, mb
+ qH, qHp1, mt, inc_bot, mb, vev
);
}
}
double MatrixElement::tree_kin_Higgs_between(Event const & ev) const {
using namespace event_type;
auto const & incoming = ev.incoming();
auto const & outgoing = ev.outgoing();
const auto the_Higgs = std::find_if(
begin(outgoing), end(outgoing),
[](Particle const & s){ return s.type == pid::Higgs; }
);
assert(the_Higgs != end(outgoing));
const auto pH = to_HepLorentzVector(*the_Higgs);
const auto partons = tag_extremal_jet_partons(ev);
const auto pa = to_HepLorentzVector(incoming[0]);
const auto pb = to_HepLorentzVector(incoming[1]);
auto p1 = to_HepLorentzVector(
partons[(ev.type() == unob)?1:0]
);
auto pn = to_HepLorentzVector(
partons[partons.size() - ((ev.type() == unof)?2:1)]
);
auto first_after_Higgs = begin(partons) + (the_Higgs-begin(outgoing));
assert(
(first_after_Higgs == end(partons) && (
(ev.type() == unob)
|| partons.back().type != pid::gluon
))
|| first_after_Higgs->rapidity() >= the_Higgs->rapidity()
);
assert(
(first_after_Higgs == begin(partons) && (
(ev.type() == unof)
|| partons.front().type != pid::gluon
))
|| (first_after_Higgs-1)->rapidity() <= the_Higgs->rapidity()
);
// always treat the Higgs as if it were in between the extremal FKL partons
if(first_after_Higgs == begin(partons)) ++first_after_Higgs;
else if(first_after_Higgs == end(partons)) --first_after_Higgs;
// t-channel momentum before Higgs
auto qH = pa;
for(auto parton_it = begin(partons); parton_it != first_after_Higgs; ++parton_it){
qH -= to_HepLorentzVector(*parton_it);
}
auto q0 = pa - p1;
auto begin_ladder = begin(partons) + 1;
auto end_ladder = end(partons) - 1;
double current_factor;
if(ev.type() == FKL){
current_factor = ME_Higgs_current(
incoming[0].type, incoming[1].type,
pn, pb, p1, pa, qH, qH - pH,
param_.Higgs_coupling.mt,
- param_.Higgs_coupling.include_bottom, param_.Higgs_coupling.mb
+ param_.Higgs_coupling.include_bottom, param_.Higgs_coupling.mb,
+ param_.ew_parameters.vev()
);
}
else if(ev.type() == unob){
current_factor = HEJ::C_A*HEJ::C_A/2*tree_kin_Higgs_uno(
begin(incoming), end(incoming), begin(partons),
end(partons), qH, qH-pH, param_.Higgs_coupling.mt,
- param_.Higgs_coupling.include_bottom, param_.Higgs_coupling.mb
+ param_.Higgs_coupling.include_bottom, param_.Higgs_coupling.mb,
+ param_.ew_parameters.vev()
);
const auto p_unob = to_HepLorentzVector(partons.front());
q0 -= p_unob;
p1 += p_unob;
++begin_ladder;
}
else if(ev.type() == unof){
current_factor = HEJ::C_A*HEJ::C_A/2*tree_kin_Higgs_uno(
rbegin(incoming), rend(incoming), rbegin(partons),
rend(partons), qH-pH, qH, param_.Higgs_coupling.mt,
- param_.Higgs_coupling.include_bottom, param_.Higgs_coupling.mb
+ param_.Higgs_coupling.include_bottom, param_.Higgs_coupling.mb,
+ param_.ew_parameters.vev()
);
pn += to_HepLorentzVector(partons.back());
--end_ladder;
}
else{
throw std::logic_error("Can only reweight FKL or uno processes in H+Jets");
}
const double ladder_factor = FKL_ladder_weight(
begin_ladder, first_after_Higgs,
q0, pa, pb, p1, pn,
param_.regulator_lambda
)*FKL_ladder_weight(
first_after_Higgs, end_ladder,
qH - pH, pa, pb, p1, pn,
param_.regulator_lambda
);
return current_factor*C_A*C_A/(N_C*N_C-1.)*ladder_factor;
}
namespace {
- double get_AWZH_coupling(Event const & ev, double alpha_s) {
+ double get_AWZH_coupling(Event const & ev, double alpha_s, double alpha_w) {
const auto AWZH_boson = std::find_if(
begin(ev.outgoing()), end(ev.outgoing()),
[](auto const & p){return is_AWZH_boson(p);}
);
if(AWZH_boson == end(ev.outgoing())) return 1.;
switch(AWZH_boson->type){
case pid::Higgs:
return alpha_s*alpha_s;
case pid::Wp:
case pid::Wm:
- return gw*gw*gw*gw/4.;
+ return alpha_w*alpha_w;
// TODO
case pid::photon:
case pid::Z:
default:
throw not_implemented("Emission of boson of unsupported type");
}
}
}
double MatrixElement::tree_param(Event const & ev, double mur) const {
assert(is_resummable(ev.type()));
const auto begin_partons = ev.begin_partons();
const auto end_partons = ev.end_partons();
const auto num_partons = std::distance(begin_partons, end_partons);
const double alpha_s = alpha_s_(mur);
const double gs2 = 4.*M_PI*alpha_s;
double res = std::pow(gs2, num_partons);
if(param_.log_correction){
// use alpha_s(q_perp), evolved to mur
assert(num_partons >= 2);
const auto first_emission = std::next(begin_partons);
const auto last_emission = std::prev(end_partons);
for(auto parton = first_emission; parton != last_emission; ++parton){
res *= 1. + alpha_s/(2.*M_PI)*beta0*log(mur/parton->perp());
}
}
- return get_AWZH_coupling(ev, alpha_s)*res;
+ return get_AWZH_coupling(ev, alpha_s, param_.ew_parameters.alpha_w())*res;
}
} // namespace HEJ
diff --git a/t/ME_data/ME_Wm.dat b/t/ME_data/ME_Wm.dat
index f61a711..b563c9f 100644
--- a/t/ME_data/ME_Wm.dat
+++ b/t/ME_data/ME_Wm.dat
@@ -1,1308 +1,1308 @@
-2.928675692e-06
-1.647116461e-06
-6.792853649e-07
-8.309213874e-05
-1.188586835e-09
-7.418850985e-09
-4.641858351e-07
-4.469299635e-07
-6.109075964e-06
-2.937428029e-06
-4.834759305e-06
-8.223080997e-06
-1.984882889e-06
-4.724373663e-06
-2.284512955e-07
-6.086791509e-08
-9.402879575e-07
-2.134932663e-05
-1.344153838e-06
-6.325190057e-08
-5.042205822e-06
-0.0002285013435
-2.294857015e-06
-6.277759204e-05
-1.337020968e-07
-3.953835541e-06
-9.658506379e-05
-2.316868337e-06
-2.819688016e-07
-0.0001081216619
-3.432998402e-06
-3.368523741e-06
-1.11288709e-08
-3.29543466e-07
-3.989570061e-10
-1.948796723e-05
-3.510830208e-07
-3.210202477e-07
-3.239728865e-06
-8.604875852e-06
-7.617842534e-10
-1.878886612e-06
-8.602552313e-09
-2.905134545e-09
-9.580831652e-08
-2.761377426e-07
-1.121758088e-05
-8.305715929e-07
-3.094575366e-06
-9.009051399e-07
-3.660116555e-07
-4.545389317e-08
-1.619299497e-09
-0.01367636241
-3.915774786e-06
-2.025205952e-06
-3.6814996e-09
-4.179895596e-06
-3.07283947e-08
-8.89627591e-07
-3.025959937e-08
-1.817403251e-09
-4.337439968e-10
-1.271896091e-06
-6.045011555e-06
-9.89332115e-09
-1.214106087e-05
-2.958683161e-08
-2.061281825e-09
-1.93033348e-05
-6.299313702e-07
-2.644016282e-07
-2.061367847e-06
-4.34253878e-05
-8.291732575e-07
-2.499007952e-06
-4.358489891e-06
-9.241699824e-05
-9.12437674e-05
-0.0001159481718
-2.350252878e-06
-7.845324212e-06
-0.000638536879
-4.723440426e-08
-6.954486577e-09
-5.357700283e-06
-1.473730225e-07
-1.054004829e-07
-5.920067571e-07
-1.175811475e-05
-1.546221661e-07
-0.0004236100189
-3.617420289e-06
-4.516879429e-05
-3.955718614e-05
-0.0001365328248
-5.126170478e-05
-1.077742001e-06
-1.018758481e-08
-2.310396111e-09
-6.836738619e-07
-5.827603078e-09
-1.557658774e-09
-6.048954972e-05
-1.652858793e-07
-2.956993046e-07
-3.715591231e-06
-1.403931806e-08
-2.060713606e-07
-0.001033146046
-9.773118638e-07
-2.935985027e-05
-1.151256054e-05
-7.794713809e-06
-2.17436307e-05
-4.056751186e-08
-2.955377882e-08
-8.030872004e-05
-2.603215792e-07
-0.0001681672442
-2.930133644e-08
-7.197036394e-05
-1.920989813e-06
-3.637607439e-09
-7.893842383e-06
-0.0001175217074
-4.802925073e-10
-4.83556567e-07
-2.878827354e-05
-1.898723086e-09
-2.754516812e-08
-1.403679092e-10
-5.826558306e-07
-2.433773671e-06
-7.927708105e-06
-1.020983626e-08
-1.052585256e-07
-7.737192672e-06
-3.400645867e-06
-2.714553382e-08
-2.377796617e-09
-0.0001490868071
-9.612832588e-11
-1.654742249e-05
-1.57073488e-07
-1.609407803e-06
-6.946367688e-08
-0.04337790658
-9.860795665e-06
-1.103405546e-05
-0.01558805851
-1.359140493e-06
-2.104988229e-07
-4.483328013e-08
-2.527261731e-08
-4.136266286e-07
-1.75962763e-07
-4.16236019e-07
-3.66072855e-07
-2.475097776e-06
-2.142069091e-05
-3.962234552e-07
-5.0752339e-06
-2.831972358e-08
-8.260228591e-08
-2.191466894e-08
-7.392657036e-05
-5.57330681e-10
-1.264513056e-08
-3.373173459e-05
-1.515657759e-07
-4.183645033e-07
-1.162296215e-07
-7.731815775e-06
-1.077601875e-05
-2.331663061e-07
-4.316286429e-10
-4.05516744e-09
-1.282346148e-09
-1.905147472e-09
-2.799718364e-07
-6.430044079e-08
-3.336162544e-07
-2.847516226e-07
-2.8800296e-05
-5.034816791e-08
-0.0001697859258
-7.357868068e-08
-1.312972542e-07
-1.494668933e-07
-1.309682993e-09
-1.452620265e-08
-7.003475182e-07
-2.392867531e-06
-6.228302547e-06
-2.32207831e-07
-8.172158542e-08
-4.289261389e-07
-2.619009165e-07
-7.684975193e-06
-3.9300806e-10
-1.235480059e-06
-4.345702611e-07
-1.019591398e-07
-1.014400081e-05
-1.198511446e-05
-3.072393212e-05
-2.47145635e-06
-6.141459748e-06
-2.217791841e-05
-7.506816715e-07
-4.156597855e-07
-0.0003928655193
-6.192512495e-07
-9.058620171e-07
-7.767884384e-06
-1.506541078e-06
-1.438366886e-08
-1.393919618e-07
-7.338405876e-05
-1.013840918e-07
-1.941618603e-05
-1.098271271e-06
-7.583485063e-07
-1.924040495e-08
-2.683414048e-06
-0.0005387206665
-4.514003014e-09
-7.345041607e-06
-4.863384343e-08
-5.137710227e-07
-1.341025387e-07
-1.385096075e-09
-0.001475731456
-4.766899706e-09
-2.788152153e-07
-4.885059085e-07
-4.389966638e-07
-0.0006056993831
-2.260959244e-06
-1.622050932e-07
-8.044376305e-07
-0.002874337098
-8.545204208e-05
-2.859915875e-07
-3.520051428e-05
-3.83840617e-05
-6.701394914e-12
-6.711555934e-09
-1.221714284e-07
-4.175432874e-09
-1.276099272e-06
-9.349373741e-06
-5.093349519e-07
-2.102059997e-05
-2.546943624e-06
-4.307372366e-07
-0.0001405081607
-1.532593492e-06
-0.004327081818
-1.798381994e-07
-0.0002232914245
-1.177488117e-07
-1.784201554e-06
-2.027515818e-09
-3.74919864e-07
-1.128537898e-07
-4.135413677e-05
-2.009104635e-08
-8.773550962e-07
-9.824802351e-10
-1.631528339e-07
-2.288354101e-05
-2.035248598e-07
-0.0001019103655
-3.912289372e-06
-5.329003459e-08
-3.815264848e-10
-1.388142926e-05
-2.066904312e-08
-9.173930152e-07
-6.957230348e-09
-2.903877008e-05
-4.478794954e-09
-6.770693006e-07
-9.714079428e-08
-1.998883986e-05
-0.001799109057
-1.236217788e-08
-1.118375624e-05
-1.144499288e-07
-1.1864756e-06
-4.716258378e-06
-3.464456734e-07
-7.532453996e-11
-1.742294659e-06
-1.345426643e-06
-8.449545648e-08
-8.954221651e-07
-2.432487759e-06
-0.0001400677698
-0.001713444386
-1.075048353e-07
-4.105406541e-05
-3.733656311e-07
-1.984952182e-06
-0.001480322688
-0.0001151217974
-0.00209287627
-3.27555809e-06
-2.185782336e-09
-0.0004548139237
-0.01477027961
-3.934273672e-05
-0.001243829892
-5.430764382e-08
-4.380856265e-07
-4.297458002e-06
-1.467632945e-08
-1.820453663e-08
-2.699514835e-09
-8.420814307e-07
-8.634913084e-10
-1.182745993e-06
-8.508146264e-09
-7.184712053e-07
-1.192590185e-06
-1.766408443e-08
-0.002934313619
-1.283384372e-06
-6.255055172e-06
-8.703331507e-06
-9.664774229e-06
-2.675288802e-09
-3.392650797e-08
-0.0001071682868
-5.832833131e-09
-8.881117172e-08
-0.0002166070842
-1.248608916e-08
-1.726759584e-06
-2.99705455e-06
-2.119854874e-07
-7.412646571e-06
-2.755998704e-08
-9.960376424e-06
-3.051416349e-05
-1.129492506e-08
-2.619064731e-08
-5.532504512e-10
-2.177158595e-10
-0.0003851956976
-4.247896087e-05
-1.005180535e-08
-7.063067217e-08
-0.0002453874122
-6.569452237e-09
-2.430119913e-06
-1.727937098e-07
-1.211730869e-05
-9.94795514e-06
-0.0001605757277
-5.961378248e-08
-1.63764285e-06
-1.925056588e-07
-1.895751671e-05
-3.584139499e-09
-2.424148932e-07
-0.001006931825
-1.003162717e-06
-1.237484464e-06
-2.006432918e-06
-1.665677334e-05
-8.731387573e-06
-1.333871332e-07
-7.301399559e-09
-0.0005093528313
-7.645422963e-08
-2.020202554e-06
-6.813091876e-08
-1.10814416e-06
-1.95551597e-05
-2.003879505e-06
-3.670933614e-07
-1.728622505e-07
-0.0007263797041
-1.41191122028095e-05
-1.571311147e-07
-3.392287113e-06
-1.377047714e-09
-6.630650805e-07
-5.227904356e-08
-1.127011492e-06
-0.0003754771874
-1.865169444e-07
-6.576952888e-06
-3.329497044e-06
-7.07257004e-06
-2.88154104e-07
-1.985441412e-07
-6.929088895e-08
-2.512260458e-06
-6.217791051e-06
-3.877741985e-07
-1.707903155e-08
-5.10233078e-08
-4.572653519e-09
-0.1095009268
-7.449132821e-07
-2.09740422e-06
-9.378911822e-09
-7.910046337e-08
-1.223499404e-05
-2.672193111e-10
-2.314556691e-08
-3.503343355e-13
-1.602894349e-07
-5.890632996e-07
-1.487885964e-05
-1.978704988e-05
-2.552121299e-08
-3.565602472e-08
-0.0004467518296
-9.443687582e-10
-1.363026913e-06
-2.235788016e-07
-1.136525751e-07
-2.962478329e-08
-9.303967807e-06
-3.925082515e-10
-1.017880604e-05
-1.434347997e-08
-4.47759051e-06
-1.996980966e-09
-4.66863509e-05
-5.845204451e-06
-1.509519246e-07
-1.741949098e-06
-2.215116471e-10
-1.532616641e-06
-1.571651059e-08
-7.107477006e-05
-7.234687759e-06
-1.621643207e-06
-2.56453036e-08
-8.069391642e-09
-2.035933164e-07
-7.550717369310519e-08
-8.659572881e-06
-0.0004321439671563004
-3.337724504e-05
-4.782082889e-05
-2.323101105e-08
-1.19309915e-05
-0.0001350492201
-2.75397447e-06
-1.823126697e-08
-2.411767675e-05
-2.283494193e-09
-3.766390067e-08
-3.588343942e-05
-6.787383948e-05
-8.832490704e-10
-7.778718617e-10
-1.917361443e-08
-5.849351718e-06
-2.28541183e-06
-6.146818441e-06
-1.827359426e-05
-3.231234221e-05
-9.921186251e-07
-3.779404373e-09
-1.924149804e-05
-7.698409214e-06
-1.221205448e-06
-1.642479046e-06
-3.301215266e-07
-0.0004602920172
-3.293196018e-07
-3.950685019e-07
-2.805273751e-05
-1.739207752e-08
-3.773037585e-06
-1.537008391e-06
-2.434913209e-08
-8.315956868e-05
-6.88859927e-06
-6.869368159e-08
-4.672444205e-09
-7.02639721e-05
-7.305366536e-07
-2.162269825e-05
-0.0004328624246
-1.653264992e-07
-1.553411281e-05
-5.165593047e-10
-2.153731042e-10
-8.592408471e-09
-8.974979512e-09
-7.520620911e-07
-2.080333069e-07
-1.653991504e-07
-9.9043617e-09
-6.542874961e-09
-0.0005318553158
-1.144555776e-05
-6.936210932e-05
-7.62010085e-08
-1.834443898e-08
-8.099206646e-06
-1.946663573e-09
-4.916072586e-06
-2.013222915e-05
-8.510967278e-07
-3.442296018e-07
-1.194853419e-07
-1.251233575e-07
-2.847893723e-06
-2.519238034e-06
-3.662564708e-07
-1.646271735e-07
-5.373793619e-07
-4.353476735e-08
-8.727968448e-08
-1.053026857e-05
-1.083603462e-06
-1.461412043e-06
-1.220147207e-06
-0.0009307060856
-3.48570189e-07
-2.208034886e-08
-8.740398335e-08
-0.0001005182181
-5.658935843e-06
-3.660460092e-07
-5.210218655e-06
-1.176510494e-09
-1.167510222e-09
-1.74723538e-07
-4.652418777e-10
-1.639422267e-06
-9.200100093e-06
-0.0001764752281
-7.379070775e-09
-2.542944745e-07
-3.717769041983323e-06
-4.778249403e-10
-6.09916388e-07
-7.389397856e-06
-1.030208854e-08
-5.091853226e-08
-1.929321992e-06
-2.953703561e-07
-1.428266933e-08
-3.65646162e-05
-8.358213962e-06
-1.269052515e-05
-3.142034606e-10
-1.192354439e-08
-3.42519028e-07
-1.238073279e-05
-4.592188983e-07
-4.907760576e-08
-2.605803561e-07
-1.290266109e-06
-8.91015308e-08
-1.171147313e-05
-6.948329894e-06
-0.0001320627046
-4.467361346e-08
-1.343011103e-06
-4.69742523e-09
-1.674877668e-07
-1.158457021e-07
-7.247035325e-08
-0.0001328992567
-1.456012145e-05
-1.974800428e-05
-9.916997919e-05
-7.076016655e-07
-7.36330363e-07
-8.750739052e-07
-2.098702267e-05
-1.224885671e-06
-6.974041336e-07
-6.433390899e-08
-1.654868124e-05
-0.0009302881479
-1.821579155e-07
-6.800514105e-07
-1.766155755e-07
-8.004650647e-07
-9.941901599e-05
-2.06752057e-05
-5.066538235e-11
-1.506772094e-06
-8.10845767e-05
-7.610845142e-05
-0.0002115710954
-2.12571763e-09
-2.910738954e-06
-9.48875277e-06
-1.847390948e-06
-7.436554496e-05
-1.286439322e-10
-1.413106449e-06
-4.724231895e-08
-5.001854028e-07
-1.14055774e-06
-6.718621271e-11
-8.472867506e-09
-8.494930984e-08
-2.498427647e-07
-6.987204698e-06
-4.08117914e-06
-2.82229796e-07
-3.98589612e-09
-6.278231145e-05
-9.793860499e-07
-9.666736058e-07
-2.708628413e-06
-3.490044251e-07
-3.782645161e-10
-8.131830282e-08
-6.664325458e-06
-2.365503287e-08
-1.096958037e-06
-3.776083109e-07
-2.990539686e-08
-0.002754346975
-4.047644861e-07
-1.411988389e-07
-3.694067085e-08
-0.0002320708655
-3.71338597e-07
-3.835998288e-05
-2.623922776e-05
-6.474281304e-10
-0.0003219022096
-3.356011806e-07
-5.603569089e-09
-9.856721257e-08
-2.793861685e-07
-5.195375958e-06
-2.632243695e-06
-6.350302361e-07
-3.302377879e-10
-3.043526423e-08
-2.372803041e-08
-6.617140209e-06
-6.330476168e-07
-1.870130608e-06
-2.338555597e-07
-4.591171378e-10
-5.61933523e-05
-1.955958771e-08
-3.044175709e-08
-5.161106748e-08
-0.0001378680549
-2.750711746e-09
-2.289389014e-08
-4.001113699e-09
-2.236415233e-10
-3.473425904e-06
-7.311516826e-06
-8.898096465e-08
-1.481216022e-08
-2.435208033e-12
-1.189787819e-10
-5.333724185e-06
-4.66437667e-11
-2.381386364e-10
-1.249165957e-08
-1.128630934e-07
-1.550941521e-06
-2.297705942e-12
-5.846728434e-10
-4.069354108e-10
-4.063144762e-08
-1.749554102e-08
-5.155167146e-11
-1.688297139e-11
-2.774930205e-09
-6.091667068e-08
-2.87170322e-10
-3.66643664e-10
-8.258926512e-10
-7.390910771e-09
-1.48715158e-10
-6.565786352e-12
-3.475089984e-09
-2.002380042e-09
-7.274321744e-11
-6.359749104e-09
-7.940393308e-13
-1.098611945e-06
-7.438494044e-07
-2.339207348e-10
-4.499165346e-09
-3.082882191e-09
-1.878464872e-10
-4.005585989e-09
-2.63828057e-10
-2.218789497e-09
-5.827641219e-09
-1.543332934e-10
-4.907581247e-10
-6.901620609e-10
-2.088068542e-13
-7.837109261e-10
-1.937213353e-10
-1.715044299e-08
-4.069918057e-06
-2.91951045e-08
-1.565114165e-08
-3.443423804e-08
-1.256948998e-07
-4.363190898e-09
-2.287393528e-12
-6.966944807e-09
-5.995890076e-08
-1.289835012e-10
-1.695089305e-10
-2.301282525e-11
-9.445474271e-09
-2.115405965e-08
-1.662358545e-09
-1.025068565e-09
-9.719373728e-11
-1.732767627e-11
-4.41946888e-11
-5.657095809e-11
-5.288528777290672e-07
-5.324238867e-07
-2.221589565e-07
-2.48971658e-09
-2.994534368049623e-09
-1.075626423e-09
-7.782686578e-11
-2.946128307e-11
-3.399399058e-11
-1.446405065e-08
-2.187225844e-08
-7.820238975e-09
-2.40229777e-09
-7.46594076e-10
-1.281010307e-06
-3.598219943e-08
-1.251224651967984e-08
-3.332304338e-11
-7.617797708e-10
-9.909367591e-11
-4.653906139e-10
-3.587191007e-06
-4.446718734e-08
-1.894297128e-09
-4.744577059e-05
-4.433959517e-09
-2.210850439e-08
-1.036168503e-09
-1.103345617e-07
-4.995240386e-08
-8.363740584e-12
-3.281022886e-10
-3.148002148e-08
-6.330439107e-10
-3.863775656e-10
-5.96035067e-10
-4.255627067e-11
-1.165981634e-07
-2.50543766e-09
-1.33188621e-10
-9.172189534e-07
-6.582275731e-08
-1.542558412e-10
-1.297572348e-09
-8.107196167e-09
-2.070977659e-06
-6.93677041e-09
-2.329665548e-07
-2.684341075e-07
-3.375521064e-12
-4.781691571e-11
-5.350983865e-09
-9.177711402e-10
-3.059268527e-08
-1.113405482e-07
-5.998651665e-10
-3.911876462e-10
-1.176693635e-08
-8.69340171e-10
-2.320788866e-05
-2.036112191e-07
-3.21298594e-08
-7.12985182e-08
-1.481220144e-09
-9.13398584e-07
-9.416502413e-11
-1.481517933e-08
-2.317808347e-06
-3.901257454e-08
-4.627625989e-12
-2.494572686e-08
-9.094749026e-10
-1.731947437e-08
-2.095822035e-08
-7.215930164e-08
-2.372708431e-09
-9.374174236e-13
-1.029823717e-11
-5.170363884761981e-07
-3.317414045e-07
-1.109713675e-08
-6.47170925e-07
-1.864432618e-06
-3.397275076e-11
-4.168205664e-08
-1.346830208e-11
-3.171866069e-06
-7.866352681e-11
-3.289251567e-10
-7.057976269e-14
-2.67944287e-07
-4.480095364e-10
-2.542532019e-10
-1.046877898e-09
-4.692930721e-12
-5.841384928e-10
-5.254681082e-07
-9.003591534e-11
-3.637362188e-13
-9.047013259e-09
-1.769883631e-08
-9.48770427e-07
-1.037626188e-10
-7.931261407e-08
-2.511617984e-07
-1.749603857e-09
-1.158718175e-07
-1.833652906e-06
-4.450176914e-08
-5.71537314e-10
-1.070556403e-10
-2.448737924e-10
-6.262272951e-06
-2.141707476e-08
-4.258981326e-09
-5.49246536e-09
-9.566266675e-12
-3.797543387e-11
-2.705369876e-08
-4.238910221e-07
-1.784747449e-09
-3.595414385e-08
-3.222996111e-09
-6.210164067e-05
-2.258039015e-08
-1.191514021e-13
-1.513303142e-06
-9.658853509e-11
-5.082215114e-06
-9.44022394e-10
-8.437053744e-09
-1.463048848e-10
-3.444930056e-09
-7.868562747e-12
-1.272388225e-11
-3.427574116e-10
-8.990110201e-08
-2.83369365e-11
-3.0757007e-10
-5.265605701e-14
-4.26291208e-13
-7.393316606e-13
-5.385884913e-05
-8.367430153e-10
-1.271720599e-05
-8.40960929e-11
-6.150536572e-08
-5.764038353e-10
-1.4827533e-05
-2.322813811e-10
-4.431637476e-09
-1.319799794e-08
-1.965682244e-09
-5.782112632e-06
-7.526132679e-07
-1.075618822e-09
-1.712525448e-09
-3.952010247e-07
-3.136663182e-10
-1.366784094e-10
-2.291961377e-13
-7.468862634e-11
-2.13931093e-07
-2.325391866e-09
-7.657293509e-07
-3.023206769e-07
-1.974192114e-11
-2.239591754e-13
-1.575764712e-08
-3.894706527845038e-07
-2.463427596e-09
-1.169483637e-07
-7.445202399e-07
-3.876016309e-06
-6.204312046e-07
-5.089616453e-10
-2.563342578e-13
-4.109081761499578e-09
-8.534723944e-11
-3.062921512e-14
-5.084635637e-08
-3.964438906e-09
-9.56064042e-09
-5.713458485e-07
-8.602373058e-10
-9.674381801e-09
-5.575533604e-08
-7.736937052e-10
-5.25696461e-10
-2.604611015e-08
-5.185877553e-08
-5.136914596e-07
-4.457967612e-09
-7.087532094e-06
-2.866869842e-09
-2.555695269e-07
-1.14983411e-06
-2.121499808e-11
-6.538598731e-11
-4.397576097e-10
-1.68339254e-10
-7.632177773e-10
-3.194450213e-07
-4.743002807e-08
-5.174172592e-09
-1.378394044e-06
-0.0001075134541
-0.0002104593459
-1.291514756e-09
-1.113812317e-09
-2.836821935e-07
-2.119414007e-05
-3.257830135e-07
-6.904331208e-08
-1.133565101e-07
-2.515736584e-07
-2.868370103e-07
-1.316255824e-07
-1.143196584e-07
-6.920318567e-10
-1.261652011e-08
-7.917924522e-13
-7.954494796e-10
-6.551135771e-09
-5.085806996e-09
-1.197408695e-11
-7.765435603e-11
-1.137649191e-10
-9.984771335e-11
-1.206636661e-07
-9.837079112e-09
-3.488285266e-08
-4.035219127e-08
-1.411962856e-08
-1.030986206e-07
-0.0001339305599
-2.858760077e-12
-3.300471596e-09
-1.938419056e-10
-3.176459434e-12
-1.739161428e-09
-4.024412744e-07
-3.711167254e-08
-3.68209028e-09
-9.299354827e-11
-4.060060302e-10
-1.4612779e-05
-9.474942894e-11
-6.71405306e-14
-2.422793691e-09
-1.239892236e-07
-2.586764905e-08
-3.834829456e-09
-4.981089193e-08
-5.890823747e-10
-1.712560509e-13
-5.885874705e-12
-3.850099718e-12
-5.815334596e-10
-2.871382336e-07
-3.360539652e-09
-4.474272729e-08
-4.854260426e-09
-6.835712438e-09
-4.513662362e-10
-1.937015923e-09
-3.204387319e-07
-2.834110865e-06
-2.373908594e-10
-8.959130596e-10
-2.230101714e-07
-2.935469223e-08
-1.283653118e-05
-1.768922904e-09
-1.023937016e-07
-1.810088219e-10
-1.898013563e-06
-1.555535859e-07
-2.081843632e-11
-1.130189635e-07
-5.044203176e-10
-4.419441096e-10
-8.383860763e-08
-1.081590063e-05
-4.255989963e-09
-4.961325451e-09
-4.722044461e-12
-2.605827829e-07
-6.302277862e-12
-7.401606994e-11
-5.826773899e-09
-3.775837499e-06
-7.970709192e-06
-1.077514227e-08
-4.597223421e-10
-6.830064994e-09
-2.132411988e-10
-3.596324757e-11
-6.420547725e-09
-2.577236401e-09
-3.303229315e-09
-6.18774819e-09
-4.85351932e-08
-4.830745338e-10
-3.720076558e-06
-1.356666145e-08
-2.380000545e-09
-6.934200897e-11
-3.297569231e-09
-3.435257108e-10
-5.29774949e-08
-4.382596642e-09
-2.15867853e-08
-5.682155814e-12
-2.87290739e-07
-1.68447438e-10
-3.702374348e-08
-4.342623412e-10
-6.279260244e-08
-2.403676166e-08
-6.186547757e-09
-1.906369995e-07
-4.632234292e-10
-2.755342608e-09
-1.375328487e-08
-2.872876599e-08
-6.101397141e-07
-3.268512848e-10
-2.065059787e-07
-2.629402008e-09
-4.962476519e-11
-1.388892596e-10
-6.600566104e-08
-2.769850168e-07
-8.89254745e-07
-4.790857584e-07
-8.513434203e-09
-2.371056219e-11
-1.969882102e-08
-1.194180775e-06
-2.536127752e-06
-3.538123306e-11
-7.535922813e-11
-3.279643366e-09
-5.915578256e-09
-3.02572337e-12
-2.425014125e-08
-1.736441207e-08
-9.148487522e-11
-2.773967859e-09
-6.97620218e-08
-1.281934525e-09
-3.47740087e-11
-7.026364385e-12
-3.159133311e-08
-2.31268605e-06
-1.021090566e-11
-6.311611218e-10
-3.496527402152061e-09
-5.006407047e-09
-1.086254132e-09
-6.442848457e-07
-3.40398573e-08
-1.040533844e-07
-2.015250069e-08
-2.367399296e-08
-1.455786943e-08
-4.519557691e-07
-6.28474478e-08
-1.681943257e-08
-3.350671592e-10
-1.788948112e-11
-8.659128848e-08
-1.581729673e-10
-3.16899147e-08
-1.269452476e-09
-3.307661094e-11
-6.743047887e-11
-4.30353612e-10
-1.049230002e-07
-7.726948943e-12
-5.740327635e-07
-7.011998453e-07
-5.337360544e-09
-6.364224996e-09
-6.365307921e-10
-7.724490255e-10
-2.368415063e-08
-1.761719259305042e-07
-3.074395438e-08
-5.988468898e-06
-1.432688658e-12
-7.971925347e-11
-1.851944696e-07
-1.679623381e-10
-6.480885684e-06
-9.759515118e-09
-3.448768806e-09
-7.000972121e-11
-2.170432891e-09
-5.016191785e-09
-1.49812676e-09
-5.87915813e-10
-6.048689475e-10
-1.149696962e-08
-8.392285319e-11
-2.869985172e-13
-9.120207147e-09
-1.023039271e-06
-1.843349283e-11
-1.00493373e-06
-1.437966503e-09
-3.104285805e-06
-3.736848159e-10
-9.594800986e-11
-1.232024101e-11
-3.535931521e-07
-7.131216184e-08
-2.337326742e-10
-2.82410779e-07
-3.138271299e-08
-5.494774408e-12
-3.07020008e-12
-2.011245542e-10
-1.461453727e-11
-3.082048934e-09
-1.460968738e-10
-3.186600527e-07
-8.613894657e-10
-4.227362638e-07
-1.132945088e-08
-1.385877833e-08
-2.535124307e-09
-5.647614453e-08
-1.712204167e-10
-9.689130473e-07
-2.23306088e-09
-2.607948681e-11
-1.678634611e-13
-2.258659145e-06
-1.695727868e-09
-1.706090682e-11
-4.758749915e-12
-1.426536131e-05
-1.449437791e-07
-4.24476422e-08
-3.617494916e-10
-8.345680248e-12
-7.09135827e-13
-8.179812515e-09
-3.323888637e-09
-1.436305431e-08
-5.885631636e-10
-3.584884074e-08
-9.15498181e-09
-9.640861937e-11
-1.908907816e-09
-2.558536978e-10
-5.232929043e-10
-1.261308954e-09
-2.535469757e-10
-1.402741054722527e-06
-9.405064753e-10
-1.920855926e-07
-4.40419547e-11
-5.00514635e-10
-1.406592654e-07
-4.52773411e-10
-4.146849421e-07
-1.166300995e-07
-7.051208905e-09
-4.118573924e-09
-9.269115967e-07
-1.08066004e-10
-1.045618377e-06
-4.94758944e-07
-6.160229109e-12
-1.351649588024934e-08
-2.784256537e-09
-1.934517844e-08
-5.314666753e-13
-1.357165448e-09
-4.977436192e-12
-6.477152561e-11
-4.234578629e-08
-4.918295292e-13
-3.683451803e-08
-3.727223271e-09
-1.040244287e-09
-6.604553745e-10
-3.806952288e-09
-1.097089218e-08
-1.705682648e-08
-6.319891143e-07
-1.574130537e-09
-3.013782963e-08
-4.772880086e-09
-3.679484278e-09
-8.938611559e-10
-5.601588127e-09
-1.526952592e-05
-3.497239887e-10
-9.33354413e-08
-1.359301132e-08
-6.404370059e-11
-1.535628496e-11
-2.243494388e-09
-4.662210325e-09
-1.022052539e-10
-1.383917366e-07
-1.619072147e-12
-1.507995029e-08
-2.056138551e-09
-1.984766447e-05
-5.313284134e-09
-1.04749306e-08
-1.156452533e-07
-1.201443255e-06
-1.584111891e-09
-2.09858386e-11
-3.445445203e-09
-4.164676e-06
-4.092776954e-12
-9.944337818e-10
-5.276009823e-09
-3.628978704e-11
-2.197020798e-10
-1.052815682e-08
-1.068627029e-08
-3.831431452e-11
-1.364029236e-07
-3.403124343e-10
-5.38162347e-08
-6.729323819e-12
-1.207769187e-07
-4.017542328e-09
-1.315684128e-08
-7.126836658e-11
-1.491126652e-07
-7.209030864e-10
-6.628062787e-08
-1.21591155e-10
-6.230923352e-09
-0.000101234359
-5.30942773e-10
-5.741385346e-10
-2.429893426e-08
-7.325998025e-12
-3.533987787e-09
-7.926231814e-10
-8.291189826e-11
-3.746302962e-11
-5.242302307e-11
-8.718447375e-08
-6.176050515e-11
-6.09961364e-09
-2.644343829e-09
-2.306901235e-08
-7.322320056e-10
-1.884045094e-06
-3.755632286e-08
-1.659778169e-08
-5.495025114e-08
-3.546727594e-09
-2.674246643e-07
-1.028252112e-09
-9.289249703e-06
-7.959960572e-08
-1.068081079e-11
-5.674343265e-07
-6.214463157e-09
-1.601066932e-06
-1.977738539e-06
-3.462786645e-07
-7.373697384e-09
-5.726726532e-12
+2.928617337e-06
+1.647083496e-06
+6.792718307e-07
+8.309052795e-05
+1.188563005e-09
+7.418703203e-09
+4.64176585e-07
+4.469210588e-07
+6.108953218e-06
+2.937369558e-06
+4.834662872e-06
+8.222916804e-06
+1.984842145e-06
+4.724279533e-06
+2.284467423e-07
+6.086670249e-08
+9.402694313e-07
+2.134890127e-05
+1.344127063e-06
+6.325064033e-08
+5.042105356e-06
+0.0002284967536
+2.294811317e-06
+6.277634042e-05
+1.336994329e-07
+3.953756759e-06
+9.658399826e-05
+2.316822172e-06
+2.819631851e-07
+0.0001081195238
+3.432930003e-06
+3.368456504e-06
+1.112864917e-08
+3.295369143e-07
+3.989490572e-10
+1.948758233e-05
+3.510758397e-07
+3.210138517e-07
+3.239664339e-06
+8.604705327e-06
+7.617690755e-10
+1.878849261e-06
+8.602382866e-09
+2.905076666e-09
+9.580640762e-08
+2.761322408e-07
+1.121735761e-05
+8.305550955e-07
+3.094512747e-06
+9.008871903e-07
+3.660037761e-07
+4.545298754e-08
+1.619265714e-09
+0.01367608992
+3.915696743e-06
+2.025165585e-06
+3.681426282e-09
+4.179813437e-06
+3.072778246e-08
+8.896098616e-07
+3.025899647e-08
+1.817366927e-09
+4.337353756e-10
+1.271872323e-06
+6.04489128e-06
+9.893120074e-09
+1.214081986e-05
+2.958624219e-08
+2.061238904e-09
+1.930294996e-05
+6.299188205e-07
+2.643963602e-07
+2.06132771e-06
+4.342452252e-05
+8.291567369e-07
+2.498958153e-06
+4.358403281e-06
+9.241515571e-05
+9.124195104e-05
+0.000115945869
+2.350206043e-06
+7.845167967e-06
+0.000638524343
+4.723346316e-08
+6.954346838e-09
+5.357593527e-06
+1.473700863e-07
+1.053983829e-07
+5.919949754e-07
+1.175787989e-05
+1.546190854e-07
+0.0004236014522
+3.617348006e-06
+4.516789165e-05
+3.955639799e-05
+0.0001365301129
+5.126068859e-05
+1.077721123e-06
+1.018738183e-08
+2.31035007e-09
+6.836601309e-07
+5.827486967e-09
+1.557627741e-09
+6.04883445e-05
+1.652825805e-07
+2.956934131e-07
+3.715517348e-06
+1.403902522e-08
+2.060672536e-07
+0.001033124848
+9.772923916e-07
+2.935927964e-05
+1.151232995e-05
+7.794558457e-06
+2.174319802e-05
+4.056670359e-08
+2.955320268e-08
+8.030711247e-05
+2.603164139e-07
+0.0001681638933
+2.93007525e-08
+7.196892999e-05
+1.920951539e-06
+3.637534963e-09
+7.893685649e-06
+0.0001175194162
+4.802829388e-10
+4.835469293e-07
+2.878769998e-05
+1.898685256e-09
+2.754462006e-08
+1.403651125e-10
+5.826442197e-07
+2.43372504e-06
+7.927550152e-06
+1.020962274e-08
+1.052564287e-07
+7.737037652e-06
+3.40057811e-06
+2.714499296e-08
+2.377749398e-09
+0.0001490838408
+9.612641064e-11
+1.654718689e-05
+1.570703582e-07
+1.609375559e-06
+6.94622935e-08
+0.04337706424
+9.860599192e-06
+1.103383561e-05
+0.01558774793
+1.359111595e-06
+2.104947148e-07
+4.483240938e-08
+2.52721137e-08
+4.136183848e-07
+1.75959296e-07
+4.162277212e-07
+3.660655583e-07
+2.475053461e-06
+2.142026381e-05
+3.962155608e-07
+5.075132791e-06
+2.831915934e-08
+8.260063969e-08
+2.191422806e-08
+7.392509744e-05
+5.57319664e-10
+1.264487785e-08
+3.373106258e-05
+1.515627561e-07
+4.183562189e-07
+1.162273072e-07
+7.731661725e-06
+1.077580922e-05
+2.331616561e-07
+4.316200243e-10
+4.055086645e-09
+1.282320598e-09
+1.905109513e-09
+2.799643084e-07
+6.42991509e-08
+3.336097219e-07
+2.847456008e-07
+2.87996438e-05
+5.034716477e-08
+0.0001697825431
+7.357721468e-08
+1.312946382e-07
+1.494639153e-07
+1.309657132e-09
+1.452591322e-08
+7.003335472e-07
+2.392819852e-06
+6.228178425e-06
+2.32203151e-07
+8.171995835e-08
+4.289175929e-07
+2.618956983e-07
+7.684822085e-06
+3.930002297e-10
+1.235455443e-06
+4.345617106e-07
+1.019571055e-07
+1.014379889e-05
+1.198488003e-05
+3.072332076e-05
+2.471407108e-06
+6.141337359e-06
+2.217748858e-05
+7.506667147e-07
+4.156515027e-07
+0.0003928577459
+6.192388402e-07
+9.058439765e-07
+7.767728411e-06
+1.506511059e-06
+1.438338227e-08
+1.393891846e-07
+7.338259665e-05
+1.013820716e-07
+1.941576288e-05
+1.098253136e-06
+7.583333968e-07
+1.924002116e-08
+2.683360604e-06
+0.0005387099327
+4.513913649e-09
+7.344897056e-06
+4.863287455e-08
+5.137627244e-07
+1.340998671e-07
+1.385068639e-09
+0.001475702054
+4.766804909e-09
+2.788096601e-07
+4.884961794e-07
+4.389879349e-07
+0.000605687279
+2.260914346e-06
+1.622018609e-07
+8.044214563e-07
+0.00287427997
+8.545033973e-05
+2.859858841e-07
+3.519981239e-05
+3.838329691e-05
+6.701261402e-12
+6.711423424e-09
+1.221689939e-07
+4.175349671e-09
+1.276073867e-06
+9.349187354e-06
+5.09324804e-07
+2.102018112e-05
+2.546892483e-06
+4.307286548e-07
+0.0001405053615
+1.532562441e-06
+0.0043269957
+1.798346185e-07
+0.0002232869764
+1.177464656e-07
+1.784165987e-06
+2.027475413e-09
+3.749124642e-07
+1.128514896e-07
+4.135331177e-05
+2.009064605e-08
+8.773376156e-07
+9.824605427e-10
+1.631495832e-07
+2.288308451e-05
+2.035208047e-07
+0.0001019083349
+3.912211406e-06
+5.328897283e-08
+3.815188832e-10
+1.388115787e-05
+2.066863131e-08
+9.173747359e-07
+6.957092901e-09
+2.903819076e-05
+4.478705717e-09
+6.770557613e-07
+9.713885883e-08
+1.99884353e-05
+0.00179907318
+1.236193169e-08
+1.118353017e-05
+1.144476494e-07
+1.186451992e-06
+4.716164372e-06
+3.464387694e-07
+7.532303889e-11
+1.742260009e-06
+1.345400054e-06
+8.449377298e-08
+8.954043245e-07
+2.432439258e-06
+0.000140064979
+0.001713410238
+1.075027005e-07
+4.105324765e-05
+3.733581957e-07
+1.98491263e-06
+0.001480293332
+0.000115119501
+0.002092834408
+3.27549321e-06
+2.185738747e-09
+0.0004548048702
+0.01476996084
+3.934195111e-05
+0.001243805117
+5.430656178e-08
+4.380768976e-07
+4.297371205e-06
+1.467603532e-08
+1.820417519e-08
+2.69946112e-09
+8.420646529e-07
+8.634740669e-10
+1.18272243e-06
+8.507977199e-09
+7.184568904e-07
+1.19256643e-06
+1.766373439e-08
+0.002934256247
+1.283358802e-06
+6.25493059e-06
+8.703159136e-06
+9.664582837e-06
+2.675235499e-09
+3.392583208e-08
+0.0001071661518
+5.832716966e-09
+8.880940377e-08
+0.0002166027692
+1.248584038e-08
+1.726725176e-06
+2.996994836e-06
+2.119813038e-07
+7.412498676e-06
+2.755943745e-08
+9.960177922e-06
+3.051353704e-05
+1.129469998e-08
+2.619012548e-08
+5.532394281e-10
+2.177115217e-10
+0.000385188033
+4.24781146e-05
+1.005160549e-08
+7.062926491e-08
+0.0002453825231
+6.569321281e-09
+2.430064335e-06
+1.72790267e-07
+1.211706684e-05
+9.947756935e-06
+0.0001605725284
+5.961264107e-08
+1.637610222e-06
+1.925017924e-07
+1.895713903e-05
+3.584070555e-09
+2.424100642e-07
+0.00100691167
+1.00314273e-06
+1.237459693e-06
+2.006393648e-06
+1.665644179e-05
+8.731214124e-06
+1.333844755e-07
+7.301254085e-09
+0.0005093424595
+7.645270509e-08
+2.020155895e-06
+6.812955519e-08
+1.108122048e-06
+1.955477011e-05
+2.003839607e-06
+3.670861157e-07
+1.728588066e-07
+0.0007263652123
+1.411883089e-05
+1.57127984e-07
+3.392219563e-06
+1.377020396e-09
+6.630519487e-07
+5.22780019e-08
+1.126988334e-06
+0.0003754697012
+1.865132299e-07
+6.576821868e-06
+3.329430704e-06
+7.072429086e-06
+2.881483653e-07
+1.985401854e-07
+6.928951207e-08
+2.512210403e-06
+6.217628744e-06
+3.877664708e-07
+1.707869127e-08
+5.102229121e-08
+4.572562413e-09
+0.1094987466
+7.448984403e-07
+2.097362549e-06
+9.378724955e-09
+7.909888639e-08
+1.223474695e-05
+2.672139756e-10
+2.314510579e-08
+3.503273554e-13
+1.60286267e-07
+5.890515619e-07
+1.487856468e-05
+1.978663079e-05
+2.552070699e-08
+3.56553144e-08
+0.000446743015
+9.443500031e-10
+1.362999756e-06
+2.23574347e-07
+1.136503384e-07
+2.962418624e-08
+9.303781273e-06
+3.925004271e-10
+1.017860324e-05
+1.434319467e-08
+4.477501165e-06
+1.99694118e-09
+4.66854211e-05
+5.845087896e-06
+1.50948917e-07
+1.741914174e-06
+2.215072337e-10
+1.532586108e-06
+1.571619745e-08
+7.107335402e-05
+7.234543614e-06
+1.621610925e-06
+2.564479119e-08
+8.069230827e-09
+2.035891754e-07
+7.550566928e-08
+8.659400091e-06
+0.000432135357
+3.337658317e-05
+4.781987615e-05
+2.323054819e-08
+1.193074871e-05
+0.0001350465294
+2.75391678e-06
+1.823090373e-08
+2.411719368e-05
+2.283448741e-09
+3.766315025e-08
+3.588272465e-05
+6.787248878e-05
+8.832303026e-10
+7.778563208e-10
+1.917323241e-08
+5.849230322e-06
+2.285366293e-06
+6.146695971e-06
+1.827323017e-05
+3.231169839e-05
+9.920988726e-07
+3.779329381e-09
+1.924111467e-05
+7.69825658e-06
+1.221181117e-06
+1.642446586e-06
+3.301149504e-07
+0.0004602831218
+3.293132243e-07
+3.950606305e-07
+2.805226741e-05
+1.739173102e-08
+3.772962441e-06
+1.536977768e-06
+2.43486381e-08
+8.315791148e-05
+6.888462138e-06
+6.869231292e-08
+4.672351113e-09
+7.026257201e-05
+7.305220983e-07
+2.162227029e-05
+0.0004328538034
+1.653230976e-07
+1.553380485e-05
+5.165496905e-10
+2.153688131e-10
+8.592237275e-09
+8.974803982e-09
+7.52047119e-07
+2.080291683e-07
+1.653958549e-07
+9.904164203e-09
+6.542744984e-09
+0.000531844742
+1.144533099e-05
+6.936072576e-05
+7.619949025e-08
+1.834407348e-08
+8.099045298e-06
+1.946623224e-09
+4.915974524e-06
+2.013182511e-05
+8.510788604e-07
+3.442227405e-07
+1.19482958e-07
+1.251208094e-07
+2.847837381e-06
+2.519188271e-06
+3.662492908e-07
+1.646238933e-07
+5.373686421e-07
+4.353389866e-08
+8.727794552e-08
+1.053005806e-05
+1.083581872e-06
+1.461382853e-06
+1.220121571e-06
+0.0009306878204
+3.485645992e-07
+2.207991124e-08
+8.740223411e-08
+0.0001005162172
+5.658823113e-06
+3.660387161e-07
+5.210114851e-06
+1.176487053e-09
+1.16748696e-09
+1.747200576e-07
+4.652326082e-10
+1.639389602e-06
+9.199916708e-06
+0.0001764717118
+7.378923764e-09
+2.542894196e-07
+3.717694969e-06
+4.778153607e-10
+6.099042667e-07
+7.389253413e-06
+1.03018836e-08
+5.091752513e-08
+1.929282765e-06
+2.953644841e-07
+1.428238895e-08
+3.65638878e-05
+8.358046608e-06
+1.269027303e-05
+3.141972004e-10
+1.192330682e-08
+3.425122036e-07
+1.238048594e-05
+4.592097513e-07
+4.907663521e-08
+2.605751798e-07
+1.290240408e-06
+8.909975732e-08
+1.171123948e-05
+6.948191451e-06
+0.0001320600695
+4.467272334e-08
+1.342984323e-06
+4.697331637e-09
+1.674844316e-07
+1.158433939e-07
+7.246890859e-08
+0.0001328966329
+1.455983069e-05
+1.974761595e-05
+9.916801323e-05
+7.07587568e-07
+7.363156082e-07
+8.750552305e-07
+2.098660427e-05
+1.224863673e-06
+6.973895334e-07
+6.433262719e-08
+1.65483483e-05
+0.0009302696124
+1.821542748e-07
+6.800378641e-07
+1.766120464e-07
+8.004491159e-07
+9.941703505e-05
+2.067479421e-05
+5.066437288e-11
+1.506742077e-06
+8.108300003e-05
+7.610696189e-05
+0.0002115668797
+2.125674742e-09
+2.910679195e-06
+9.488563678e-06
+1.847352953e-06
+7.436406293e-05
+1.286413705e-10
+1.413078284e-06
+4.724137688e-08
+5.001760652e-07
+1.140535015e-06
+6.718486985e-11
+8.472698691e-09
+8.494761782e-08
+2.498377868e-07
+6.987065516e-06
+4.081098152e-06
+2.822241728e-07
+3.985816309e-09
+6.27810604e-05
+9.793665521e-07
+9.666541857e-07
+2.708574051e-06
+3.489974641e-07
+3.782569786e-10
+8.131668264e-08
+6.664191677e-06
+2.365456156e-08
+1.096935914e-06
+3.77600791e-07
+2.990480133e-08
+0.002754292096
+4.047564209e-07
+1.411960244e-07
+3.69399348e-08
+0.0002320662158
+3.713311984e-07
+3.835921825e-05
+2.623885825e-05
+6.474152282e-10
+0.0003218958043
+3.35594494e-07
+5.603457411e-09
+9.856525159e-08
+2.793807664e-07
+5.195272481e-06
+2.632191143e-06
+6.350175836e-07
+3.302312082e-10
+3.043465789e-08
+2.372756421e-08
+6.617008787e-06
+6.330350038e-07
+1.87009364e-06
+2.338509504e-07
+4.591079902e-10
+5.619228611e-05
+1.955919798e-08
+3.044115064e-08
+5.161003917e-08
+0.0001378653082
+2.75065694e-09
+2.289343402e-08
+4.00103398e-09
+2.236370675e-10
+3.473356692e-06
+7.311371105e-06
+8.897919195e-08
+1.481186501e-08
+2.435159627e-12
+1.189764093e-10
+5.333618139e-06
+4.664283736e-11
+2.381338932e-10
+1.249141019e-08
+1.128608436e-07
+1.550910634e-06
+2.297659982e-12
+5.846612314e-10
+4.069273229e-10
+4.063063753e-08
+1.749519244e-08
+5.155065374e-11
+1.688263366e-11
+2.774873693e-09
+6.091545766e-08
+2.871646004e-10
+3.666363559e-10
+8.258762033e-10
+7.390763165e-09
+1.487121411e-10
+6.565655534e-12
+3.475020746e-09
+2.002340151e-09
+7.274176809e-11
+6.359622393e-09
+7.94023499e-13
+1.098589837e-06
+7.438345866e-07
+2.339160741e-10
+4.499075704e-09
+3.082821024e-09
+1.878422387e-10
+4.005506099e-09
+2.638228004e-10
+2.218745508e-09
+5.827525081e-09
+1.543301813e-10
+4.907483457e-10
+6.901483311e-10
+2.088026801e-13
+7.836953093e-10
+1.937174755e-10
+1.715010225e-08
+4.069836853e-06
+2.919452232e-08
+1.565082965e-08
+3.4433546e-08
+1.256924112e-07
+4.363104327e-09
+2.287347968e-12
+6.966805897e-09
+5.995770348e-08
+1.289809313e-10
+1.695055516e-10
+2.301236675e-11
+9.445286023e-09
+2.11536282e-08
+1.662325435e-09
+1.025048152e-09
+9.719163301e-11
+1.732729349e-11
+4.419380825e-11
+5.656983099e-11
+5.288423408e-07
+5.324133016e-07
+2.221547731e-07
+2.489666974e-09
+2.994474704e-09
+1.075604993e-09
+7.782531146e-11
+2.946069638e-11
+3.399331328e-11
+1.446376248e-08
+2.187182264e-08
+7.82008326e-09
+2.402248677e-09
+7.465791364e-10
+1.280984452e-06
+3.59815576e-08
+1.251199722e-08
+3.332237947e-11
+7.61764668e-10
+9.909170155e-11
+4.653813812e-10
+3.587118654e-06
+4.446631546e-08
+1.894259386e-09
+4.744482097e-05
+4.433870092e-09
+2.21080639e-08
+1.03614786e-09
+1.103323529e-07
+4.99514086e-08
+8.363573856e-12
+3.280957443e-10
+3.14793974e-08
+6.330314597e-10
+3.863698763e-10
+5.960231262e-10
+4.255542277e-11
+1.165958403e-07
+2.505387626e-09
+1.331859656e-10
+9.172006774e-07
+6.582144563e-08
+1.542525158e-10
+1.297546413e-09
+8.107028639e-09
+2.070936394e-06
+6.936632176e-09
+2.329619212e-07
+2.684287588e-07
+3.375453851e-12
+4.7815963e-11
+5.350876399e-09
+9.177530263e-10
+3.059207574e-08
+1.113388771e-07
+5.998531569e-10
+3.911798644e-10
+1.176672437e-08
+8.693228501e-10
+2.320742865e-05
+2.036071812e-07
+3.212921899e-08
+7.129708873e-08
+1.481190721e-09
+9.133803854e-07
+9.416314797e-11
+1.481488075e-08
+2.317757165e-06
+3.901179725e-08
+4.627532631e-12
+2.494522948e-08
+9.09456782e-10
+1.731912929e-08
+2.095780184e-08
+7.215786392e-08
+2.372661172e-09
+9.373987463e-13
+1.029803199e-11
+5.17026087e-07
+3.317347932e-07
+1.109691565e-08
+6.471580259e-07
+1.86439548e-06
+3.397207388e-11
+4.168122616e-08
+1.346803365e-11
+3.171802872e-06
+7.86619595e-11
+3.289183668e-10
+7.057835645e-14
+2.679389626e-07
+4.480005874e-10
+2.542481361e-10
+1.046857042e-09
+4.692837219e-12
+5.841268544e-10
+5.254576286e-07
+9.00341232e-11
+3.637289725e-13
+9.046831583e-09
+1.769848077e-08
+9.487515449e-07
+1.037605514e-10
+7.931101427e-08
+2.511567859e-07
+1.749569007e-09
+1.158694791e-07
+1.833616371e-06
+4.450088162e-08
+5.71525937e-10
+1.070535073e-10
+2.448689122e-10
+6.262140377e-06
+2.141665922e-08
+4.258896529e-09
+5.492356181e-09
+9.566075733e-12
+3.797467443e-11
+2.705317002e-08
+4.238826701e-07
+1.78471189e-09
+3.595342753e-08
+3.222931873e-09
+6.210042731e-05
+2.257994023e-08
+1.191490301e-13
+1.51327299e-06
+9.658649632e-11
+5.082113798e-06
+9.440035937e-10
+8.436889449e-09
+1.463019698e-10
+3.444876867e-09
+7.868402056e-12
+1.272362874e-11
+3.427505822e-10
+8.989931067e-08
+2.83363773e-11
+3.075639475e-10
+5.26550054e-14
+4.262827162e-13
+7.39316909e-13
+5.385777656e-05
+8.367263438e-10
+1.27169587e-05
+8.409442881e-11
+6.150414316e-08
+5.763923047e-10
+1.482724362e-05
+2.322767476e-10
+4.431549181e-09
+1.319773505e-08
+1.965643997e-09
+5.781996728e-06
+7.525982729e-07
+1.075597391e-09
+1.712491312e-09
+3.951931507e-07
+3.136603556e-10
+1.366756862e-10
+2.291915354e-13
+7.468688547e-11
+2.139268308e-07
+2.325345469e-09
+7.657140694e-07
+3.023146836e-07
+1.974153842e-11
+2.23954747e-13
+1.575733249e-08
+3.894628929e-07
+2.463378514e-09
+1.169459922e-07
+7.445054153e-07
+3.875934136e-06
+6.204189806e-07
+5.089515047e-10
+2.563291505e-13
+4.108999891e-09
+8.53455392e-11
+3.062860485e-14
+5.084534294e-08
+3.964359924e-09
+9.560449902e-09
+5.713347391e-07
+8.602201637e-10
+9.674189092e-09
+5.575422411e-08
+7.7367829e-10
+5.256859943e-10
+2.604559111e-08
+5.185774593e-08
+5.136812252e-07
+4.457880285e-09
+7.08739055e-06
+2.866812716e-09
+2.555644334e-07
+1.149811348e-06
+2.121457778e-11
+6.538468276e-11
+4.397488469e-10
+1.683362541e-10
+7.632025686e-10
+3.194386969e-07
+4.742908307e-08
+5.174073262e-09
+1.378366535e-06
+0.0001075113033
+0.0002104550971
+1.291489023e-09
+1.113788764e-09
+2.836765427e-07
+2.11937165e-05
+3.257765239e-07
+6.904195422e-08
+1.133542583e-07
+2.515686455e-07
+2.868313218e-07
+1.316229576e-07
+1.143173676e-07
+6.920180685e-10
+1.261626874e-08
+7.91776628e-13
+7.95433631e-10
+6.551051251e-09
+5.085705662e-09
+1.197384838e-11
+7.765260495e-11
+1.137626508e-10
+9.984571963e-11
+1.206612408e-07
+9.836882175e-09
+3.4882158e-08
+4.035134021e-08
+1.411934725e-08
+1.030965664e-07
+0.0001339279091
+2.858703113e-12
+3.300405884e-09
+1.93837976e-10
+3.176396146e-12
+1.739126777e-09
+4.024332505e-07
+3.711093586e-08
+3.682019148e-09
+9.299169562e-11
+4.059979323e-10
+1.46124585e-05
+9.47475461e-11
+6.713919288e-14
+2.422745433e-09
+1.239867471e-07
+2.586712504e-08
+3.834753794e-09
+4.980992443e-08
+5.89070658e-10
+1.712526376e-13
+5.885757434e-12
+3.850022999e-12
+5.81521873e-10
+2.871328231e-07
+3.360472696e-09
+4.474183737e-08
+4.854163466e-09
+6.835578263e-09
+4.513572379e-10
+1.936977318e-09
+3.204323474e-07
+2.834054461e-06
+2.373861791e-10
+8.958952159e-10
+2.230057738e-07
+2.935410608e-08
+1.283627624e-05
+1.768887803e-09
+1.023916614e-07
+1.810052154e-10
+1.897974483e-06
+1.555504868e-07
+2.081802153e-11
+1.130167125e-07
+5.044103042e-10
+4.419353612e-10
+8.383693984e-08
+1.081564925e-05
+4.255910847e-09
+4.961228471e-09
+4.721951011e-12
+2.605775896e-07
+6.302152575e-12
+7.401459523e-11
+5.826657822e-09
+3.775763541e-06
+7.970550383e-06
+1.07749277e-08
+4.597131766e-10
+6.829928693e-09
+2.132369311e-10
+3.596253106e-11
+6.42042013e-09
+2.577185048e-09
+3.303168482e-09
+6.187624832e-09
+4.853422661e-08
+4.830648803e-10
+3.720002445e-06
+1.356639118e-08
+2.379953128e-09
+6.934062739e-11
+3.297503516e-09
+3.435188638e-10
+5.297642673e-08
+4.382508996e-09
+2.158635352e-08
+5.682041402e-12
+2.872850108e-07
+1.684440833e-10
+3.702296758e-08
+4.342536978e-10
+6.27913514e-08
+2.403628029e-08
+6.186423798e-09
+1.906331939e-07
+4.632141066e-10
+2.75528781e-09
+1.375301157e-08
+2.872819245e-08
+6.101281782e-07
+3.268447178e-10
+2.065018598e-07
+2.62934962e-09
+4.962377554e-11
+1.388864923e-10
+6.600434666e-08
+2.769795382e-07
+8.892370488e-07
+4.79076441e-07
+8.513265484e-09
+2.371009137e-11
+1.969842854e-08
+1.194156708e-06
+2.53608333e-06
+3.538052912e-11
+7.535772739e-11
+3.279577835e-09
+5.915460368e-09
+3.02566311e-12
+2.424965552e-08
+1.736406389e-08
+9.148306031e-11
+2.773912766e-09
+6.976061878e-08
+1.281910328e-09
+3.477331578e-11
+7.026224303e-12
+3.159072911e-08
+2.312639776e-06
+1.021070205e-11
+6.311485446e-10
+3.496457737e-09
+5.006307921e-09
+1.086232952e-09
+6.442720089e-07
+3.403922546e-08
+1.040513338e-07
+2.01520989e-08
+2.367352254e-08
+1.455757844e-08
+4.519467641e-07
+6.28461962e-08
+1.681912432e-08
+3.350604832e-10
+1.788912469e-11
+8.65895426e-08
+1.581698325e-10
+3.168928376e-08
+1.269427393e-09
+3.307594478e-11
+6.742913842e-11
+4.303451928e-10
+1.049209168e-07
+7.72679499e-12
+5.740213241e-07
+7.011858745e-07
+5.337254201e-09
+6.364098195e-09
+6.365181097e-10
+7.724336147e-10
+2.368368232e-08
+1.761684159e-07
+3.074352635e-08
+5.988348578e-06
+1.432660113e-12
+7.971765332e-11
+1.851907721e-07
+1.679589918e-10
+6.480753213e-06
+9.759320168e-09
+3.448700092e-09
+7.000832649e-11
+2.170389647e-09
+5.016091717e-09
+1.498097082e-09
+5.879045351e-10
+6.04856896e-10
+1.149674113e-08
+8.39211811e-11
+2.869929102e-13
+9.120025443e-09
+1.023019663e-06
+1.843312565e-11
+1.004917355e-06
+1.437937821e-09
+3.104223957e-06
+3.736773683e-10
+9.594609818e-11
+1.231999544e-11
+3.535861091e-07
+7.131073672e-08
+2.337280167e-10
+2.824053112e-07
+3.138209131e-08
+5.494664929e-12
+3.070138908e-12
+2.011205543e-10
+1.461424596e-11
+3.081987435e-09
+1.46093963e-10
+3.186536889e-07
+8.613722973e-10
+4.227278814e-07
+1.132922515e-08
+1.38585023e-08
+2.535073827e-09
+5.647503952e-08
+1.712170102e-10
+9.68893623e-07
+2.23301625e-09
+2.607896714e-11
+1.678599102e-13
+2.258614162e-06
+1.695694084e-09
+1.706056963e-11
+4.7586551e-12
+1.42650763e-05
+1.449408916e-07
+4.244679669e-08
+3.617422863e-10
+8.345513919e-12
+7.09121725e-13
+8.179649539e-09
+3.323822411e-09
+1.436276816e-08
+5.885513695e-10
+3.584811231e-08
+9.154788215e-09
+9.640669763e-11
+1.908867792e-09
+2.558486e-10
+5.232824781e-10
+1.261283666e-09
+2.53541926e-10
+1.402713106e-06
+9.404881776e-10
+1.920817629e-07
+4.404107301e-11
+5.005042888e-10
+1.406564629e-07
+4.527644024e-10
+4.146766934e-07
+1.166277032e-07
+7.051068181e-09
+4.11849211e-09
+9.268930022e-07
+1.080637902e-10
+1.045597589e-06
+4.947490967e-07
+6.160106382e-12
+1.351622658e-08
+2.784201053e-09
+1.934479305e-08
+5.314561342e-13
+1.357138484e-09
+4.977337067e-12
+6.477023506e-11
+4.234494139e-08
+4.918197299e-13
+3.683378601e-08
+3.727148631e-09
+1.040223561e-09
+6.604422035e-10
+3.806876455e-09
+1.097067221e-08
+1.705648579e-08
+6.319765378e-07
+1.574099802e-09
+3.013722918e-08
+4.77278499e-09
+3.679411129e-09
+8.938433543e-10
+5.60147652e-09
+1.526922169e-05
+3.497170215e-10
+9.33335016e-08
+1.359274e-08
+6.404241971e-11
+1.5355979e-11
+2.243449688e-09
+4.662114978e-09
+1.022032175e-10
+1.383890446e-07
+1.619039888e-12
+1.507964967e-08
+2.056097551e-09
+1.984726853e-05
+5.313179169e-09
+1.04747219e-08
+1.156429507e-07
+1.201419215e-06
+1.584080335e-09
+2.098542248e-11
+3.445376555e-09
+4.164592916e-06
+4.092695408e-12
+9.944139167e-10
+5.275904704e-09
+3.628906351e-11
+2.196977166e-10
+1.052794797e-08
+1.068605738e-08
+3.831355591e-11
+1.364002007e-07
+3.403056538e-10
+5.381516624e-08
+6.729189153e-12
+1.207745127e-07
+4.017462281e-09
+1.315657914e-08
+7.126694662e-11
+1.491096858e-07
+7.20888103e-10
+6.627930817e-08
+1.215887355e-10
+6.230801001e-09
+0.0001012323593
+5.309321999e-10
+5.741270954e-10
+2.429844937e-08
+7.32585206e-12
+3.533917464e-09
+7.92607808e-10
+8.291024594e-11
+3.746228723e-11
+5.242197859e-11
+8.718274092e-08
+6.175927737e-11
+6.099493891e-09
+2.644291342e-09
+2.306855272e-08
+7.322174164e-10
+1.884007562e-06
+3.755557449e-08
+1.659745103e-08
+5.494894979e-08
+3.546656967e-09
+2.674192614e-07
+1.028231645e-09
+9.289065159e-06
+7.959800508e-08
+1.068059708e-11
+5.674230217e-07
+6.214339587e-09
+1.601035056e-06
+1.977699126e-06
+3.462717682e-07
+7.373550469e-09
+5.726612432e-12
diff --git a/t/ME_data/ME_Wp.dat b/t/ME_data/ME_Wp.dat
index d0ea85e..4aeb8be 100644
--- a/t/ME_data/ME_Wp.dat
+++ b/t/ME_data/ME_Wp.dat
@@ -1,1289 +1,1289 @@
-0.0001355719843
-3.608722394e-05
-4.306341977e-07
-9.75550325e-07
-7.965530581e-08
-1.158741173e-06
-2.661842361e-06
-2.304823849e-09
-2.352135748e-07
-1.829734536e-06
-7.663338505e-10
-1.356612268e-07
-3.025163716e-07
-9.674843355e-08
-1.085770422e-08
-1.140610095e-07
-9.611408258e-06
-9.926075902e-06
-0.0002395617261
-3.935061026e-07
-1.135288394e-06
-3.820200425e-06
-9.707596176e-05
-1.989871947e-08
-4.670964333e-06
-6.369460664e-08
-5.769266019e-06
-6.100771968e-07
-4.177606366e-07
-5.131150139e-05
-2.623663409e-08
-9.921267961e-07
-2.818624505e-05
-2.357728349e-06
-1.529409143e-07
-3.812118593e-09
-4.089891622e-06
-5.519579034e-08
-3.108467374e-05
-6.275083184e-07
-0.0004711631231
-1.064846011e-10
-3.599907223e-07
-0.0005693437265
-5.34425931e-06
-1.369519561e-07
-4.610580273e-08
-2.759136394e-08
-0.0002011662853
-8.792673722e-06
-2.70389791e-06
-1.871336935e-09
-6.645206867e-07
-0.01345911877
-8.025796761e-06
-1.131187139e-07
-2.178470183e-07
-3.510890525e-05
-1.89984448e-07
-1.045126464e-06
-1.869095439e-06
-2.768546736e-06
-8.551014251e-08
-7.773400289e-07
-4.5314433e-06
-1.601178083e-06
-1.364165586e-07
-5.968291371e-08
-1.972884889e-07
-7.870126436e-08
-1.027083098e-09
-1.687474041e-07
-6.312089331e-10
-3.39183549e-07
-4.915897747e-06
-1.471309784e-08
-5.806965374e-07
-1.107356106e-06
-2.913951187e-05
-2.124038907e-06
-2.12990617e-07
-1.356428765e-06
-2.199225431e-08
-9.711358047e-08
-0.0001385574072
-6.515223687e-07
-2.5352989e-05
-9.498820108e-06
-7.275411577e-08
-3.660521512e-08
-1.057452473e-07
-6.037071105e-08
-1.535388649e-05
-8.248385786e-07
-3.681438798e-07
-6.978799537e-07
-0.0001134623553
-0.0031723732
-0.0002184140303
-1.851576802e-06
-2.387181833e-07
-0.0002408737584
-2.563590676e-07
-1.00063883e-09
-4.85334472e-06
-1.037554067e-07
-7.119588313e-06
-2.561893885e-06
-6.552784786e-08
-2.50165186e-08
-3.2201158e-08
-4.669232163e-07
-1.713318068e-05
-1.245254933e-09
-7.470170632e-06
-1.121794755e-10
-2.566806176e-08
-0.0006902527912
-1.619690794e-08
-0.007842917065
-3.718578869e-05
-0.0007152647352
-3.366873265e-05
-3.59028058e-05
-0.0001083353837
-1.746053028e-07
-2.714474997e-05
-5.495139342e-05
-6.535082147e-05
-5.041690089e-07
-3.546093001e-06
-1.20179547e-08
-2.615186338e-08
-0.005544505766
-2.669153731e-08
-1.124413228e-07
-2.097675954e-07
-0.0004497023181
-3.522902236e-06
-3.609796532e-10
-2.381544279e-06
-0.0001723836121
-8.005109621e-06
-2.558975219e-05
-1.661304558e-05
-7.830074882e-06
-8.689123182e-05
-1.604221799e-05
-1.56327932e-07
-7.475227989e-08
-3.375281865e-08
-7.208470216e-08
-5.524155313e-10
-5.4103721e-09
-9.793444078e-05
-1.21018869e-06
-5.403237142e-06
-9.396037828e-07
-9.218690916e-07
-1.916819566e-05
-2.17787046e-06
-0.0003020897621
-6.197213158e-08
-7.288410467e-08
-1.364194249e-05
-1.038835664e-05
-1.181892899e-07
-5.005163224e-06
-3.611225632e-08
-1.221974588e-08
-1.94276032e-05
-3.734309395e-06
-0.0001093995311
-2.068051728e-06
-8.857508826e-06
-4.173118216e-06
-6.957949482e-09
-1.448277035e-06
-4.552053973e-07
-1.37143731e-06
-8.5249063e-07
-1.659141616e-09
-1.245863146e-07
-0.0002242637796
-3.699075976e-06
-2.084644637e-10
-2.212848431e-08
-8.425415515e-08
-2.259085486e-07
-0.007259912738
-4.467602944e-06
-3.025351312e-06
-1.224941318e-08
-1.156121552e-07
-1.910495837e-06
-6.957101383e-08
-3.814134717e-08
-4.664811166e-07
-1.051815656e-05
-8.36147558e-09
-6.131289047e-07
-6.896621501e-06
-2.902398388e-05
-7.595782532e-09
-1.528994856e-08
-5.225540702e-09
-3.429459178e-05
-2.622252649e-09
-0.0005682063775
-7.453799253e-07
-1.807441554e-05
-9.740982954e-07
-2.028479208e-06
-9.039653513e-08
-2.480442432e-06
-0.0004804561254
-1.082404101e-08
-2.792579118e-06
-0.0002121921023
-9.812552552e-05
-7.828391194e-07
-0.001456303526
-1.94354748e-08
-8.760573751e-08
-6.867301069e-10
-1.796235147e-07
-3.651695166e-07
-1.227417157e-07
-6.64659658e-06
-8.406970208e-05
-0.001885290461
-0.000157033045
-2.314708694e-06
-0.0002982727329
-0.003229609172
-2.427561837e-10
-1.896038488e-06
-1.190944746e-08
-4.219946428e-07
-7.272059603e-08
-1.59196208e-06
-2.437096045e-07
-2.465458718e-10
-3.867407912e-06
-7.355333688e-09
-3.882793721e-06
-0.003249948479
-1.636247339e-05
-0.0003223793747
-2.270764736e-05
-1.158210386e-07
-4.80342984e-06
-1.938501144e-06
-1.000117331e-06
-7.966527985e-08
-1.977164443e-05
-3.69784658e-06
-0.0001118273673
-8.542125832e-09
-3.549018039e-05
-4.419576288e-08
-0.0004157235871
-1.269135254e-06
-1.336086217e-09
-0.0001810766875
-5.607527407e-08
-7.073836906e-08
-6.226377903e-05
-3.842917677e-07
-6.352283685e-05
-1.76753472e-08
-0.002554251882
-1.646539129e-08
-1.960645519e-08
-0.0002646806777
-1.199915455e-05
-2.978511607e-08
-0.000116967724
-1.112499633e-08
-4.229712985e-07
-4.907009823e-08
-1.380172172e-06
-1.086563459e-05
-4.639365797e-08
-5.978112399e-07
-7.468593264e-08
-2.128107625e-08
-3.477532299e-06
-1.453714307e-09
-3.088717592e-05
-3.041172747e-05
-2.604198178e-07
-1.592445808e-06
-1.544432861e-07
-3.372379466e-06
-0.0001468104602
-5.574767897e-07
-4.759127919e-10
-0.0009306719674
-5.974247994e-06
-0.0002033151455
-2.248619967e-06
-1.737478692e-05
-3.508166071e-06
-2.435499227e-09
-6.369003912e-06
-9.703728971e-09
-1.74070901e-06
-3.283306645e-07
-1.701425136e-08
-4.192916377e-08
-4.498844071e-05
-3.83404553e-05
-1.152621936e-09
-1.27759414e-05
-0.0002811237244
-1.725068759e-07
-1.077501154e-06
-0.004189517285
-1.659706256e-07
-1.343358874e-07
-8.327570632e-07
-2.346076524e-05
-5.667318083e-07
-1.495443263e-09
-6.283129175e-07
-7.691168557e-09
-1.613371819e-08
-4.367733457e-08
-1.328415079e-09
-1.452913735e-06
-2.025555437e-07
-1.293144251e-06
-3.674495466e-07
-4.037694296e-06
-2.086123444e-08
-1.579986535e-06
-7.231915707e-10
-3.157016501e-07
-0.0003660037215
-0.0008949054585
-5.638174283e-08
-3.2885886e-06
-5.432504554e-08
-5.18075933e-10
-5.121203913e-08
-1.939450987e-08
-1.979142876e-05
-2.529002473e-08
-0.0002538283061
-3.803979134e-05
-7.172326632e-06
-2.759109713e-06
-3.708776662e-06
-4.712989924e-08
-0.0001084418496
-5.277822093e-08
-4.364063475e-08
-1.209898063e-07
-3.136890903e-08
-1.044095046e-07
-6.962956273e-08
-6.454347396e-06
-2.03105437e-09
-4.064764161e-07
-1.125205303e-06
-3.916696455e-06
-5.611785349e-07
-1.848611742e-07
-2.582403205e-07
-8.8398711e-05
-2.850327029e-06
-2.108292593e-07
-1.232805054e-08
-9.539250223e-08
-0.006539873403
-2.250946039e-05
-1.89348364e-07
-2.619177604e-11
-3.531432382e-10
-1.155035358e-07
-1.892463999e-07
-1.339909549e-08
-5.529398846e-08
-1.151900114e-05
-0.005889721927
-8.216256879e-05
-1.557120111e-07
-9.089312296e-08
-4.410189877e-07
-4.125658696e-08
-1.888812401e-07
-5.72690691e-05
-1.874559047e-09
-9.008458744e-12
-1.709044888e-05
-1.67931414e-07
-8.335566244e-06
-1.141598503e-08
-0.002680457238
-1.068398085e-08
-1.957183797e-06
-2.244367588e-05
-1.231910933e-05
-4.629935793e-05
-4.576227205e-06
-1.980987775e-08
-3.939110441e-07
-2.650096111e-05
-8.45374912e-06
-3.87197728e-08
-0.002862691173
-4.135291614e-08
-0.0002240310513
-1.62602432e-07
-1.446697749e-07
-1.815721752e-06
-3.82343665e-07
-1.519921818e-06
-7.180741224e-10
-3.485436765e-05
-7.358200547e-08
-7.791803722e-06
-7.340098859e-07
-1.648829751e-05
-5.701378028e-07
-1.101811994e-07
-2.180113561e-08
-0.005048614692
-1.410953605e-08
-1.796629437e-05
-3.537585739e-05
-2.035011418e-05
-1.003894868e-08
-0.0007063058628
-8.670593589e-05
-6.826393725e-08
-5.90070804e-06
-1.447352925e-08
-1.072050501e-05
-2.460311e-05
-3.38994689e-08
-3.77746866e-07
-7.004891026e-07
-3.633307257e-05
-4.394910272e-07
-7.401654738e-07
-0.004667703557
-4.822544046e-07
-1.289604482e-08
-0.0001296636722
-1.38703251e-06
-2.915976119e-05
-1.716214639e-07
-2.901236713e-08
-7.505249455e-10
-7.295055264e-08
-5.765824764e-07
-3.265772439e-08
-1.700596569e-06
-3.410463373e-08
-7.817851601e-06
-0.0001713594978
-4.092939984e-08
-9.555130708e-08
-2.412195504e-06
-3.183516899e-09
-0.0006930495513
-1.228003614e-07
-8.804659671e-05
-2.135176373e-06
-4.693017626e-06
-5.98436871e-08
-2.487744792e-06
-1.776206809e-07
-6.533684691e-07
-1.608251404e-06
-4.483048806e-06
-1.390213066e-06
-2.463272535e-09
-0.0001373179164
-4.692519626e-10
-6.223649822e-09
-3.026899162e-06
-5.540599649e-08
-5.422865068e-08
-8.715360349e-08
-3.005262075e-06
-4.491517193e-06
-1.296332143e-08
-8.034151055e-07
-8.445675436e-07
-1.331376027e-08
-1.808252928e-06
-4.811825495e-06
-3.356636619e-06
-3.718204068e-07
-1.633210686e-06
-1.145748502e-06
-1.082083663e-06
-6.645503932e-07
-7.690064745e-06
-9.446655788e-07
-0.0001628165971
-0.0004161529432
-2.733182258e-06
-4.797981787e-06
-0.0001243192011
-0.0004489774905
-4.018994469e-08
-6.294131882e-05
-0.0006300937981
-3.276976793e-07
-5.253447018e-07
-6.013623386e-09
-6.133379953e-07
-7.498082273e-08
-9.70785668e-08
-2.892020376e-07
-0.0008858499734
-5.834224897e-12
-2.657258195e-05
-1.937050603e-08
-1.014207814e-08
-2.078416478e-09
-9.09266244e-09
-1.171070672e-06
-6.18600885e-07
-7.316626326e-08
-1.137929257e-05
-3.926212477e-07
-9.411347448e-08
-2.358881565e-05
-4.562416832e-07
-8.746279414e-07
-2.158977111e-07
-7.68251659e-08
-4.623476813e-08
-1.822643013e-09
-5.649636691e-07
-8.861095682e-07
-3.661799019e-06
-0.005151284521
-1.33326149e-08
-0.01070078066
-3.557312234e-07
-7.956098508e-07
-1.102026406e-05
-9.099091102e-08
-9.76046916e-07
-4.026076856e-07
-3.148718363e-05
-3.652135323e-08
-5.83259011e-08
-0.0002758602956
-5.979826148e-06
-2.336313349e-06
-1.214278297e-06
-1.25701869e-05
-4.380095687e-07
-8.01469849e-07
-0.00316958096
-9.221623949e-05
-4.690760742e-07
-7.648050663e-07
-1.418690894e-05
-2.220802074e-07
-3.142017749e-07
-1.911591032e-07
-2.45298426e-08
-0.0001445594441
-2.061494003e-07
-1.315444256e-09
-3.270418427e-05
-2.302140371e-07
-4.002095191e-06
-1.609778389e-06
-1.156198845e-08
-4.49026945e-08
-0.0002105189831
-1.502882545e-10
-0.0003938508262
-2.359522703e-06
-5.766519564e-05
-4.012744154e-07
-1.060136498e-07
-0.000214176753
-2.679472391e-06
-1.069264028e-05
-2.484323067e-09
-0.0001019831637
-1.193130901e-06
-1.086707804e-06
-1.985358343e-07
-1.172768569e-10
-4.982454227e-07
-2.574859959e-05
-0.001250253045
-2.058059347e-09
-1.333980568e-07
-9.818785061e-09
-5.154088274e-07
-0.0001083933403
-1.428558727e-06
-1.746251251e-05
-2.151559249e-05
-0.01028504094
-7.323992261e-07
-2.685867501e-08
-4.250514259e-05
-0.0004356795855
-3.28945742e-07
-0.003236859534
-3.00756172e-08
-2.793887221e-06
-1.897911806e-05
-1.619728379e-07
-8.95372942e-05
-4.802035497e-06
-7.858933592e-06
-7.610830748e-07
-2.314286619e-05
-4.939775908e-09
-4.92614662e-09
-8.469370317e-07
-3.809251938e-05
-8.402086849e-09
-4.426806359e-07
-2.426544223e-06
-3.814110772e-08
-1.746240046e-06
-1.524462135e-07
-7.921180879e-05
-2.101358689e-07
-4.839237017e-07
-5.352096872e-07
-4.622274946e-05
-0.001900140657
-1.924092071e-06
-0.00143054632
-4.980473899e-08
-0.001646505279
-1.600615665e-05
-2.692315114e-06
-4.189143306e-06
-9.988552464e-08
-3.325410401e-05
-1.063371193e-06
-4.230272909e-06
-3.988538107e-06
-0.0001050685431
-5.986075089e-08
-2.025564122e-06
-4.34519194e-07
-8.910595284e-05
-2.543273713e-06
-0.0002129943925
-8.738486453e-06
-4.913962461e-09
-3.353322522e-08
-3.330632645e-05
-1.951511181e-06
-1.384784662e-05
-2.148337293e-07
-1.685318775e-07
-1.114845659e-07
-6.02083664e-05
-1.280889362e-07
-4.215297005e-07
-3.062431729e-07
-6.986710671e-07
-1.615334628e-07
-1.317663184e-07
-0.0008030210999
-2.015927373e-05
-5.191868083e-06
-5.500044246e-07
-7.15420681e-08
-0.0002157285878
-9.440043769e-07
-6.512957712e-08
-1.03903574e-08
-0.0001795918484
-1.962894846e-05
-1.739516157e-07
-2.125764853e-08
-1.743490742e-05
-1.541416437e-06
-3.39198022e-06
-8.359097007e-06
-1.415613754e-09
-7.887560312e-07
-1.745081942e-07
-1.93272986e-07
-9.82806121e-07
-1.291461771e-07
-9.278171463e-05
-4.264104348e-06
-3.754456141e-07
-3.45261236e-05
-8.101309383e-06
-4.056256867e-09
-2.25304959e-07
-1.172523689e-05
-4.796449477e-07
-3.785295788e-09
-2.390481376e-05
-5.308836572e-08
-4.670596214e-05
-6.758177723e-05
-3.147635808e-09
-1.661568333e-05
-5.893559314e-08
-3.900939991e-05
-3.504262189e-08
-8.675964675e-05
-0.000133599036
-1.302314857e-06
-1.146394401e-06
-6.394208991e-06
-2.519497163e-05
-0.000136705096
-4.154554201e-09
-2.099823438e-06
-2.146448637e-05
-1.233863139e-09
-0.001728401026
-4.092153785e-05
-0.007151464488
-4.760189089e-09
-0.0007525693775
-1.763213602e-08
-2.706320224e-07
-4.16893951e-06
-6.81377324e-07
-6.199680386e-06
-1.450358333e-09
-0.001178944037
-3.552524899e-07
-0.001006339432
-3.6848606e-07
-2.167674886e-07
-2.537842237e-06
-7.658583081e-07
-2.591411922e-07
-4.604356596e-08
-4.168374132e-07
-7.238778416e-09
-1.170127812e-06
-4.393582246e-07
-0.0007919329994
-1.028777638e-06
-6.918341744e-08
-9.436340567e-08
-1.591183982e-06
-2.089478665e-06
-1.613369096e-07
-3.637102367e-07
-9.604978456e-07
-9.357975907e-07
-2.887515361e-06
-6.126247876e-06
-1.015660593e-05
-5.755045288e-06
-0.002323684389
-8.012996825e-07
-5.265198999e-07
-0.0002032569176
-1.451031358e-07
-5.47702166e-07
-7.468912832e-07
-1.172272852e-05
-5.000191344e-06
-1.572889839e-06
-6.442065446e-08
-2.908881614e-05
-4.569176417e-05
-0.0003671971122
-1.009483851e-07
-1.696662821e-09
-1.138346236e-08
-7.716922346e-07
-3.529252962e-06
-6.363107446e-07
-1.932801605e-07
-5.985835074e-07
-3.856272451e-06
-8.483829546e-07
-7.519170568e-09
-6.046535627e-06
-8.332015402e-05
-0.0004929270086
-1.066348746e-06
-6.354668794e-05
-2.325179699e-05
-3.330122089e-07
-7.907070499e-09
-3.51499146e-06
-6.69519437e-06
-7.791955277e-08
-3.007407175e-09
-1.687262336e-06
-2.966015735e-06
-2.551884972e-08
-0.02757047144
-1.902124553e-06
-1.85886341e-06
-1.174589642e-07
-6.265121215e-07
-0.0001498056381
-2.510077496e-07
-0.003704558141
-7.864571581e-05
-1.77636514e-08
-0.0002011705268
-4.239853221e-06
-1.05657366e-06
-0.0008521527281
-4.768494505e-07
-5.244547978e-06
-0.0001425035783
-4.507288271e-07
-3.09253883e-07
-0.007681533917
-1.571813451e-07
-3.341400742e-08
-9.577252639e-07
-1.135355463e-09
-1.20086557e-07
-4.167792379e-06
-7.827764132e-06
-1.444125408e-06
-2.56704074e-05
-3.703109696e-07
-2.683372002e-05
-2.223174581e-07
-1.771597066e-05
-1.154476033e-07
-4.676107605e-07
-1.045592241e-08
-5.174222885e-07
-8.73448236e-07
-1.146406684e-08
-8.784051991e-07
-7.500525642e-10
-1.921656555e-05
-5.899142263e-08
-7.304760895e-05
-1.070817369e-08
-2.432332986e-05
-2.466303926e-09
-1.587801133e-05
-5.253580132e-08
-1.186388122e-06
-2.513054159e-08
-2.878256017e-05
-1.268594971e-09
-4.036344626e-07
-1.480245095e-05
-0.007764649543
-1.266626553e-05
-2.673316926e-07
-2.052285927e-07
-3.026411679e-09
-3.958784182e-09
-5.153150954e-10
-2.304903783e-10
-4.001726091e-09
-5.422669345e-12
-1.07974246e-08
-7.876103608e-07
-2.049298389e-13
-2.452583297e-10
-6.723994075e-09
-1.881390674e-09
-8.769216371e-09
-1.325727129e-07
-8.79685468e-10
-8.598808624e-09
-1.838871103e-09
-1.411793652e-09
-3.180735553e-09
-1.657163942e-09
-6.291661793e-07
-1.407385603e-08
-2.446407049e-10
-3.694685136e-06
-7.168304193e-08
-1.515131205e-07
-5.976833111e-07
-9.943757037e-11
-1.770333366e-10
-6.826832537e-10
-3.501999566e-09
-1.003726186e-11
-2.246679298e-10
-1.56313715e-08
-1.258803576e-08
-1.510698432e-09
-1.860286401e-08
-7.436044673e-11
-8.891994306e-11
-8.343726078e-07
-7.82113065e-10
-7.372198961e-09
-1.7379478e-08
-4.796628257e-10
-1.006843272e-11
-2.297522445e-07
-2.96433985e-09
-5.119472399e-06
-1.217098718e-09
-1.247856004e-10
-2.379923838e-10
-6.847023565e-08
-1.126084699e-08
-9.366371857e-09
-8.815353934e-13
-1.248942678e-09
-1.28799905e-06
-1.862006169e-05
-5.986015285e-09
-3.576379278e-09
-1.396207937e-07
-5.597776909e-09
-1.227869193e-07
-3.184775395e-10
-1.281548492e-09
-3.785370229e-08
-8.065381915e-10
-1.797326508e-08
-4.870916557e-09
-1.481421747e-08
-6.148653826e-13
-2.607686069e-08
-7.503399307e-09
-7.31997834e-10
-3.917579692e-06
-2.456001118e-09
-1.635872696e-09
-1.504286856e-07
-4.626076248e-12
-2.544705877e-10
-2.326334148e-09
-1.209465237e-07
-9.76623574e-09
-2.844168649e-07
-1.201220073e-06
-7.295130141e-08
-2.673472441e-08
-3.217663506e-11
-3.051103331e-08
-8.28476209e-08
-2.058274741e-10
-2.829620954e-09
-6.317741319e-05
-5.647654869e-08
-3.939846598e-09
-6.94535699e-09
-2.688849469e-09
-1.246699517e-07
-1.659904595e-07
-2.236198242e-05
-9.48051308e-09
-9.500858057e-07
-7.271132888e-08
-4.043174967e-07
-7.378146611e-10
-1.15122787e-07
-3.25624697e-08
-1.170385948e-12
-5.503757963e-08
-1.043829653e-11
-1.203555505e-08
-1.075568487e-10
-8.108086268e-07
-4.847855376e-11
-7.343632999e-06
-1.187566426e-11
-3.504033234e-08
-7.018111165e-12
-2.46365153e-10
-1.851835159e-10
-1.513115014e-09
-8.018682005e-09
-3.929445257e-06
-2.084075835e-07
-5.951216622e-10
-3.507041226e-06
-5.267974518e-12
-3.372609243e-06
-1.694025855e-11
-1.867025942e-10
-2.116504705e-10
-3.831483934e-10
-6.969465032e-05
-1.539468087e-08
-1.101455293e-11
-1.388260307e-10
-5.247853733e-08
-4.682122196e-08
-1.641630864e-10
-2.193600975e-08
-1.553226091e-09
-2.996160922e-08
-2.723720585e-11
-1.94231471e-09
-1.292957006e-11
-3.828518709e-12
-1.610161368e-08
-1.687340239e-06
-1.925507093e-09
-4.366763058e-13
-6.454544637e-07
-6.024146948e-07
-2.580279684e-10
-1.225823158e-05
-1.999348472e-11
-4.860969642e-11
-2.362388726e-08
-1.373679959e-08
-3.790417277e-12
-1.087173802e-08
-3.129309985e-07
-1.364398599e-09
-1.715322136e-05
-3.172978915e-08
-1.823609884e-08
-3.114527252e-09
-3.26147148e-10
-2.126201737e-05
-5.67083409e-08
-9.666272186e-10
-7.465320939e-10
-1.354621046e-10
-2.460861093e-08
-1.087512595e-09
-2.736687172e-07
-5.11303402e-10
-6.306214806e-07
-3.166204304e-09
-2.044824307e-08
-6.895612872e-10
-6.672834049e-11
-5.398174219e-09
-1.015670186e-07
-5.845736032e-10
-4.836786585e-08
-5.100824595e-10
-1.572989158e-08
-1.787382013e-10
-1.632652197e-08
-7.017280062e-08
-7.320290175e-12
-3.029928398e-11
-1.409128876e-12
-1.23856674e-06
-8.502728239e-08
-3.438550409e-08
-4.863721153e-07
-5.154439531e-07
-2.08972413e-09
-3.431301197e-10
-1.781924049e-08
-1.544286506e-09
-4.308676963e-09
-2.652066437e-09
-1.604320244e-11
-1.019690001e-05
-1.123300801e-09
-2.815571339e-12
-1.072295152e-10
-6.773569517e-09
-2.399435656e-09
-1.754777793e-07
-6.11811144e-11
-8.592783988e-06
-6.887732464e-11
-1.799971693e-09
-2.674451287e-10
-1.267733301e-08
-1.616784133e-09
-2.418432767e-10
-2.161777683e-07
-3.59476746e-06
-1.314807779e-05
-3.035190047e-06
-5.146947381e-12
-8.12518705e-07
-2.904383899e-07
-8.278936106e-08
-1.491259803e-12
-3.232769716e-10
-3.014861034e-07
-3.869348362e-08
-4.060145209e-09
-2.722588244e-09
-1.252225236e-06
-8.534092377e-10
-1.170269795e-13
-1.013048209e-07
-1.173680889e-10
-1.230879501e-06
-3.603057249e-07
-2.340497478e-10
-1.622753821e-07
-1.855112238e-10
-1.873444014e-13
-1.477984664e-10
-5.974804124e-09
-5.502900531e-08
-6.238844281e-09
-2.281648653e-08
-2.708668242e-09
-8.942323853e-07
-8.600240627e-08
-5.31399731e-08
-1.1503287e-06
-4.275682333e-10
-2.53579699e-12
-1.472728627e-07
-2.054544355e-10
-2.452448293e-06
-2.149816531e-09
-1.302067002e-08
-1.354519207e-05
-1.493773809e-10
-4.155193611e-09
-1.975443913e-09
-7.883829759e-09
-3.017039098e-08
-6.106751813e-07
-7.433047934e-09
-3.802076122e-08
-1.356542653e-08
-7.945943977e-11
-6.146929104e-09
-1.06127379e-06
-3.425627165e-09
-4.724471453e-09
-2.264989501e-06
-5.206993078e-12
-1.90383962e-11
-5.585175902e-09
-5.143389714e-12
-8.796345158e-08
-2.018357685e-09
-7.316136952e-07
-6.365052389e-11
-5.084402064e-08
-4.955635943e-10
-7.57908344e-10
-1.041589492e-10
-1.067922679e-10
-2.629806672e-10
-7.25350299e-09
-3.644402439e-09
-3.524112279e-06
-1.911510927e-10
-7.705863931e-09
-9.497501985e-06
-1.776186632e-07
-7.672061364e-12
-1.053749529e-07
-4.528511106e-07
-2.689071802e-11
-2.172737512e-09
-1.388580492e-10
-8.063945293e-10
-5.664095782e-08
-1.744805218e-09
-2.052101608e-11
-2.11086039e-11
-4.471965164e-07
-1.547872699e-09
-1.123990847e-08
-1.220466556e-08
-7.86940138e-07
-1.643506198e-10
-1.008594322e-08
-3.353990714e-07
-6.498831028e-10
-1.784315352e-10
-3.805121546e-07
-8.427309526e-07
-1.498075756e-09
-1.039473919e-10
-1.111563522e-08
-1.747513537e-09
-2.355165347e-09
-1.678234532e-08
-2.202228295e-10
-5.649821709e-08
-7.451026015e-08
-3.278979106e-11
-3.654252985e-11
-1.935636311e-11
-4.454493635e-09
-1.468840448e-11
-6.571279637e-09
-6.056988847e-10
-1.45101906e-07
-1.129031522e-10
-1.042132417e-11
-3.257388556e-11
-9.125965382e-09
-1.157786708e-08
-1.347062065e-10
-1.772554211e-07
-2.066007249e-07
-1.183381188e-10
-4.340661853e-11
-1.724089243e-07
-1.017527503e-09
-4.44819414e-08
-9.298037883e-10
-1.457982064e-08
-1.344707238e-06
-3.942998333e-10
-6.43175857e-10
-2.598344201e-09
-9.723411144e-11
-5.888094132e-07
-1.25096091e-08
-1.918965374e-08
-1.266172494e-09
-2.35856138e-08
-9.312557307e-07
-4.777100833e-09
-1.10131928e-05
-4.4646416e-10
-7.607866734e-08
-5.154676048e-10
-2.264518551e-08
-8.764203667e-09
-8.615359565e-07
-1.40030428e-06
-2.971220432e-07
-1.703066362e-09
-9.085894745e-08
-7.676857842e-09
-3.495643794e-07
-5.348620008e-10
-8.55049288e-10
-5.359621176e-10
-3.270584284e-08
-2.199342971e-11
-3.481833909e-07
-6.965993643e-10
-1.079185991e-09
-2.042388119e-11
-1.522460286e-08
-1.814688226e-09
-3.798271467e-08
-3.25158391e-06
-1.339564567e-08
-1.067207795e-10
-2.907408723e-09
-2.121056488e-09
-1.929150312e-10
-5.485146496e-10
-2.944552971e-10
-3.400562268e-09
-2.722315508e-07
-1.103475417e-07
-4.918181731e-10
-1.403530819e-08
-1.186111191e-10
-2.383852963e-09
-6.366433665e-10
-2.884801863e-08
-3.233653865e-09
-0.0001662977522
-2.949009635e-10
-2.818141893e-08
-2.146479379e-09
-2.878568427e-11
-1.429984069e-11
-2.151490158e-11
-4.991815647e-07
-7.60856163e-11
-4.322197412e-08
-8.515744987e-10
-4.522027747e-09
-4.658966436e-08
-4.872475335e-10
-1.225955162e-08
-9.732456622e-09
-5.55287071e-08
+0.0001355692831
+3.608650493e-05
+4.306256176e-07
+9.75530888e-07
+7.965371874e-08
+1.158718086e-06
+2.661789326e-06
+2.304777927e-09
+2.352088884e-07
+1.82969808e-06
+7.663185819e-10
+1.356585238e-07
+3.025103442e-07
+9.674650592e-08
+1.085748789e-08
+1.140587369e-07
+9.611216759e-06
+9.925878133e-06
+0.000239556953
+3.934982623e-07
+1.135265775e-06
+3.820124311e-06
+9.70740276e-05
+1.9898323e-08
+4.670871268e-06
+6.369333758e-08
+5.769151072e-06
+6.100650415e-07
+4.177523131e-07
+5.131047905e-05
+2.623611134e-08
+9.921070288e-07
+2.818568347e-05
+2.357681373e-06
+1.529378671e-07
+3.81204264e-09
+4.089810134e-06
+5.519469061e-08
+3.10840544e-05
+6.274958158e-07
+0.0004711537356
+1.064824795e-10
+3.599835498e-07
+0.0005693323828
+5.34415283e-06
+1.369492275e-07
+4.610488411e-08
+2.759081421e-08
+0.0002011622772
+8.792498535e-06
+2.703844037e-06
+1.87129965e-09
+6.645074467e-07
+0.01345885061
+8.025636853e-06
+1.131164601e-07
+2.178426779e-07
+3.510820573e-05
+1.899806627e-07
+1.04510564e-06
+1.869058199e-06
+2.768491575e-06
+8.55084388e-08
+7.773245411e-07
+4.531353015e-06
+1.601146181e-06
+1.364138406e-07
+5.968172458e-08
+1.972845581e-07
+7.86996963e-08
+1.027062634e-09
+1.687440419e-07
+6.311963568e-10
+3.39176791e-07
+4.915799802e-06
+1.471280469e-08
+5.806849675e-07
+1.107334043e-06
+2.913893129e-05
+2.123996588e-06
+2.129863733e-07
+1.356401739e-06
+2.199181613e-08
+9.711164556e-08
+0.0001385546466
+6.515093877e-07
+2.535248387e-05
+9.498630852e-06
+7.27526662e-08
+3.660448579e-08
+1.057431404e-07
+6.036950822e-08
+1.535358058e-05
+8.248221444e-07
+3.681365448e-07
+6.97866049e-07
+0.0001134600947
+0.003172309993
+0.0002184096786
+1.851539911e-06
+2.38713427e-07
+0.0002408689592
+2.563539598e-07
+1.000618893e-09
+4.853248021e-06
+1.037533394e-07
+7.119446461e-06
+2.561842841e-06
+6.552654227e-08
+2.501602017e-08
+3.220051642e-08
+4.669139132e-07
+1.713283931e-05
+1.245230123e-09
+7.470021795e-06
+1.121772404e-10
+2.566755035e-08
+0.0006902390385
+1.619658523e-08
+0.007842760801
+3.718504779e-05
+0.0007152504841
+3.366806183e-05
+3.590209047e-05
+0.0001083332252
+1.746018239e-07
+2.714420914e-05
+5.495029856e-05
+6.534951941e-05
+5.041589637e-07
+3.546022348e-06
+1.201771525e-08
+2.615134233e-08
+0.005544395296
+2.66910055e-08
+1.124390825e-07
+2.09763416e-07
+0.0004496933581
+3.522832045e-06
+3.609724609e-10
+2.381496829e-06
+0.0001723801775
+8.004950126e-06
+2.558924233e-05
+1.661271458e-05
+7.829918874e-06
+8.688950059e-05
+1.604189836e-05
+1.563248173e-07
+7.475079052e-08
+3.375214615e-08
+7.208326593e-08
+5.524045248e-10
+5.410264303e-09
+9.793248952e-05
+1.210164578e-06
+5.403129487e-06
+9.39585062e-07
+9.218507242e-07
+1.916781375e-05
+2.177827067e-06
+0.0003020837432
+6.197089683e-08
+7.288265251e-08
+1.364167069e-05
+1.038814966e-05
+1.181869351e-07
+5.0050635e-06
+3.611153681e-08
+1.221950242e-08
+1.942721612e-05
+3.734234992e-06
+0.0001093973514
+2.068010524e-06
+8.857332348e-06
+4.17303507e-06
+6.95781085e-09
+1.448248179e-06
+4.551963277e-07
+1.371409986e-06
+8.524736448e-07
+1.659108559e-09
+1.245838323e-07
+0.0002242593113
+3.699002275e-06
+2.084603102e-10
+2.212804342e-08
+8.425247645e-08
+2.259040476e-07
+0.00725976809
+4.467513931e-06
+3.025291035e-06
+1.224916912e-08
+1.156098517e-07
+1.910457772e-06
+6.956962769e-08
+3.814058724e-08
+4.664718224e-07
+1.0517947e-05
+8.361308985e-09
+6.131166886e-07
+6.896484091e-06
+2.90234056e-05
+7.595631192e-09
+1.528964392e-08
+5.225436587e-09
+3.429390849e-05
+2.622200403e-09
+0.0005681950565
+7.453650742e-07
+1.807405542e-05
+9.740788873e-07
+2.028438792e-06
+9.039473405e-08
+2.480393012e-06
+0.0004804465528
+1.082382535e-08
+2.792523478e-06
+0.0002121878745
+9.812357045e-05
+7.82823522e-07
+0.00145627451
+1.943508756e-08
+8.760399204e-08
+6.867164243e-10
+1.796199359e-07
+3.651622409e-07
+1.227392702e-07
+6.646464152e-06
+8.406802706e-05
+0.001885252898
+0.0001570299162
+2.314662575e-06
+0.00029826679
+0.003229544825
+2.42751347e-10
+1.896000711e-06
+1.190921017e-08
+4.219862349e-07
+7.271914713e-08
+1.591930361e-06
+2.437047488e-07
+2.465409596e-10
+3.867330857e-06
+7.355187139e-09
+3.882716359e-06
+0.003249883727
+1.636214738e-05
+0.0003223729516
+2.270719493e-05
+1.15818731e-07
+4.803334136e-06
+1.938462521e-06
+1.000097405e-06
+7.966369258e-08
+1.97712505e-05
+3.697772904e-06
+0.0001118251392
+8.541955637e-09
+3.548947328e-05
+4.419488231e-08
+0.0004157153041
+1.269109967e-06
+1.336059596e-09
+0.0001810730797
+5.607415682e-08
+7.073695965e-08
+6.226253847e-05
+3.84284111e-07
+6.352157121e-05
+1.767499503e-08
+0.002554200991
+1.646506323e-08
+1.960606455e-08
+0.0002646754042
+1.199891548e-05
+2.978452263e-08
+0.0001169653935
+1.112477467e-08
+4.229628711e-07
+4.906912054e-08
+1.380144673e-06
+1.086541811e-05
+4.639273361e-08
+5.97799329e-07
+7.468444459e-08
+2.128065224e-08
+3.477463012e-06
+1.453685343e-09
+3.088656052e-05
+3.041112154e-05
+2.604146292e-07
+1.592414079e-06
+1.544402089e-07
+3.372312274e-06
+0.0001468075351
+5.574656824e-07
+4.759033098e-10
+0.0009306534246
+5.974128962e-06
+0.0002033110946
+2.248575165e-06
+1.737444074e-05
+3.508096174e-06
+2.435450701e-09
+6.368877015e-06
+9.703535632e-09
+1.740674328e-06
+3.283241228e-07
+1.701391237e-08
+4.192832836e-08
+4.498754436e-05
+3.833969139e-05
+1.152598971e-09
+1.277568685e-05
+0.0002811181233
+1.725034388e-07
+1.077479686e-06
+0.004189433812
+1.659673188e-07
+1.343332109e-07
+8.327404712e-07
+2.34602978e-05
+5.667205166e-07
+1.495413468e-09
+6.283003988e-07
+7.691015317e-09
+1.613339674e-08
+4.367646433e-08
+1.328388611e-09
+1.452884787e-06
+2.02551508e-07
+1.293118486e-06
+3.674422254e-07
+4.037613848e-06
+2.08608188e-08
+1.579955055e-06
+7.231771617e-10
+3.1569536e-07
+0.0003659964292
+0.0008948876283
+5.638061947e-08
+3.288523078e-06
+5.432396316e-08
+5.180656108e-10
+5.121101877e-08
+1.939412345e-08
+1.979103443e-05
+2.528952084e-08
+0.0002538232488
+3.803903342e-05
+7.172183729e-06
+2.75905474e-06
+3.708702768e-06
+4.712896021e-08
+0.000108439689
+5.277716937e-08
+4.363976525e-08
+1.209873957e-07
+3.136828403e-08
+1.044074244e-07
+6.962817542e-08
+6.454218798e-06
+2.031013903e-09
+4.064683174e-07
+1.125182884e-06
+3.916618418e-06
+5.611673539e-07
+1.84857491e-07
+2.582351752e-07
+8.839694973e-05
+2.850270239e-06
+2.108250587e-07
+1.232780491e-08
+9.539060161e-08
+0.006539743101
+2.250901191e-05
+1.893445914e-07
+2.619125419e-11
+3.531362021e-10
+1.155012345e-07
+1.892426293e-07
+1.339882852e-08
+5.529288677e-08
+1.151877164e-05
+0.00588960458
+8.216093177e-05
+1.557089087e-07
+9.089131199e-08
+4.410102007e-07
+4.125576496e-08
+1.888774768e-07
+5.726792806e-05
+1.874521698e-09
+9.008279257e-12
+1.709010837e-05
+1.679280681e-07
+8.335400164e-06
+1.141575757e-08
+0.002680403832
+1.068376798e-08
+1.957144802e-06
+2.244322871e-05
+1.231886388e-05
+4.629843546e-05
+4.576136028e-06
+1.980948305e-08
+3.939031957e-07
+2.65004331e-05
+8.453580686e-06
+3.871900134e-08
+0.002862634137
+4.135209222e-08
+0.0002240265876
+1.625991922e-07
+1.446668925e-07
+1.815685575e-06
+3.823360471e-07
+1.519891535e-06
+7.180598153e-10
+3.485367321e-05
+7.35805394e-08
+7.791648477e-06
+7.339952614e-07
+1.648796899e-05
+5.701264433e-07
+1.101790041e-07
+2.180070124e-08
+0.005048514103
+1.410925493e-08
+1.79659364e-05
+3.537515255e-05
+2.034970872e-05
+1.003874866e-08
+0.0007062917902
+8.670420835e-05
+6.826257715e-08
+5.900590474e-06
+1.447324088e-08
+1.072029142e-05
+2.460261981e-05
+3.389879349e-08
+3.777393397e-07
+7.004751459e-07
+3.633234866e-05
+4.394822707e-07
+7.401507266e-07
+0.004667610557
+4.822447961e-07
+1.289578788e-08
+0.0001296610888
+1.387004875e-06
+2.915918021e-05
+1.716180445e-07
+2.901178909e-08
+7.505099919e-10
+7.294909916e-08
+5.765709885e-07
+3.265707371e-08
+1.700562686e-06
+3.410395422e-08
+7.817695837e-06
+0.0001713560836
+4.092858435e-08
+9.55494033e-08
+2.412147443e-06
+3.18345347e-09
+0.0006930357429
+1.227979147e-07
+8.804484246e-05
+2.135133831e-06
+4.692924121e-06
+5.984249476e-08
+2.487695226e-06
+1.77617142e-07
+6.533554512e-07
+1.608219361e-06
+4.482959485e-06
+1.390185368e-06
+2.463223456e-09
+0.0001373151805
+4.692426131e-10
+6.223525821e-09
+3.026838853e-06
+5.540489257e-08
+5.422757022e-08
+8.715186702e-08
+3.005202198e-06
+4.491427703e-06
+1.296306315e-08
+8.033990981e-07
+8.445507163e-07
+1.3313495e-08
+1.8082169e-06
+4.811729624e-06
+3.356569741e-06
+3.718129986e-07
+1.633178145e-06
+1.145725674e-06
+1.082062104e-06
+6.645371526e-07
+7.689911527e-06
+9.446467571e-07
+0.0001628133531
+0.0004161446517
+2.733127802e-06
+4.797886191e-06
+0.0001243167241
+0.000448968545
+4.018914394e-08
+6.294006476e-05
+0.000630081244
+3.276911502e-07
+5.253342347e-07
+6.01350357e-09
+6.133257751e-07
+7.49793288e-08
+9.707663258e-08
+2.891962755e-07
+0.0008858323235
+5.834108655e-12
+2.657205251e-05
+1.937012009e-08
+1.014187607e-08
+2.078375068e-09
+9.092481277e-09
+1.171047339e-06
+6.185885599e-07
+7.316480548e-08
+1.137906585e-05
+3.92613425e-07
+9.411159935e-08
+2.358834566e-05
+4.56232593e-07
+8.746105152e-07
+2.158934095e-07
+7.682363523e-08
+4.623384694e-08
+1.822606698e-09
+5.649524127e-07
+8.860919132e-07
+3.66172606e-06
+0.005151181886
+1.333234926e-08
+0.01070056746
+3.557241357e-07
+7.955939989e-07
+1.102004449e-05
+9.09890981e-08
+9.760274691e-07
+4.02599664e-07
+3.148655627e-05
+3.652062557e-08
+5.832473901e-08
+0.0002758547993
+5.979707005e-06
+2.336266799e-06
+1.214254103e-06
+1.256993645e-05
+4.380008417e-07
+8.014538804e-07
+0.003169517808
+9.221440216e-05
+4.690667282e-07
+7.647898282e-07
+1.418662628e-05
+2.220757827e-07
+3.141955147e-07
+1.911552946e-07
+2.452935386e-08
+0.0001445565639
+2.061452929e-07
+1.315418046e-09
+3.270353267e-05
+2.302094503e-07
+4.002015452e-06
+1.609746316e-06
+1.156175809e-08
+4.490179986e-08
+0.0002105147887
+1.502852601e-10
+0.0003938429791
+2.359475691e-06
+5.766404671e-05
+4.012664204e-07
+1.060115376e-07
+0.0002141724857
+2.679419004e-06
+1.069242724e-05
+2.484273569e-09
+0.0001019811318
+1.193107128e-06
+1.086686152e-06
+1.985318786e-07
+1.172745202e-10
+4.982354956e-07
+2.574808657e-05
+0.001250228135
+2.058018342e-09
+1.333953989e-07
+9.818589429e-09
+5.153985583e-07
+0.0001083911806
+1.428530264e-06
+1.746216459e-05
+2.151516381e-05
+0.01028483602
+7.323846337e-07
+2.685813988e-08
+4.250429571e-05
+0.0004356709049
+3.28939188e-07
+0.003236795043
+3.007501797e-08
+2.793831556e-06
+1.897873992e-05
+1.619696108e-07
+8.953551025e-05
+4.80193982e-06
+7.858777009e-06
+7.610679109e-07
+2.314240509e-05
+4.939677487e-09
+4.926048471e-09
+8.469201572e-07
+3.809176042e-05
+8.401919445e-09
+4.426718159e-07
+2.426495876e-06
+3.814034779e-08
+1.746205254e-06
+1.524431761e-07
+7.921023056e-05
+2.101316821e-07
+4.839140599e-07
+5.351990236e-07
+4.622182851e-05
+0.001900102798
+1.924053736e-06
+0.001430517818
+4.980374668e-08
+0.001646472474
+1.600583774e-05
+2.692261472e-06
+4.189059841e-06
+9.98835345e-08
+3.325344145e-05
+1.063350006e-06
+4.230188624e-06
+3.988458639e-06
+0.0001050664497
+5.985955822e-08
+2.025523764e-06
+4.345105365e-07
+8.910417748e-05
+2.543223041e-06
+0.0002129901487
+8.738312346e-06
+4.913864555e-09
+3.35325571e-08
+3.330566284e-05
+1.951472299e-06
+1.384757071e-05
+2.148294489e-07
+1.685285196e-07
+1.114823446e-07
+6.020716679e-05
+1.280863842e-07
+4.215213019e-07
+3.062370712e-07
+6.986571467e-07
+1.615302443e-07
+1.317636931e-07
+0.0008030051004
+2.015887208e-05
+5.191764639e-06
+5.499934662e-07
+7.154064268e-08
+0.0002157242896
+9.439855684e-07
+6.512827947e-08
+1.039015038e-08
+0.0001795882702
+1.962855737e-05
+1.739481498e-07
+2.125722499e-08
+1.743456005e-05
+1.541385725e-06
+3.391912637e-06
+8.358930459e-06
+1.415585549e-09
+7.887403159e-07
+1.745047173e-07
+1.932691352e-07
+9.827865394e-07
+1.29143604e-07
+9.277986603e-05
+4.26401939e-06
+3.754381337e-07
+3.452543569e-05
+8.101147971e-06
+4.056176049e-09
+2.2530047e-07
+1.172500327e-05
+4.796353912e-07
+3.78522037e-09
+2.390433748e-05
+5.308730798e-08
+4.670503157e-05
+6.758043071e-05
+3.147573094e-09
+1.661535227e-05
+5.89344189e-08
+3.900862268e-05
+3.504192369e-08
+8.675791814e-05
+0.0001335963742
+1.30228891e-06
+1.14637156e-06
+6.394081592e-06
+2.519446964e-05
+0.0001367023723
+4.154471425e-09
+2.099781601e-06
+2.146405871e-05
+1.233838555e-09
+0.001728366589
+4.092072252e-05
+0.007151322001
+4.760094246e-09
+0.0007525543832
+1.763178471e-08
+2.706266303e-07
+4.168856448e-06
+6.813637481e-07
+6.199556862e-06
+1.450329435e-09
+0.001178920548
+3.552454118e-07
+0.001006319382
+3.684787183e-07
+2.167631697e-07
+2.537791672e-06
+7.65843049e-07
+2.591360291e-07
+4.604264858e-08
+4.168291081e-07
+7.23863419e-09
+1.170104498e-06
+4.393494707e-07
+0.0007919172208
+1.02875714e-06
+6.918203902e-08
+9.436152555e-08
+1.591152279e-06
+2.089437034e-06
+1.613336951e-07
+3.637029901e-07
+9.604787084e-07
+9.357789457e-07
+2.887457829e-06
+6.126125816e-06
+1.015640357e-05
+5.754930623e-06
+0.002323638092
+8.012837173e-07
+5.265094095e-07
+0.0002032528678
+1.451002447e-07
+5.476912535e-07
+7.46876402e-07
+1.172249495e-05
+5.000091719e-06
+1.5728585e-06
+6.441937094e-08
+2.908823657e-05
+4.56908538e-05
+0.0003671897961
+1.009463738e-07
+1.696629017e-09
+1.138323555e-08
+7.716768592e-07
+3.529182645e-06
+6.362980666e-07
+1.932763096e-07
+5.985715811e-07
+3.856195618e-06
+8.483660513e-07
+7.519020755e-09
+6.046415155e-06
+8.331849394e-05
+0.0004929171874
+1.0663275e-06
+6.354542182e-05
+2.325133372e-05
+3.330055739e-07
+7.906912957e-09
+3.514921427e-06
+6.695060974e-06
+7.791800029e-08
+3.007347254e-09
+1.687228718e-06
+2.965956639e-06
+2.551834128e-08
+0.02756992212
+1.902086655e-06
+1.858826374e-06
+1.174566239e-07
+6.264996388e-07
+0.0001498026534
+2.510027485e-07
+0.003704484331
+7.864414886e-05
+1.776329747e-08
+0.0002011665187
+4.239768745e-06
+1.056552608e-06
+0.0008521357496
+4.768399496e-07
+5.244443485e-06
+0.0001425007391
+4.507198467e-07
+3.092477214e-07
+0.007681380868
+1.571782134e-07
+3.341334167e-08
+9.57706182e-07
+1.135332842e-09
+1.200841644e-07
+4.167709339e-06
+7.82760817e-06
+1.444096635e-06
+2.566989594e-05
+3.703035915e-07
+2.683318538e-05
+2.223130286e-07
+1.771561768e-05
+1.154453031e-07
+4.676014437e-07
+1.045571408e-08
+5.174119793e-07
+8.734308333e-07
+1.146383843e-08
+8.783876977e-07
+7.500376201e-10
+1.921618268e-05
+5.899024727e-08
+7.304615354e-05
+1.070796034e-08
+2.432284524e-05
+2.466254787e-09
+1.587769497e-05
+5.253475459e-08
+1.186364484e-06
+2.513004088e-08
+2.87819867e-05
+1.268569695e-09
+4.036264205e-07
+1.480215602e-05
+0.007764494839
+1.266601317e-05
+2.673263662e-07
+2.052245037e-07
+3.026351381e-09
+3.958705306e-09
+5.153048282e-10
+2.30485786e-10
+4.00164636e-09
+5.422561302e-12
+1.079720947e-08
+7.875946683e-07
+2.049257559e-13
+2.452534431e-10
+6.723860105e-09
+1.881353189e-09
+8.769041652e-09
+1.325700715e-07
+8.79667941e-10
+8.5986373e-09
+1.838834465e-09
+1.411765524e-09
+3.18067218e-09
+1.657130925e-09
+6.291536437e-07
+1.407357562e-08
+2.446358306e-10
+3.694611522e-06
+7.168161371e-08
+1.515101018e-07
+5.976714028e-07
+9.943558916e-11
+1.770298093e-10
+6.826696518e-10
+3.501929792e-09
+1.003706187e-11
+2.246634535e-10
+1.563106006e-08
+1.258778496e-08
+1.510668332e-09
+1.860249337e-08
+7.435896516e-11
+8.89181714e-11
+8.343559836e-07
+7.820974821e-10
+7.372052076e-09
+1.737913173e-08
+4.796532688e-10
+1.006823211e-11
+2.297476668e-07
+2.964280788e-09
+5.119370398e-06
+1.217074468e-09
+1.247831141e-10
+2.37987642e-10
+6.846887143e-08
+1.126062262e-08
+9.36618524e-09
+8.815178295e-13
+1.248917793e-09
+1.287973388e-06
+1.86196907e-05
+5.985896019e-09
+3.576308021e-09
+1.396180119e-07
+5.597665378e-09
+1.227844729e-07
+3.184711941e-10
+1.281522958e-09
+3.785294808e-08
+8.065221219e-10
+1.797290698e-08
+4.870819508e-09
+1.481392231e-08
+6.148531319e-13
+2.607634113e-08
+7.503249808e-09
+7.319832495e-10
+3.917501637e-06
+2.455952184e-09
+1.635840103e-09
+1.504256884e-07
+4.625984077e-12
+2.544655175e-10
+2.326287797e-09
+1.209441139e-07
+9.766041156e-09
+2.844111981e-07
+1.20119614e-06
+7.294984792e-08
+2.673419175e-08
+3.217599397e-11
+3.051042541e-08
+8.284597023e-08
+2.058233732e-10
+2.829564576e-09
+6.317615443e-05
+5.647542344e-08
+3.939768099e-09
+6.94521861e-09
+2.688795896e-09
+1.246674677e-07
+1.659871523e-07
+2.236153688e-05
+9.480324188e-09
+9.50066876e-07
+7.270988017e-08
+4.04309441e-07
+7.377999608e-10
+1.151204932e-07
+3.256182092e-08
+1.170362629e-12
+5.503648305e-08
+1.043808855e-11
+1.203531525e-08
+1.075547057e-10
+8.107924721e-07
+4.847758787e-11
+7.343486683e-06
+1.187542764e-11
+3.503963419e-08
+7.017971335e-12
+2.463602443e-10
+1.851798263e-10
+1.513084866e-09
+8.01852224e-09
+3.929366966e-06
+2.084034312e-07
+5.951098049e-10
+3.506971351e-06
+5.267869558e-12
+3.372542047e-06
+1.693992103e-11
+1.866988743e-10
+2.116462536e-10
+3.831407595e-10
+6.969326172e-05
+1.539437415e-08
+1.101433347e-11
+1.388232647e-10
+5.247749174e-08
+4.682028909e-08
+1.641598156e-10
+2.193557269e-08
+1.553195144e-09
+2.996101226e-08
+2.723666317e-11
+1.942276011e-09
+1.292931245e-11
+3.828442429e-12
+1.610129287e-08
+1.68730662e-06
+1.925468729e-09
+4.366676054e-13
+6.454416036e-07
+6.024026922e-07
+2.580228274e-10
+1.225798734e-05
+1.999308637e-11
+4.860872791e-11
+2.362341657e-08
+1.373652589e-08
+3.790341756e-12
+1.087152141e-08
+3.129247636e-07
+1.364371415e-09
+1.71528796e-05
+3.172915696e-08
+1.82357355e-08
+3.114465198e-09
+3.261406498e-10
+2.126159374e-05
+5.670721103e-08
+9.666079594e-10
+7.465172199e-10
+1.354594056e-10
+2.460812063e-08
+1.087490927e-09
+2.736632646e-07
+5.112932147e-10
+6.30608916e-07
+3.16614122e-09
+2.044783566e-08
+6.895475483e-10
+6.672701099e-11
+5.398066665e-09
+1.01564995e-07
+5.845619561e-10
+4.836690216e-08
+5.100722965e-10
+1.572957817e-08
+1.787346401e-10
+1.632619667e-08
+7.017140249e-08
+7.320144324e-12
+3.02986803e-11
+1.409100801e-12
+1.238542063e-06
+8.502558829e-08
+3.438481899e-08
+4.863624248e-07
+5.154336834e-07
+2.089682494e-09
+3.431232831e-10
+1.781888545e-08
+1.544255738e-09
+4.308591117e-09
+2.652013597e-09
+1.604288279e-11
+1.019669685e-05
+1.12327842e-09
+2.815515241e-12
+1.072273787e-10
+6.773434559e-09
+2.399387849e-09
+1.75474283e-07
+6.117989542e-11
+8.592612784e-06
+6.887595232e-11
+1.79993583e-09
+2.674398001e-10
+1.267708042e-08
+1.616751919e-09
+2.418384582e-10
+2.161734611e-07
+3.594695838e-06
+1.314781583e-05
+3.035129573e-06
+5.146844833e-12
+8.125025163e-07
+2.904326031e-07
+8.278771155e-08
+1.491230091e-12
+3.232705305e-10
+3.014800965e-07
+3.869271268e-08
+4.060064314e-09
+2.722533999e-09
+1.252200287e-06
+8.533922342e-10
+1.170246478e-13
+1.013028025e-07
+1.173657504e-10
+1.230854977e-06
+3.602985461e-07
+2.340450846e-10
+1.622721489e-07
+1.855075276e-10
+1.873406688e-13
+1.477955216e-10
+5.974685081e-09
+5.502790891e-08
+6.238719977e-09
+2.281603193e-08
+2.708614274e-09
+8.942145684e-07
+8.600069274e-08
+5.313891433e-08
+1.15030578e-06
+4.275597144e-10
+2.535746467e-12
+1.472699284e-07
+2.05450342e-10
+2.45239943e-06
+2.149773698e-09
+1.302041059e-08
+1.354492219e-05
+1.493744046e-10
+4.155110822e-09
+1.975404554e-09
+7.883672681e-09
+3.016978986e-08
+6.106630141e-07
+7.432899837e-09
+3.802000369e-08
+1.356515625e-08
+7.945785661e-11
+6.146806632e-09
+1.061252645e-06
+3.425558912e-09
+4.724377322e-09
+2.264944373e-06
+5.206889333e-12
+1.903801687e-11
+5.585064622e-09
+5.143287236e-12
+8.796169898e-08
+2.01831747e-09
+7.315991184e-07
+6.364925571e-11
+5.084300761e-08
+4.955537206e-10
+7.578932433e-10
+1.04156874e-10
+1.067901402e-10
+2.629754276e-10
+7.25335847e-09
+3.644329828e-09
+3.524042064e-06
+1.911472842e-10
+7.705710398e-09
+9.497312756e-06
+1.776151243e-07
+7.671908505e-12
+1.053728533e-07
+4.52842088e-07
+2.689018224e-11
+2.172694222e-09
+1.388552825e-10
+8.063784626e-10
+5.66398293e-08
+1.744770454e-09
+2.052060722e-11
+2.110818333e-11
+4.471876064e-07
+1.547841859e-09
+1.123968452e-08
+1.220442239e-08
+7.869244588e-07
+1.643473453e-10
+1.008574226e-08
+3.353923888e-07
+6.498701544e-10
+1.784279801e-10
+3.805045733e-07
+8.427141619e-07
+1.498045908e-09
+1.039453208e-10
+1.111541375e-08
+1.747478719e-09
+2.355118422e-09
+1.678201094e-08
+2.202184418e-10
+5.649709141e-08
+7.45087756e-08
+3.278913775e-11
+3.654180177e-11
+1.935597745e-11
+4.454404883e-09
+1.468811182e-11
+6.57114871e-09
+6.056868166e-10
+1.45099015e-07
+1.129009027e-10
+1.042111653e-11
+3.257323655e-11
+9.125783554e-09
+1.15776364e-08
+1.347035226e-10
+1.772518894e-07
+2.065966085e-07
+1.18335761e-10
+4.340575369e-11
+1.724054892e-07
+1.017507229e-09
+4.448105514e-08
+9.297852627e-10
+1.457953015e-08
+1.344680446e-06
+3.942919772e-10
+6.431630422e-10
+2.598292431e-09
+9.723217413e-11
+5.887976816e-07
+1.250935985e-08
+1.91892714e-08
+1.266147267e-09
+2.358514388e-08
+9.312371762e-07
+4.777005653e-09
+1.101297338e-05
+4.464552646e-10
+7.607715154e-08
+5.154573346e-10
+2.264473432e-08
+8.764029047e-09
+8.615187911e-07
+1.40027638e-06
+2.971161233e-07
+1.70303243e-09
+9.085713716e-08
+7.676704887e-09
+3.495574146e-07
+5.348513441e-10
+8.550322518e-10
+5.35951439e-10
+3.270519121e-08
+2.199299151e-11
+3.481764536e-07
+6.965854851e-10
+1.079164489e-09
+2.042347426e-11
+1.522429952e-08
+1.81465207e-09
+3.79819579e-08
+3.251519125e-06
+1.339537878e-08
+1.067186532e-10
+2.907350796e-09
+2.121014228e-09
+1.929111876e-10
+5.485037209e-10
+2.944494304e-10
+3.400494514e-09
+2.722261269e-07
+1.103453431e-07
+4.918083741e-10
+1.403502855e-08
+1.186087559e-10
+2.383805467e-09
+6.366306819e-10
+2.884744386e-08
+3.233589437e-09
+0.0001662944389
+2.948950879e-10
+2.818085744e-08
+2.146436612e-09
+2.878511074e-11
+1.429955578e-11
+2.151447291e-11
+4.991716189e-07
+7.608410036e-11
+4.322111296e-08
+8.515575318e-10
+4.52193765e-09
+4.65887361e-08
+4.872378255e-10
+1.225930736e-08
+9.732262711e-09
+5.552760073e-08
diff --git a/t/ME_data/ME_w_FKL_tree.dat b/t/ME_data/ME_w_FKL_tree.dat
index 3c21bd1..aa38bd9 100644
--- a/t/ME_data/ME_w_FKL_tree.dat
+++ b/t/ME_data/ME_w_FKL_tree.dat
@@ -1,556 +1,556 @@
-1.66735e-10
-4.4041e-08
-5.92405e-10
-0.0366658
-3.02387e-05
-6.33019e-05
-1.3673e-05
-0.0181281
-0.0140049
-2.7364e-07
-1.42529e-06
-0.376058
-1.4039e-07
-0.000204353
-3.25009e-06
-0.0202204
-4.52458e-06
-0.577611
-0.00126865
-1.42403e-05
-5.69446e-05
-3.24538e-06
-6.95782e-06
-502.564
-0.5466
-5.6995e-08
-0.0172244
-4.88591e-06
-1.38707e-07
-3.05536e-07
-0.00398169
-1.53828e-09
-7.82136e-12
-0.000227506
-4.39617e-08
-0.00013258
-0.000308858
-1.19829e-09
-2.09184e-06
-4.61199e-10
-0.00033569
-444.624
-2.96405
-6.36854e-09
-4.08676e-07
-0.14296
-2.36192e-08
-0.000639599
-2.76895e-06
-0.00415682
-1.31852e-09
-0.0549343
-7.37083e-05
-1.55399
-1.27455e-07
-3.36237e-07
-3.20486e-10
-3.5427e-05
-3.09312e-08
-0.0143784
-4.62088e-07
-9.02783
-0.00219736
-1.57684e-09
-1.32025e-05
-1.21352e-09
-2.81855e-07
-0.000574464
-1.50161e-07
-0.00157949
-0.000365113
-1.00946e-05
-0.0132691
-1.66234e-07
-2.28424e-07
-0.000192614
-18453.2
-0.000166803
-2.09525e-06
-3.20392e-07
-2.31454e-05
-0.000354074
-0.037135
-0.000172935
-4543.48
-4.26989e-05
-462.744
-2.12671e-09
-0.000418861
-5.95467e-05
-109.695
-235.696
-5.95639e-10
-1.72486e-05
-2.91207e-08
-1.81559e-05
-0.000350347
-7.02993e-08
-0.0704984
-2.96942e-07
-7.6676e-11
-5.13603e-05
-2.97235e-06
-0.223145
-1.64837e-07
-2.89016e-13
-9.51596e-12
-0.00375317
-1.85032e-07
-2.34686e-05
-1.20398e-05
-7.04312e-06
-2.02827e-06
-0.00464863
-2.03636e-05
-1.04609
-0.00591302
-4.77803e-07
-2.01462e-06
-0.000182964
-0.0489411
-2.61445e-09
-0.000100035
-5148.58
-0.000216259
-0.000332495
-6.04945e-08
-8.57456e-05
-2.76748e-05
-1.25562e-12
-0.000422337
-0.00133835
-0.00744617
-1.14326
-1.43195e-08
-6.38635e-07
-0.00862448
-4.37711e-06
-0.212646
-4.61289e+06
-4.01648e-05
-1.0193e-10
-2.31501e-05
-1.15591e-08
-1.13292e-07
-6.22732e-06
-2.5339e-05
-5.253e-08
-0.0957011
-0.00346245
-0.00202415
-0.000809109
-9.25638e-08
-0.00377243
-0.0273365
-4.03002e-07
-3.29569e-08
-7.93097e-06
-3.40496e-08
-0.000230937
-1.81192e-11
-6.81293e-10
-3.40697e-05
-0.240183
-0.00378173
-109851
-6.14314e-07
-1.35922e-06
-3.41102e-11
-3.51399e-07
-0.000198309
-0.000188839
-6.76021e-08
-0.000284694
-1.43864e-08
-5.16049e-09
-5.62878e-05
-0.770015
-0.247726
-9.93266e-09
-3.18242e-07
-1.00451e-05
-3.30423e-05
-1.06448
-6.225e-07
-6.60516e-08
-1.17284e-05
-0.00509921
-1.99188e-06
-1.50062e-10
-2.80521e-07
-2.828e-06
-0.445898
-2.33741e-08
-0.0750609
-1.61982e-08
-2.38598e-06
-3.91605e-10
-0.00044492
-9.87935e-05
-6.33457e-06
-0.00212007
-1.7068e-05
-12800.8
-7.84114e-05
-3.56353e-06
-1.53868e-07
-0.000147522
-1.59291e-06
-0.0760704
-6.16233e-07
-0.0110517
-0.132904
-0.0208312
-2.65967e-08
-5.05612e-05
-0.00799967
-6.28914e-07
-3.67441e-07
-0.711692
-1.4769e-07
-0.00133689
-9.65703e-05
-0.000140625
-0.000165611
-1.4526e-10
-84.6939
-7.30804e-05
-4.34679e-05
-1.13212e-05
-9.76841e-07
-0.138946
-0.857284
-4.80432e-07
-159.45
-0.0037607
-0.000330063
-8.6496e-05
-0.969737
-0.0461401
-548.271
-3.43983e-07
-3.45997e-06
-1.404e-12
-1.60387e-05
-4.70059e-07
-4630.86
-8.43376e-05
-7.53079e-06
-1.23222e-12
-0.0482061
-7.35608
-3.0975e-05
-1.80607e-05
-6.0602e-06
-1.25394e-08
-1.04957e-06
-3.32049e-06
-5.35062e-07
-0.00359605
-7.3544e-08
-9.09049e-06
-1.36527e-10
-2.98454e-06
-2.66174e-05
-7395.92
-3.77381e-07
-1.82459e-07
-0.0035087
-3.15536e-07
-0.00029903
-4.47086e-08
-0.000322599
-3.19833e-05
-1.44715e-05
-2.91342e-07
-3.66301e-07
-4.57968e-05
-5.56722e-10
-6.5099e-07
-1.54889e-07
-0.000163301
-2.26083e-11
-0.00015639
-3.58445e-05
-4.53362e-07
-2.07853e-05
-0.000543815
-0.000193472
-5.55595e-05
-0.0003522
-2.36567e-05
-4.95004e-06
-5.22835
-1.45351e-05
-0.00108416
-0.00155746
-0.740537
-2.04926e-06
-6.74606e-07
-0.525897
-2.86106e-09
-0.00140433
-9.73885e-07
-7.87825e-07
-9.11382e-07
-1.03271e-05
-0.00819761
-9.34316e-07
-102.715
-3.12936e-06
-8.17265e-05
-0.793069
-0.0394783
-0.249998
-3.2951e-10
-3.14814e-05
-6.84633e-07
-4.12731e-08
-3.30826
-3.83301e-05
-5.17716e-11
-0.00863598
-4.86168e-13
-2.07733
-1.52121e-05
-0.00762508
-3.9995e-07
-1.20631e-07
-8.72061e-14
-0.167408
-0.0349983
-2.80134e-08
-0.000149104
-42.7578
-0.0174395
-0.000805168
-4.51894e-05
-1.13497e-08
-0.00223994
-0.327996
-2.51105e-06
-6.52328e-06
-0.00307739
-0.00010686
-0.0826528
-3.40586e-09
-4.443e-08
-3.13325e-09
-0.393115
-2.24245e-05
-0.514506
-0.012296
-2.91465e-08
-6.13021e-11
-0.0106812
-2.1283e-05
-0.219704
-0.000904437
-0.00613495
-4.52535e-07
-0.00248037
-0.00206347
-9.02615e-05
-1.5555e-07
-5.08439e-06
-8.87029e-05
-0.00398221
-6.00901e-08
-3.42807e-06
-6.36962e-06
-1.09107e-05
-5.67e-06
-1.39205
-4.60967e-06
-0.101108
-0.0930008
-4.45779e-09
-0.000216392
-8.08965e-13
-0.00669366
-0.31851
-1.95031e-09
-1.27845e-08
-1.75725
-6.02183e-06
-9.47245e-06
-2.73499e-09
-1.31829e-06
-2.70901e-06
-6541.91
-0.0432065
-3.53221e-07
-6.71928e-05
-0.787997
-0.000468341
-0.0260916
-8.38173e-07
-9.59311
-1.42948e-06
-3.57455e-07
-9.90402e-07
-3.97145
-0.0663521
-1.9818e-06
-0.000625738
-1.44948e-06
-1.71863e-06
-3.2594e-06
-0.413732
-5.49708e-09
-81359.3
-9.32927e-06
-9.07516e-08
-8.47019e-06
-529.796
-8.03296
-2.46034e-05
-4.02271e-05
-6.76255e-05
-1.28593
-0.000184522
-5.46581e-11
-0.0292004
-0.00286131
-2.53505e-05
-2.14022e-10
-0.0119781
-3.36826e-11
-2.26669e-07
-3.71746e-07
-1.63972e-09
-1.79883e-05
-1.12241e-06
-0.000786734
-3.75728e-11
-1.04631e-05
-1.83096e-06
-0.000908951
-1.19379e-08
-5.85447e-06
-1.6532e-08
-3.08531e-05
-5.15335e-09
-6.67385e-08
-0.000987984
-0.0218896
-0.000673661
-1.4376e-07
-0.00919708
-1.93858e-06
-3.72294e-05
-0.00374186
-81844.1
-2.98802e-06
-0.113867
-3.84423e-06
-7.78978e-06
-40.3067
-1.64835e-06
-3773.67
-4.4311e-12
-0.031312
-0.000274236
-5.74005e-10
-4.09009e-06
-0.00976802
-6.13682e-07
-1.89011e-06
-3.18096e-07
-6.37238e-06
-7.34926e-06
-1.05138e-11
-0.00014211
-0.435855
-1.14883e-06
-8.41324e-08
-1.65963e-07
-0.000258003
-0.000278053
-3.97598e-06
-0.00385072
-6.17263e-06
-4.28477e+09
-3.35054e-05
-5.38143e-05
-26.8569
-0.000212268
-4.56831e-07
-2.43236e-06
-0.00044186
-1.61801
-1.29384e-05
-7.09936e-05
-0.0632148
-2.28731e-06
-8.46878e-06
-3.02247e-06
-4.90988e-08
-1.56847e-11
-63.7539
-3.22618e-07
-7.88706e-05
-4.0831e-07
-2.56971e-05
-0.00368127
-3.40935e-05
-7.56007e-08
-5.57694e-09
-2.19208e-07
-0.241623
-1.2466e-07
-1.21792e-06
-2.99997e-06
-7.90484e-05
-44.0162
-7.27495e-11
-0.255535
-20.4483
-1.10093e-09
-0.799591
-2.4149e-05
-0.0275875
-0.523435
-1.05659e-06
-0.0372607
-2.63343e-08
-9.11403e-07
-0.000531948
-3.19487e-07
-1.22984e-11
-468.197
-1.06812e-09
-0.00768798
-1.39065e-05
-0.000886794
-1.76499e-10
-1.0843e-05
-0.00534105
-2.39915e-11
-4.19033e-05
-0.00318565
-8.05371
-5.87035e-10
-1.77471e-07
-78509.9
-15.3982
-6.79612e-07
-1.14968e-06
-0.0236821
-8.65278e-05
-0.317341
-0.0186315
-1.09832e-10
-5.45839e-10
-5.49319e-09
+1.667315186e-10
+4.404017066e-08
+5.923929781e-10
+0.03666508128
+3.023811892e-05
+6.330069238e-05
+1.36727288e-05
+0.01812778747
+0.01400462796
+2.736345606e-07
+1.425266567e-06
+0.3760505288
+1.403875301e-07
+0.0002043491653
+3.250027572e-06
+0.02021997455
+4.524485983e-06
+0.5775996967
+0.001268626202
+1.423999659e-05
+5.69434408e-05
+3.245314232e-06
+6.957684481e-06
+502.5539886
+0.546589066
+5.699382516e-08
+0.01722406921
+4.885817083e-06
+1.387043832e-07
+3.055296275e-07
+0.00398161282
+1.538254389e-09
+7.821206371e-12
+0.0002275010776
+4.396085722e-08
+0.0001325770945
+0.0003088523271
+1.198263944e-09
+2.091801125e-06
+4.611899697e-10
+0.0003356833523
+444.6157154
+2.96399638
+6.368416799e-09
+4.086675293e-07
+0.1429569459
+2.36187578e-08
+0.0006395867848
+2.768892451e-06
+0.004156740339
+1.318496977e-09
+0.05493318836
+7.370685032e-05
+1.553957194
+1.274528902e-07
+3.362298367e-07
+3.204793071e-10
+3.54263096e-05
+3.093057968e-08
+0.01437807329
+4.620789095e-07
+9.027648503
+0.00219731232
+1.576808023e-09
+1.320220278e-05
+1.213500059e-09
+2.818491773e-07
+0.0005744528724
+1.501581137e-07
+0.001579455845
+0.0003651063047
+1.009436798e-05
+0.01326887726
+1.662304251e-07
+2.284194017e-07
+0.0001926104561
+18452.86145
+0.0001668000837
+2.095206203e-06
+3.203861113e-07
+2.314498192e-05
+0.0003540670002
+0.03713432111
+0.0001729313353
+4543.387336
+4.269801921e-05
+462.7351718
+2.126669342e-09
+0.0004188528579
+5.954551619e-05
+109.6927325
+235.6910069
+5.956272743e-10
+1.724826126e-05
+2.912010673e-08
+1.815557177e-05
+0.0003503405878
+7.0297927e-08
+0.07049700072
+2.969361912e-07
+7.667451411e-11
+5.135925587e-05
+2.972291616e-06
+0.2231408191
+1.648337501e-07
+2.890101433e-13
+9.515775559e-12
+0.0037530943
+1.850285892e-07
+2.346815717e-05
+1.203952406e-05
+7.042982993e-06
+2.028234987e-06
+0.004648534414
+2.036316202e-05
+1.046064594
+0.005912907534
+4.777939797e-07
+2.014579042e-06
+0.0001829605307
+0.04894013785
+2.614399079e-09
+0.0001000331728
+5148.47905
+0.0002162546666
+0.0003324886286
+6.049331808e-08
+8.57439134e-05
+2.767430164e-05
+1.255594728e-12
+0.000422328537
+0.001338320445
+0.007446024285
+1.143239994
+1.43191943e-08
+6.386226048e-07
+0.008624305643
+4.377026988e-06
+0.2126420458
+4612797.152
+4.016402807e-05
+1.019281655e-10
+2.314965225e-05
+1.155885575e-08
+1.132900933e-07
+6.227196475e-06
+2.533846927e-05
+5.252893646e-08
+0.09569925128
+0.003462382521
+0.0020241107
+0.000809092856
+9.256197468e-08
+0.003772354596
+0.02733597207
+4.029936956e-07
+3.295628446e-08
+7.930818292e-06
+3.404892e-08
+0.0002309328405
+1.811887164e-11
+6.812796603e-10
+3.406900397e-05
+0.2401784991
+0.003781651045
+109848.5319
+6.143017017e-07
+1.359193255e-06
+3.410957871e-11
+3.513925831e-07
+0.000198305341
+0.0001888354563
+6.760072294e-08
+0.0002846881218
+1.438607888e-08
+5.16039209e-09
+5.628667659e-05
+0.7699996394
+0.2477210875
+9.932465848e-09
+3.182352803e-07
+1.004494585e-05
+3.304169857e-05
+1.06445732
+6.224879045e-07
+6.605030351e-08
+1.172820826e-05
+0.005099112092
+1.991844825e-06
+1.50059318e-10
+2.805156093e-07
+2.827944566e-06
+0.4458888367
+2.337368164e-08
+0.0750594269
+1.619790162e-08
+2.385931472e-06
+3.915978966e-10
+0.0004449108452
+9.879150505e-05
+6.33444184e-06
+0.002120032931
+1.706764242e-05
+12800.56009
+7.840986998e-05
+3.563455571e-06
+1.538647921e-07
+0.0001475188555
+1.592883514e-06
+0.07606888819
+6.162212068e-07
+0.01105149681
+0.1329009412
+0.02083080371
+2.659620874e-08
+5.05602241e-05
+0.007999515094
+6.289014493e-07
+3.674334869e-07
+0.7116777276
+1.476867013e-07
+0.001336862253
+9.656841695e-05
+0.00014062231
+0.0001656081822
+1.452573321e-10
+84.69223131
+7.307891053e-05
+4.346706606e-05
+1.132101435e-05
+9.768221047e-07
+0.1389427947
+0.8572671404
+4.804230693e-07
+159.4469445
+0.003760629048
+0.0003300569962
+8.649428587e-05
+0.9697186064
+0.04613922975
+548.2597606
+3.439759113e-07
+3.459902785e-06
+1.403967881e-12
+1.603836846e-05
+4.70050048e-07
+4630.768694
+8.433593526e-05
+7.530639033e-06
+1.232192916e-12
+0.04820512745
+7.355937182
+3.097434638e-05
+1.806033422e-05
+6.060085027e-06
+1.253910765e-08
+1.049551452e-06
+3.320423212e-06
+5.350515263e-07
+0.003595978468
+7.35425805e-08
+9.090306272e-06
+1.365243147e-10
+2.984479239e-06
+2.661683236e-05
+7395.770412
+3.773738847e-07
+1.824555912e-07
+0.003508627071
+3.155299621e-07
+0.0002990237065
+4.470773979e-08
+0.0003225923823
+3.198267575e-05
+1.447122399e-05
+2.913359853e-07
+3.662938837e-07
+4.579591824e-05
+5.56710874e-10
+6.509772869e-07
+1.548860114e-07
+0.0001632982761
+2.26078942e-11
+0.0001563867319
+3.584381226e-05
+4.533535792e-07
+2.078486912e-05
+0.0005438046165
+0.0001934684099
+5.555844851e-05
+0.0003521935685
+2.36562676e-05
+4.949944419e-06
+5.228243829
+1.453484426e-05
+0.001084136247
+0.001557434021
+0.7405224934
+2.049217645e-06
+6.74592423e-07
+0.5258867438
+2.861005053e-09
+0.001404306405
+9.73866179e-07
+7.878094127e-07
+9.113639959e-07
+1.032693853e-05
+0.008197450272
+9.342974707e-07
+102.7129827
+3.129298248e-06
+8.172492317e-05
+0.7930532571
+0.03947753434
+0.2499930764
+3.295030571e-10
+3.148075144e-05
+6.846196446e-07
+4.12723336e-08
+3.308198517
+3.832929736e-05
+5.177059508e-11
+0.008635809082
+4.861589384e-13
+2.077292464
+1.521176383e-05
+0.007624935655
+3.99942051e-07
+1.206289002e-07
+8.720444999e-14
+0.1674051817
+0.03499759944
+2.801286086e-08
+0.0001491013213
+42.75697312
+0.01743917696
+0.000805152034
+4.518853522e-05
+1.134944356e-08
+0.002239900545
+0.3279897581
+2.510997933e-06
+6.523150073e-06
+0.003077328186
+0.0001068583252
+0.08265116311
+3.405794705e-09
+4.442918359e-08
+3.133188614e-09
+0.3931073001
+2.242401179e-05
+0.514495615
+0.01229571692
+2.914589812e-08
+6.13008955e-11
+0.01068101981
+2.12826257e-05
+0.2197000211
+0.0009044190984
+0.00613483036
+4.525265269e-07
+0.002480316843
+0.00206343391
+9.025978488e-05
+1.555465877e-07
+5.08428788e-06
+8.870110503e-05
+0.003982127756
+6.008888734e-08
+3.428007477e-06
+6.369497712e-06
+1.091047307e-05
+5.669888154e-06
+1.392027111
+4.609583801e-06
+0.1011063476
+0.0929989694
+4.457706325e-09
+0.0002163878214
+8.089493354e-13
+0.00669353176
+0.3185037668
+1.950268359e-09
+1.278425165e-08
+1.757219468
+6.021713895e-06
+9.472265881e-06
+2.734935172e-09
+1.318260485e-06
+2.708957193e-06
+6541.780132
+0.04320561368
+3.532141311e-07
+6.719153951e-05
+0.7879815796
+0.0004683319739
+0.02609109045
+8.381565463e-07
+9.592917303
+1.429446876e-06
+3.574476868e-07
+9.903821423e-07
+3.971367614
+0.06635086057
+1.981764538e-06
+0.0006257260869
+1.449454172e-06
+1.718595234e-06
+3.259331452e-06
+0.4137235511
+5.496974987e-09
+81357.72715
+9.329083772e-06
+9.074979936e-08
+8.470022064e-06
+529.7853256
+8.032804461
+2.460295783e-05
+4.022634352e-05
+6.76241946e-05
+1.285904395
+0.0001845179753
+5.465705536e-11
+0.0291998017
+0.002861256225
+2.534997204e-05
+2.14017616e-10
+0.01197790638
+3.368197968e-11
+2.266647534e-07
+3.717389776e-07
+1.639683132e-09
+1.798794617e-05
+1.12238298e-06
+0.0007867185765
+3.757207913e-11
+1.046286915e-05
+1.830925286e-06
+0.000908932743
+1.193763383e-08
+5.854353695e-06
+1.653169705e-08
+3.085250875e-05
+5.153252213e-09
+6.673716131e-08
+0.0009879644937
+0.02188915105
+0.0006736478856
+1.437570188e-07
+0.00919689793
+1.938540628e-06
+3.722872132e-05
+0.003741783731
+81842.52348
+2.987965499e-06
+0.1138645144
+3.844157179e-06
+7.789627934e-06
+40.30585138
+1.648319001e-06
+3773.592309
+4.431009224e-12
+0.03131139901
+0.0002742309107
+5.739935794e-10
+4.090014138e-06
+0.009767828669
+6.136698719e-07
+1.890077151e-06
+3.180893624e-07
+6.37225809e-06
+7.349117366e-06
+1.051360193e-11
+0.0001421072399
+0.4358467006
+1.148805789e-06
+8.413074125e-08
+1.659597018e-07
+0.0002579982621
+0.0002780472867
+3.975906181e-06
+0.003850647449
+6.17251411e-06
+4284683661
+3.350469943e-05
+5.381322199e-05
+26.85638779
+0.0002122633368
+4.568221053e-07
+2.432312982e-06
+0.0004418514628
+1.617974668
+1.293817999e-05
+7.099221858e-05
+0.06321356494
+2.287265277e-06
+8.4686102e-06
+3.022407149e-06
+4.909788141e-08
+1.568437743e-11
+63.75266761
+3.22612034e-07
+7.886901688e-05
+4.083024982e-07
+2.569662114e-05
+0.003681192521
+3.40928287e-05
+7.559921595e-08
+5.576827397e-09
+2.192042242e-07
+0.2416181335
+1.246573476e-07
+1.21789116e-06
+2.99990951e-06
+7.904684879e-05
+44.01535081
+7.274811089e-11
+0.255530375
+20.44788446
+1.100905094e-09
+0.7995748363
+2.414849244e-05
+0.02758696241
+0.5234252152
+1.056566077e-06
+0.0372599436
+2.633376081e-08
+9.113851924e-07
+0.0005319377128
+3.194810891e-07
+1.229820626e-11
+468.1881533
+1.068098842e-09
+0.007687828727
+1.390625724e-05
+0.000886776436
+1.764959754e-10
+1.084277463e-05
+0.005340941026
+2.399107396e-11
+4.190251504e-05
+0.003185585077
+8.053545372
+5.870235443e-10
+1.774670694e-07
+78508.30739
+15.39791168
+6.795987735e-07
+1.149657598e-06
+0.0236816412
+8.652613007e-05
+0.3173346064
+0.01863118456
+1.098294659e-10
+5.458278616e-10
+5.493083019e-09
diff --git a/t/ME_data/config_w_ME.yml b/t/ME_data/config_w_ME.yml
index c07d41c..27d826b 100644
--- a/t/ME_data/config_w_ME.yml
+++ b/t/ME_data/config_w_ME.yml
@@ -1,39 +1,39 @@
trials: 1
min extparton pt: 30
resummation jets:
min pt: 30
algorithm: antikt
R: 0.4
fixed order jets:
min pt: 30
event treatment:
FKL: reweight
unordered: reweight
extremal qqx: reweight
central qqx: reweight
non-resummable: discard
scales: 125
log correction: false
vev: 246.2196508
particle properties:
Higgs:
mass: 125
width: 0.004165
W:
- mass: 80.385
- width: 2.085
+ mass: 80.419
+ width: 2.0476
Z:
mass: 91.187
width: 2.495
random generator:
name: mixmax
seed: 1
diff --git a/t/check_res.cc b/t/check_res.cc
index 274427b..f9fc0d0 100644
--- a/t/check_res.cc
+++ b/t/check_res.cc
@@ -1,166 +1,171 @@
/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
#include <iostream>
#include <math.h>
#include "LHEF/LHEF.h"
#include "HEJ/Event.hh"
#include "HEJ/EventReweighter.hh"
#include "HEJ/Mixmax.hh"
#include "HEJ/stream.hh"
#define ASSERT(x) if(!(x)) { \
std::cerr << "Assertion '" #x "' failed.\n"; \
return EXIT_FAILURE; \
}
namespace{
const fastjet::JetDefinition jet_def{fastjet::kt_algorithm, 0.4};
const fastjet::JetDefinition Born_jet_def{jet_def};
constexpr double Born_jetptmin = 30;
constexpr double extpartonptmin = 30;
constexpr double max_ext_soft_pt_fraction = 0.1;
constexpr double jetptmin = 35;
constexpr bool log_corr = false;
+ const HEJ::ParticleProperties Wprop{80.385, 2.085};
+ const HEJ::ParticleProperties Zprop{91.187, 2.495};
+ const HEJ::ParticleProperties Hprop{125, 0.004165};
+ constexpr double vev = 246.2196508;
using EventTreatment = HEJ::EventTreatment;
using namespace HEJ::event_type;
HEJ::EventTreatMap treat{
{no_2_jets, EventTreatment::discard},
{bad_final_state, EventTreatment::discard},
{non_resummable, EventTreatment::discard},
{unof, EventTreatment::discard},
{unob, EventTreatment::discard},
{qqxexb, EventTreatment::discard},
{qqxexf, EventTreatment::discard},
{qqxmid, EventTreatment::discard},
{FKL, EventTreatment::reweight}
};
/// true if colour is allowed for particle
bool correct_colour(HEJ::Particle const & part){
if(HEJ::is_AWZH_boson(part) && !part.colour) return true;
if(!part.colour) return false;
int const colour = part.colour->first;
int const anti_colour = part.colour->second;
if(part.type == HEJ::ParticleID::gluon)
return colour != anti_colour && colour > 0 && anti_colour > 0;
if(HEJ::is_quark(part))
return anti_colour == 0 && colour > 0;
return colour == 0 && anti_colour > 0;
}
bool correct_colour(HEJ::Event const & ev){
if(!HEJ::event_type::is_resummable(ev.type()))
return true;
for(auto const & part: ev.incoming()){
if(!correct_colour(part))
return false;
}
for(auto const & part: ev.outgoing()){
if(!correct_colour(part))
return false;
}
return true;
}
};
int main(int argn, char** argv) {
if(argn == 5 && std::string(argv[4]) == "unof"){
--argn;
treat[unof] = EventTreatment::reweight;
treat[unob] = EventTreatment::discard;
treat[FKL] = EventTreatment::discard;
}
if(argn == 5 && std::string(argv[4]) == "unob"){
--argn;
treat[unof] = EventTreatment::discard;
treat[unob] = EventTreatment::reweight;
treat[FKL] = EventTreatment::discard;
}
else if(argn == 5 && std::string(argv[4]) == "splitf"){
--argn;
treat[qqxexb] = EventTreatment::discard;
treat[qqxexf] = EventTreatment::reweight;
treat[FKL] = EventTreatment::discard;
}
else if(argn == 5 && std::string(argv[4]) == "splitb"){
--argn;
treat[qqxexb] = EventTreatment::reweight;
treat[qqxexf] = EventTreatment::discard;
treat[FKL] = EventTreatment::discard;
}
else if(argn == 5 && std::string(argv[4]) == "qqxmid"){
--argn;
treat[qqxmid] = EventTreatment::reweight;
treat[FKL] = EventTreatment::discard;
}
if(argn != 4){
std::cerr << "Usage: check_res eventfile xsection tolerance [uno]";
return EXIT_FAILURE;
}
const double xsec_ref = std::stod(argv[2]);
const double tolerance = std::stod(argv[3]);
HEJ::istream in{argv[1]};
LHEF::Reader reader{in};
HEJ::PhaseSpacePointConfig psp_conf;
psp_conf.jet_param = HEJ::JetParameters{jet_def, jetptmin};
psp_conf.min_extparton_pt = extpartonptmin;
psp_conf.max_ext_soft_pt_fraction = max_ext_soft_pt_fraction;
HEJ::MatrixElementConfig ME_conf;
ME_conf.log_correction = log_corr;
ME_conf.Higgs_coupling = HEJ::HiggsCouplingSettings{};
+ ME_conf.ew_parameters.set_vevWZH(vev, Wprop, Zprop, Hprop);
HEJ::EventReweighterConfig conf;
conf.psp_config = std::move(psp_conf);
conf.ME_config = std::move(ME_conf);
conf.jet_param = psp_conf.jet_param;
conf.treat = treat;
reader.readEvent();
const bool has_Higgs = std::find(
begin(reader.hepeup.IDUP),
end(reader.hepeup.IDUP),
25
) != end(reader.hepeup.IDUP);
const double mu = has_Higgs?125.:91.188;
HEJ::ScaleGenerator scale_gen{
{{std::to_string(mu), HEJ::FixedScale{mu}}}, {}, 1.
};
HEJ::Mixmax ran{};
HEJ::EventReweighter hej{reader.heprup, std::move(scale_gen), conf, ran};
double xsec = 0.;
double xsec_err = 0.;
do{
auto ev_data = HEJ::Event::EventData{reader.hepeup};
ev_data.reconstruct_intermediate();
HEJ::Event ev{
ev_data.cluster(
Born_jet_def, Born_jetptmin
)
};
auto resummed_events = hej.reweight(ev, 100);
for(auto const & ev: resummed_events) {
ASSERT(correct_colour(ev));
ASSERT(isfinite(ev.central().weight));
xsec += ev.central().weight;
xsec_err += ev.central().weight*ev.central().weight;
}
} while(reader.readEvent());
xsec_err = std::sqrt(xsec_err);
const double significance =
std::abs(xsec - xsec_ref) / std::sqrt( xsec_err*xsec_err + tolerance*tolerance );
std::cout << xsec_ref << " +/- " << tolerance << " ~ "
<< xsec << " +- " << xsec_err << " => " << significance << " sigma\n";
if(significance > 3.){
std::cerr << "Cross section is off by over 3 sigma!\n";
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sun, Feb 23, 2:28 PM (15 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4466354
Default Alt Text
(227 KB)
Attached To
rHEJ HEJ
Event Timeline
Log In to Comment