Commit f24b633a authored by Juergen Reuter's avatar Juergen Reuter
Browse files

7760c61 Merge branch 'EW-corrections-QED-factors' into 'master'

parent 8975b829
......@@ -5,6 +5,7 @@ Use svn log to see detailed changes.
Version 3.0.0_beta+
2021-04-19
NLO EW splitting functions and collinear remnants completed
Photon recombination implemented
2021-04-14
......
......@@ -1244,11 +1244,7 @@ structure if the particle at position \texttt{emitter} is removed
flv%massive(i) = flavor%get_mass () > 0
flv%colored(i) = &
is_quark (flv%flst(i)) .or. is_gluon (flv%flst(i))
if (flavor%is_antiparticle ()) then
flv%charge(i) = -flavor%get_charge ()
else
flv%charge(i) = flavor%get_charge ()
end if
flv%charge(i) = flavor%get_charge ()
end do
end subroutine flv_structure_init_mass_color_and_charge
......@@ -2845,20 +2841,20 @@ are therefore equivalent.
type(flv_structure_t) :: flst_alr_tmp
type(ftuple_t) :: current_ftuple
integer :: leg1, leg2
logical :: valid1, valid2
logical :: valid
associate (flv_born => reg_data%flv_born(i_born), &
flv_real => reg_data%flv_real(i_real))
do leg1 = reg_data%n_in + 1, n_legreal
do leg2 = leg1 + 1, n_legreal
valid1 = flv_real%valid_pair(leg1, leg2, flv_born, model)
valid2 = flv_real%valid_pair(leg2, leg1, flv_born, model)
if (valid1 .or. valid2) then
if(valid1) then
valid = flv_real%valid_pair(leg1, leg2, flv_born, model)
if (valid) then
if (is_vector(flv_real%flst(leg1)) .and. &
is_fermion(flv_real%flst(leg2))) then
flst_alr_tmp = create_alr (flv_real, &
reg_data%n_in, leg1, leg2)
reg_data%n_in, leg2, leg1)
else
flst_alr_tmp = create_alr (flv_real, &
reg_data%n_in, leg2, leg1)
reg_data%n_in, leg1, leg2)
end if
flst_alr = [flst_alr, flst_alr_tmp]
emitters = [emitters, n_legreal - 1]
......@@ -5723,7 +5719,7 @@ module virtual
use diagnostics
use pdg_arrays
use models
use model_data, only: model_data_t
use model_data, only: model_data_t, field_data_t
use physics_defs
use sm_physics
use lorentz
......@@ -5845,16 +5841,19 @@ For uncolored particles, [[virtual_init_constants]] sets $C$, $\gamma$ and $\gam
integer, intent(in) :: nf_input
type(string_t), intent(in) :: nlo_corr_type
class(model_data_t), intent(in) :: model
integer :: i_part, i_flv
real(default) :: nf, CA_factor
type(field_data_t), pointer :: field
integer :: i_part, i_flv, pdg
real(default) :: nf, CA_factor, TR_sum
real(default), dimension(:,:), allocatable :: CF_factor, TR_factor
type(flavor_t) :: flv
allocate (CF_factor (size (flv_born, 1), size (flv_born, 2)), &
TR_factor (size (flv_born, 1), size (flv_born, 2)))
TR_sum = 0
select case (char (nlo_corr_type))
case ("QCD")
CA_factor = CA; CF_factor = CF; TR_factor = TR
nf = real(nf_input, default)
TR_sum = nf * TR
case ("EW")
CA_factor = zero
do i_flv = 1, size (flv_born, 2)
......@@ -5862,19 +5861,28 @@ For uncolored particles, [[virtual_init_constants]] sets $C$, $\gamma$ and $\gam
call flv%init (flv_born(i_part, i_flv), model)
CF_factor(i_part, i_flv) = (flv%get_charge ())**2
TR_factor(i_part, i_flv) = (flv%get_charge ())**2
if (is_quark (flv_born (i_part, i_flv))) &
TR_factor(i_part, i_flv) = NC * TR_factor(i_part, i_flv)
end do
end do
! TODO vincent_r fixed nf needs replacement !!! for testing only, needs dynamical treatment!
nf = real(4, default)
do pdg = 1, nf_input
field => model%get_field_ptr (pdg)
TR_sum = TR_sum + NC*field%get_charge()**2
end do
do pdg = 11, 15, 2
field => model%get_field_ptr (pdg)
if (field%get_mass() > 0) exit
TR_sum = TR_sum + field%get_charge()**2
end do
end select
do i_flv = 1, size (flv_born, 2)
do i_part = 1, size (flv_born, 1)
if (is_corresponding_vector (flv_born(i_part, i_flv), nlo_corr_type)) then
virt%gamma_0(i_part, i_flv) = 11._default / 6._default * CA_factor &
- two / three * TR_factor(i_part, i_flv) * nf
- two / three * TR_sum
virt%gamma_p(i_part, i_flv) = (67._default / 9._default &
- two * pi**2 / three) * CA_factor &
- 23._default / 9._default * TR_factor(i_part, i_flv) * nf
- 23._default / 9._default * TR_sum
virt%c_flv(i_part, i_flv) = CA_factor
else if (is_corresponding_fermion (flv_born(i_part, i_flv), nlo_corr_type)) then
virt%gamma_0(i_part, i_flv) = 1.5_default * CF_factor(i_part, i_flv)
......@@ -7949,7 +7957,7 @@ or the soft-collinear limits. Used for debug purposes if [[?test_anti_coll_limit
count_alr = .false.
end if
if (is_gluon (rsub%reg_data%regions(alr)%flst_real%flst(rsub%reg_data%n_legs_real))) then
if (is_massless_vector (rsub%reg_data%regions(alr)%flst_real%flst(rsub%reg_data%n_legs_real))) then
xi_tilde = rsub%real_kinematics%xi_tilde
is_soft = xi_tilde < soft_threshold
else
......@@ -8661,10 +8669,12 @@ equivalent to those used by POWHEG.
real(default), intent(in) :: alpha_coupling
real(default) :: xi, xi_max
real(default) :: mom_times_sqme_spin_c
real(default) :: N_col
integer :: i_con
real(default) :: pfr
associate (sregion => rsub%reg_data%regions(alr))
sqme_coll = zero
N_col = 1
if (sregion%has_collinear_divergence ()) then
xi = rsub%real_kinematics%xi_tilde * rsub%real_kinematics%xi_max(i_phs)
if (rsub%sub_coll%use_resonance_mappings) then
......@@ -8684,9 +8694,10 @@ equivalent to those used by POWHEG.
if (sregion%nlo_correction_type == "QCD") then
call rsub%sub_coll%set_parameters (CA = CA, CF = CF, TR = TR)
else if (sregion%nlo_correction_type == "EW") then
if (is_quark (sregion%flst_real%flst(size(sregion%flst_real%flst)))) N_col = 3
call rsub%sub_coll%set_parameters (CA = zero, &
CF = sregion%flst_real%charge(em)**2, &
TR = sregion%flst_real%charge(size(sregion%flst_real%flst))**2)
TR = N_col*sregion%flst_real%charge(size(sregion%flst_real%flst))**2)
end if
sqme_coll = rsub%sub_coll%compute_isr (em, sregion%flst_real%flst, &
rsub%real_kinematics%p_born_lab%phs_point(1)%p, &
......@@ -8697,9 +8708,10 @@ equivalent to those used by POWHEG.
if (sregion%nlo_correction_type == "QCD") then
call rsub%sub_coll%set_parameters (CA = CA, CF = CF, TR = TR)
else if (sregion%nlo_correction_type == "EW") then
if (is_quark (sregion%flst_real%flst(sregion%emitter))) N_col = 3
call rsub%sub_coll%set_parameters (CA = zero, &
CF = sregion%flst_real%charge(sregion%emitter)**2, &
TR = sregion%flst_real%charge(sregion%emitter)**2)
TR = N_col*sregion%flst_real%charge(sregion%emitter)**2)
end if
sqme_coll = rsub%sub_coll%compute_fsr (sregion%emitter, sregion%flst_real%flst, &
rsub%real_kinematics%xi_ref_momenta (i_con), &
......@@ -8735,9 +8747,11 @@ in this case, we need to differentiate between [[em]] and [[em_pdf]].
integer, intent(in) :: alr, em, i_phs
real(default), intent(in) :: alpha_coupling
real(default) :: mom_times_sqme_spin_c
real(default) :: N_col
integer :: i_con, em_pdf
associate (sregion => rsub%reg_data%regions(alr))
sqme_cs = zero
N_col = 1
if (sregion%has_collinear_divergence ()) then
if (rsub%sub_coll%use_resonance_mappings) then
i_con = rsub%reg_data%alr_to_i_contributor (alr)
......@@ -8750,9 +8764,10 @@ in this case, we need to differentiate between [[em]] and [[em_pdf]].
if (sregion%nlo_correction_type == "QCD") then
call rsub%sub_coll%set_parameters (CA = CA, CF = CF, TR = TR)
else if (sregion%nlo_correction_type == "EW") then
if (is_quark (sregion%flst_real%flst(size(sregion%flst_real%flst)))) N_col = 3
call rsub%sub_coll%set_parameters (CA = zero, &
CF = sregion%flst_real%charge(em)**2, &
TR = sregion%flst_real%charge(size(sregion%flst_real%flst))**2)
TR = N_col*sregion%flst_real%charge(size(sregion%flst_real%flst))**2)
end if
sqme_cs = rsub%sub_coll%compute_isr (em, sregion%flst_real%flst, &
rsub%real_kinematics%p_born_lab%phs_point(1)%p, &
......@@ -8763,9 +8778,10 @@ in this case, we need to differentiate between [[em]] and [[em_pdf]].
if (sregion%nlo_correction_type == "QCD") then
call rsub%sub_coll%set_parameters (CA = CA, CF = CF, TR = TR)
else if (sregion%nlo_correction_type == "EW") then
if (is_quark (sregion%flst_real%flst(sregion%emitter))) N_col = 3
call rsub%sub_coll%set_parameters (CA = zero, &
CF = sregion%flst_real%charge(sregion%emitter)**2, &
TR = sregion%flst_real%charge(sregion%emitter)**2)
TR = N_col*sregion%flst_real%charge(sregion%emitter)**2)
end if
sqme_cs = rsub%sub_coll%compute_fsr (sregion%emitter, sregion%flst_real%flst, &
rsub%real_kinematics%xi_ref_momenta(i_con), &
......@@ -9580,6 +9596,7 @@ end module dglap_remnant
type(nlo_settings_t), pointer :: settings => null ()
type(region_data_t), pointer :: reg_data => null ()
type(isr_kinematics_t), pointer :: isr_kinematics => null ()
real(default) :: CA = 0, CF = 0, TR = 0
real(default), dimension(:), allocatable :: sqme_born
real(default), dimension(:,:), allocatable :: sf_factors
contains
......@@ -9608,6 +9625,18 @@ end module dglap_remnant
end subroutine dglap_remnant_init
@ %def dglap_remnant_init
<<dglap remnant: dglap remnant: TBP>>=
procedure :: set_parameters => dglap_remnant_set_parameters
<<dglap remnant: procedures>>=
subroutine dglap_remnant_set_parameters (dglap, CA, CF, TR)
class(dglap_remnant_t), intent(inout) :: dglap
real(default), intent(in) :: CA, CF, TR
dglap%CA = CA
dglap%CF = CF
dglap%TR = TR
end subroutine dglap_remnant_set_parameters
@ %def dglap_remnant_set_parameters
@ Evaluates formula \ref{eqn:sigma-in-p-final}. Note that, as also in the case for the
real subtraction, we have to take into account an additional term, occuring because the
integral the plus distribution is evaluated over is not constrained on the interval $[0,1]$.
......@@ -9624,9 +9653,9 @@ event generation to generate counter events with a specific Born flavor structur
<<dglap remnant: dglap remnant: TBP>>=
procedure :: evaluate => dglap_remnant_evaluate
<<dglap remnant: procedures>>=
subroutine dglap_remnant_evaluate (dglap, alpha_s, separate_uborns, sqme_dglap)
subroutine dglap_remnant_evaluate (dglap, alpha_coupling, separate_uborns, sqme_dglap)
class(dglap_remnant_t), intent(inout) :: dglap
real(default), intent(in) :: alpha_s
real(default), intent(in) :: alpha_coupling
logical, intent(in) :: separate_uborns
real(default), intent(inout), dimension(:) :: sqme_dglap
integer :: alr, emitter
......@@ -9639,6 +9668,9 @@ event generation to generate counter events with a specific Born flavor structur
dglap%reg_data%n_in))
evaluated = .false.
do alr = 1, dglap%reg_data%n_regions
if (allocated (dglap%settings%selected_alr)) then
if (.not. any (dglap%settings%selected_alr == alr)) cycle
end if
sqme_alr = zero
emitter = dglap%reg_data%regions(alr)%emitter
if (emitter > dglap%reg_data%n_in) cycle
......@@ -9654,9 +9686,9 @@ event generation to generate counter events with a specific Born flavor structur
call evaluate_alr (alr, emitter, i_flv_born, i_flv_real, sqme_alr, evaluated)
end if
if (separate_uborns) then
sqme_dglap(i_flv_born) = sqme_dglap(i_flv_born) + alpha_s / twopi * sqme_alr
sqme_dglap(i_flv_born) = sqme_dglap(i_flv_born) + alpha_coupling / twopi * sqme_alr
else
sqme_dglap(1) = sqme_dglap(1) + alpha_s / twopi * sqme_alr
sqme_dglap(1) = sqme_dglap(1) + alpha_coupling / twopi * sqme_alr
end if
end associate
end do
......@@ -9677,25 +9709,25 @@ event generation to generate counter events with a specific Born flavor structur
function p_hat_gtogg (z)
real(default) :: p_hat_gtogg
<<p variables>>
p_hat_gtogg = two * CA * (z + onemz**2 / z + z * onemz**2)
p_hat_gtogg = two * dglap%CA * (z + onemz**2 / z + z * onemz**2)
end function p_hat_gtogg
function p_hat_gtoqq (z)
real(default) :: p_hat_gtoqq
<<p variables>>
p_hat_gtoqq = CF * onemz / z * (one + onemz**2)
p_hat_gtoqq = dglap%CF * onemz / z * (one + onemz**2)
end function p_hat_gtoqq
function p_hat_qtogq (z)
real(default) :: p_hat_qtogq
<<p variables>>
p_hat_qtogq = TR * (onemz - two * z * onemz**2)
p_hat_qtogq = dglap%TR * (onemz - two * z * onemz**2)
end function p_hat_qtogq
function p_hat_qtoqg (z)
real(default) :: p_hat_qtoqg
real(default), intent(in) :: z
p_hat_qtoqg = CF * (one + z**2)
p_hat_qtoqg = dglap%CF * (one + z**2)
end function p_hat_qtoqg
@ %def p_hat_qtoqg, p_hat_qtogq, p_hat_gtoqq, p_hat_gtogg
......@@ -9717,19 +9749,19 @@ event generation to generate counter events with a specific Born flavor structur
function p_derived_gtoqq (z)
real(default) :: p_derived_gtoqq
real(default), intent(in) :: z
p_derived_gtoqq = -CF * z
p_derived_gtoqq = -dglap%CF * z
end function p_derived_gtoqq
function p_derived_qtogq (z)
real(default) :: p_derived_qtogq
<<p variables>>
p_derived_qtogq = -two * TR * z * onemz
p_derived_qtogq = -two * dglap%TR * z * onemz
end function p_derived_qtogq
function p_derived_qtoqg (z)
real(default) :: p_derived_qtoqg
<<p variables>>
p_derived_qtoqg = -CF * onemz
p_derived_qtoqg = -dglap%CF * onemz
end function p_derived_qtoqg
@ %def p_derived_gtogg, p_derived_gtoqq, p_derived_qtogq, p_derived_qtoqg
......@@ -9743,11 +9775,21 @@ subroutine evaluate_alr (alr, emitter, i_flv_born, i_flv_real, sqme_alr, evaluat
real(default) :: factor, factor_soft, plus_dist_remnant
real(default) :: xb, onemz
real(default) :: sqme_scaled
integer :: flv_em, flv_rad
real(default) :: charge_rad2, charge_em2
integer :: flv_em, flv_rad, N_col
N_col = 1
associate (template => dglap%settings%fks_template)
z = dglap%isr_kinematics%z(emitter)
flv_rad = dglap%reg_data%regions(alr)%flst_real%flst(dglap%reg_data%n_legs_real)
flv_em = dglap%reg_data%regions(alr)%flst_real%flst(emitter)
charge_rad2 = dglap%reg_data%regions(alr)%flst_real%charge(dglap%reg_data%n_legs_real)**2
charge_em2 = dglap%reg_data%regions(alr)%flst_real%charge(emitter)**2
if (dglap%reg_data%regions(alr)%nlo_correction_type == "QCD") then
call dglap%set_parameters (CA = CA, CF = CF, TR = TR)
else if (dglap%reg_data%regions(alr)%nlo_correction_type == "EW") then
if (is_quark(flv_rad)) N_col = NC
call dglap%set_parameters (CA = zero, CF = charge_em2, TR = N_col*charge_rad2)
end if
jac = dglap%isr_kinematics%jacobian(emitter)
onemz = one - z
factor = log (sb * template%delta_i / two / z / fac_scale2) / &
......
......@@ -16779,6 +16779,7 @@ be assured that Born flavors are used for this.
real(default), parameter :: xi_tilde_test_coll = 0.5_default
real(default), parameter :: y_test_soft = 0.5_default
real(default), parameter :: y_test_coll = 0.9999999_default
!!! for testing EW singularities: y_test_coll = 0.99999999_default
 
@
@ Very soft or collinear phase-space points can become a problem for
......@@ -16796,6 +16797,7 @@ leads to all phase space points beeing discarded by this routine.
logical :: valid
type(vector4_t), intent(in), dimension(:) :: p
real(default), parameter :: tolerance = 1E-7_default
!!! for testing EW singularities: tolerance = 5E-9_default
integer :: i, j
valid = .true.
do i = 1, size (p)
......@@ -19115,9 +19117,9 @@ has already been taken into account during its generation.
"kinematics associated with this generator"
end if
call write_separator (u)
write (u, "(A," // FMT_17 // ",1X)") "sqrts: ", generator%sqrts
write (u, "(A," // FMT_17 // ",1X)") "E_gluon: ", generator%E_gluon
write (u, "(A," // FMT_17 // ",1X)") "mrec2: ", generator%mrec2
write (u, "(A," // FMT_17 // ",1X)") "sqrts : ", generator%sqrts
write (u, "(A," // FMT_17 // ",1X)") "E_gluon : ", generator%E_gluon
write (u, "(A," // FMT_17 // ",1X)") "mrec2 : ", generator%mrec2
end subroutine phs_fks_generator_write
 
@ %def phs_fks_generator_write
......
......@@ -11150,9 +11150,9 @@ object and the squared matrix-element collector.
procedure :: compute_sqme_dglap_remnant => pcm_instance_nlo_compute_sqme_dglap_remnant
<<Pcm: procedures>>=
subroutine pcm_instance_nlo_compute_sqme_dglap_remnant (pcm_instance, &
alpha_s, separate_uborns, sqme_dglap)
alpha_coupling, separate_uborns, sqme_dglap)
class(pcm_instance_nlo_t), intent(inout) :: pcm_instance
real(default), intent(in) :: alpha_s
real(default), intent(in) :: alpha_coupling
logical, intent(in) :: separate_uborns
real(default), dimension(:), allocatable, intent(inout) :: sqme_dglap
select type (config => pcm_instance%config)
......@@ -11164,7 +11164,7 @@ object and the squared matrix-element collector.
end if
end select
sqme_dglap = zero
call pcm_instance%dglap_remnant%evaluate (alpha_s, separate_uborns, sqme_dglap)
call pcm_instance%dglap_remnant%evaluate (alpha_coupling, separate_uborns, sqme_dglap)
end subroutine pcm_instance_nlo_compute_sqme_dglap_remnant
 
@ %def pcm_instance_nlo_compute_sqme_dglap_remnant
......@@ -11460,7 +11460,7 @@ Jacobian factors.
select type (phs => k%phs)
type is (phs_fks_t)
call phs%generate_radiation_variables &
(r_in(phs%n_r_born + 1 : phs%n_r_born + 3), k%threshold)
(r_in(phs%n_r_born + 1 : phs%n_r_born + 3), threshold = k%threshold)
call phs%compute_cms_energy ()
end select
end subroutine kinematics_evaluate_radiation_kinematics
......@@ -13151,7 +13151,7 @@ the threshold computation where the process is well-defined and fixed.
pcm_instance%soft_mismatch%sqme_born_charge_c (:, :, i_flv_born))
case (NLO_VIRTUAL)
call transfer_me_array_to_bij (config, i_flv_born, &
-one, pcm_instance%virtual%sqme_charge_c (:, :, i_flv_born))
one, pcm_instance%virtual%sqme_charge_c (:, :, i_flv_born))
end select
end do
end select
......@@ -13169,8 +13169,8 @@ the threshold computation where the process is well-defined and fixed.
associate (flv_born => pcm%region_data%flv_born(i_flv))
allocate (sigma (n_legs_born), Q (size (flv_born%charge)))
Q = flv_born%charge
sigma(1:flv_born%n_in) = sign (1, flv_born%flst(1:flv_born%n_in))
sigma(flv_born%n_in + 1: ) = -sign (1, flv_born%flst(flv_born%n_in + 1: ))
sigma(1:flv_born%n_in) = -one
sigma(flv_born%n_in + 1: ) = one
end associate
do i = 1, n_legs_born
do j = 1, n_legs_born
......@@ -13427,28 +13427,38 @@ it is only available after the [[fks_regions]] have been created.
<<Instances: term instance: TBP>>=
procedure :: evaluate_sqme_dglap => term_instance_evaluate_sqme_dglap
<<Instances: procedures>>=
subroutine term_instance_evaluate_sqme_dglap (term, alpha_s)
subroutine term_instance_evaluate_sqme_dglap (term, alpha_s, alpha_qed)
class(term_instance_t), intent(inout) :: term
real(default), intent(in) :: alpha_s
real(default), intent(in) :: alpha_s, alpha_qed
real(default) :: alpha_coupling
real(default), dimension(:), allocatable :: sqme_dglap
integer :: i_flv
if (term%nlo_type /= NLO_DGLAP) call msg_fatal &
("Trying to evaluate DGLAP remnant with unsuited term_instance.")
if (debug_on) call msg_debug2 (D_PROCESS_INTEGRATION, "term_instance_evaluate_sqme_dglap")
select type (pcm_instance => term%pcm_instance)
type is (pcm_instance_nlo_t)
if (debug2_active (D_PROCESS_INTEGRATION)) then
associate (n_flv => pcm_instance%dglap_remnant%reg_data%n_flv_born)
print *, "size(sqme_born) = ", size (pcm_instance%dglap_remnant%sqme_born)
call term%connected%trace%write ()
do i_flv = 1, n_flv
print *, "i_flv = ", i_flv, ", n_flv = ", n_flv
print *, "sqme_born(i_flv) = ", pcm_instance%dglap_remnant%sqme_born(i_flv)
end do
end associate
end if
call pcm_instance%compute_sqme_dglap_remnant (alpha_s, &
select type (config => term%pcm_instance%config)
type is (pcm_nlo_t)
select type (pcm_instance => term%pcm_instance)
type is (pcm_instance_nlo_t)
select case (char (config%region_data%regions(1)%nlo_correction_type))
case ("QCD")
alpha_coupling = alpha_s
case ("EW")
alpha_coupling = alpha_qed
end select
if (debug2_active (D_PROCESS_INTEGRATION)) then
associate (n_flv => pcm_instance%dglap_remnant%reg_data%n_flv_born)
print *, "size(sqme_born) = ", size (pcm_instance%dglap_remnant%sqme_born)
call term%connected%trace%write ()
do i_flv = 1, n_flv
print *, "i_flv = ", i_flv, ", n_flv = ", n_flv
print *, "sqme_born(i_flv) = ", pcm_instance%dglap_remnant%sqme_born(i_flv)
end do
end associate
end if
call pcm_instance%compute_sqme_dglap_remnant (alpha_coupling, &
term%connected%has_matrix, sqme_dglap)
end select
end select
call term%connected%trace%set_only_matrix_element &
(1, cmplx (sum (sqme_dglap) * term%weight, 0, default))
......@@ -15444,7 +15454,7 @@ terms, iterating over all active process components.
case (NLO_MISMATCH)
call term%evaluate_sqme_mismatch (alpha_s)
case (NLO_DGLAP)
call term%evaluate_sqme_dglap (alpha_s)
call term%evaluate_sqme_dglap (alpha_s, alpha_qed)
end select
end if
end if
......
......@@ -5996,20 +5996,21 @@ procedure with type [[V_NONE]].
' flavor structures. The default is \ttt{false}.'))
call var_list%append_real (var_str ("fks_xi_cut"), &
1.0_default, intrinsic = .true., &
description = var_str ('(Experimental) Real paramter for the FKS ' // &
description = var_str ('(Experimental) Real parameter for the FKS ' // &
'phase space that applies a cut to $\xi$ variable with $0 < \xi_{\text{cut}}' // &
'\leq \xi_{\text{max}}$. The dependence on the parameter vanishes between ' // &
'real subtraction and integrated subtraction term. Could thus be used for debugging. ' // &
'This is not implemented properly, use at your own risk!'))
call var_list%append_real (var_str ("fks_delta_o"), &
2._default, intrinsic = .true., &
description = var_str ('Real paramter for the FKS ' // &
'phase space that applies a cut to the $y$ variable with $0 < \delta_o \leq 2$. ' // &
description = var_str ('Real parameter for the FKS ' // &
'phase space that applies a cut to the $y$ variable with $0 < \delta_o \leq 2$ ' // &
'for final state singularities only. ' // &
'The dependence on the parameter vanishes between real subtraction and integrated ' // &
'subtraction term. For debugging purposes.'))
call var_list%append_real (var_str ("fks_delta_i"), &
2._default, intrinsic = .true., &
description = var_str ('Real paramter for the FKS ' // &
description = var_str ('Real parameter for the FKS ' // &
'phase space that applies a cut to the $y$ variable with ' // &
'$0 < \delta_{\mathrm{I}} \leq 2$ '// &
'for initial state singularities only. ' // &
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment