Esempio n. 1
0
class ColorfulWalker(NLOWalker):

    f_collinear_map = mappings.FinalRescalingOneMapping()
    i_collinear_map = mappings.InitialLorentzOneMapping()
    soft_map = mappings.SoftVsFinalPureRescalingMapping()
    f_soft_collinear_map = mappings.SoftCollinearVsFinalMapping(
        soft_map, f_collinear_map)
    i_soft_collinear_map = mappings.SoftCollinearVsFinalMapping(
        soft_map, i_collinear_map)
    # The integrated counterterms are only correct when recoiling against *all* final states
    # Take care that the soft mapping only works for massless particles instead
    only_colored_recoilers = False
Esempio n. 2
0
class FinalRescalingNLOWalker(FinalNLOWalker):

    collinear_map = mappings.FinalRescalingOneMapping()
    soft_map = mappings.SoftVsFinalPureRescalingMapping()
    soft_collinear_map = mappings.SoftCollinearVsFinalMapping(
        soft_map, collinear_map)
    only_colored_recoilers = True
Esempio n. 3
0
class SoftBeamsRecoilNLOWalker(NLOWalker):
    """ Set of mappings designed to work for the NLO topology pp > X(color-singlet) + at most
    one jet. The collinear mapping is left untouched compared to LorentzNLOWalker, but the 
    soft one is not the original Colorful mapping where recoilers are individually rescaled but
    instead it is a mapping that rescales both initial states without boosting the c.o.m frame.
    This is well-suited for integrating 'p p > X (+j)' where X is a color-singlet. """

    f_collinear_map = mappings.FinalLorentzOneMapping()
    i_collinear_map = mappings.InitialLorentzOneMapping()

    # The two lines below yield the difference w.r.t LorentzNLOWalker
    soft_map = mappings.SoftVsInitialMapping()
    only_colored_recoilers = False

    f_soft_collinear_map = mappings.SoftCollinearVsFinalMapping(
        soft_map, f_collinear_map)
    i_soft_collinear_map = mappings.SoftCollinearVsFinalMapping(
        soft_map, i_collinear_map)
Esempio n. 4
0
class FinalLorentzNLOWalker(FinalNLOWalker):

    collinear_map = mappings.FinalLorentzOneMapping()
    soft_map = mappings.SoftVsFinalPureRescalingMapping()
    soft_collinear_map = mappings.SoftCollinearVsFinalMapping(
        soft_map, collinear_map)
    # Beware that integrated counterterms are only correct
    # when recoiling against *all* final states
    only_colored_recoilers = True
Esempio n. 5
0
            leg['number'] not in excluded
        ])
    ])

#=========================================================================================
# Variables, mappings, jacobians, factors and cuts
#=========================================================================================
# Note that variables, factors and cuts will be class members by design
# so they can easily be overridden by subclasses.
# They will be taken from the following variables
# so we can quickly switch them coherently across the entire subtraction scheme.

variables = currents.Q_final_coll_variables
coll_mapping = mappings.FinalRescalingOneMapping
soft_mapping = mappings.SoftVsFinalPureRescalingMapping
soft_coll_mapping = mappings.SoftCollinearVsFinalMapping(
    soft_mapping=soft_mapping, collinear_mapping=coll_mapping)
divide_by_jacobian = True
factor_coll = factors_and_cuts.factor_coll
factor_soft = factors_and_cuts.factor_soft
is_cut_coll = factors_and_cuts.cut_coll
is_cut_soft = factors_and_cuts.cut_soft

#=========================================================================================
# NLO final-collinear currents
#=========================================================================================

class QCD_final_collinear_0_XX(currents.QCDLocalCollinearCurrent):
    """Two-collinear tree-level current."""

    squared_orders = {'QCD': 2}
    n_loops = 0
Esempio n. 6
0
divide_by_jacobian = False

get_recoilers = get_all_final_recoilers

# Initial collinear configuration
initial_coll_variables = currents.Q_initial_coll_variables
initial_coll_factor = factors_and_cuts.no_factor
initial_coll_cut = factors_and_cuts.cut_initial_coll
initial_coll_mapping = mappings.InitialLorentzOneMapping

# Soft configuration
soft_factor = factors_and_cuts.no_factor
soft_cut = factors_and_cuts.no_cut
soft_mapping = mappings.SoftVsInitialMapping

# Final collinear configuration
# WARNING: This is *not* the same final-collinear mapping as in colorful, where one has 'FinalRescalingOneMapping' instead.
# The __init__.py of colorful_pp will make sure to overwrite this mapping choice for the final collinear imported from
# coloful. Notice then that the final_coll quantity specified here apply only then to the *NNLO* final collinear.
# For the NLO ones, as explained above, these properties will be overwritten appropriately irrespectively of what is below.
final_coll_mapping = mappings.FinalLorentzOneMapping
final_coll_factor = factors_and_cuts.no_factor
final_coll_cut = factors_and_cuts.cut_coll

# Final soft-collinear configuration
final_soft_coll_variables = currents.compute_energy_fractions
final_soft_coll_mapping = mappings.SoftCollinearVsFinalMapping(
    soft_mapping=soft_mapping, collinear_mapping=final_coll_mapping)
initial_soft_coll_mapping = mappings.SoftCollinearVsFinalMapping(
    soft_mapping=soft_mapping, collinear_mapping=initial_coll_mapping)