9 """ Set default SM parameters
10 Recommended parameter page from PMG:
11 https://twiki.cern.ch/twiki/bin/view/AtlasProtected/McProductionCommonParametersMC15
14 param_card_settings = {
22 'yukawa' : {
'15':
"1.777000e+00 # ymtau" },
24'5' :
"""DECAY 5 0.000000e+00""",
25'15' :
"""DECAY 15 0.000000e+00""",
26'23' :
"""DECAY 23 2.495200e+00""",
27'24':
"""DECAY 24 2.085000e+00
32 1.082000e-01 2 -15 16""",
36 param_card_settings[
'mass'][
'5']=
"4.950000e+00"
39 existing_particle_info= class_instance.paramCardDict
40 for block
in param_card_settings:
41 for pdgid
in list(param_card_settings[block].keys()):
42 if block
in existing_particle_info
and pdgid
not in existing_particle_info[block]:
43 mgparlog.warning(
'Not setting {} for {} as parameter does not exist in param card'.format(block,pdgid))
44 param_card_settings[block].pop(pdgid)
46 class_instance.modify_paramCardDict(params=param_card_settings)
50 """ Set default parameters requested by the top group
51 This is a convenience helper function
52 Recommended parameter page from PMG:
53 https://twiki.cern.ch/twiki/bin/view/AtlasProtected/McProductionCommonParametersMC15
68 G_F=1.16637*(math.pow(10,-5))
72 C1=G_F/(8*math.pi*math.sqrt(2))
74 wTop_B=C1*math.pow(float(mTop),3)*math.pow(Vtb,2)*pow((1-math.pow((M_W/float(mTop)),2)),2)*(1+2*pow((M_W/float(mTop)),2))
76 wTop=wTop_B*(1-0.81*alpha_s-1.81*pow(alpha_s,2))
78 param_card_settings = {
79 'mass' : {
'6': str(mTop) },
80 'yukawa' : {
'6':
"1.725000e+02 # ymt" },
82 'DECAY' : {
'6' :
"""DECAY 6 """+str(wTop)+
"""
83 1.000000e+00 2 5 24 # 1.32""",
86 class_instance.modify_paramCardDict(params=param_card_settings)
138 """ Get the required PMG parameter updates
139 Takes the location of a process directory
140 Returns the dictionary of changes needed for updating to the default params
143 masses =
get_masses(class_instance.paramCardDict)
144 widths =
get_widths(class_instance.paramCardDict)
145 yukawas =
get_block(class_instance.paramCardDict,
'yukawa')
148 from EvgenProdTools.offline_dict
import parameters
152 particles_for_update = [
'6',
'5',
'4',
'3',
'2',
'1',
162 for pid, settings
in parameters[
'particles'].items():
167 if pid
in particles_for_update:
168 width = settings[
'width']
169 mass = settings[
'mass']
171 if pid
not in masses
or masses[pid]!=mass:
172 newparamdict[
'mass'][pid] = mass
174 if pid
not in widths
or widths[pid]!=width:
175 newparamdict[
'decay'][pid] =
'DECAY '+pid+
' '+width
178 if pid
in yukawas
and yukawas[pid]!=mass:
179 newparamdict[
'yukawa'][pid] = mass
182 finalparamdict = { block : newparamdict[block]
for block
in newparamdict
if len(newparamdict[block].keys())>0 }
184 mgparlog.info(
'The parameters that will be updated are:')
185 mgparlog.info(finalparamdict)
187 return finalparamdict