#!/usr/bin/env python3 import pySecDec as psd if __name__ == "__main__": li = psd.LoopIntegralFromGraph(internal_lines=[[0, [1, 2]], [0, [2, 5]], [0, [1, 6]], ['mt', [3, 5]], ['mt', [3, 6]], ['mt', [4, 5]], ['mt', [4, 6]]], external_lines=[['p1', 1], ['p2', 2], ['p3', 3], ['p4', 4]], replacement_rules=[ ('p1*p1', 0), ('p2*p2', 0), ('p3*p3', 'mH2'), ('p4*p4', 'mZ2'), ('mt*mt', 'mt2'), ('p1*p2', 's12/2'), ('p2*p3', '(s23-mH2)/2'), ('p1*p3', '(-s12-s23+mZ2)/2'), ('p3*p4', '(s12-mH2-mZ2)/2'), ('p1*p4', '(s23-mZ2)/2'), ('p2*p4', '(-s12-s23+mH2)/2') ]) Mandelstam_symbols = ['s12', 's23'] mass_symbols = ['mt2', 'mH2', 'mZ2'] psd.loop_package( name='hz2L_nonplanar', loop_integral=li, real_parameters=Mandelstam_symbols + mass_symbols,
#!/usr/bin/env python3 import pySecDec as psd if __name__ == "__main__": # Example 6 of Bernd Jantzen (arXiv:1111.2589) # replace Qsq by one and add the Qsq prefactor later to factorize Qsq out li = psd.LoopIntegralFromGraph(internal_lines=[['0', [1, 3]], ['0', [2, 3]], ['m', [1, 2]]], external_lines=[['p1', 1], ['p2', 2], ['p3', 3]], replacement_rules=[ ('p1*p1', '0'), ('p2*p2', '0'), ('p3*p3', '-Qsq'), ('m**2', 't*Qsq'), ('Qsq', '1'), ]) # find the regions generators_args = psd.loop_regions( name='formfactor1L_massive_ebr', loop_integral=li, smallness_parameter='t', expansion_by_regions_order=0, decomposition_method='geometric', additional_prefactor=f"Qsq**({li.exponent_F})", add_monomial_regulator_power="n",
#!/usr/bin/env python3 import pySecDec as psd if __name__ == "__main__": # this object represents the Feynman graph li = psd.LoopIntegralFromGraph(internal_lines=[['m', [1, 2]], ['m', [2, 1]]], external_lines=[['p', 1], ['p', 2]], replacement_rules=[('p*p', 's'), ('m*m', 'msq')]) # find the regions and expand the integrals using expansion by regions regions_generator_args = psd.loop_regions(name='bubble1L_ebr_small_mass', loop_integral=li, smallness_parameter='msq', expansion_by_regions_order=2) # generate code that will calculate the sum of all regions and all orders in # the smallness parameter psd.sum_package('bubble1L_ebr_small_mass', regions_generator_args, regulators=['eps'], requested_orders=[0], real_parameters=['s', 'msq'], complex_parameters=[])
#!/usr/bin/env python3 import pySecDec as psd if __name__ == "__main__": li = psd.LoopIntegralFromGraph( internal_lines = [ [0,[1,2]], [0,[1,4]], [0,[1,5]], [0,[2,4]], [0,[2,5]], [0,[3,4]], [0,[3,5]] ], external_lines = [['p1',1],['p2',2],['p3',3]], powerlist=[1,1,1,1,1,1,1], replacement_rules = [ ('p1*p1',0), ('p2*p2',0), ('p3*p3','s'), ('p1*p2','s/2'), ('p2*p3','-s/2'), ('p1*p3','-s/2'), ('s',-1) ] ) Mandelstam_symbols = [] mass_symbols = [] psd.loop_package( name = 'triangle3L', loop_integral = li,
#!/usr/bin/env python3 import pySecDec as psd if __name__ == "__main__": # Section 3.1 (Method of Regions for the Sudakov form factor) of Thomas Becher (arXiv:1803.04310) # use relative dimensionless parameters Psqr and Lsqr, which should be roughly of order one # replace Qsq with one and add the Qsq prefactor later to factorize Qsq out li = psd.LoopIntegralFromGraph( internal_lines = [['0',[1,3]],['0',[2,3]],['0',[1,2]]], external_lines = [['p1',1],['p2',2],['p3',3]], replacement_rules = [ ('p3*p3', '-Qsq'), ('p1*p1', '-t*Psqr*Qsq'), ('p2*p2', '-t*Lsqr*Qsq'), ("Qsq", 1), ], ) # find the regions generators_args = psd.loop_regions( name = 'formfactor1L_massless_ebr', loop_integral=li, smallness_parameter = 't', expansion_by_regions_order=0, additional_prefactor=f"Qsq**({li.exponent_F})", ) # write the code to sum up the regions psd.sum_package('formfactor1L_massless_ebr',
if __name__ == "__main__": li = psd.LoopIntegralFromGraph(internal_lines=[[0, [1, 2]], [0, [2, 6]], [0, [6, 3]], [0, [3, 4]], [0, [4, 5]], [0, [5, 7]], [0, [7, 1]], [0, [7, 6]]], external_lines=[['p1', 1], ['p2', 2], ['p3', 3], ['p4', 4], ['p5', 5]], dimensionality='6-2*eps', replacement_rules=[ ('p1*p1', 0), ('p2*p2', 0), ('p3*p3', 0), ('p4*p4', 0), ('p5*p5', 0), ('p1*p2', 's12/2'), ('p1*p3', '(s45-s12-s23)/2'), ('p1*p4', '(s23-s51-s45)/2'), ('p1*p5', 's51/2'), ('p2*p3', 's23/2'), ('p2*p4', '(-s23-s34+s51)/2'), ('p2*p5', '(s34-s12-s51)/2'), ('p3*p4', 's34/2'), ('p3*p5', '(s12-s34-s45)/2'), ('p4*p5', 's45/2'), ]) Mandelstam_symbols = ['s12', 's23', 's34', 's45', 's51'] mass_symbols = []
#!/usr/bin/env python3 import pySecDec as psd if __name__ == "__main__": li = psd.LoopIntegralFromGraph( internal_lines = [['m',[1,2]],[0,[2,3]],[0,[3,4]],[0,[4,1]]], external_lines = [['p1',1],['p2',2],['p3',3],['p4',4]], replacement_rules = [ ('p1*p1', 's1'), ('p2*p2', 0), ('p3*p3', 0), ('p4*p4', 0), ('p3*p2', 't/2'), ('p1*p2', 's/2-s1/2'), ('p1*p4', 't/2-s1/2'), ('p2*p4', 's1/2-t/2-s/2'), ('p3*p4', 's/2'), ('m**2', 'msq') ] ) Mandelstam_symbols = ['s','t','s1'] mass_symbols = ['msq'] psd.loop_package( name = 'box1L', loop_integral = li,
#!/usr/bin/env python3 import sympy as sp import pySecDec as psd if __name__ == "__main__": li = psd.LoopIntegralFromGraph( internal_lines = [[0,[1,4]],[0,[4,2]],[0,[2,5]],[0,[5,6]],[0,[6,7]],[0,[7,3]],[0,[3,8]],[0,[8,4]],[0,[1,9]],[0,[9,7]],[0,[9,5]],[0,[6,8]]], external_lines = [['p1',1],['p2',2],['p3',3]], powerlist=[2,1,1,1,1,1,1,1,1,2,1,1], dimensionality='6-2*eps', replacement_rules = [ ('p1*p1',-1), ('p2*p2',0), ('p3*p3','0'), ('p1*p2','1/2'), ('p2*p3','-1/2'), ('p1*p3','1/2') ] ) Mandelstam_symbols = [] mass_symbols = [] psd.loop_package( name = 'formfactor4L', loop_integral = li,
#!/usr/bin/env python3 import pySecDec as psd if __name__ == "__main__": li = psd.LoopIntegralFromGraph(internal_lines=[[0, [1, 2]], [0, [1, 3]], [0, [2, 3]], [0, [2, 5]], [0, [5, 6]], [0, [6, 3]], [0, [6, 7]], [0, [5, 7]], [0, [7, 4]], [0, [4, 7]], [0, [4, 3]], [0, [4, 1]]], external_lines=[['p', 1], ['p', 2]], replacement_rules=[('p*p', '-1')]) psd.loop_package( name='bubble6L', loop_integral=li, # the highest order of the final epsilon expansion --> change this value to whatever you think is appropriate requested_orders=[0], # the optimization level to use in FORM (can be 0, 1, 2, 3, 4) form_optimization_level=4, # the WorkSpace parameter for FORM form_work_space='2G', # the method to be used for the sector decomposition # valid values are ``iterative`` or ``geometric`` or ``geometric_ku`` decomposition_method='geometric', # if you choose ``geometric[_ku]`` and 'normaliz' is not in your
continue if index == len(smallness_parameters) - 1: print(bcolors.ENDC) expand_integrals(generators_args, smallness_parameters, index + 1, common_args=common_args) if __name__ == "__main__": # Formfactor1L name = 'formfactor1L_massless_ebr' smallness_parameters = ['t'] internal_lines = [['0', [1, 3]], ['0', [2, 3]], ['0', [1, 2]]] external_lines = [['p1', 1], ['p2', 2], ['p3', 3]] li = psd.LoopIntegralFromGraph( internal_lines=internal_lines, external_lines=external_lines, replacement_rules=[ ('p3*p3', '-Qsq'), ('p1*p1', '-t*P1sqr*Qsq'), ('p2*p2', '-t*P2sqr*Qsq'), ('Qsq', 1), ], ) # (Optional) Draw diagrams # psd.loop_integral.draw.plot_diagram(internal_lines,external_lines,name) expand_integral(li, smallness_parameters)