Skip to content

Commit

Permalink
[smeft2] in CODEGEN, backport and improve smeft_gg_tttt fix for HRDCO…
Browse files Browse the repository at this point in the history
…D=0 (madgraph5#616) build: compute aS from G (and also fix and remove unnecessary calculation of G^3)
  • Loading branch information
valassi committed Mar 20, 2024
1 parent f0b9df1 commit e1ed815
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py
Original file line number Diff line number Diff line change
Expand Up @@ -912,24 +912,27 @@ def super_generate_parameters_class_files(self):
dcoupdecl = [ ' cxtype_sv %s;' % name for name in self.coups_dep ]
replace_dict['dcoupdecl'] = '\n'.join( dcoupdecl )
dcoupsetdpar = []
###foundG = False
###misc.sprint(list([p.type, p.name] for p in self.params_dep))
###misc.sprint(self.write_hardcoded_parameters(self.params_dep))
###for line in self.write_hardcoded_parameters(self.params_dep).split('\n'):
### misc.sprint(line)
### if line != '':
### dcoupsetdpar.append( ' ' + line.replace('constexpr cxsmpl<double> mdl_G__exp__2','const fptype_sv mdl_G__exp__2').replace('constexpr double', 'const fptype_sv' if foundG else '//const fptype_sv' ) )
### if 'constexpr double G =' in line: foundG = True
specialpar = ( 'aS', 'mdl_sqrt__aS', 'mdl_G__exp__2', 'mdl_G__exp__3' )
writtenspar = {}
foundG = False
# Special handling of G and aS parameters (cudacpp starts from G, while UFO starts from aS)
# For simplicity, compute these parameters directly from G, rather than from another such parameter
# (e.g. do not compute mdl_sqrt__aS as sqrt of aS, which would require defining aS first)
gparameters = { 'aS' : 'G * G / 4. / M_PI',
'mdl_sqrt__aS' : 'G / 2. / constexpr_sqrt( M_PI )',
'mdl_G__exp__2' : 'G * G',
'mdl_G__exp__3' : 'G * G * G' }
gparamcoded = set()
for pdep in self.params_dep:
misc.sprint(pdep.type, pdep.name)
###misc.sprint(pdep.type, pdep.name)
line = ' ' + self.write_hardcoded_parameters([pdep]).rstrip('\n')
misc.sprint(line)
if line != '':
dcoupsetdpar.append( ' ' + line.replace('constexpr cxsmpl<double> mdl_G__exp__2','const fptype_sv mdl_G__exp__2').replace('constexpr double', 'const fptype_sv' if foundG else '//const fptype_sv' ) )
if 'constexpr double G =' in line: foundG = True
###misc.sprint(line)
if pdep.name == 'G' or pdep.name in gparameters:
###continue # skip the default UFO assignment completely
dcoupsetdpar.append( ' ' + line.replace('constexpr double', '//const fptype_sv') ) # comment out the default UFO assignment
else:
for gpar in gparameters:
if ' ' + gpar + ' ' in line and not gpar in gparamcoded:
gparamcoded.add(gpar)
dcoupsetdpar.append(' const fptype_sv ' + gpar + ' = ' + gparameters[gpar] + ';' )
dcoupsetdpar.append( ' ' + line.replace('constexpr double', 'const fptype_sv') )
replace_dict['dcoupsetdpar'] = '\n'.join( dcoupsetdpar )
dcoupsetdcoup = [ ' ' + line.replace('constexpr cxsmpl<double> ','out.').replace('mdl_complexi', 'cI') for line in self.write_hardcoded_parameters(list(self.coups_dep.values())).split('\n') if line != '' ]
replace_dict['dcoupsetdcoup'] = ' ' + '\n'.join( dcoupsetdcoup )
Expand Down

0 comments on commit e1ed815

Please # to comment.