Merge lp:~maddevelopers/mg5amcnlo/2.3.1_CMS into lp:~maddevelopers/mg5amcnlo/2.3.2

Proposed by Valentin Hirschi
Status: Superseded
Proposed branch: lp:~maddevelopers/mg5amcnlo/2.3.1_CMS
Merge into: lp:~maddevelopers/mg5amcnlo/2.3.2
Diff against target: 43681 lines (+4479/-35908)
112 files modified
MadSpin/interface_madspin.py (+2/-3)
madgraph/core/base_objects.py (+121/-81)
madgraph/core/helas_objects.py (+1/-1)
madgraph/interface/common_run_interface.py (+56/-43)
madgraph/interface/loop_interface.py (+4/-2)
madgraph/interface/madevent_interface.py (+1/-1)
madgraph/interface/madgraph_interface.py (+485/-39)
madgraph/interface/reweight_interface.py (+3/-5)
madgraph/iolibs/export_v4.py (+52/-14)
madgraph/iolibs/template_files/loop/check_sa.inc (+1/-0)
madgraph/iolibs/template_files/loop/check_sa_loop_induced.inc (+1/-0)
madgraph/iolibs/ufo_expression_parsers.py (+53/-8)
madgraph/loop/loop_diagram_generation.py (+55/-10)
madgraph/various/lhe_parser.py (+1/-2)
madgraph/various/process_checks.py (+2163/-98)
models/check_param_card.py (+63/-11)
models/import_ufo.py (+39/-6)
models/loop_qcd_qed_sm/.restrict_parallel_test_MB.dat (+65/-0)
models/loop_qcd_qed_sm/CT_couplings.py (+2/-2)
models/loop_qcd_qed_sm/CT_parameters.py (+110/-103)
models/loop_qcd_qed_sm/function_library.py (+17/-3)
models/loop_qcd_qed_sm/parameters.py (+7/-0)
models/loop_qcd_qed_sm/particles.py (+2/-2)
models/loop_qcd_qed_sm/restrict_with_b_mass.dat (+65/-0)
models/loop_qcd_qed_sm/restrict_with_b_mass_no_widths.dat (+65/-0)
models/loop_qcd_qed_sm_Gmu/CT_couplings.py (+13/-13)
models/loop_qcd_qed_sm_Gmu/CT_parameters.py (+219/-73)
models/loop_qcd_qed_sm_Gmu/function_library.py (+17/-2)
models/loop_qcd_qed_sm_Gmu/object_library.py (+50/-4)
models/loop_qcd_qed_sm_Gmu/parameters.py (+8/-1)
models/loop_qcd_qed_sm_Gmu/particles.py (+2/-2)
models/loop_qcd_qed_sm_Gmu/restrict_ckm.dat (+2/-2)
models/loop_qcd_qed_sm_Gmu/restrict_default.dat (+4/-4)
models/loop_qcd_qed_sm_Gmu/restrict_no_widths.dat (+1/-1)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test_WW.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test_WZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/.restrict_parallel_test_ZZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/CT_couplings.py (+0/-7213)
models/loop_qcd_qed_sm_Gmu__CMS__/CT_parameters.py (+0/-600)
models/loop_qcd_qed_sm_Gmu__CMS__/CT_vertices.py (+0/-4849)
models/loop_qcd_qed_sm_Gmu__CMS__/__init__.py (+0/-27)
models/loop_qcd_qed_sm_Gmu__CMS__/coupling_orders.py (+0/-16)
models/loop_qcd_qed_sm_Gmu__CMS__/couplings.py (+0/-539)
models/loop_qcd_qed_sm_Gmu__CMS__/function_library.py (+0/-81)
models/loop_qcd_qed_sm_Gmu__CMS__/lorentz.py (+0/-361)
models/loop_qcd_qed_sm_Gmu__CMS__/object_library.py (+0/-313)
models/loop_qcd_qed_sm_Gmu__CMS__/parameters.py (+0/-1211)
models/loop_qcd_qed_sm_Gmu__CMS__/particles.py (+0/-381)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_ckm.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_default.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_no_widths.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test_WW.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test_WZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_parallel_test_ZZ.dat (+0/-66)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_with_b_mass.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/restrict_with_b_mass_no_width.dat (+0/-65)
models/loop_qcd_qed_sm_Gmu__CMS__/vertices.py (+0/-1037)
models/loop_qcd_qed_sm_Gmu__CMS__/write_param_card.py (+0/-181)
models/loop_qcd_qed_sm__CMS__/.restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/.restrict_parallel_test_MB.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/CT_couplings.py (+0/-7213)
models/loop_qcd_qed_sm__CMS__/CT_parameters.py (+0/-600)
models/loop_qcd_qed_sm__CMS__/CT_vertices.py (+0/-4849)
models/loop_qcd_qed_sm__CMS__/__init__.py (+0/-27)
models/loop_qcd_qed_sm__CMS__/coupling_orders.py (+0/-16)
models/loop_qcd_qed_sm__CMS__/couplings.py (+0/-539)
models/loop_qcd_qed_sm__CMS__/function_library.py (+0/-81)
models/loop_qcd_qed_sm__CMS__/lorentz.py (+0/-361)
models/loop_qcd_qed_sm__CMS__/object_library.py (+0/-366)
models/loop_qcd_qed_sm__CMS__/parameters.py (+0/-1225)
models/loop_qcd_qed_sm__CMS__/particles.py (+0/-381)
models/loop_qcd_qed_sm__CMS__/restrict_ckm.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_default.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_no_widths.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_parallel_test.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_with_b_mass.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/restrict_with_b_mass_no_widths.dat (+0/-65)
models/loop_qcd_qed_sm__CMS__/vertices.py (+0/-1037)
models/loop_qcd_qed_sm__CMS__/write_param_card.py (+0/-181)
models/model_reader.py (+11/-5)
tests/acceptance_tests/test_cmd_madloop.py (+206/-18)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.f (+41/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.f (+41/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.f (+41/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.f (+41/-6)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc (+6/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.f (+41/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/ddx_ttx/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.f (+41/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/check_sa.f (+1/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.f (+41/-6)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.inc (+6/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/check_sa.f (+1/-0)
tests/parallel_tests/test_ML5EW.py (+112/-2)
tests/time_db (+61/-53)
vendor/CutTools/src/avh/avh_olo.f90 (+1/-1)
vendor/SMWidth/param_card.dat (+0/-65)
vendor/SMWidth/param_card_Gmu.dat (+0/-65)
vendor/SMWidth/param_card_MZ.dat (+0/-65)
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/2.3.1_CMS
Reviewer Review Type Date Requested Status
Olivier Mattelaer Disapprove
Review via email: mp+268041@code.launchpad.net

Description of the change

This branch implements the first full cross-checked implementation of the complex mass scheme.

The biggest part of the modification are related to the 2000+ lines implementation of the 'check cms' test, described in this wiki page:

https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/ComplexMassScheme

It is clear that this review doesn't need to pay attention to the actual implementation of the check as it is independent from the rest of MG5_aMC but it would be nice if we could have feedback on how intuitive and flexible the test is, and if you were successful at trying a couple processes.

This implementation doesn't lend itself well to unit tests, so the only two tests are the NLO one:
test_ML_check_cms_aem_emvevex
(slow but necessarily so)
and the leading order one
test_ML_check_cms_al_lvlvlx_LO
which together bring sufficient coverage.

There is some smaller modifications to the MG5_aMC core code as well, which might be worth having a quick glance at as well.

To post a comment you must log in.
468. By Hua-Sheng Shao

1) delete several EW models and keep only two of them 2) fix a bug in _Gmu model

469. By Hua-Sheng Shao

change the acceptance test

470. By Valentin Hirschi

1. Merged with latest 2.3.2

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

will be for 2.3.3.

review: Disapprove
471. By Valentin Hirschi

1. Implemented changes according to Olivier's review comments.

472. By Valentin Hirschi

1. Implemented the second wave of Olivier's comment.

473. By Valentin Hirschi

1. Small typo in last commit

474. By Hua-Sheng Shao

fix a bug for QCD corrections when MB is non zero. It is harmless when MB = 0

475. By Valentin Hirschi

1. Merged with latest version of 2.3.3
2. Removed useless part of get_pole() function in the loop EW models

476. By Valentin Hirschi

1. Merged with latest 2.3.3.

477. By Valentin Hirschi

1. indentation issue

478. By Valentin Hirschi

1. Merged with the latest version of 2.3.3.

479. By Valentin Hirschi

1. Fixed last acceptance tests

480. By Valentin Hirschi

1. Merged with last version 2.3.3 and acceptance tests.

Unmerged revisions

480. By Valentin Hirschi

1. Merged with last version 2.3.3 and acceptance tests.

479. By Valentin Hirschi

1. Fixed last acceptance tests

478. By Valentin Hirschi

1. Merged with the latest version of 2.3.3.

477. By Valentin Hirschi

1. indentation issue

476. By Valentin Hirschi

1. Merged with latest 2.3.3.

475. By Valentin Hirschi

1. Merged with latest version of 2.3.3
2. Removed useless part of get_pole() function in the loop EW models

474. By Hua-Sheng Shao

fix a bug for QCD corrections when MB is non zero. It is harmless when MB = 0

473. By Valentin Hirschi

1. Small typo in last commit

472. By Valentin Hirschi

1. Implemented the second wave of Olivier's comment.

471. By Valentin Hirschi

1. Implemented changes according to Olivier's review comments.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'MadSpin/interface_madspin.py'
2--- MadSpin/interface_madspin.py 2015-08-04 14:28:22 +0000
3+++ MadSpin/interface_madspin.py 2015-08-16 06:06:34 +0000
4@@ -923,12 +923,11 @@
5 #base_model = import_ufo.import_model(model_path)
6
7 # Import model
8- base_model = import_ufo.import_model(name, decay=True)
9+ base_model = import_ufo.import_model(name, decay=True,
10+ complex_mass_scheme=complex_mass)
11
12 if use_mg_default:
13 base_model.pass_particles_name_in_mg_default()
14- if complex_mass:
15- base_model.change_mass_to_complex_scheme()
16
17 self.model = base_model
18 self.mg5cmd._curr_model = self.model
19
20=== modified file 'madgraph/core/base_objects.py'
21--- madgraph/core/base_objects.py 2015-07-28 17:42:49 +0000
22+++ madgraph/core/base_objects.py 2015-08-16 06:06:34 +0000
23@@ -1547,9 +1547,9 @@
24 def write_param_card(self):
25 """Write out the param_card, and return as string."""
26
27- import models.write_param_card as writter
28+ import models.write_param_card as writer
29 out = StringIO.StringIO() # it's suppose to be written in a file
30- param = writter.ParamCardWriter(self)
31+ param = writer.ParamCardWriter(self)
32 param.define_output_file(out)
33 param.write_card()
34 return out.getvalue()
35@@ -1577,55 +1577,118 @@
36 def change_electroweak_mode(self, mode):
37 """Change the electroweak mode. The only valid mode now is external.
38 Where in top of the default MW and sw2 are external parameters."""
39-
40- assert mode == "external"
41+
42+ assert mode in ["external",set(['mz','mw','alpha'])]
43
44 try:
45 W = self.get('particle_dict')[24]
46 except KeyError:
47- raise InvalidCmd('No W particle in the model impossible to change the EW scheme!')
48+ raise InvalidCmd('No W particle in the model impossible to '+
49+ 'change the EW scheme!')
50
51- MW = self.get_parameter(W.get('mass'))
52- if not isinstance(MW, ParamCardVariable):
53- newMW = ParamCardVariable(MW.name, MW.value, 'MASS', [24])
54- if not newMW.value:
55- newMW.value = 80.385
56- #remove the old definition
57- self.get('parameters')[MW.depend].remove(MW)
58- # add the new one
59- self.add_param(newMW, ['external'])
60-
61- # Now check for sw2. if not define bypass this
62- try:
63- sw2 = self.get_parameter('sw2')
64- except KeyError:
65+ if mode=='external':
66+ MW = self.get_parameter(W.get('mass'))
67+ if not isinstance(MW, ParamCardVariable):
68+ newMW = ParamCardVariable(MW.name, MW.value, 'MASS', [24])
69+ if not newMW.value:
70+ newMW.value = 80.385
71+ #remove the old definition
72+ self.get('parameters')[MW.depend].remove(MW)
73+ # add the new one
74+ self.add_param(newMW, ['external'])
75+
76+ # Now check for sw2. if not define bypass this
77 try:
78- sw2 = self.get_parameter('mdl_sw2')
79+ sw2 = self.get_parameter('sw2')
80 except KeyError:
81- sw2=None
82-
83- if sw2:
84- newsw2 = ParamCardVariable(sw2.name,sw2.value, 'SMINPUTS', [4])
85- if not newsw2.value:
86- newsw2.value = 0.222246485786
87- #remove the old definition
88- self.get('parameters')[sw2.depend].remove(sw2)
89- # add the new one
90- self.add_param(newsw2, ['external'])
91-
92- def change_mass_to_complex_scheme(self):
93+ try:
94+ sw2 = self.get_parameter('mdl_sw2')
95+ except KeyError:
96+ sw2=None
97+
98+ if sw2:
99+ newsw2 = ParamCardVariable(sw2.name,sw2.value, 'SMINPUTS', [4])
100+ if not newsw2.value:
101+ newsw2.value = 0.222246485786
102+ #remove the old definition
103+ self.get('parameters')[sw2.depend].remove(sw2)
104+ # add the new one
105+ self.add_param(newsw2, ['external'])
106+ # Force a refresh of the parameter dictionary
107+ self.parameters_dict = None
108+ return true
109+
110+ elif mode==set(['mz','mw','alpha']):
111+ # For now, all we support is to go from mz, Gf, alpha to mz, mw, alpha
112+ W = self.get('particle_dict')[24]
113+ mass = self.get_parameter(W.get('mass'))
114+ mass_expr = 'cmath.sqrt(%(prefix)sMZ__exp__2/2. + cmath.sqrt('+\
115+ '%(prefix)sMZ__exp__4/4. - (%(prefix)saEW*cmath.pi*%(prefix)s'+\
116+ 'MZ__exp__2)/(%(prefix)sGf*%(prefix)ssqrt__2)))'
117+ if 'external' in mass.depend:
118+ # Nothing to be done
119+ return True
120+ match = False
121+ if mass.expr == mass_expr%{'prefix':''}:
122+ prefix = ''
123+ match = True
124+ elif mass.expr == mass_expr%{'prefix':'mdl_'}:
125+ prefix = 'mdl_'
126+ match = True
127+ if match:
128+ MW = ParamCardVariable(mass.name, mass.value, 'MASS', [24])
129+ if not MW.value:
130+ MW.value = 80.385
131+ self.get('parameters')[('external',)].append(MW)
132+ self.get('parameters')[mass.depend].remove(mass)
133+ # Make Gf an internal parameter
134+ new_param = ModelVariable('Gf',
135+ '-%(prefix)saEW*%(prefix)sMZ**2*cmath.pi/(cmath.sqrt(2)*%(MW)s**2*(%(MW)s**2 - %(prefix)sMZ**2))' %\
136+ {'MW': mass.name,'prefix':prefix}, 'complex', mass.depend)
137+ Gf = self.get_parameter('%sGf'%prefix)
138+ self.get('parameters')[('external',)].remove(Gf)
139+ self.add_param(new_param, ['%saEW'%prefix])
140+ # Force a refresh of the parameter dictionary
141+ self.parameters_dict = None
142+ return True
143+ else:
144+ return False
145+
146+ def change_mass_to_complex_scheme(self, toCMS=True):
147 """modify the expression changing the mass to complex mass scheme"""
148
149- # 1) Find All input parameter mass and width associated
150+ # 1) Change the 'CMSParam' of loop_qcd_qed model to 1.0 so as to remove
151+ # the 'real' prefix fromall UVCT wf renormalization expressions.
152+ # If toCMS is False, then it makes sure CMSParam is 0.0 and returns
153+ # immediatly.
154+ # 2) Find All input parameter mass and width associated
155 # Add a internal parameter and replace mass with that param
156- # 2) Find All mass fixed by the model and width associated
157+ # 3) Find All mass fixed by the model and width associated
158 # -> Both need to be fixed with a real() /Imag()
159- # 3) Find All width fixed by the model
160- # -> Need to be fixed with a real()
161- # 4) Fix the Yukawa mass to the value of the complex mass/ real mass
162- # 5) Loop through all expression and modify those accordingly
163+ # 4) Find All width set by the model
164+ # -> Need to be set with a real()
165+ # 5) Fix the Yukawa mass to the value of the complex mass/ real mass
166+ # 6) Loop through all expression and modify those accordingly
167 # Including all parameter expression as complex
168-
169+
170+ try:
171+ CMSParam = self.get_parameter('CMSParam')
172+ except KeyError:
173+ try:
174+ CMSParam = self.get_parameter('mdl_CMSParam')
175+ except KeyError:
176+ CMSParam = None
177+
178+ # Handle the case where we want to make sure the CMS is turned off
179+ if not toCMS:
180+ if CMSParam:
181+ CMSParam.expr = '0.0'
182+ return
183+
184+ # Now handle the case where we want to turn to CMS.
185+ if CMSParam:
186+ CMSParam.expr = '1.0'
187+
188 to_change = {}
189 mass_widths = [] # parameter which should stay real
190 for particle in self.get('particles'):
191@@ -1634,52 +1697,29 @@
192 continue
193 mass_widths.append(particle.get('width'))
194 mass_widths.append(particle.get('mass'))
195- if particle.get('width') == 'ZERO':
196+ width = self.get_parameter(particle.get('width'))
197+ if (isinstance(width.value, (complex,float)) and abs(width.value)==0.0) or \
198+ width.name.lower() =='zero':
199 #everything is fine since the width is zero
200 continue
201- width = self.get_parameter(particle.get('width'))
202 if not isinstance(width, ParamCardVariable):
203 width.expr = 're(%s)' % width.expr
204- if particle.get('mass') != 'ZERO':
205- mass = self.get_parameter(particle.get('mass'))
206+ mass = self.get_parameter(particle.get('mass'))
207+ if (isinstance(width.value, (complex,float)) and abs(width.value)!=0.0) or \
208+ mass.name.lower() != 'zero':
209 # special SM treatment to change the gauge scheme automatically.
210- if particle.get('pdg_code') == 24:
211- if hasattr(mass, 'expr') and mass.expr == 'cmath.sqrt(MZ__exp__2/2. + cmath.sqrt(MZ__exp__4/4. - (aEW*cmath.pi*MZ__exp__2)/(Gf*sqrt__2)))':
212- # Make MW an external parameter
213- MW = ParamCardVariable(mass.name, mass.value, 'MASS', [24])
214- if not MW.value:
215- MW.value = 80.385
216- self.get('parameters')[('external',)].append(MW)
217- self.get('parameters')[mass.depend].remove(mass)
218- # Make Gf an internal parameter
219- new_param = ModelVariable('Gf',
220- '-aEW*MZ**2*cmath.pi/(cmath.sqrt(2)*%(MW)s**2*(%(MW)s**2 - MZ**2))' %\
221- {'MW': mass.name}, 'complex', mass.depend)
222- Gf = self.get_parameter('Gf')
223- self.get('parameters')[('external',)].remove(Gf)
224- self.add_param(new_param, ['aEW'])
225- # Use the new mass for the future modification
226- mass = MW
227- #option with prefixing
228- elif hasattr(mass, 'expr') and mass.expr == 'cmath.sqrt(mdl_MZ__exp__2/2. + cmath.sqrt(mdl_MZ__exp__4/4. - (mdl_aEW*cmath.pi*mdl_MZ__exp__2)/(mdl_Gf*mdl_sqrt__2)))':
229- # Make MW an external parameter
230- MW = ParamCardVariable(mass.name, mass.value, 'MASS', [24])
231- if not MW.value:
232- MW.value = 80.385
233- self.get('parameters')[('external',)].append(MW)
234- self.get('parameters')[mass.depend].remove(mass)
235- # Make Gf an internal parameter
236- new_param = ModelVariable('mdl_Gf',
237- '-mdl_aEW*mdl_MZ**2*cmath.pi/(cmath.sqrt(2)*%(MW)s**2*(%(MW)s**2 - mdl_MZ**2))' %\
238- {'MW': mass.name}, 'complex', mass.depend)
239- Gf = self.get_parameter('mdl_Gf')
240- self.get('parameters')[('external',)].remove(Gf)
241- self.add_param(new_param, ['mdl_aEW'])
242- # Use the new mass for the future modification
243- mass = MW
244- elif isinstance(mass, ModelVariable):
245- logger.warning('W mass is not an external parameter. This is not adviced for the complex mass scheme.')
246-
247+ if particle.get('pdg_code') == 24 and isinstance(mass,
248+ ModelVariable):
249+ status = self.change_electroweak_mode(
250+ set(['mz','mw','alpha']))
251+ # Use the newly defined parameter for the W mass
252+ mass = self.get_parameter(particle.get('mass'))
253+ if not status:
254+ logger.warning('The W mass is not an external '+
255+ 'parameter in this model and the automatic change of'+
256+ ' electroweak scheme changed. This is not advised for '+
257+ 'applying the complex mass scheme.')
258+
259 # Add A new parameter CMASS
260 #first compute the dependencies (as,...)
261 depend = list(set(mass.depend + width.depend))
262@@ -3638,7 +3678,7 @@
263 my_isids = [leg.get('ids') for leg in self.get('legs') \
264 if not leg.get('state')]
265 my_fsids = [leg.get('ids') for leg in self.get('legs') \
266- if leg.get('state')]
267+ if leg.get('state')]
268 for i, is_id in enumerate(initial_state_ids):
269 assert is_id in my_isids[i]
270 for i, fs_id in enumerate(final_state_ids):
271
272=== modified file 'madgraph/core/helas_objects.py'
273--- madgraph/core/helas_objects.py 2015-07-02 02:29:22 +0000
274+++ madgraph/core/helas_objects.py 2015-08-16 06:06:34 +0000
275@@ -3164,7 +3164,7 @@
276 """Calculate the actual coupling orders of this diagram"""
277
278 wavefunctions = HelasWavefunctionList.extract_wavefunctions(\
279- self.get('amplitudes')[0].get('mothers'))
280+ self.get('amplitudes')[0].get('mothers'))
281
282 coupling_orders = {}
283 for wf in wavefunctions + [self.get('amplitudes')[0]]:
284
285=== modified file 'madgraph/interface/common_run_interface.py'
286--- madgraph/interface/common_run_interface.py 2015-07-30 14:26:07 +0000
287+++ madgraph/interface/common_run_interface.py 2015-08-16 06:06:34 +0000
288@@ -221,19 +221,17 @@
289 #restrict_file = None
290 #if os.path.exists(pjoin(ufo_path, 'restrict_default.dat')):
291 # restrict_file = pjoin(ufo_path, 'restrict_default.dat')
292+
293+ force_CMS = self.mother and self.mother.options['complex_mass_scheme']
294 model = import_ufo.import_model(modelname, decay=True,
295- restrict=True)
296- if self.mother and self.mother.options['complex_mass_scheme']:
297- model.change_mass_to_complex_scheme()
298+ restrict=True, complex_mass_scheme=force_CMS)
299 else:
300- model = import_ufo.import_model(pjoin(
301- self.me_dir,'bin','internal', 'ufomodel'),decay=True)
302 #pattern for checking complex mass scheme.
303 has_cms = re.compile(r'''set\s+complex_mass_scheme\s*(True|T|1|true|$|;)''')
304- if has_cms.search(open(pjoin(self.me_dir,'Cards','proc_card_mg5.dat')\
305- ).read()):
306- model.change_mass_to_complex_scheme()
307-
308+ force_CMS = has_cms.search(open(pjoin(self.me_dir,'Cards',
309+ 'proc_card_mg5.dat')).read())
310+ model = import_ufo.import_model(pjoin(self.me_dir,'bin','internal',
311+ 'ufomodel'), decay=True, complex_mass_scheme=force_CMS)
312
313 # if not hasattr(model.get('particles')[0], 'partial_widths'):
314 # raise self.InvalidCmd, 'The UFO model does not include partial widths information. Impossible to compute widths automatically'
315@@ -2219,6 +2217,53 @@
316 'fixed_scale': ['run_card fixed_fac_scale T', 'run_card fixed_ren_scale T', 'run_card scale %(0)s', 'run_card dsqrt_q2fact1 %(0)s' ,'run_card dsqrt_q2fact2 %(0)s'],
317 }
318
319+ @staticmethod
320+ def analyze_param_card(param_card):
321+ """ Analyzes the comment of the parameter in the param_card and returns
322+ a dictionary with parameter names in values and the tuple (lhablock, id)
323+ in value as well as a dictionary for restricted values."""
324+
325+ pname2block = {}
326+ restricted_value = {}
327+
328+ for bname, block in param_card.items():
329+ for lha_id, param in block.param_dict.items():
330+ all_var = []
331+ comment = param.comment
332+ # treat merge parameter
333+ if comment.strip().startswith('set of param :'):
334+ all_var = list(re.findall(r'''[^-]1\*(\w*)\b''', comment))
335+ # just the variable name as comment
336+ elif len(comment.split()) == 1:
337+ all_var = [comment.strip().lower()]
338+ # either contraction or not formatted
339+ else:
340+ split = comment.split()
341+ if len(split) >2 and split[1] == ':':
342+ # NO VAR associated
343+ restricted_value[(bname, lha_id)] = ' '.join(split[1:])
344+ elif len(split) == 2:
345+ if re.search(r'''\[[A-Z]\]eV\^''', split[1]):
346+ all_var = [comment.strip().lower()]
347+ elif len(split) >=2 and split[1].startswith('('):
348+ all_var = [split[0].strip().lower()]
349+ else:
350+ if not bname.startswith('qnumbers'):
351+ logger.debug("not recognize information for %s %s : %s",
352+ bname, lha_id, comment)
353+ # not recognized format
354+ continue
355+
356+ for var in all_var:
357+ var = var.lower()
358+ if var in pname2block:
359+ pname2block[var].append((bname, lha_id))
360+ else:
361+ pname2block[var] = [(bname, lha_id)]
362+
363+ return pname2block, restricted_value
364+
365+
366 def __init__(self, question, cards=[], mode='auto', *args, **opt):
367
368 # Initiation
369@@ -2263,40 +2308,8 @@
370 # Read the comment of the param_card_default to find name variable for
371 # the param_card also check which value seems to be constrained in the
372 # model.
373- for bname, block in default_param.items():
374- for lha_id, param in block.param_dict.items():
375- all_var = []
376- comment = param.comment
377- # treat merge parameter
378- if comment.strip().startswith('set of param :'):
379- all_var = list(re.findall(r'''[^-]1\*(\w*)\b''', comment))
380- # just the variable name as comment
381- elif len(comment.split()) == 1:
382- all_var = [comment.strip().lower()]
383- # either contraction or not formatted
384- else:
385- split = comment.split()
386- if len(split) >2 and split[1] == ':':
387- # NO VAR associated
388- self.restricted_value[(bname, lha_id)] = ' '.join(split[1:])
389- elif len(split) == 2:
390- if re.search(r'''\[[A-Z]\]eV\^''', split[1]):
391- all_var = [comment.strip().lower()]
392- elif len(split) >=2 and split[1].startswith('('):
393- all_var = [split[0].strip().lower()]
394- else:
395- if not bname.startswith('qnumbers'):
396- logger.debug("not recognize information for %s %s : %s",
397- bname, lha_id, comment)
398- # not recognized format
399- continue
400-
401- for var in all_var:
402- var = var.lower()
403- if var in self.pname2block:
404- self.pname2block[var].append((bname, lha_id))
405- else:
406- self.pname2block[var] = [(bname, lha_id)]
407+ self.pname2block, self.restricted_value = self.analyze_param_card(
408+ default_param)
409
410 if run_card_def:
411 self.run_set = run_card_def.keys() + self.run_card.hidden_param
412
413=== modified file 'madgraph/interface/loop_interface.py'
414--- madgraph/interface/loop_interface.py 2015-07-20 20:38:46 +0000
415+++ madgraph/interface/loop_interface.py 2015-08-16 06:06:34 +0000
416@@ -227,7 +227,8 @@
417 # "\nIt is however a straight-forward extension which "+\
418 # "will come out with the next release.")
419
420- if isinstance(proc, base_objects.ProcessDefinition) and mode.startswith('ML5'):
421+ if isinstance(proc, base_objects.ProcessDefinition) and mode.startswith('ML5') \
422+ and not mode.endswith('cms'):
423 if proc.has_multiparticle_label():
424 raise self.InvalidCmd(
425 "When running ML5 standalone, multiparticle labels cannot be"+\
426@@ -665,7 +666,8 @@
427 # Now make sure the process is acceptable
428 proc = " ".join(argss[1:i+1])
429 myprocdef = self.extract_process(proc)
430- self.proc_validity(myprocdef,'ML5_check')
431+ self.proc_validity(myprocdef,'ML5_check_cms' if argss[0]=='cms' else \
432+ 'ML5_check')
433
434 return mg_interface.MadGraphCmd.do_check(self, line, *args,**opt)
435
436
437=== modified file 'madgraph/interface/madevent_interface.py'
438--- madgraph/interface/madevent_interface.py 2015-08-15 21:40:38 +0000
439+++ madgraph/interface/madevent_interface.py 2015-08-16 06:06:34 +0000
440@@ -4951,7 +4951,7 @@
441 req_files.remove('HelFilter.dat')
442 except ValueError:
443 pass
444-
445+
446 for v_folder in glob.iglob(pjoin(proc_dir,'SubProcesses',
447 '%s*'%subproc_prefix)):
448 # Make sure it is a valid MadLoop directory
449
450=== modified file 'madgraph/interface/madgraph_interface.py'
451--- madgraph/interface/madgraph_interface.py 2015-08-11 11:20:19 +0000
452+++ madgraph/interface/madgraph_interface.py 2015-08-16 06:06:34 +0000
453@@ -474,6 +474,37 @@
454 logger.info("o lorentz_invariance:",'$MG:color:GREEN')
455 logger.info(" Check that the amplitude is lorentz invariant by")
456 logger.info(" comparing the amplitiude in different frames")
457+ logger.info("o cms:",'$MG:color:GREEN')
458+ logger.info(" Check the complex mass scheme consistency by comparing")
459+ logger.info(" it to the narrow width approximation in the off-shell")
460+ logger.info(" region of detected resonances and by progressively")
461+ logger.info(" decreasing the width. Additional options for this check are:")
462+ logger.info(" --offshellness=f : f is a positive or negative float specifying ")
463+ logger.info(" the distance from the pole as f*particle_mass. Default is 10.0")
464+ logger.info(" --seed=i : to force a specific RNG integer seed i (default is fixed to 0)")
465+ logger.info(" --cms=order1&order2;...,p1->f(p,lambdaCMS)&p2->f2(p,lambdaCMS);...")
466+ logger.info(" 'order_i' specifies the expansion orders considered for the test.")
467+ logger.info(" The substitution lists specifies how internal parameter must be modified")
468+ logger.info(" with the width scaling 'lambdaCMS'. The default value for this option is:")
469+ logger.info(" --cms=QED&QCD,aewm1->10.0/lambdaCMS&as->0.1*lambdaCMS ")
470+ logger.info(" The number of order and parameters don't have to be the same.")
471+ logger.info(" The scaling must be specified so that one occurrence of the coupling order.")
472+ logger.info(" brings in exactly one power of lambdaCMS.")
473+ logger.info(" --recompute_width= never|first_time|always|auto")
474+ logger.info(" Decides when to use MadWidth to automatically recompute the width")
475+ logger.info(" 'auto' (default) let MG5 chose the most appropriate behavior.")
476+ logger.info(" 'never' uses the default width value for lambdaCMS=1.0.")
477+ logger.info(" 'first_time' uses MadWidth to compute the width for lambdaCMS=1.0.")
478+ logger.info(" 'first_time' and 'never' assume linear scaling of the widths with lambdaCMS")
479+ logger.info(" 'always' uses MadWidth to compute the widths for all values of lambdaCMS")
480+ logger.info(" the test relies on linear scaling of the width, so 'always' is ")
481+ logger.info(" only for double-checks")
482+ logger.info(" --lambdaCMS = <python_list> : specifies the list of lambdaCMS values to ")
483+ logger.info(" use for the test. For example: '[(1/2.0)**exp\ for\ exp\ in\ range(0,20)]'")
484+ logger.info(" In the list expression, you must escape spaces. Also, this option")
485+ logger.info(" *must* appear last in the otpion list. Finally, the default value is '1.0e-6'")
486+ logger.info(" for which an optimal list of progressive values is picked up to 1.0e-6")
487+ logger.info(" --show_plot = True or False: Whether to show plot during analysis (default is True)")
488 logger.info("Comments",'$MG:color:GREEN')
489 logger.info(" > If param_card is given, that param_card is used ")
490 logger.info(" instead of the default values for the model.")
491@@ -836,15 +867,17 @@
492 raise self.InvalidCmd(\
493 "\"check\" not possible for v4 models")
494
495- if len(args) < 2:
496+ if len(args) < 2 and not args[0].lower().endswith('options'):
497 self.help_check()
498 raise self.InvalidCmd("\"check\" requires a process.")
499
500- if args[0] not in self._check_opts:
501+ if args[0] not in self._check_opts and \
502+ not args[0].lower().endswith('options'):
503 args.insert(0, 'full')
504
505 param_card = None
506- if args[0] not in ['stability','profile','timing'] and os.path.isfile(args[1]):
507+ if args[0] not in ['stability','profile','timing'] and \
508+ len(args)>1 and os.path.isfile(args[1]):
509 param_card = args.pop(1)
510
511 if len(args)>1:
512@@ -853,9 +886,8 @@
513 else:
514 args.append('-no_reuse')
515
516- if args[0] in ['timing'] and os.path.isfile(args[2]):
517+ if args[0] in ['timing'] and len(args)>2 and os.path.isfile(args[2]):
518 param_card = args.pop(2)
519- misc.sprint(param_card)
520 if args[0] in ['stability', 'profile'] and len(args)>1:
521 # If the first argument after 'stability' is not the integer
522 # specifying the desired statistics (i.e. number of points), then
523@@ -867,21 +899,73 @@
524
525 if args[0] in ['stability', 'profile'] and os.path.isfile(args[3]):
526 param_card = args.pop(3)
527-
528- if any([',' in elem for elem in args]):
529+ if any([',' in elem for elem in args if not elem.startswith('--')]):
530 raise self.InvalidCmd('Decay chains not allowed in check')
531
532 user_options = {'--energy':'1000','--split_orders':'-1',
533- '--reduction':'1|2|3|4'}
534+ '--reduction':'1|2|3|4','--CTModeRun':'-1','--helicity':'-1'}
535+
536+ if args[0] in ['cms'] or args[0].lower()=='cmsoptions':
537+ # increase the default energy to 5000
538+ user_options['--energy']='5000'
539+ # The first argument gives the name of the coupling order in which
540+ # the cms expansion is carried, and the expression following the
541+ # comma gives the relation of an external parameter with the
542+ # CMS expansions parameter called 'lambdaCMS'.
543+ parameters = ['aewm1->10.0/lambdaCMS','as->0.1*lambdaCMS']
544+ user_options['--cms']='QED&QCD,'+'&'.join(parameters)
545+ # Widths are assumed to scale linearly with lambdaCMS unless
546+ # --force_recompute_width='always' or 'first_time' is used.
547+ user_options['--recompute_width']='auto'
548+ # It can be negative so as to be offshell below the resonant mass
549+ user_options['--offshellness']='10.0'
550+ # Pick the lambdaCMS values for the test. Instead of a python list
551+ # we specify here (low,N) which means that do_check will automatically
552+ # pick lambda values up to the value low and with N values uniformly
553+ # spread in each interval [1.0e-i,1.0e-(i+1)].
554+ # Some points close to each other will be added at the end for the
555+ # stability test.
556+ user_options['--lambdaCMS']='(1.0e-6,5)'
557+ # Set the RNG seed, -1 is default (random).
558+ user_options['--seed']=666
559+ # The option below can help the user re-analyze existing pickled check
560+ user_options['--analyze']='None'
561+ # Decides whether to show plot or not during the analysis
562+ user_options['--show_plot']='True'
563+ # 'secret' option to chose by which lambda power one should divide
564+ # the nwa-cms difference. Useful to set to 2 when doing the Born check
565+ # to see whether the NLO check will have sensitivity to the CMS
566+ # implementation
567+ user_options['--diff_lambda_power']='1'
568+ # Sets the range of lambda values to plot
569+ user_options['--lambda_plot_range']='[-1.0,-1.0]'
570+ # Sets a filter to apply at generation. See name of available
571+ # filters in loop_diagram_generations.py, function user_filter
572+ user_options['--loop_filter']='None'
573+ # Apply tweaks to the check like multiplying a certain width by a
574+ # certain parameters or changing the analytical continuation of the
575+ # logarithms of the UV counterterms
576+ user_options['--tweak']='default()'
577+ # Give a name to the run for the files to be saved
578+ user_options['--name']='auto'
579+ # Select what resonances must be run
580+ user_options['--resonances']='1'
581 for arg in args[:]:
582 if arg.startswith('--') and '=' in arg:
583- key, value = arg.split('=')
584+ parsed = arg.split('=')
585+ key, value = parsed[0],'='.join(parsed[1:])
586 if key not in user_options:
587 raise self.InvalidCmd, "unknown option %s" % key
588 user_options[key] = value
589 args.remove(arg)
590
591- self.check_process_format(" ".join(args[1:]))
592+ # If we are just re-analyzing saved data or displaying options then we
593+ # shouldn't check the process format.
594+ if not (args[0]=='cms' and '--analyze' in user_options and \
595+ user_options['--analyze']!='None') and not \
596+ args[0].lower().endswith('options'):
597+
598+ self.check_process_format(" ".join(args[1:]))
599
600 for option, value in user_options.items():
601 args.append('%s=%s'%(option,value))
602@@ -2448,7 +2532,7 @@
603 _tutorial_opts = ['aMCatNLO', 'stop', 'MadLoop', 'MadGraph5']
604 _switch_opts = ['mg5','aMC@NLO','ML5']
605 _check_opts = ['full', 'timing', 'stability', 'profile', 'permutation',
606- 'gauge','lorentz', 'brs']
607+ 'gauge','lorentz', 'brs', 'cms']
608 _import_formats = ['model_v4', 'model', 'proc_v4', 'command', 'banner']
609 _install_opts = ['pythia-pgs', 'Delphes', 'MadAnalysis', 'ExRootAnalysis',
610 'update', 'Delphes2', 'SysCalc', 'Golem95']
611@@ -3233,10 +3317,37 @@
612 # Perform checks
613 def do_check(self, line):
614 """Check a given process or set of processes"""
615+
616+ ###### BEGIN do_check
617+ def create_lambda_values_list(lower_bound, N):
618+ """ Returns a list of values spanning the range [1.0, lower_bound] with
619+ lower_bound < 1.0 and with each interval [1e-i, 1e-(i+1)] covered
620+ by N values uniformly distributed. For example, lower_bound=1e-2
621+ and N=5 returns:
622+ [1, 0.8, 0.6, 0.4, 0.2, 0.1, 0.08, 0.06, 0.04, 0.02, 0.01]"""
623+
624+ lCMS_values = [1]
625+ exp = 0
626+ n = 0
627+ while lCMS_values[-1]>=lower_bound:
628+ n = (n+1)
629+ lCMS_values.append(float('1.0e-%d'%exp)*((N-n%N)/float(N)))
630+ if lCMS_values[-1]==lCMS_values[-2]:
631+ lCMS_values.pop()
632+ exp = (n+1)//N
633+
634+ lCMS_values = lCMS_values[:-1]
635+ if lCMS_values[-1]!=lower_bound:
636+ lCMS_values.append(lower_bound)
637+
638+ return lCMS_values
639+ ###### BEGIN do_check
640
641 args = self.split_arg(line)
642+
643 # Check args validity
644 param_card = self.check_check(args)
645+
646 options= {'events':None} # If the momentum needs to be picked from a event file
647 if param_card and 'banner' == madevent_interface.MadEventCmd.detect_card_type(param_card):
648 logger.info("Will use the param_card contained in the banner and the events associated")
649@@ -3255,31 +3366,280 @@
650 if args[0] in ['stability', 'profile']:
651 options['npoints'] = int(args[1])
652 args = args[:1]+args[2:]
653-
654+
655 MLoptions={}
656 i=-1
657+ CMS_options = {}
658 while args[i].startswith('--'):
659 option = args[i].split('=')
660 if option[0] =='--energy':
661 options['energy']=float(option[1])
662 elif option[0]=='--split_orders':
663 options['split_orders']=int(option[1])
664+ elif option[0]=='--helicity':
665+ try:
666+ options['helicity']=int(option[1])
667+ except ValueError:
668+ raise self.InvalidCmd("The value of the 'helicity' option"+\
669+ " must be an integer, not %s."%option[1])
670 elif option[0]=='--reduction':
671 MLoptions['MLReductionLib']=[int(ir) for ir in option[1].split('|')]
672+ elif option[0]=='--CTModeRun':
673+ try:
674+ MLoptions['CTModeRun']=int(option[1])
675+ except ValueError:
676+ raise self.InvalidCmd("The value of the 'CTModeRun' option"+\
677+ " must be an integer, not %s."%option[1])
678+ elif option[0]=='--offshellness':
679+ CMS_options['offshellness'] = float(option[1])
680+ if CMS_options['offshellness']<=-1.0:
681+ raise self.InvalidCmd('Offshellness must be number larger or'+
682+ ' equal to -1.0, not %f'%CMS_options['offshellness'])
683+ elif option[0]=='--analyze':
684+ options['analyze'] = option[1]
685+ elif option[0]=='--show_plot':
686+ options['show_plot'] = 'true' in option[1].lower()
687+ elif option[0]=='--seed':
688+ CMS_options['seed'] = int(option[1])
689+ elif option[0]=='--name':
690+ if '.' in option[1]:
691+ raise self.InvalidCmd("Do not specify the extension in the"+
692+ " name of the run")
693+ CMS_options['name'] = option[1]
694+ elif option[0]=='--resonances':
695+ if option[1]=='all':
696+ CMS_options['resonances'] = 'all'
697+ else:
698+ try:
699+ resonances=eval(option[1])
700+ except:
701+ raise self.InvalidCmd("Could not evaluate 'resonances'"+
702+ " option '%s'"%option[1])
703+ if isinstance(resonances,int) and resonances>0:
704+ CMS_options['resonances'] = resonances
705+ elif isinstance(resonances,list) and all(len(res)==2 and
706+ isinstance(res[0],int) and all(isinstance(i, int) for i in
707+ res[1]) for res in resonances):
708+ CMS_options['resonances'] = resonances
709+ else:
710+ raise self.InvalidCmd("The option 'resonances' can only be 'all'"+
711+ " or and integer or a list of tuples of the form "+
712+ "(resPDG,(res_mothers_ID)). You gave '%s'"%option[1])
713+ elif option[0]=='--tweak':
714+ # Lists the sets of custom and widths modifications to apply
715+ value = option[1]
716+ # Set a shortcuts for applying all relevant tweaks
717+ if value=='alltweaks':
718+ value=str(['default','seed667(seed667)','seed668(seed668)',
719+ 'allwidths->0.9*allwidths(widths_x_0.9)',
720+ 'allwidths->0.99*allwidths(widths_x_0.99)',
721+ 'allwidths->1.01*allwidths(widths_x_1.01)',
722+ 'allwidths->1.1*allwidths(widths_x_1.1)',
723+ 'logp->logm(logp2logm)','logm->logp(logm2logp)'])
724+ try:
725+ tweaks = eval(value)
726+ if isinstance(tweaks, str):
727+ tweaks = [value]
728+ elif not isinstance(tweaks,list):
729+ tweaks = [value]
730+ except:
731+ tweaks = [value]
732+ if not all(isinstance(t,str) for t in tweaks):
733+ raise self.InvalidCmd("Invalid specificaiton of tweaks: %s"%value)
734+ CMS_options['tweak'] = []
735+ for tweakID, tweakset in enumerate(tweaks):
736+ specs =re.match(r'^(?P<tweakset>.*)\((?P<name>.*)\)$', tweakset)
737+ if specs:
738+ tweakset = specs.group('tweakset')
739+ name = specs.group('name')
740+ else:
741+ if tweakset!='default':
742+ name = 'tweak#%d'%(tweakID+1)
743+ else:
744+ name = ''
745+ new_tweak_set = {'custom':[],'params':{},'name':name}
746+ for tweak in tweakset.split('&'):
747+ if tweak=='default':
748+ continue
749+ if tweak.startswith('seed'):
750+ new_tweak_set['custom'].append(tweak)
751+ continue
752+ try:
753+ param, replacement = tweak.split('->')
754+ except ValueError:
755+ raise self.InvalidCmd("Tweak specification '%s'"%\
756+ tweak+" is incorrect. It should be of"+\
757+ " the form a->_any_function_of_(a,lambdaCMS).")
758+ if param in ['logp','logm','log'] and \
759+ replacement in ['logp','logm','log']:
760+ new_tweak_set['custom'].append(tweak)
761+ continue
762+ try:
763+ # for safety prefix parameters, because 'as' for alphas
764+ # is a python reserved name for example
765+ orig_param, orig_replacement = param, replacement
766+ replacement = replacement.replace(param,
767+ '__tmpprefix__%s'%param)
768+ param = '__tmpprefix__%s'%param
769+ res = float(eval(replacement.lower(),
770+ {'lambdacms':1.0,param.lower():98.85}))
771+ except:
772+ raise self.InvalidCmd("The substitution expression "+
773+ "'%s' for the tweaked parameter"%orig_replacement+
774+ " '%s' could not be evaluated. It must be an "%orig_param+
775+ "expression of the parameter and 'lambdaCMS'.")
776+ new_tweak_set['params'][param.lower()] = replacement.lower()
777+ CMS_options['tweak'].append(new_tweak_set)
778+
779+ elif option[0]=='--recompute_width':
780+ if option[1].lower() not in ['never','always','first_time','auto']:
781+ raise self.InvalidCmd("The option 'recompute_width' can "+\
782+ "only be 'never','always', 'first_time' or 'auto' (default).")
783+ CMS_options['recompute_width'] = option[1]
784+ elif option[0]=='--loop_filter':
785+ # Specify a loop, filter. See functions get_loop_filter and
786+ # user_filter in loop_diagram_generation.LoopAmplitude for
787+ # information on usage.
788+ CMS_options['loop_filter'] = '='.join(option[1:])
789+ elif option[0]=='--diff_lambda_power':
790+ #'secret' option to chose by which lambda power one should divide
791+ # the nwa-cms difference. Useful to set to 2 when doing the Born check
792+ # to see whether the NLO check will have sensitivity to the CMS
793+ # implementation
794+ try:
795+ CMS_options['diff_lambda_power']=float(option[1])
796+ except ValueError:
797+ raise self.InvalidCmd("the '--diff_lambda_power' option"+\
798+ " must be an integer or float, not '%s'."%option[1])
799+ elif option[0]=='--lambda_plot_range':
800+ try:
801+ plot_range=eval(option[1])
802+ except Exception as e:
803+ raise self.InvalidCmd("The plot range specified %s"%option[1]+\
804+ " is not a valid syntax. Error:\n%s"%str(e))
805+ if not isinstance(plot_range,(list,tuple)) or \
806+ len(plot_range)!=2 or any(not isinstance(p,(float,int))
807+ for p in plot_range):
808+ raise self.InvalidCmd("The plot range specified %s"\
809+ %option[1]+" is invalid")
810+ CMS_options['lambda_plot_range']=list([float(p) for p in plot_range])
811+ elif option[0]=='--lambdaCMS':
812+ try:
813+ lambda_values = eval(option[1])
814+ except SyntaxError:
815+ raise self.InvalidCmd("'%s' is not a correct"%option[1]+
816+ " python expression for lambdaCMS values.")
817+ if isinstance(lambda_values,list):
818+ if lambda_values[0]!=1.0:
819+ raise self.InvalidCmd("The first value of the lambdaCMS values"+
820+ " specified must be 1.0, not %s"%str(lambda_values))
821+ for l in lambda_values:
822+ if not isinstance(l,float):
823+ raise self.InvalidCmd("All lambda CMS values must be"+
824+ " float, not '%s'"%str(l))
825+ elif isinstance(lambda_values,(tuple,float)):
826+ # Format here is then (lower_bound, N) were lower_bound is
827+ # the minimum lambdaCMS value that must be probed and the
828+ # integer N is the number of such values that must be
829+ # uniformly distributed in each intervale [1.0e-i,1.0e-(i+1)]
830+ if isinstance(lambda_values, float):
831+ # Use default of 10 for the number of lambda values
832+ lower_bound = lambda_values
833+ N = 10
834+ else:
835+ if isinstance(lambda_values[0],float) and \
836+ isinstance(lambda_values[1],int):
837+ lower_bound = lambda_values[0]
838+ N = lambda_values[1]
839+ else:
840+ raise self.InvalidCmd("'%s' must be a "%option[1]+
841+ "tuple with types (float, int).")
842+ lambda_values = create_lambda_values_list(lower_bound,N)
843+ else:
844+ raise self.InvalidCmd("'%s' must be an expression"%option[1]+
845+ " for either a float, tuple or list.")
846+ lower_bound = lambda_values[-1]
847+ # and finally add 5 points for stability test on the last values
848+ # Depending on how the stab test will behave at NLO, we can
849+ # consider automatically adding the values below
850+# for stab in range(1,6):
851+# lambda_values.append((1.0+(stab/100.0))*lower_bound)
852+
853+ CMS_options['lambdaCMS'] = lambda_values
854+ elif option[0]=='--cms':
855+ try:
856+ CMS_expansion_orders, CMS_expansion_parameters = \
857+ option[1].split(',')
858+ except ValueError:
859+ raise self.InvalidCmd("CMS expansion specification '%s'"%\
860+ args[i]+" is incorrect.")
861+ CMS_options['expansion_orders'] = [expansion_order for
862+ expansion_order in CMS_expansion_orders.split('&')]
863+ CMS_options['expansion_parameters'] = {}
864+ for expansion_parameter in CMS_expansion_parameters.split('&'):
865+ try:
866+ param, replacement = expansion_parameter.split('->')
867+ except ValueError:
868+ raise self.InvalidCmd("CMS expansion specification '%s'"%\
869+ expansion_parameter+" is incorrect. It should be of"+\
870+ " the form a->_any_function_of_(a,lambdaCMS).")
871+ try:
872+ # for safety prefix parameters, because 'as' for alphas
873+ # is a python reserved name for example
874+ orig_param, orig_replacement = param, replacement
875+ replacement = replacement.replace(param,
876+ '__tmpprefix__%s'%param)
877+ param = '__tmpprefix__%s'%param
878+ res = float(eval(replacement.lower(),
879+ {'lambdacms':1.0,param.lower():98.85}))
880+ except:
881+ raise self.InvalidCmd("The substitution expression "+
882+ "'%s' for CMS expansion parameter"%orig_replacement+
883+ " '%s' could not be evaluated. It must be an "%orig_param+
884+ "expression of the parameter and 'lambdaCMS'.")
885+ # Put everything lower case as it will be done when
886+ # accessing model variables
887+ CMS_options['expansion_parameters'][param.lower()]=\
888+ replacement.lower()
889+ else:
890+ raise self.InvalidCmd("The option '%s' is not reckognized."%option[0])
891+
892 i=i-1
893 args = args[:i+1]
894
895+ if args[0]=='options':
896+ # Simple printout of the check command options
897+ logger.info("Options for the command 'check' are:")
898+ logger.info("{:<20} {}".format(' name','default value'))
899+ logger.info("-"*40)
900+ for key, value in options.items():
901+ logger.info("{:<20} = {}".format('--%s'%key,str(value)))
902+ return
903+
904+ if args[0].lower()=='cmsoptions':
905+ # Simple printout of the special check cms options
906+ logger.info("Special options for the command 'check cms' are:")
907+ logger.info("{:<20} {}".format(' name','default value'))
908+ logger.info("-"*40)
909+ for key, value in CMS_options.items():
910+ logger.info("{:<20} = {}".format('--%s'%key,str(value)))
911+ return
912+
913 proc_line = " ".join(args[1:])
914- myprocdef = self.extract_process(proc_line)
915+ # Don't try to extract the process if just re-analyzing a saved run
916+ if not (args[0]=='cms' and options['analyze']!='None'):
917+ myprocdef = self.extract_process(proc_line)
918+
919+ # Check that we have something
920+ if not myprocdef:
921+ raise self.InvalidCmd("Empty or wrong format process, please try again.")
922+ else:
923+ myprocdef = None
924
925 # If the test has to write out on disk, it should do so at the location
926 # specified below where the user must be sure to have writing access.
927 output_path = os.getcwd()
928
929- # Check that we have something
930- if not myprocdef:
931- raise self.InvalidCmd("Empty or wrong format process, please try again.")
932-
933 if args[0] in ['timing','stability', 'profile'] and not \
934 myprocdef.get('perturbation_couplings'):
935 raise self.InvalidCmd("Only loop processes can have their "+
936@@ -3319,8 +3679,9 @@
937 # So as a temporary fix for the problem that after doing a check at NLO
938 # then a check at LO will fail, I make sure I set it to False if the
939 # process is a tree-level one
940- if myprocdef.get('perturbation_couplings')==[]:
941- aloha.loop_mode = False
942+ if myprocdef:
943+ if myprocdef.get('perturbation_couplings')==[]:
944+ aloha.loop_mode = False
945
946 comparisons = []
947 gauge_result = []
948@@ -3331,6 +3692,7 @@
949 stability = []
950 profile_time = []
951 profile_stab = []
952+ cms_results = []
953
954 if "_cuttools_dir" in dir(self):
955 CT_dir = self._cuttools_dir
956@@ -3466,15 +3828,88 @@
957 options=options)
958 nb_processes += len(gauge_result)
959
960+ # The CMS check is typically more complicated and slower than others
961+ # so we don't run it automatically with 'full'.
962+ if args[0] in ['cms']:
963+
964+ cms_original_setup = self.options['complex_mass_scheme']
965+ process_line = " ".join(args[1:])
966+ # Merge in the CMS_options to the options
967+ for key, value in CMS_options.items():
968+ if key=='tweak':
969+ continue
970+ if key not in options:
971+ options[key] = value
972+ else:
973+ raise MadGraph5Error,"Option '%s' is both in the option"%key+\
974+ " and CMS_option dictionary."
975+
976+ if options['analyze']=='None':
977+ start = time.time()
978+ cms_results = []
979+ for tweak in CMS_options['tweak']:
980+ options['tweak']=tweak
981+ # Try to guess the save path and try to load it before running
982+ guessed_proc = myprocdef.get_process(
983+ [leg.get('ids')[0] for leg in myprocdef.get('legs')
984+ if not leg.get('state')],
985+ [leg.get('ids')[0] for leg in myprocdef.get('legs')
986+ if leg.get('state')])
987+ save_path = process_checks.CMS_save_path('pkl',
988+ {'ordered_processes':[guessed_proc.base_string()],
989+ 'perturbation_orders':guessed_proc.get('perturbation_couplings')},
990+ self._curr_model, options, output_path=output_path)
991+ if os.path.isfile(save_path) and options['reuse']:
992+ cms_result = save_load_object.load_from_file(save_path)
993+ logger.info("The cms check for tweak %s is recycled from file:\n %s"%
994+ (tweak['name'],save_path))
995+ if cms_result is None:
996+ raise self.InvalidCmd('The complex mass scheme check result'+
997+ " file below could not be read.\n %s"%save_path)
998+ else:
999+ cms_result = process_checks.check_complex_mass_scheme(
1000+ process_line,
1001+ param_card = param_card,
1002+ cuttools=CT_dir,
1003+ tir=TIR_dir,
1004+ cmd = self,
1005+ output_path = output_path,
1006+ MLOptions = MLoptions,
1007+ options=options)
1008+ # Now set the correct save path
1009+ save_path = process_checks.CMS_save_path('pkl', cms_result,
1010+ self._curr_model, options, output_path=output_path)
1011+ cms_results.append((cms_result,save_path,tweak['name']))
1012+
1013+ logger.debug('CMS check performed finished in %s.'\
1014+ %misc.format_time(int(time.time()-start)))
1015+ else:
1016+ cms_result = save_load_object.load_from_file(
1017+ options['analyze'].split(',')[0])
1018+ cms_results.append((cms_result,options['analyze'].split(',')[0],
1019+ CMS_options['tweak'][0]['name']))
1020+ if cms_result is None:
1021+ raise self.InvalidCmd('The complex mass scheme check result'+
1022+ " file below could not be read.\n %s"%options['analyze'])
1023+
1024+ # restore previous settings
1025+ self.do_set('complex_mass_scheme %s'%str(cms_original_setup),
1026+ log=False)
1027+ # Use here additional key 'ordered_processes'
1028+ nb_processes += len(cms_result['ordered_processes'])
1029+
1030 cpu_time2 = time.time()
1031 logger.info("%i checked performed in %0.3f s" \
1032 % (nb_processes,
1033 (cpu_time2 - cpu_time1)))
1034
1035- if args[0] not in ['timing','stability', 'profile']:
1036+ if args[0] in ['cms']:
1037+ text = "Note that the complex mass scheme test in principle only\n"
1038+ text+= "works for stable particles in final states.\n\ns"
1039+ if args[0] not in ['timing','stability', 'profile', 'cms']:
1040 if self.options['complex_mass_scheme']:
1041 text = "Note that Complex mass scheme gives gauge/lorentz invariant\n"
1042- text+= "results only for stable particles in final states.\n\n"
1043+ text+= "results only for stable particles in final states.\n\ns"
1044 elif not myprocdef.get('perturbation_couplings'):
1045 text = "Note That all width have been set to zero for those checks\n\n"
1046 else:
1047@@ -3506,6 +3941,24 @@
1048 if gauge_result_no_brs:
1049 text += 'Gauge results (switching between Unitary/Feynman):\n'
1050 text += process_checks.output_unitary_feynman(gauge_result_no_brs) + '\n'
1051+ if cms_results:
1052+ text += 'Complex mass scheme results (varying width in the off-shell regions):\n'
1053+ cms_result = cms_results[0][0]
1054+ if len(cms_results)>1:
1055+ analyze = []
1056+ for i, (cms_res, save_path, tweakname) in enumerate(cms_results):
1057+ save_load_object.save_to_file(save_path, cms_res)
1058+ logger.info("Pickle file for tweak '%s' saved to disk at:\n ->%s"%
1059+ (tweakname,save_path))
1060+ if i==0:
1061+ analyze.append(save_path)
1062+ else:
1063+ analyze.append('%s(%s)'%(save_path,tweakname))
1064+ options['analyze']=','.join(analyze)
1065+ options['tweak'] = CMS_options['tweak'][0]
1066+
1067+ text += process_checks.output_complex_mass_scheme(
1068+ cms_result , output_path, options, self._curr_model) + '\n'
1069
1070 if comparisons and len(comparisons[0])>0:
1071 text += 'Process permutation results:\n'
1072@@ -4267,7 +4720,7 @@
1073 args[1].split('/')[-1].startswith('loop_qcd_qed_sm')) and\
1074 self.options['gauge']!='Feynman':
1075 logger.info('Switching to Feynman gauge because '+\
1076- 'it is the only one supported by the model loop_qcd_qed_sm.')
1077+ 'it is the only one supported by the model %s.'%args[1])
1078 self._curr_model = None
1079 self.do_set('gauge Feynman',log=False)
1080 prefix = not '--noprefix' in args
1081@@ -4277,7 +4730,8 @@
1082 aloha.aloha_prefix=''
1083
1084 try:
1085- self._curr_model = import_ufo.import_model(args[1], prefix=prefix)
1086+ self._curr_model = import_ufo.import_model(args[1], prefix=prefix,
1087+ complex_mass_scheme=self.options['complex_mass_scheme'])
1088 except import_ufo.UFOImportError, error:
1089 if 'not a valid UFO model' in str(error):
1090 logger_stderr.warning('WARNING: %s' % error)
1091@@ -4285,10 +4739,6 @@
1092 'automatically `import model_v4 %s` instead.'% args[1])
1093 self.exec_cmd('import model_v4 %s ' % args[1], precmd=True)
1094 return
1095- if self.options['complex_mass_scheme']:
1096- self._curr_model.change_mass_to_complex_scheme()
1097- if hasattr(self._curr_model, 'set_parameters_and_couplings'):
1098- self._curr_model.set_parameters_and_couplings()
1099 if self.options['gauge']=='unitary':
1100 if not force and isinstance(self._curr_model,\
1101 loop_base_objects.LoopModel) and \
1102@@ -5614,8 +6064,8 @@
1103 self.write_configuration(filepath, basefile, basedir, to_define)
1104
1105 # Set an option
1106- def do_set(self, line, log=True):
1107- """Set an option, which will be default for coming generations/outputs
1108+ def do_set(self, line, log=True, model_reload=True):
1109+ """Set an option, which will be default for coming generations/outputs.
1110 """
1111
1112 # Be careful:
1113@@ -5673,18 +6123,13 @@
1114 self.options[args[0]] = eval(args[1])
1115 aloha.complex_mass = eval(args[1])
1116 aloha_lib.KERNEL.clean()
1117- if not self._curr_model:
1118- pass
1119- elif self.options[args[0]]:
1120+ if self.options[args[0]]:
1121 if old:
1122 if log:
1123 logger.info('Complex mass already activated.')
1124 return
1125 if log:
1126 logger.info('Activate complex mass scheme.')
1127- self._curr_model.change_mass_to_complex_scheme()
1128- if hasattr(self._curr_model, 'set_parameters_and_couplings'):
1129- self._curr_model.set_parameters_and_couplings()
1130 else:
1131 if not old:
1132 if log:
1133@@ -5692,7 +6137,9 @@
1134 return
1135 if log:
1136 logger.info('Desactivate complex mass scheme.')
1137- self.exec_cmd('import model %s' % self._curr_model.get('name'))
1138+ if not self._curr_model:
1139+ return
1140+ self.exec_cmd('import model %s' % self._curr_model.get('name'))
1141
1142 elif args[0] == "gauge":
1143 # Treat the case where they are no model loaded
1144@@ -6484,8 +6931,7 @@
1145 else:
1146 self._curr_model = model
1147 self._curr_fortran_model = \
1148- helas_call_writers.FortranUFOHelasCallWriter(\
1149- self._curr_model)
1150+ helas_call_writers.FortranUFOHelasCallWriter(self._curr_model)
1151 if not isinstance(model, model_reader.ModelReader):
1152 model = model_reader.ModelReader(model)
1153
1154@@ -6857,7 +7303,7 @@
1155 self._generate_info = process[9:]
1156 #print self._generate_info
1157 else:
1158- print "No decay is found"
1159+ logger.info("No decay is found")
1160
1161 class MadGraphCmdWeb(CheckValidForCmdWeb, MadGraphCmd):
1162 """Temporary parser"""
1163
1164=== modified file 'madgraph/interface/reweight_interface.py'
1165--- madgraph/interface/reweight_interface.py 2015-03-25 01:19:54 +0000
1166+++ madgraph/interface/reweight_interface.py 2015-08-16 06:06:34 +0000
1167@@ -650,13 +650,11 @@
1168 model_path = name
1169
1170 # Import model
1171- base_model = import_ufo.import_model(name, decay=False)
1172-
1173-
1174+ base_model = import_ufo.import_model(name, decay=False,
1175+ complex_mass_scheme=complex_mass)
1176+
1177 if use_mg_default:
1178 base_model.pass_particles_name_in_mg_default()
1179- if complex_mass:
1180- base_model.change_mass_to_complex_scheme()
1181
1182 self.model = base_model
1183 self.mg5cmd._curr_model = self.model
1184
1185=== modified file 'madgraph/iolibs/export_v4.py'
1186--- madgraph/iolibs/export_v4.py 2015-08-05 17:00:28 +0000
1187+++ madgraph/iolibs/export_v4.py 2015-08-16 06:06:34 +0000
1188@@ -5536,11 +5536,11 @@
1189 # in Gmu scheme, aEWM1 is not external but Gf is an exteranl variable
1190 elif ('Gf',) in self.model['parameters']:
1191 if dp:
1192- fsock.writelines(""" gal(1) = 2.378414230005442133435d0*MDL_MW*MDL_SW*DSQRT(MDL_Gf)
1193+ fsock.writelines(""" gal(1) = 2.378414230005442133435d0*MDL_MW*DSQRT(1D0-MDL_MW**2/MDL_MZ**2)*DSQRT(MDL_Gf)
1194 gal(2) = 1d0
1195 """)
1196 elif mp:
1197- fsock.writelines(""" %(mp_prefix)sgal(1) = 2*MP__MDL_MW*MP__MDL_SW*SQRT(SQRT(2e0_16)*MP__MDL_Gf)
1198+ fsock.writelines(""" %(mp_prefix)sgal(1) = 2*MP__MDL_MW*SQRT(1e0_16-MP__MDL_MW**2/MP__MDL_MZ**2)*SQRT(SQRT(2e0_16)*MP__MDL_Gf)
1199 %(mp_prefix)sgal(2) = 1d0
1200 """ %{'mp_prefix':self.mp_prefix})
1201 pass
1202@@ -5747,11 +5747,17 @@
1203 fsock.writelines("""double complex cond
1204 double complex condif
1205 double complex reglog
1206+ double complex reglogp
1207+ double complex reglogm
1208+ double complex recms
1209 double complex arg""")
1210 if self.opt['mp']:
1211 fsock.writelines("""%(complex_mp_format)s mp_cond
1212 %(complex_mp_format)s mp_condif
1213 %(complex_mp_format)s mp_reglog
1214+ %(complex_mp_format)s mp_reglogp
1215+ %(complex_mp_format)s mp_reglogm
1216+ %(complex_mp_format)s mp_recms
1217 %(complex_mp_format)s mp_arg"""\
1218 %{'complex_mp_format':self.mp_complex_format})
1219
1220@@ -5782,9 +5788,22 @@
1221 condif=falsecase
1222 endif
1223 end
1224+
1225+ double complex function recms(condition,expr)
1226+ implicit none
1227+ logical condition
1228+ double complex expr
1229+ if(condition)then
1230+ recms=expr
1231+ else
1232+ recms=dcmplx(dble(expr))
1233+ endif
1234+ end
1235
1236 double complex function reglog(arg)
1237 implicit none
1238+ double complex TWOPII
1239+ parameter (TWOPII=2.0d0*3.1415926535897932d0*(0.0d0,1.0d0))
1240 double complex arg
1241 if(arg.eq.(0.0d0,0.0d0)) then
1242 reglog=(0.0d0,0.0d0)
1243@@ -5795,12 +5814,14 @@
1244
1245 double complex function reglogp(arg)
1246 implicit none
1247+ double complex TWOPII
1248+ parameter (TWOPII=2.0d0*3.1415926535897932d0*(0.0d0,1.0d0))
1249 double complex arg
1250 if(arg.eq.(0.0d0,0.0d0))then
1251 reglogp=(0.0d0,0.0d0)
1252 else
1253 if(dble(arg).lt.0.0d0.and.dimag(arg).lt.0.0d0)then
1254- reglogp=log(arg) + 2.0d0*3.1415926535897932d0*(0.0d0,1.0d0)
1255+ reglogp=log(arg) + TWOPII
1256 else
1257 reglogp=log(arg)
1258 endif
1259@@ -5809,18 +5830,20 @@
1260
1261 double complex function reglogm(arg)
1262 implicit none
1263+ double complex TWOPII
1264+ parameter (TWOPII=2.0d0*3.1415926535897932d0*(0.0d0,1.0d0))
1265 double complex arg
1266 if(arg.eq.(0.0d0,0.0d0))then
1267 reglogm=(0.0d0,0.0d0)
1268 else
1269 if(dble(arg).lt.0.0d0.and.dimag(arg).gt.0.0d0)then
1270- reglogm=log(arg) - 2.0d0*3.1415926535897932d0*(0.0d0,1.0d0)
1271+ reglogm=log(arg) - TWOPII
1272 else
1273 reglogm=log(arg)
1274 endif
1275 endif
1276 end
1277-
1278+
1279 double complex function arg(comnum)
1280 implicit none
1281 double complex comnum
1282@@ -5855,9 +5878,22 @@
1283 mp_condif=falsecase
1284 endif
1285 end
1286+
1287+ %(complex_mp_format)s function mp_recms(condition,expr)
1288+ implicit none
1289+ logical condition
1290+ %(complex_mp_format)s expr
1291+ if(condition)then
1292+ mp_recms=expr
1293+ else
1294+ mp_recms=cmplx(real(expr),kind=16)
1295+ endif
1296+ end
1297
1298 %(complex_mp_format)s function mp_reglog(arg)
1299 implicit none
1300+ %(complex_mp_format)s TWOPII
1301+ parameter (TWOPII=2.0e0_16*3.14169258478796109557151794433593750e0_16*(0.0e0_16,1.0e0_16))
1302 %(complex_mp_format)s arg
1303 if(arg.eq.(0.0e0_16,0.0e0_16)) then
1304 mp_reglog=(0.0e0_16,0.0e0_16)
1305@@ -5868,26 +5904,30 @@
1306
1307 %(complex_mp_format)s function mp_reglogp(arg)
1308 implicit none
1309+ %(complex_mp_format)s TWOPII
1310+ parameter (TWOPII=2.0e0_16*3.14169258478796109557151794433593750e0_16*(0.0e0_16,1.0e0_16))
1311 %(complex_mp_format)s arg
1312 if(arg.eq.(0.0e0_16,0.0e0_16))then
1313 mp_reglogp=(0.0e0_16,0.0e0_16)
1314 else
1315 if(real(arg,kind=16).lt.0.0e0_16.and.imagpart(arg).lt.0.0e0_16)then
1316- mp_reglogp=log(arg) + 2.0e0_16*3.14169258478796109557151794433593750e0_16*(0.0e0_16,1.0e0_16)
1317+ mp_reglogp=log(arg) + TWOPII
1318 else
1319 mp_reglogp=log(arg)
1320 endif
1321 endif
1322 end
1323-
1324+
1325 %(complex_mp_format)s function mp_reglogm(arg)
1326 implicit none
1327+ %(complex_mp_format)s TWOPII
1328+ parameter (TWOPII=2.0e0_16*3.14169258478796109557151794433593750e0_16*(0.0e0_16,1.0e0_16))
1329 %(complex_mp_format)s arg
1330 if(arg.eq.(0.0e0_16,0.0e0_16))then
1331 mp_reglogm=(0.0e0_16,0.0e0_16)
1332 else
1333 if(real(arg,kind=16).lt.0.0e0_16.and.imagpart(arg).gt.0.0e0_16)then
1334- mp_reglogm=log(arg) - 2.0e0_16*3.14169258478796109557151794433593750e0_16*(0.0e0_16,1.0e0_16)
1335+ mp_reglogm=log(arg) - TWOPII
1336 else
1337 mp_reglogm=log(arg)
1338 endif
1339@@ -5921,9 +5961,8 @@
1340 fsock.write_comment_line(' START UFO DEFINE FUNCTIONS ')
1341 for fct in ufo_fct:
1342 # already handle by default
1343- if fct.name not in ["complexconjugate", "re", "im", "sec",
1344- "csc", "asec", "acsc", "theta_function", "cond",
1345- "condif", "reglogp", "reglogm", "reglog", "arg"]:
1346+ if fct.name not in ["complexconjugate", "re", "im", "sec", "csc", "asec", "acsc", "condif",
1347+ "theta_function", "cond", "reglog", "reglogp", "reglogm", "recms","arg"]:
1348 ufo_fct_template = """
1349 double complex function %(name)s(%(args)s)
1350 implicit none
1351@@ -5943,9 +5982,8 @@
1352 fsock.write_comment_line(' START UFO DEFINE FUNCTIONS FOR MP')
1353 for fct in ufo_fct:
1354 # already handle by default
1355- if fct.name not in ["complexconjugate", "re", "im", "sec",
1356- "csc", "asec", "acsc", "theta_function", "cond",
1357- "condif", "reglogp", "reglogm", "reglog", "arg"]:
1358+ if fct.name not in ["complexconjugate", "re", "im", "sec", "csc", "asec", "acsc","condif",
1359+ "theta_function", "cond", "reglog", "reglogp","reglogm", "recms","arg"]:
1360 ufo_fct_template = """
1361 %(complex_mp_format)s function mp__%(name)s(mp__%(args)s)
1362 implicit none
1363
1364=== modified file 'madgraph/iolibs/template_files/loop/check_sa.inc'
1365--- madgraph/iolibs/template_files/loop/check_sa.inc 2015-06-18 08:24:43 +0000
1366+++ madgraph/iolibs/template_files/loop/check_sa.inc 2015-08-16 06:06:34 +0000
1367@@ -305,6 +305,7 @@
1368 write (69,'(a4,1x,1e25.15)') '1EPS',MATELEM(2,0)/AO2PI
1369 write (69,'(a4,1x,1e25.15)') '2EPS',MATELEM(3,0)/AO2PI
1370 ENDIF
1371+ write (69,'(a6,1x,1e25.15)') 'ASO2PI',AO2PI
1372 write (69,*) 'Export_Format Default'
1373 write (69,'(a7,1x,i3)') 'RETCODE',RETURNCODE
1374 write (69,'(a3,1x,1e10.4)') 'ACC',PREC_FOUND(0)
1375
1376=== modified file 'madgraph/iolibs/template_files/loop/check_sa_loop_induced.inc'
1377--- madgraph/iolibs/template_files/loop/check_sa_loop_induced.inc 2015-06-18 08:24:43 +0000
1378+++ madgraph/iolibs/template_files/loop/check_sa_loop_induced.inc 2015-08-16 06:06:34 +0000
1379@@ -265,6 +265,7 @@
1380 write (69,'(a3,1x,1e25.15)') 'FIN',MATELEM(1,0)
1381 write (69,'(a4,1x,1e25.15)') '1EPS',MATELEM(2,0)
1382 write (69,'(a4,1x,1e25.15)') '2EPS',MATELEM(3,0)
1383+ write (69,'(a6,1x,1e25.15)') 'ASO2PI',AO2PI
1384 write (69,*) 'Export_Format LoopInduced'
1385 write (69,'(a7,1x,i3)') 'RETCODE',RETURNCODE
1386 write (69,'(a3,1x,1e10.4)') 'ACC',PREC_FOUND(0)
1387
1388=== modified file 'madgraph/iolibs/ufo_expression_parsers.py'
1389--- madgraph/iolibs/ufo_expression_parsers.py 2015-08-04 14:28:22 +0000
1390+++ madgraph/iolibs/ufo_expression_parsers.py 2015-08-16 06:06:34 +0000
1391@@ -65,7 +65,7 @@
1392 tokens = (
1393 'LOGICAL','LOGICALCOMB','POWER', 'CSC', 'SEC', 'ACSC', 'ASEC', 'TAN',
1394 'SQRT', 'CONJ', 'RE', 'RE2', 'IM', 'PI', 'COMPLEX', 'FUNCTION', 'IF','ELSE',
1395- 'VARIABLE', 'NUMBER','COND','REGLOG', 'ARG'
1396+ 'VARIABLE', 'NUMBER','COND','REGLOG', 'REGLOGP', 'REGLOGM','RECMS','ARG'
1397 )
1398 literals = "=+-*/(),"
1399
1400@@ -89,6 +89,15 @@
1401 def t_REGLOG(self, t):
1402 r'(?<!\w)reglog(?=\()'
1403 return t
1404+ def t_REGLOGP(self, t):
1405+ r'(?<!\w)reglogp(?=\()'
1406+ return t
1407+ def t_REGLOGM(self, t):
1408+ r'(?<!\w)reglogm(?=\()'
1409+ return t
1410+ def t_RECMS(self, t):
1411+ r'(?<!\w)recms(?=\()'
1412+ return t
1413 def t_COND(self, t):
1414 r'(?<!\w)cond(?=\()'
1415 return t
1416@@ -169,6 +178,9 @@
1417 ('right','UMINUS'),
1418 ('left','POWER'),
1419 ('right','REGLOG'),
1420+ ('right','REGLOGP'),
1421+ ('right','REGLOGM'),
1422+ ('right','RECMS'),
1423 ('right','ARG'),
1424 ('right','CSC'),
1425 ('right','SEC'),
1426@@ -302,6 +314,10 @@
1427 "expression : COND '(' expression ',' expression ',' expression ')'"
1428 p[0] = 'COND(DCMPLX('+p[3]+'),DCMPLX('+p[5]+'),DCMPLX('+p[7]+'))'
1429
1430+ def p_expression_recms(self, p):
1431+ "expression : RECMS '(' boolexpression ',' expression ')'"
1432+ p[0] = 'RECMS('+p[3]+',DCMPLX('+p[5]+'))'
1433+
1434 def p_expression_complex(self, p):
1435 "expression : COMPLEX '(' expression ',' expression ')'"
1436 p[0] = 'DCMPLX(' + p[3] + ',' + p[5] + ')'
1437@@ -313,10 +329,12 @@
1438 | ASEC group
1439 | RE group
1440 | IM group
1441- | ARG group
1442+ | ARG group
1443 | SQRT group
1444 | CONJ group
1445 | REGLOG group
1446+ | REGLOGP group
1447+ | REGLOGM group
1448 | TAN group'''
1449
1450 if p[1] == 'csc': p[0] = '1d0/cos' + p[2]
1451@@ -330,6 +348,8 @@
1452 elif p[1] == 'cmath.sqrt' or p[1] == 'sqrt': p[0] = 'sqrt(dcmplx' + p[2]+')'
1453 elif p[1] == 'complexconjugate': p[0] = 'conjg(DCMPLX' + p[2]+')'
1454 elif p[1] == 'reglog': p[0] = 'reglog(DCMPLX' + p[2] +')'
1455+ elif p[1] == 'reglogp': p[0] = 'reglogp(DCMPLX' + p[2] + ')'
1456+ elif p[1] == 'reglogm': p[0] = 'reglogm(DCMPLX' + p[2] + ')'
1457
1458
1459 def p_expression_real(self, p):
1460@@ -403,6 +423,10 @@
1461 p[0] = 'MP_COND(CMPLX('+p[3]+',KIND=16),CMPLX('+p[5]+\
1462 ',KIND=16),CMPLX('+p[7]+',KIND=16))'
1463
1464+ def p_expression_recms(self, p):
1465+ "expression : RECMS '(' boolexpression ',' expression ')'"
1466+ p[0] = 'MP_RECMS('+p[3]+',CMPLX('+p[5]+',KIND=16))'
1467+
1468 def p_expression_func(self, p):
1469 '''expression : CSC group
1470 | SEC group
1471@@ -410,11 +434,14 @@
1472 | ASEC group
1473 | RE group
1474 | IM group
1475- | ARG group
1476+ | ARG group
1477 | SQRT group
1478 | CONJ group
1479- | TAN group
1480- | REGLOG group'''
1481+ | REGLOG group
1482+ | REGLOGP group
1483+ | REGLOGM group
1484+ | TAN group'''
1485+
1486 if p[1] == 'csc': p[0] = '1e0_16/cos' + p[2]
1487 elif p[1] == 'sec': p[0] = '1e0_16/sin' + p[2]
1488 elif p[1] == 'acsc': p[0] = 'asin(1e0_16/' + p[2] + ')'
1489@@ -426,6 +453,8 @@
1490 elif p[1] == 'cmath.sqrt' or p[1] == 'sqrt': p[0] = 'sqrt(CMPLX(' + p[2] + ',KIND=16))'
1491 elif p[1] == 'complexconjugate': p[0] = 'conjg(CMPLX(' + p[2] + ',KIND=16))'
1492 elif p[1] == 'reglog': p[0] = 'mp_reglog(CMPLX(' + p[2] +',KIND=16))'
1493+ elif p[1] == 'reglogp': p[0] = 'mp_reglogp(CMPLX(' + p[2] + ',KIND=16))'
1494+ elif p[1] == 'reglogm': p[0] = 'mp_reglogm(CMPLX(' + p[2] + ',KIND=16))'
1495
1496 def p_expression_real(self, p):
1497 ''' expression : expression RE2 '''
1498@@ -492,6 +521,10 @@
1499 "expression : COND '(' expression ',' expression ',' expression ')'"
1500 p[0] = 'COND('+p[3]+','+p[5]+','+p[7]+')'
1501
1502+ def p_expression_recms(self, p):
1503+ "expression : RECMS '(' boolexpression ',' expression ')'"
1504+ p[0] = 'RECMS('+p[3]+','+p[5]+')'
1505+
1506 def p_expression_power(self, p):
1507 'expression : expression POWER expression'
1508 p1=p[1]
1509@@ -514,10 +547,12 @@
1510 | TAN group
1511 | RE group
1512 | IM group
1513- | ARG group
1514+ | ARG group
1515 | SQRT group
1516 | CONJ group
1517- | REGLOG group '''
1518+ | REGLOG group
1519+ | REGLOGP group
1520+ | REGLOGM group'''
1521 if p[1] == 'csc': p[0] = '1./cos' + p[2]
1522 elif p[1] == 'sec': p[0] = '1./sin' + p[2]
1523 elif p[1] == 'acsc': p[0] = 'asin(1./' + p[2] + ')'
1524@@ -529,6 +564,8 @@
1525 elif p[1] == 'cmath.sqrt' or p[1] == 'sqrt': p[0] = 'sqrt' + p[2]
1526 elif p[1] == 'complexconjugate': p[0] = 'conj' + p[2]
1527 elif p[1] == 'reglog': p[0] = 'reglog' + p[2]
1528+ elif p[1] == 'reglogp': p[0] = 'reglogp' + p[2]
1529+ elif p[1] == 'reglogm': p[0] = 'reglogm' + p[2]
1530
1531 def p_expression_real(self, p):
1532 ''' expression : expression RE2 '''
1533@@ -652,6 +689,10 @@
1534 "expression : COMPLEX '(' expression ',' expression ')'"
1535 p[0] = 'complex(' + p[3] + ',' + p[5] + ')'
1536
1537+ def p_expression_recms(self, p):
1538+ "expression : RECMS '(' boolexpression ',' expression ')'"
1539+ p[0] = 'recms('+p[3]+','+p[5]+')'
1540+
1541 def p_expression_func(self, p):
1542 '''expression : CSC group
1543 | SEC group
1544@@ -663,7 +704,9 @@
1545 | SQRT group
1546 | TAN group
1547 | CONJ group
1548- | REGLOG group'''
1549+ | REGLOG group
1550+ | REGLOGP group
1551+ | REGLOGM group'''
1552 if p[1] == 'csc': p[0] = 'csc' + p[2]
1553 elif p[1] == 'sec': p[0] = 'sec' + p[2]
1554 elif p[1] == 'acsc': p[0] = 'acsc' + p[2]
1555@@ -675,6 +718,8 @@
1556 elif p[1] == 'cmath.sqrt' or p[1] == 'sqrt': p[0] = 'cmath.sqrt' + p[2]
1557 elif p[1] == 'complexconjugate': p[0] = 'complexconjugate' + p[2]
1558 elif p[1] == 'reglog': p[0] = 'reglog' + p[2]
1559+ elif p[1] == 'reglogp': p[0] = 'reglogp' + p[2]
1560+ elif p[1] == 'reglogm': p[0] = 'reglogm' + p[2]
1561
1562 def p_expression_real(self, p):
1563 ''' expression : expression RE2 '''
1564
1565=== modified file 'madgraph/loop/loop_diagram_generation.py'
1566--- madgraph/loop/loop_diagram_generation.py 2015-04-03 01:23:08 +0000
1567+++ madgraph/loop/loop_diagram_generation.py 2015-08-16 06:06:34 +0000
1568@@ -74,13 +74,13 @@
1569 # subsequent diagram generation runs.
1570 self.lcutpartemployed=[]
1571
1572- def __init__(self, argument=None):
1573+ def __init__(self, argument=None, loop_filter=None):
1574 """Allow initialization with Process"""
1575
1576 if isinstance(argument, base_objects.Process):
1577 super(LoopAmplitude, self).__init__()
1578 self.set('process', argument)
1579- self.generate_diagrams()
1580+ self.generate_diagrams(loop_filter=loop_filter)
1581 elif argument != None:
1582 # call the mother routine
1583 super(LoopAmplitude, self).__init__(argument)
1584@@ -345,17 +345,49 @@
1585 logger.debug(("MadLoop discarded %i diagram%s because they appeared"+\
1586 " to be zero because of Furry theorem.")%(n_discarded,'' if \
1587 n_discarded<=1 else 's'))
1588-
1589- def user_filter(self, model, structs):
1590+
1591+ @staticmethod
1592+ def get_loop_filter(filterdef):
1593+ """ Returns a function which applies the filter corresponding to the
1594+ conditional expression encoded in filterdef."""
1595+
1596+ def filter(diag, structs, model, id):
1597+ """ The filter function generated '%s'."""%filterdef
1598+
1599+ loop_pdgs = diag.get_loop_lines_pdgs()
1600+ struct_pdgs = diag.get_pdgs_attached_to_loop(structs)
1601+ loop_masses = [model.get_particle(pdg).get('mass') for pdg in loop_pdgs]
1602+ struct_masses = [model.get_particle(pdg).get('mass') for pdg in struct_pdgs]
1603+ if not eval(filterdef.lower(),{'n':len(loop_pdgs),
1604+ 'loop_pdgs':loop_pdgs,
1605+ 'struct_pdgs':struct_pdgs,
1606+ 'loop_masses':loop_masses,
1607+ 'struct_masses':struct_masses,
1608+ 'id':id}):
1609+ return False
1610+ else:
1611+ return True
1612+
1613+ return filter
1614+
1615+ def user_filter(self, model, structs, filter=None):
1616 """ User-defined user-filter. By default it is not called, but the expert
1617 user can turn it on and code here is own filter. Some default examples
1618 are provided here.
1619 The tagging of the loop diagrams must be performed before using this
1620 user loop filter"""
1621
1622- # By default the user filter does nothing, if you want to turn it on
1623- # and edit it then remove the print statement below.
1624- return
1625+ # By default the user filter does nothing if filter is not set,
1626+ # if you want to turn it on and edit it by hand, then set the
1627+ # variable edit_filter_manually to True
1628+ edit_filter_manually = False
1629+ if not edit_filter_manually and filter in [None,'None']:
1630+ return
1631+
1632+ if filter not in [None,'None']:
1633+ filter_func = LoopAmplitude.get_loop_filter(filter)
1634+ else:
1635+ filter_func = None
1636
1637 new_diag_selection = base_objects.DiagramList()
1638 discarded_diags = base_objects.DiagramList()
1639@@ -366,6 +398,14 @@
1640 "make sure that the loop diagrams have been tagged first."
1641 valid_diag = True
1642 i=i+1
1643+
1644+ # Apply the custom filter specified if any
1645+ if filter_func:
1646+ try:
1647+ valid_diag = filter_func(diag, structs, model, i)
1648+ except Exception as e:
1649+ raise InvalidCmd("The user-defined filter '%s' did not"%filter+
1650+ " returned the following error:\n > %s"%str(e))
1651 # if any([abs(i)!=1000021 for i in diag.get_loop_lines_pdgs()]):
1652 # valid_diag=False
1653
1654@@ -427,9 +467,14 @@
1655 discarded_diags.append(diag)
1656
1657 self['loop_diagrams'] = new_diag_selection
1658- warn_msg = """
1659+ if filter in [None,'None']:
1660+ warn_msg = """
1661 The user-defined loop diagrams filter is turned on and discarded %d loops."""\
1662 %len(discarded_diags)
1663+ else:
1664+ warn_msg = """
1665+ The loop diagrams filter '%s' is turned on and discarded %d loops."""\
1666+ %(filter,len(discarded_diags))
1667 logger.warning(warn_msg)
1668
1669 def filter_loop_for_perturbative_orders(self):
1670@@ -531,7 +576,7 @@
1671 res.append('%s=*'%order)
1672 return ','.join(res)
1673
1674- def generate_diagrams(self):
1675+ def generate_diagrams(self, loop_filter=None):
1676 """ Generates all diagrams relevant to this Loop Process """
1677
1678 # Description of the algorithm to guess the leading contribution.
1679@@ -808,7 +853,7 @@
1680 # For expert only, you can edit your own filter by modifying the
1681 # user_filter() function which by default does nothing but in which you
1682 # will find examples of common filters.
1683- self.user_filter(model,self['structure_repository'])
1684+ self.user_filter(model,self['structure_repository'], filter=loop_filter)
1685
1686 # Now revert the squared order. This function typically adds to the
1687 # squared order list the target WEIGHTED order which has been detected.
1688
1689=== modified file 'madgraph/various/lhe_parser.py'
1690--- madgraph/various/lhe_parser.py 2015-08-03 16:13:26 +0000
1691+++ madgraph/various/lhe_parser.py 2015-08-16 06:06:34 +0000
1692@@ -219,8 +219,7 @@
1693 self.len = nb_event
1694 self.seek(init_pos)
1695 return self.len
1696-
1697-
1698+
1699 def next(self):
1700 """get next event"""
1701 text = ''
1702
1703=== modified file 'madgraph/various/process_checks.py'
1704--- madgraph/various/process_checks.py 2015-05-08 23:38:18 +0000
1705+++ madgraph/various/process_checks.py 2015-08-16 06:06:34 +0000
1706@@ -36,6 +36,7 @@
1707 import time
1708 import datetime
1709 import errno
1710+import pickle
1711 # If psutil becomes standard, the RAM check can be performed with it instead
1712 #import psutil
1713
1714@@ -47,6 +48,7 @@
1715 import madgraph.iolibs.helas_call_writers as helas_call_writers
1716 import models.import_ufo as import_ufo
1717 import madgraph.iolibs.save_load_object as save_load_object
1718+import madgraph.iolibs.file_writers as writers
1719
1720 import madgraph.core.base_objects as base_objects
1721 import madgraph.core.color_algebra as color
1722@@ -58,17 +60,20 @@
1723 import madgraph.various.misc as misc
1724 import madgraph.various.progressbar as pbar
1725 import madgraph.various.banner as bannermod
1726+import madgraph.various.progressbar as pbar
1727
1728 import madgraph.loop.loop_diagram_generation as loop_diagram_generation
1729 import madgraph.loop.loop_helas_objects as loop_helas_objects
1730 import madgraph.loop.loop_base_objects as loop_base_objects
1731+import models.check_param_card as check_param_card
1732
1733 from madgraph.interface.madevent_interface import MadLoopInitializer
1734-
1735+from madgraph.interface.common_run_interface import AskforEditCard
1736 from madgraph import MG5DIR, InvalidCmd, MadGraph5Error
1737
1738 from madgraph.iolibs.files import cp
1739
1740+import StringIO
1741 import models.model_reader as model_reader
1742 import aloha.template_files.wavefunctions as wavefunctions
1743 from aloha.template_files.wavefunctions import \
1744@@ -170,7 +175,8 @@
1745 except MadGraph5Error:
1746 if isinstance(param_card, (str,file)):
1747 raise
1748- logger.warning('param_card present in the event file not compatible. We will use the default one.')
1749+ logger.warning('param_card present in the event file not compatible.'+
1750+ ' We will use the default one.')
1751 self.full_model.set_parameters_and_couplings()
1752
1753 self.auth_skipping = auth_skipping
1754@@ -288,11 +294,10 @@
1755 # Export the matrix element to Python calls
1756 exporter = export_python.ProcessExporterPython(matrix_element,
1757 self.helas_writer)
1758-
1759 try:
1760 matrix_methods = exporter.get_python_matrix_methods(\
1761 gauge_check=gauge_check)
1762- # print "I got matrix_methods=",str(matrix_methods.items()[0][1])
1763+# print "I got matrix_methods=",str(matrix_methods.items()[0][1])
1764 except helas_call_writers.HelasWriterError, error:
1765 logger.info(error)
1766 return None
1767@@ -317,14 +322,52 @@
1768 m2 = data.smatrix(p,self.full_model)
1769 return {'m2': m2, output:getattr(data, output)}
1770
1771+ @staticmethod
1772+ def pass_isolation_cuts(pmoms, ptcut=50.0, drcut=0.5):
1773+ """ Check whether the specified kinematic point passes isolation cuts
1774+ """
1775+
1776+ def Pt(pmom):
1777+ """ Computes the pt of a 4-momentum"""
1778+ return math.sqrt(pmom[1]**2+pmom[2]**2)
1779+
1780+ def DeltaR(p1,p2):
1781+ """ Computes the DeltaR between two 4-momenta"""
1782+ # First compute pseudo-rapidities
1783+ p1_vec=math.sqrt(p1[1]**2+p1[2]**2+p1[3]**2)
1784+ p2_vec=math.sqrt(p2[1]**2+p2[2]**2+p2[3]**2)
1785+ eta1=0.5*math.log((p1_vec+p1[3])/(p1_vec-p1[3]))
1786+ eta2=0.5*math.log((p2_vec+p2[3])/(p2_vec-p2[3]))
1787+ # Then azimutal angle phi
1788+ phi1=math.atan2(p1[2],p1[1])
1789+ phi2=math.atan2(p2[2],p2[1])
1790+ dphi=abs(phi2-phi1)
1791+ # Take the wraparound factor into account
1792+ dphi=abs(abs(dphi-math.pi)-math.pi)
1793+ # Now return deltaR
1794+ return math.sqrt(dphi**2+(eta2-eta1)**2)
1795+
1796+ for i, pmom in enumerate(pmoms[2:]):
1797+ # Pt > 50 GeV
1798+ if Pt(pmom)<ptcut:
1799+ return False
1800+ # Delta_R ij > 0.5
1801+ for pmom2 in pmoms[3+i:]:
1802+ if DeltaR(pmom,pmom2)<drcut:
1803+ return False
1804+ return True
1805+
1806 #===============================================================================
1807 # Helper function get_momenta
1808 #===============================================================================
1809- def get_momenta(self, process, options=None):
1810+ def get_momenta(self, process, options=None, special_mass=None):
1811 """Get a point in phase space for the external states in the given
1812 process, with the CM energy given. The incoming particles are
1813 assumed to be oriented along the z axis, with particle 1 along the
1814- positive z axis."""
1815+ positive z axis.
1816+ For the CMS check, one must be able to chose the mass of the special
1817+ resonance particle with id = -1, and the special_mass option allows
1818+ to specify it."""
1819
1820 if not options:
1821 energy=1000
1822@@ -340,7 +383,7 @@
1823
1824
1825 sorted_legs = sorted(process.get('legs'), lambda l1, l2:\
1826- l1.get('number') - l2.get('number'))
1827+ l1.get('number') - l2.get('number'))
1828
1829 # If an events file is given use it for getting the momentum
1830 if events:
1831@@ -371,17 +414,33 @@
1832 nfinal = len(sorted_legs) - nincoming
1833
1834 # Find masses of particles
1835- mass_strings = [self.full_model.get_particle(l.get('id')).get('mass') \
1836- for l in sorted_legs]
1837- mass = [self.full_model.get('parameter_dict')[m] for m in mass_strings]
1838- mass = [m.real for m in mass]
1839+ mass = []
1840+ for l in sorted_legs:
1841+ if l.get('id') != 0:
1842+ mass_string = self.full_model.get_particle(l.get('id')).get('mass')
1843+ mass.append(self.full_model.get('parameter_dict')[mass_string].real)
1844+ else:
1845+ if isinstance(special_mass, float):
1846+ mass.append(special_mass)
1847+ else:
1848+ raise Exception, "A 'special_mass' option must be specified"+\
1849+ " in get_momenta when a leg with id=-10 is present (for CMS check)"
1850 #mass = [math.sqrt(m.real) for m in mass]
1851
1852
1853
1854- # Make sure energy is large enough for incoming and outgoing particles
1855- energy = max(energy, sum(mass[:nincoming]) + 200.,
1856- sum(mass[nincoming:]) + 200.)
1857+ # Make sure energy is large enough for incoming and outgoing particles,
1858+# # Keep the special_mass case separate to be sure that nothing interferes
1859+# # with the regular usage of get_momenta.
1860+# if not (any(l.get('id')==0 for l in sorted_legs) and \
1861+# isinstance(special_mass, float)):
1862+ energy = max(energy, sum(mass[:nincoming])*1.2,sum(mass[nincoming:])*1.2)
1863+# else:
1864+# incoming_mass = sum([mass[i] for i, leg in enumerate(sorted_legs) \
1865+# if leg.get('state') == False and leg.get('id')!=0])
1866+# outcoming_mass = sum([mass[i] for i, leg in enumerate(sorted_legs) \
1867+# if leg.get('state') == True and leg.get('id')!=0])
1868+# energy = max(energy, incoming_mass*1.2, outcoming_mass*1.2)
1869
1870 if nfinal == 1:
1871 p = []
1872@@ -400,12 +459,9 @@
1873 masses[i+1] = mass[nincoming + i]
1874
1875 if nincoming == 1:
1876-
1877 # Momenta for the incoming particle
1878 p.append([abs(m1), 0., 0., 0.])
1879-
1880 p_rambo, w_rambo = rambo.RAMBO(nfinal, abs(m1), masses)
1881-
1882 # Reorder momenta from px,py,pz,E to E,px,py,pz scheme
1883 for i in range(1, nfinal+1):
1884 momi = [p_rambo[(4,i)], p_rambo[(1,i)],
1885@@ -451,6 +507,7 @@
1886 #===============================================================================
1887 # Helper class LoopMatrixElementEvaluator
1888 #===============================================================================
1889+
1890 class LoopMatrixElementEvaluator(MatrixElementEvaluator):
1891 """Class taking care of matrix element evaluation for loop processes."""
1892
1893@@ -652,16 +709,16 @@
1894 raise Exception, 'The MadLoop options %s specified in function'%key+\
1895 ' fix_MadLoopParamCard does not correspond to an option defined'+\
1896 ' MadLoop nor is it specially handled in this function.'
1897-
1898- MLCard.set('CTModeRun',mode)
1899- MLCard.set('CTModeInit',mode)
1900+ if not mode is None:
1901+ MLCard.set('CTModeRun',mode)
1902+ MLCard.set('CTModeInit',mode)
1903 MLCard.set('UseLoopFilter',loop_filter)
1904 MLCard.set('DoubleCheckHelicityFilter',DoubleCheckHelicityFilter)
1905 MLCard.write(pjoin(dir_name,os.pardir,'SubProcesses','MadLoopParams.dat'))
1906
1907 @classmethod
1908- def get_me_value(cls, proc, proc_id, working_dir, PSpoint=[], \
1909- PS_name = None, verbose=True):
1910+ def get_me_value(cls, proc, proc_id, working_dir, PSpoint=[], PS_name = None,
1911+ verbose=True, format='tuple', skip_compilation=False):
1912 """Compile and run ./check, then parse the output and return the result
1913 for process with id = proc_id and PSpoint if specified.
1914 If PS_name is not none the written out PS.input will be saved in
1915@@ -684,23 +741,24 @@
1916 if verbose: logging.debug("Working on process %s in dir %s" % (proc, shell_name))
1917
1918 dir_name = pjoin(working_dir, 'SubProcesses', shell_name)
1919- # Make sure to recreate the executable and modified sources
1920- if os.path.isfile(pjoin(dir_name,'check')):
1921- os.remove(pjoin(dir_name,'check'))
1922- try:
1923- os.remove(pjoin(dir_name,'check_sa.o'))
1924- os.remove(pjoin(dir_name,'loop_matrix.o'))
1925- except OSError:
1926- pass
1927- # Now run make
1928- devnull = open(os.devnull, 'w')
1929- retcode = subprocess.call(['make','check'],
1930- cwd=dir_name, stdout=devnull, stderr=devnull)
1931- devnull.close()
1932-
1933- if retcode != 0:
1934- logging.info("Error while executing make in %s" % shell_name)
1935- return ((0.0, 0.0, 0.0, 0.0, 0), [])
1936+ if not skip_compilation:
1937+ # Make sure to recreate the executable and modified sources
1938+ if os.path.isfile(pjoin(dir_name,'check')):
1939+ os.remove(pjoin(dir_name,'check'))
1940+ try:
1941+ os.remove(pjoin(dir_name,'check_sa.o'))
1942+ os.remove(pjoin(dir_name,'loop_matrix.o'))
1943+ except OSError:
1944+ pass
1945+ # Now run make
1946+ devnull = open(os.devnull, 'w')
1947+ retcode = subprocess.call(['make','check'],
1948+ cwd=dir_name, stdout=devnull, stderr=devnull)
1949+ devnull.close()
1950+
1951+ if retcode != 0:
1952+ logging.info("Error while executing make in %s" % shell_name)
1953+ return ((0.0, 0.0, 0.0, 0.0, 0), [])
1954
1955 # If a PS point is specified, write out the corresponding PS.input
1956 if PSpoint:
1957@@ -719,7 +777,7 @@
1958 output.close()
1959 if os.path.exists(pjoin(dir_name,'result.dat')):
1960 return cls.parse_check_output(file(pjoin(dir_name,\
1961- 'result.dat')),format='tuple')
1962+ 'result.dat')),format=format)
1963 else:
1964 logging.warning("Error while looking for file %s"%str(os.path\
1965 .join(dir_name,'result.dat')))
1966@@ -767,6 +825,8 @@
1967 continue
1968 elif splitline[0]=='PS':
1969 res_p.append([float(s) for s in splitline[1:]])
1970+ elif splitline[0]=='ASO2PI':
1971+ res_dict['alphaS_over_2pi']=float(splitline[1])
1972 elif splitline[0]=='BORN':
1973 res_dict['born']=float(splitline[1])
1974 elif splitline[0]=='FIN':
1975@@ -809,6 +869,122 @@
1976 else:
1977 return res_dict
1978
1979+ @staticmethod
1980+ def apply_log_tweak(proc_path, mode):
1981+ """ Changes the file model_functions.f in the SOURCE of the process output
1982+ so as to change how logarithms are analytically continued and see how
1983+ it impacts the CMS check."""
1984+ valid_modes = ['default','recompile']
1985+ if not (mode in valid_modes or (isinstance(mode, list) and
1986+ len(mode)==2 and all(m in ['logp','logm','log'] for m in mode))):
1987+ raise MadGraph5Error("Mode '%s' not reckonized"%mode+
1988+ " in function apply_log_tweak.")
1989+
1990+ model_path = pjoin(proc_path,'Source','MODEL')
1991+ directories = glob.glob(pjoin(proc_path,'SubProcesses','P0_*'))
1992+ if directories and os.path.isdir(directories[0]):
1993+ exe_path = directories[0]
1994+ else:
1995+ raise MadGraph5Error, 'Could not find a process executable '+\
1996+ 'directory in %s'%proc_dir
1997+ bu_path = pjoin(model_path, 'model_functions.f__backUp__')
1998+
1999+ if mode=='default':
2000+ # Restore the default source file model_function.f
2001+ if not os.path.isfile(bu_path):
2002+ raise MadGraph5Error, 'Back up file %s could not be found.'%bu_path
2003+ shutil.move(bu_path, pjoin(model_path, 'model_functions.f'))
2004+ return
2005+
2006+ if mode=='recompile':
2007+ try:
2008+ os.remove(pjoin(model_path,'model_functions.o'))
2009+ os.remove(pjoin(proc_path,'lib','libmodel.a'))
2010+ except:
2011+ pass
2012+ misc.compile(cwd=model_path)
2013+ # Remove the executable to insure proper recompilation
2014+ try:
2015+ os.remove(pjoin(exe_path,'check'))
2016+ except:
2017+ pass
2018+ misc.compile(arg=['check'], cwd=exe_path)
2019+ return
2020+
2021+ if mode[0]==mode[1]:
2022+ return
2023+
2024+ # Now change the logs
2025+ mp_prefix = 'MP_'
2026+ target_line = 'FUNCTION %%sREG%s(ARG)'%mode[0].lower()
2027+
2028+ # Make sure to create a backup
2029+ if not os.path.isfile(bu_path):
2030+ shutil.copy(pjoin(model_path, 'model_functions.f'), bu_path)
2031+ model_functions = open(pjoin(model_path,'model_functions.f'),'r')
2032+
2033+ new_model_functions = []
2034+ has_replaced = False
2035+ just_replaced = False
2036+ find_one_replacement= False
2037+ mp_mode = None
2038+ suffix = {'log':'','logp':r'\s*\+\s*TWOPII','logm':r'\s*\-\s*TWOPII'}
2039+ replace_regex=r'^\s*%%sREG%s\s*=\s*LOG\(ARG\)%s'%(mode[0],suffix[mode[0]])
2040+ for line in model_functions:
2041+ # Make sure to skip split lines after the replacement
2042+ if just_replaced:
2043+ if not re.match(r'\s{6}', line):
2044+ continue
2045+ else:
2046+ just_replaced = False
2047+ if mp_mode is None:
2048+ # We are looking for the start of the function
2049+ new_model_functions.append(line)
2050+ if (target_line%mp_prefix).lower() in line.lower():
2051+ mp_mode = mp_prefix
2052+ elif (target_line%'').lower() in line.lower():
2053+ mp_mode = ''
2054+ else:
2055+ # Now apply the substitution
2056+ if not has_replaced and re.match(replace_regex%mp_mode,line,
2057+ re.IGNORECASE):
2058+ # Apply the replacement
2059+ if mode[0]=='log':
2060+ if mp_mode=='':
2061+ new_line =\
2062+""" if(dble(arg).lt.0.0d0.and.dimag(arg).gt.0.0d0)then
2063+ reg%s=log(arg) %s TWOPII
2064+ else
2065+ reg%s=log(arg)
2066+ endif\n"""%(mode[0],'+' if mode[1]=='logp' else '-',mode[0])
2067+ else:
2068+ new_line =\
2069+""" if(real(arg,kind=16).lt.0.0e0_16.and.imagpart(arg).lt.0.0e0_16)then
2070+ mp_reg%s=log(arg) %s TWOPII
2071+ else
2072+ mp_reg%s=log(arg)
2073+ endif\n"""%(mode[0],'+' if mode[1]=='logp' else '-',mode[0])
2074+ else:
2075+ new_line = ' '*6+"%sreg%s=log(arg) %s\n"%(mp_mode,mode[0],
2076+ ('' if mode[1]=='log' else ('+TWOPII' if mode[1]=='logp' else '-TWOPII')))
2077+ new_model_functions.append(new_line)
2078+ just_replaced = True
2079+ has_replaced = True
2080+ find_one_replacement = True
2081+ else:
2082+ new_model_functions.append(line)
2083+ if re.match(r'^\s*END\s*$',line,re.IGNORECASE):
2084+ mp_mode = None
2085+ has_replaced = False
2086+
2087+ if not find_one_replacement:
2088+ logger.warning('No replacement was found/performed for token '+
2089+ "'%s->%s'."%(mode[0],mode[1]))
2090+ else:
2091+ open(pjoin(model_path,'model_functions.f'),'w').\
2092+ write(''.join(new_model_functions))
2093+ return
2094+
2095 def setup_ward_check(self, working_dir, file_names, mp = False):
2096 """ Modify loop_matrix.f so to have one external massless gauge boson
2097 polarization vector turned into its momentum. It is not a pretty and
2098@@ -924,7 +1100,7 @@
2099 file.close()
2100
2101 def setup_process(self, matrix_element, export_dir, reusing = False,
2102- param_card = None,MLOptions={},clean=True):
2103+ param_card = None, MLOptions={},clean=True):
2104 """ Output the matrix_element in argument and perform the initialization
2105 while providing some details about the output in the dictionary returned.
2106 Returns None if anything fails"""
2107@@ -993,8 +1169,8 @@
2108 else:
2109 param_card.write(pjoin(export_dir,'Cards','param_card.dat'))
2110
2111- # First Initialize filters (in later versions where this will be done
2112- # at generation time, it can be skipped)
2113+ # First Initialize filters (in later versions where this will hopefully
2114+ # be done at generation time, then it will be able to skip it)
2115 MadLoopInitializer.fix_PSPoint_in_check(pjoin(export_dir,'SubProcesses'),
2116 read_ps = False, npoints = 4)
2117 self.fix_MadLoopParamCard(pjoin(export_dir,'Cards'),
2118@@ -1225,45 +1401,16 @@
2119 raise MadGraph5Error("Rotation id %i not implemented"%rotation)
2120
2121 return '\n'.join([' '.join(['%.16E'%pi for pi in p]) for p in p_out])
2122-
2123+
2124 def pick_PS_point(proc, options):
2125 """ Randomly generate a PS point and make sure it is eligible. Then
2126 return it. Users can edit the cuts here if they want."""
2127- def Pt(pmom):
2128- """ Computes the pt of a 4-momentum"""
2129- return math.sqrt(pmom[1]**2+pmom[2]**2)
2130- def DeltaR(p1,p2):
2131- """ Computes the DeltaR between two 4-momenta"""
2132- # First compute pseudo-rapidities
2133- p1_vec=math.sqrt(p1[1]**2+p1[2]**2+p1[3]**2)
2134- p2_vec=math.sqrt(p2[1]**2+p2[2]**2+p2[3]**2)
2135- eta1=0.5*math.log((p1_vec+p1[3])/(p1_vec-p1[3]))
2136- eta2=0.5*math.log((p2_vec+p2[3])/(p2_vec-p2[3]))
2137- # Then azimutal angle phi
2138- phi1=math.atan2(p1[2],p1[1])
2139- phi2=math.atan2(p2[2],p2[1])
2140- dphi=abs(phi2-phi1)
2141- # Take the wraparound factor into account
2142- dphi=abs(abs(dphi-math.pi)-math.pi)
2143- # Now return deltaR
2144- return math.sqrt(dphi**2+(eta2-eta1)**2)
2145
2146- def pass_cuts(p):
2147- """ Defines the cut a PS point must pass"""
2148- for i, pmom in enumerate(p[2:]):
2149- # Pt > 50 GeV
2150- if Pt(pmom)<50.0:
2151- return False
2152- # Delta_R ij > 0.5
2153- for pmom2 in p[3+i:]:
2154- if DeltaR(pmom,pmom2)<0.5:
2155- return False
2156- return True
2157 p, w_rambo = self.get_momenta(proc, options)
2158 if options['events']:
2159 return p
2160 # For 2>1 process, we don't check the cuts of course
2161- while (not pass_cuts(p) and len(p)>3):
2162+ while (not pass_isolation_cuts(p) and len(p)>3):
2163 p, w_rambo = self.get_momenta(proc, options)
2164
2165 # For a 2>1 process, it would always be the same PS point,
2166@@ -1796,13 +1943,30 @@
2167 # Generate a loop matrix element
2168 #===============================================================================
2169 def generate_loop_matrix_element(process_definition, reuse, output_path=None,
2170- cmd = FakeInterface()):
2171+ cmd = FakeInterface(), proc_name=None, loop_filter=None):
2172 """ Generate a loop matrix element from the process definition, and returns
2173 it along with the timing information dictionary.
2174- If reuse is True, it reuses the already output directory if found."""
2175+ If reuse is True, it reuses the already output directory if found.
2176+ There is the possibility of specifying the proc_name."""
2177
2178- assert isinstance(process_definition,base_objects.ProcessDefinition)
2179+ assert isinstance(process_definition,
2180+ (base_objects.ProcessDefinition,base_objects.Process))
2181 assert process_definition.get('perturbation_couplings')!=[]
2182+
2183+ if isinstance(process_definition,base_objects.ProcessDefinition):
2184+ if any(len(l.get('ids'))>1 for l in process_definition.get('legs')):
2185+ raise InvalidCmd("This check can only be performed on single "+
2186+ " processes. (i.e. without multiparticle labels).")
2187+
2188+ isids = [leg.get('ids')[0] for leg in process_definition.get('legs') \
2189+ if not leg.get('state')]
2190+ fsids = [leg.get('ids')[0] for leg in process_definition.get('legs') \
2191+ if leg.get('state')]
2192+
2193+ # Now generate a process based on the ProcessDefinition given in argument.
2194+ process = process_definition.get_process(isids,fsids)
2195+ else:
2196+ process = process_definition
2197
2198 if not output_path is None:
2199 root_path = output_path
2200@@ -1815,20 +1979,11 @@
2201 'n_loop_groups': None,
2202 'n_loop_wfs': None,
2203 'loop_wfs_ranks': None}
2204-
2205- if any(len(l.get('ids'))>1 for l in process_definition.get('legs')):
2206- raise InvalidCmd("This check can only be performed on single "+
2207- " processes. (i.e. without multiparticle labels).")
2208-
2209- isids = [leg.get('ids')[0] for leg in process_definition.get('legs') \
2210- if not leg.get('state')]
2211- fsids = [leg.get('ids')[0] for leg in process_definition.get('legs') \
2212- if leg.get('state')]
2213-
2214- # Now generate a process based on the ProcessDefinition given in argument.
2215- process = process_definition.get_process(isids,fsids)
2216-
2217- proc_dir = pjoin(root_path,"SAVED"+temp_dir_prefix+"_%s"%(
2218+
2219+ if proc_name:
2220+ proc_dir = pjoin(root_path,proc_name)
2221+ else:
2222+ proc_dir = pjoin(root_path,"SAVED"+temp_dir_prefix+"_%s"%(
2223 '_'.join(process.shell_string().split('_')[1:])))
2224 if reuse and os.path.isdir(proc_dir):
2225 logger.info("Reusing directory %s"%str(proc_dir))
2226@@ -1838,7 +1993,17 @@
2227 logger.info("Generating p%s"%process_definition.nice_string()[1:])
2228
2229 start=time.time()
2230- amplitude = loop_diagram_generation.LoopAmplitude(process)
2231+ try:
2232+ amplitude = loop_diagram_generation.LoopAmplitude(process,
2233+ loop_filter=loop_filter)
2234+ except InvalidCmd:
2235+ # An error about the sanity of the process can be thrown, in which case
2236+ # we return nothing
2237+ return time.time()-start, None
2238+ if not amplitude.get('diagrams'):
2239+ # Not matrix eleemnt for this process
2240+ return time.time()-start, None
2241+
2242 # Make sure to disable loop_optimized_output when considering loop induced
2243 # processes
2244 loop_optimized_output = cmd.options['loop_optimized_output']
2245@@ -1865,7 +2030,7 @@
2246 timing['loop_wfs_ranks'].append(\
2247 len([1 for l in lwfs if \
2248 l.get_analytic_info('wavefunction_rank')==rank]))
2249-
2250+
2251 return timing, matrix_element
2252
2253 #===============================================================================
2254@@ -1932,7 +2097,6 @@
2255 keep_folder = reuse
2256 model=process_definition.get('model')
2257
2258-
2259 timing, matrix_element = generate_loop_matrix_element(process_definition,
2260 reuse, output_path=output_path, cmd=cmd)
2261 reusing = isinstance(matrix_element, base_objects.Process)
2262@@ -3155,7 +3319,7 @@
2263 # Generate the HelasMatrixElement for the process
2264 if not isinstance(amplitude, loop_diagram_generation.LoopAmplitude):
2265 matrix_element = helas_objects.HelasMatrixElement(amplitude,
2266- gen_color = True)
2267+ gen_color = True)
2268 else:
2269 matrix_element = loop_helas_objects.LoopHelasMatrixElement(amplitude,
2270 optimized_output = evaluator.loop_optimized_output)
2271@@ -3336,6 +3500,1148 @@
2272 else:
2273 raise InvalidCmd("processes is of non-supported format")
2274
2275+#===============================================================================
2276+# check_cms
2277+#===============================================================================
2278+def check_complex_mass_scheme(process_line, param_card=None, cuttools="",tir={},
2279+ cmd = FakeInterface(), output_path=None, MLOptions = {}, options={}):
2280+ """Check complex mass scheme consistency in the offshell region of s-channels
2281+ detected for this process, by varying the expansion paramer consistently
2282+ with the corresponding width and making sure that the difference between
2283+ the complex mass-scheme and the narrow-width approximation is higher order.
2284+ """
2285+
2286+ if not isinstance(process_line, str):
2287+ raise InvalidCmd("Proces definition must be given as a stirng for this check")
2288+
2289+ # Generate a list of unique processes in the NWA scheme
2290+ cmd.do_set('complex_mass_scheme False', log=False)
2291+ #cmd.do_import('model loop_qcd_qed_sm-NWA')
2292+ multiprocess_nwa = cmd.extract_process(process_line)
2293+
2294+ # Change the option 'recompute_width' to the optimal value if set to 'auto'.
2295+ has_FRdecay = os.path.isfile(pjoin(cmd._curr_model.get('modelpath'),
2296+ 'decays.py'))
2297+
2298+ if options['recompute_width']=='auto':
2299+ if multiprocess_nwa.get('perturbation_couplings')!=[]:
2300+ # NLO, so it is necessary to have the correct LO width for the check
2301+ options['recompute_width'] = 'first_time'
2302+ else:
2303+ options['recompute_width'] = 'never'
2304+
2305+ # Some warnings
2306+ if options['recompute_width'] in ['first_time', 'always'] and \
2307+ not has_FRdecay and not 'cached_widths' in options:
2308+ logger.info('The LO widths will need to be recomputed but the '+
2309+ 'model considered does not appear to have a decay module.\nThe widths'+
2310+ ' will need to be computed numerically and it will slow down the test.\n'+
2311+ 'Consider using a param_card already specifying correct LO widths and'+
2312+ " adding the option --recompute_width=never when doing this check.")
2313+
2314+ if options['recompute_width']=='never' and \
2315+ any(order in multiprocess_nwa.get('perturbation_couplings') for order in
2316+ options['expansion_orders']):
2317+ logger.warning('You chose not to recompute the widths while including'+
2318+ ' loop corrections. The check will be successful only if the width'+\
2319+ ' specified in the default param_card is LO accurate (Remember that'+\
2320+ ' the default values of alpha_s and awem1 are set to 0.1 and 10.0'+\
2321+ ' respectively by default).')
2322+
2323+ # Reload the model including the decay.py to have efficient MadWidth if
2324+ # possible (this model will be directly given to MadWidth. Notice that
2325+ # this will not be needed for the CMS run because MadWidth is not supposed
2326+ # to be used there (the widths should be recycled from those of the NWA run).
2327+ if options['recompute_width'] in ['first_time', 'always'] and has_FRdecay:
2328+ modelname = cmd._curr_model.get('modelpath+restriction')
2329+ with misc.MuteLogger(['madgraph'], ['INFO']):
2330+ model = import_ufo.import_model(modelname, decay=True,
2331+ complex_mass_scheme=False)
2332+ multiprocess_nwa.set('model', model)
2333+
2334+ run_options = copy.deepcopy(options)
2335+
2336+ # Set the seed if chosen by user
2337+ if options['seed'] > 0:
2338+ random.seed(options['seed'])
2339+
2340+ # Add useful entries
2341+ run_options['param_card'] = param_card
2342+ if isinstance(cmd, FakeInterface):
2343+ raise MadGraph5Error, "Check CMS cannot be run with a FakeInterface."
2344+ run_options['cmd'] = cmd
2345+ run_options['MLOptions'] = MLOptions
2346+ if output_path:
2347+ run_options['output_path'] = output_path
2348+ else:
2349+ run_options['output_path'] = cmd._mgme_dir
2350+
2351+ # Add the information regarding FR decay for optimal log information
2352+ run_options['has_FRdecay'] = has_FRdecay
2353+
2354+ # And one for caching the widths computed along the way
2355+ if 'cached_widths' not in run_options:
2356+ run_options['cached_widths'] = {}
2357+ # Cached param_cards, first is param_card instance, second is
2358+ # param_name dictionary
2359+ run_options['cached_param_card'] = {'NWA':[None,None],'CMS':[None,None]}
2360+
2361+ if options['tweak']['name']:
2362+ logger.info("Now running the CMS check for tweak '%s'"\
2363+ %options['tweak']['name'])
2364+
2365+ model = multiprocess_nwa.get('model')
2366+ # Make sure all masses are defined as external
2367+ for particle in model.get('particles'):
2368+ mass_param = model.get_parameter(particle.get('mass'))
2369+ if particle.get('mass')!='ZERO' and 'external' not in mass_param.depend:
2370+ if model.get('name') not in ['sm','loop_sm']:
2371+ logger.warning("The mass '%s' of particle '%s' is not an external"%\
2372+ (model.get_parameter(particle.get('mass')).name,particle.get('name'))+\
2373+ " parameter as required by this check. \nMG5_aMC will try to"+\
2374+ " modify the model to remedy the situation. No guarantee.")
2375+ status = model.change_electroweak_mode(set(['mz','mw','alpha']))
2376+ if not status:
2377+ raise InvalidCmd('The EW scheme could apparently not be changed'+\
2378+ ' so as to have the W-boson mass external. The check cannot'+\
2379+ ' proceed.')
2380+ break
2381+
2382+ veto_orders = [order for order in model.get('coupling_orders') if \
2383+ order not in options['expansion_orders']]
2384+ if len(veto_orders)>0:
2385+ logger.warning('You did not define any parameter scaling rule for the'+\
2386+ " coupling orders %s. They will be "%','.join(veto_orders))+\
2387+ "forced to zero in the tests. Consider adding the scaling rule to"+\
2388+ "avoid this. (see option '--cms' in 'help check')"
2389+ for order in veto_orders:
2390+ multiprocess_nwa.get('orders')[order]==0
2391+ multiprocess_nwa.set('perturbation_couplings', [order for order in
2392+ multiprocess_nwa['perturbation_couplings'] if order not in veto_orders])
2393+
2394+ if multiprocess_nwa.get('perturbation_couplings')==[]:
2395+ evaluator = MatrixElementEvaluator(model, param_card,
2396+ cmd=cmd,auth_skipping = False, reuse = True)
2397+ else:
2398+ evaluator = LoopMatrixElementTimer(cuttools_dir=cuttools,tir_dir=tir,
2399+ cmd=cmd, model=model,
2400+ param_card=param_card,
2401+ auth_skipping = False,
2402+ output_path=output_path,
2403+ reuse = False)
2404+
2405+ cached_information = []
2406+ output_nwa = run_multiprocs_no_crossings(check_complex_mass_scheme_process,
2407+ multiprocess_nwa,
2408+ evaluator,
2409+ # This empty list 'opt' will be passed to the check_complex_mass_scheme_process
2410+ # function which will fill it with the specification of the particle for which
2411+ # the the complex mass scheme must be checked. The fact that it is a list
2412+ # at this stage tells the function check_complex_mass_scheme_process that
2413+ # we are doing nwa. It will then be converted to a dictionary when doing cms.
2414+ opt = cached_information,
2415+ options=run_options)
2416+
2417+ # Make sure to start from fresh for LO runs
2418+ clean_added_globals(ADDED_GLOBAL)
2419+
2420+ # Generate a list of unique processes in the CMS scheme
2421+ cmd.do_set('complex_mass_scheme True', log=False)
2422+ #cmd.do_import('model loop_qcd_qed_sm__CMS__-CMS')
2423+
2424+ multiprocess_cms = cmd.extract_process(process_line)
2425+ model = multiprocess_cms.get('model')
2426+ # Apply veto
2427+ if len(veto_orders)>0:
2428+ for order in veto_orders:
2429+ multiprocess_cms.get('orders')[order]==0
2430+ multiprocess_cms.set('perturbation_couplings', [order for order in
2431+ multiprocess_cms['perturbation_couplings'] if order not in veto_orders])
2432+
2433+ if multiprocess_cms.get('perturbation_couplings')==[]:
2434+ evaluator = MatrixElementEvaluator(model, param_card,
2435+ cmd=cmd,auth_skipping = False, reuse = True)
2436+ else:
2437+ evaluator = LoopMatrixElementTimer(cuttools_dir=cuttools,tir_dir=tir,
2438+ cmd=cmd, model=model,
2439+ param_card=param_card,
2440+ auth_skipping = False,
2441+ output_path=output_path,
2442+ reuse = False)
2443+
2444+ output_cms = run_multiprocs_no_crossings(check_complex_mass_scheme_process,
2445+ multiprocess_cms,
2446+ evaluator,
2447+ # We now substituted the cached information
2448+ opt = dict(cached_information),
2449+ options=run_options)
2450+
2451+ if multiprocess_cms.get('perturbation_couplings')!=[] and not options['reuse']:
2452+ # Clean temporary folders created for the running of the loop processes
2453+ clean_up(output_path)
2454+
2455+ # Now reformat a bit the output by putting the CMS and NWA results together
2456+ # as values of a dictionary with the process name as key.
2457+ # Also a 'processes_order' to list all processes in their order of appearance
2458+ result = {'ordered_processes':[],'lambdaCMS':options['lambdaCMS']}
2459+ # Recall what perturbation orders were used
2460+ result['perturbation_orders']=multiprocess_nwa.get('perturbation_couplings')
2461+ for i, proc_res in enumerate(output_nwa):
2462+ result['ordered_processes'].append(proc_res[0])
2463+ result[proc_res[0]] = {
2464+ 'NWA':proc_res[1]['resonances_result'],
2465+ 'CMS':output_cms[i][1]['resonances_result'],
2466+ 'born_order':proc_res[1]['born_order'],
2467+ 'loop_order':proc_res[1]['loop_order']}
2468+
2469+ # As an optimization we propagate the widths as they could be reused when
2470+ # using several tweaks
2471+ options['cached_widths'] = run_options['cached_widths']
2472+
2473+ # Add widths information to the result
2474+ result['recompute_width'] = options['recompute_width']
2475+ result['has_FRdecay'] = has_FRdecay
2476+ result['widths_computed'] = []
2477+ cached_widths = sorted(options['cached_widths'].items(), key=lambda el: \
2478+ abs(el[0][0]))
2479+ for (pdg, lambda_value), width in cached_widths:
2480+ if lambda_value != 1.0:
2481+ continue
2482+ result['widths_computed'].append((model.get_particle(pdg).get_name(),
2483+ width))
2484+
2485+ # Make sure to clear the python ME definitions generated in LO runs
2486+ clean_added_globals(ADDED_GLOBAL)
2487+
2488+ return result
2489+
2490+
2491+# Check CMS for a given process
2492+def check_complex_mass_scheme_process(process, evaluator, opt = [],
2493+ options=None):
2494+ """Check CMS for the process in argument. The options 'opt' is quite important.
2495+ When opt is a list, it means that we are doing NWA and we are filling the
2496+ list with the following tuple
2497+ ('proc_name',({'ParticlePDG':ParticlePDG,
2498+ 'FinalStateMothersNumbers':set([]),
2499+ 'PS_point_used':[]},...))
2500+ When opt is a dictionary, we are in the CMS mode and it will be reused then.
2501+ """
2502+
2503+ # a useful logical to check if we are in LO (python on the flight) or
2504+ # NLO (output and compilation) mode
2505+ NLO = process.get('perturbation_couplings') != []
2506+
2507+ def glue_momenta(production, decay):
2508+ """ Merge together the kinematics for the production of particle
2509+ positioned last in the 'production' array with the 1>N 'decay' kinematic'
2510+ provided where the decay particle is first."""
2511+
2512+ from MadSpin.decay import momentum
2513+
2514+ full = production[:-1]
2515+
2516+ # Consistency check:
2517+ # target = production[decay_number-1]
2518+ # boosted = momentum(decay[0][0],decay[0][1],decay[0][2],decay[0][3])
2519+ # print 'Consistency check ',target==boosted
2520+ for p in decay[1:]:
2521+ bp = momentum(*p).boost(momentum(*production[-1]))
2522+ full.append([bp.E,bp.px,bp.py,bp.pz])
2523+
2524+ return full
2525+
2526+ def find_resonances(diagrams):
2527+ """ Find all the resonances in the matrix element in argument """
2528+
2529+ model = process['model']
2530+ resonances_found = []
2531+
2532+ for ll, diag in enumerate(diagrams):
2533+ for amp in diag.get('amplitudes'):
2534+ # 0 specifies the PDG given to the fake s-channels from
2535+ # vertices with more than four legs
2536+ s_channels, t_channels = amp.\
2537+ get_s_and_t_channels(process.get_ninitial(), model, 0)
2538+ # The s-channel are given from the outmost ones going inward as
2539+ # vertices, so we must replace parent legs with the outermost ones
2540+ replacement_dict = {}
2541+ for s_channel in s_channels:
2542+ new_resonance = {
2543+ 'ParticlePDG':s_channel.get('legs')[-1].get('id'),
2544+ 'FSMothersNumbers':[],
2545+ 'PS_point_used':[]}
2546+ for leg in s_channel.get('legs')[:-1]:
2547+ if leg.get('number')>0:
2548+ new_resonance['FSMothersNumbers'].append(
2549+ leg.get('number'))
2550+ else:
2551+ try:
2552+ new_resonance['FSMothersNumbers'].extend(
2553+ replacement_dict[leg.get('number')])
2554+ except KeyError:
2555+ raise Exception, 'The following diagram '+\
2556+ 'is malformed:'+diag.nice_string()
2557+
2558+ replacement_dict[s_channel.get('legs')[-1].get('number')] = \
2559+ new_resonance['FSMothersNumbers']
2560+ new_resonance['FSMothersNumbers'] = set(
2561+ new_resonance['FSMothersNumbers'])
2562+ if new_resonance not in resonances_found:
2563+ resonances_found.append(new_resonance)
2564+
2565+ # Now we setup the phase-space point for each resonance found
2566+ kept_resonances = []
2567+ for resonance in resonances_found:
2568+ # Discard fake s-channels
2569+ if resonance['ParticlePDG'] == 0:
2570+ continue
2571+
2572+ # Discard if the particle appears in the final state
2573+ if abs(resonance['ParticlePDG']) in \
2574+ [abs(l.get('id')) for l in process.get('legs')]:
2575+ continue
2576+
2577+ mass_string = evaluator.full_model.get_particle(
2578+ resonance['ParticlePDG']).get('mass')
2579+ mass = evaluator.full_model.get('parameter_dict')[mass_string].real
2580+ # Discard massless s-channels
2581+ if mass==0.0:
2582+ continue
2583+
2584+ width_string = evaluator.full_model.get_particle(
2585+ resonance['ParticlePDG']).get('width')
2586+ width = evaluator.full_model.get('parameter_dict')[width_string].real
2587+
2588+ # Discard stable s-channels
2589+ if width==0.0:
2590+ continue
2591+
2592+ final_state_energy = sum(
2593+ evaluator.full_model.get('parameter_dict')[
2594+ evaluator.full_model.get_particle(l.get('id')).get('mass')].real
2595+ for l in process.get('legs') if l.get('number') in
2596+ resonance['FSMothersNumbers'])
2597+
2598+ # Choose the offshellness
2599+ special_mass = (1.0 + options['offshellness'])*mass
2600+
2601+ # Discard impossible kinematics
2602+ if special_mass<final_state_energy:
2603+ raise InvalidCmd('The offshellness specified (%s) is such'\
2604+ %options['offshellness']+' that the resulting kinematic is '+\
2605+ 'impossible for resonance %s %s.'%(evaluator.full_model.
2606+ get_particle(resonance['ParticlePDG']).get_name(),
2607+ str(list(resonance['FSMothersNumbers']))))
2608+ continue
2609+
2610+ # Add it to the list of accepted resonances
2611+ kept_resonances.append(resonance)
2612+
2613+ for resonance in kept_resonances:
2614+ # Chose the PS point for the resonance
2615+ set_PSpoint(resonance, force_other_res_offshell=kept_resonances)
2616+
2617+# misc.sprint(kept_resonances)
2618+# misc.sprint(len(kept_resonances))
2619+ return tuple(kept_resonances)
2620+
2621+ def set_PSpoint(resonance, force_other_res_offshell=[],
2622+ allow_energy_increase=1.5, isolation_cuts=True):
2623+ """ Starting from the specified resonance, construct a phase space point
2624+ for it and possibly also enforce other resonances to be onshell. Possibly
2625+ allow to progressively increase enregy by steps of the integer specified
2626+ (negative float to forbid it) and possible enforce default isolation cuts
2627+ as well."""
2628+
2629+ def invmass(momenta):
2630+ """ Computes the invariant mass of a list of momenta."""
2631+ ptot = [sum(p[i] for p in momenta) for i in range(4)]
2632+ return math.sqrt(ptot[0]**2-ptot[1]**2-ptot[2]**2-ptot[3]**2)
2633+
2634+ model = evaluator.full_model
2635+ def getmass(pdg):
2636+ """ Returns the mass of a particle given the current model and its
2637+ pdg given in argument."""
2638+ return model.get('parameter_dict')[
2639+ model.get_particle(pdg).get('mass')].real
2640+
2641+ N_trials = 0
2642+ max_trial = 1e4
2643+ nstep_for_energy_increase = 1e3
2644+ PS_point_found = None
2645+ if options['offshellness'] > 0.0:
2646+ offshellness = options['offshellness']
2647+ else:
2648+ # We must undershoot the offshellness since one needs more
2649+ # energy than the target mass to have a valid PS point. So we
2650+ # start with an offshellness 4 times larger, and progressively reduce
2651+ # it later
2652+ offshellness = (0.25*(options['offshellness']+1.0))-1.0
2653+
2654+ # When offshellness is negative, it is progressively decreased every
2655+ # nstep_for_energy_increase attempts (not increased!), so it is more
2656+ # dangerous, and we therefore want the steps to be smaller
2657+ if options['offshellness'] < 0.0:
2658+ energy_increase = math.sqrt(allow_energy_increase)
2659+ else:
2660+ energy_increase = allow_energy_increase
2661+ # Make sure to remove the resonance itself from force_other_res_offshell
2662+ other_res_offshell = [res for res in force_other_res_offshell if
2663+ res!=resonance]
2664+
2665+ # Now play it smart on finding starting energy and offshellness and
2666+ # register all resonance masses
2667+ all_other_res_masses = [getmass(res['ParticlePDG'])
2668+ for res in other_res_offshell]
2669+ resonance_mass = getmass(resonance['ParticlePDG'])
2670+
2671+ str_res = '%s %s'%(model.get_particle(
2672+ resonance['ParticlePDG']).get_name(),
2673+ str(list(resonance['FSMothersNumbers'])))
2674+ leg_number_to_leg = dict((l.get('number'),l) for l in process.get('legs'))
2675+ # Find what is the minimum possible offshellness given
2676+ # the mass of the daughters of this resonance.
2677+ # This will only be relevant when options['offshellness'] is negative
2678+ daughter_masses = sum(getmass(leg_number_to_leg[\
2679+ number].get('id')) for number in resonance['FSMothersNumbers'])
2680+ min_offshellnes = 4.0*((daughter_masses*1.2)/resonance_mass)-1.0
2681+
2682+ # Compute the minimal energy given the external states, add 20% to leave
2683+ # enough phase-space
2684+ min_energy = max(sum(getmass(l.get('id')) for l in \
2685+ process.get('legs') if l.get('state')==True),
2686+ sum(getmass(l.get('id')) for l in \
2687+ process.get('legs') if l.get('state')==False))
2688+
2689+ # List all other offshellnesses of the potential daughters of this
2690+ # resonance
2691+ daughter_offshellnesses = [(1.0+options['offshellness'])*mass
2692+ for i, mass in enumerate(all_other_res_masses) if
2693+ other_res_offshell[i]['FSMothersNumbers'].issubset(
2694+ resonance['FSMothersNumbers'])]
2695+
2696+ if options['offshellness'] >= 0.0:
2697+
2698+ if len(daughter_offshellnesses)>0:
2699+ max_mass = max(daughter_offshellnesses)
2700+ # A factor two to have enough phase-space
2701+ offshellness = max(2.0*(max_mass/resonance_mass)-1.0,
2702+ options['offshellness'])
2703+
2704+ max_mass = max([(1.0+options['offshellness'])*mass for mass in \
2705+ all_other_res_masses]+[(1.0+offshellness)*resonance_mass])
2706+
2707+ # Account for external_masses too
2708+ # A factor two to have enough phase-space open
2709+ target = max(min_energy*1.2,max_mass*2.0)
2710+ if target > options['energy']:
2711+ logger.warning("The user-defined energy %f seems "%options['energy']+
2712+ " insufficient to reach the minimum propagator invariant mass "+
2713+ "%f required for the chosen offshellness %f."%(max_mass,
2714+ options['offshellness']) + " Energy reset to %f."%target)
2715+ options['energy'] = target
2716+
2717+ else:
2718+ if len(daughter_offshellnesses) > 0:
2719+ min_mass = min(daughter_offshellnesses)
2720+ # A factor one half to have enough phase-space
2721+ offshellness = min(0.25*(min_mass/resonance_mass)-1.0,
2722+ options['offshellness'])
2723+
2724+ # Make sure the chosen offshellness leaves enough energy to produce
2725+ # the daughter masses
2726+ if (1.0+offshellness)*resonance_mass < daughter_masses*1.2:
2727+ msg = 'The resonance %s cannot accomodate'%str_res+\
2728+ ' an offshellness of %f because the daughter'%options['offshellness']+\
2729+ ' masses are %f.'%daughter_masses
2730+ if options['offshellness']<min_offshellnes:
2731+ msg += ' Try again with an offshellness'+\
2732+ ' smaller (in absolute value) of at least %f.'%min_offshellnes
2733+ else:
2734+ msg += ' Try again with a smalled offshellness (in absolute value).'
2735+ raise InvalidCmd(msg)
2736+
2737+ min_mass = min([(1.0+options['offshellness'])*mass for mass in \
2738+ all_other_res_masses]+[(1.0+offshellness)*resonance_mass])
2739+ # Account for external_masses too
2740+ # A factor two to have enough phase-space open
2741+ if 2.0*min_mass < options['energy']:
2742+ new_energy = max(min_energy*1.2, 2.0*min_mass)
2743+ logger.warning("The user-defined energy %f seems "%options['energy']+
2744+ " too large to not overshoot the maximum propagator invariant mass "+
2745+ "%f required for the chosen offshellness %f."%(min_mass,
2746+ options['offshellness']) + " Energy reset to %f."%new_energy)
2747+ options['energy'] = new_energy
2748+
2749+ if options['offshellness'] < 0.0 and options['energy'] >= min_mass:
2750+ logger.debug("The target energy is not compatible with the mass"+
2751+ " of the external states for this process (%f). It is "%min_mass+
2752+ "unlikely that a valid kinematic configuration will be found.")
2753+
2754+ if options['offshellness']<0.0 and offshellness<options['offshellness'] or \
2755+ options['offshellness']>0.0 and offshellness>options['offshellness']:
2756+ logger.debug("Offshellness increased to %f"%offshellness+
2757+ " so as to try to find a kinematical configuration with"+
2758+ " offshellness at least equal to %f"%options['offshellness']+
2759+ " for all resonances.")
2760+
2761+ start_energy = options['energy']
2762+ while N_trials<max_trial:
2763+ N_trials += 1
2764+ if N_trials%nstep_for_energy_increase==0:
2765+ if allow_energy_increase > 0.0:
2766+ old_offshellness = offshellness
2767+ if offshellness > 0.0:
2768+ options['energy'] *= energy_increase
2769+ offshellness *= energy_increase
2770+ else:
2771+ options['energy'] = max(options['energy']/energy_increase,
2772+ min_energy*1.2)
2773+ offshellness = max(min_offshellnes,
2774+ ((offshellness+1.0)/energy_increase)-1.0)
2775+ if old_offshellness!=offshellness:
2776+ logger.debug('Trying to find a valid kinematic'+\
2777+ " configuration for resonance '%s'"%str_res+\
2778+ ' with increased offshellness %f'%offshellness)
2779+
2780+ candidate = get_PSpoint_for_resonance(resonance, offshellness)
2781+ pass_offshell_test = True
2782+ for i, res in enumerate(other_res_offshell):
2783+ # Make sure other resonances are sufficiently offshell too
2784+ if offshellness > 0.0:
2785+ if invmass([candidate[j-1] for j in res['FSMothersNumbers']]) <\
2786+ ((1.0+options['offshellness'])*all_other_res_masses[i]):
2787+ pass_offshell_test = False
2788+ break
2789+ else:
2790+ if invmass([candidate[j-1] for j in res['FSMothersNumbers']]) >\
2791+ ((1.0+options['offshellness'])*all_other_res_masses[i]):
2792+ pass_offshell_test = False
2793+ break
2794+ if not pass_offshell_test:
2795+ continue
2796+ # Make sure it is isolated
2797+ if isolation_cuts:
2798+ # Set ptcut to 5% of total energy
2799+ if not evaluator.pass_isolation_cuts(candidate,
2800+ ptcut=0.05*invmass([candidate[0],candidate[1]]), drcut=0.4):
2801+ continue
2802+ PS_point_found = candidate
2803+ break
2804+
2805+ # Restore the initial energy setup
2806+ options['energy'] = start_energy
2807+
2808+ if PS_point_found is None:
2809+ err_msg = 'Could not find a valid PS point in %d'%max_trial+\
2810+ ' trials. Try increasing the energy, modify the offshellness '+\
2811+ 'or relax some constraints.'
2812+ if options['offshellness']<0.0:
2813+ err_msg +='Try with a positive offshellness instead (or a '+\
2814+ 'negative one of smaller absolute value)'
2815+ raise InvalidCmd, err_msg
2816+ else:
2817+# misc.sprint('PS point found in %s trials.'%N_trials)
2818+# misc.sprint(PS_point_found)
2819+ resonance['offshellnesses'] = []
2820+ all_other_res_masses = [resonance_mass] + all_other_res_masses
2821+ other_res_offshell = [resonance] + other_res_offshell
2822+ for i, res in enumerate(other_res_offshell):
2823+ if i==0:
2824+ res_str = 'self'
2825+ else:
2826+ res_str = '%s %s'%(model.get_particle(
2827+ res['ParticlePDG']).get_name(),
2828+ str(list(res['FSMothersNumbers'])))
2829+ resonance['offshellnesses'].append((res_str,(
2830+ (invmass([PS_point_found[j-1] for j in
2831+ res['FSMothersNumbers']])/all_other_res_masses[i])-1.0)))
2832+
2833+ resonance['PS_point_used'] = PS_point_found
2834+
2835+ def get_PSpoint_for_resonance(resonance, offshellness = options['offshellness']):
2836+ """ Assigns a kinematic configuration to the resonance dictionary
2837+ given in argument."""
2838+
2839+ # Get the particle mass
2840+ mass_string = evaluator.full_model.get_particle(
2841+ resonance['ParticlePDG']).get('mass')
2842+ mass = evaluator.full_model.get('parameter_dict')[mass_string].real
2843+
2844+ # Choose the offshellness
2845+ special_mass = (1.0 + offshellness)*mass
2846+
2847+ # Create a fake production and decay process
2848+ prod_proc = base_objects.Process({'legs':base_objects.LegList(
2849+ copy.copy(leg) for leg in process.get('legs') if
2850+ leg.get('number') not in resonance['FSMothersNumbers'])})
2851+ # Add the resonant particle as a final state
2852+ # ID set to 0 since its mass will be forced
2853+ # Number set so as to be first in the list in get_momenta
2854+ prod_proc.get('legs').append(base_objects.Leg({
2855+ 'number':max(l.get('number') for l in process.get('legs'))+1,
2856+ 'state':True,
2857+ 'id':0}))
2858+ # now the decay process
2859+ decay_proc = base_objects.Process({'legs':base_objects.LegList(
2860+ copy.copy(leg) for leg in process.get('legs') if leg.get('number')
2861+ in resonance['FSMothersNumbers'] and not leg.get('state')==False)})
2862+ # Add the resonant particle as an initial state
2863+ # ID set to 0 since its mass will be forced
2864+ # Number set to -1 as well so as to be sure it appears first in
2865+ # get_momenta
2866+ decay_proc.get('legs').insert(0,base_objects.Leg({
2867+ 'number':-1,
2868+ 'state':False,
2869+ 'id':0}))
2870+ prod_kinematic = evaluator.get_momenta(prod_proc, options=options,
2871+ special_mass=special_mass)[0]
2872+ decay_kinematic = evaluator.get_momenta(decay_proc, options=options,
2873+ special_mass=special_mass)[0]
2874+ momenta = glue_momenta(prod_kinematic,decay_kinematic)
2875+ # Reshuffle the momentum so as to put it back in the order specified
2876+ # in the process definition.
2877+ # First the production momenta, without the special decayed particle
2878+ ordered_momenta = [(prod_proc.get('legs')[i].get('number'),momenta[i])
2879+ for i in range(len(prod_proc.get('legs'))-1)]
2880+ # And then the decay ones.
2881+ ordered_momenta += [(decay_proc.get('legs')[-i].get('number'),
2882+ momenta[-i]) for i in range(1,len(decay_proc.get('legs')))]
2883+
2884+ # Return the PSpoint found in the right order
2885+ return [m[1] for m in sorted(ordered_momenta, key = lambda el: el[0])]
2886+
2887+ # misc.sprint(resonance['PS_point_used'])
2888+
2889+ @misc.mute_logger()
2890+ def get_width(PDG, lambdaCMS, param_card):
2891+ """ Returns the width to use for particle with absolute PDG 'PDG' and
2892+ for the the lambdaCMS value 'lambdaCMS' using the cache if possible."""
2893+
2894+ # If an unstable particle is in the external state, then set its width
2895+ # to zero and don't cache the result of course.
2896+ if abs(PDG) in [abs(leg.get('id')) for leg in process.get('legs')]:
2897+ return 0.0
2898+
2899+ particle = evaluator.full_model.get_particle(PDG)
2900+
2901+ # If it is a goldstone or a ghost, retur zero as its width should anyway
2902+ # not be independent. The test for checking if it is a goldstone or not
2903+ # will be made more general in 2.3.3 when it will be an attribute of the
2904+ # particle class. Normally the first statement will crash in that verison
2905+ # because it is not .get('ghost'). This is done in purpose so as to be
2906+ # sure to fix the goldstone check in due time.
2907+ if particle['ghost'] or particle.get_name() in ['g0','g+','g-']:
2908+ return 0.0
2909+
2910+ # If its width is analytically set to zero, then return zero right away
2911+ if particle.get('width')=='ZERO':
2912+ return 0.0
2913+
2914+ if (PDG,lambdaCMS) in options['cached_widths']:
2915+ return options['cached_widths'][(PDG,lambdaCMS)]
2916+
2917+ if options['recompute_width'] == 'never':
2918+ width = evaluator.full_model.\
2919+ get('parameter_dict')[particle.get('width')].real
2920+ else:
2921+ # Crash if we are doing CMS and the width was not found and recycled above
2922+ if aloha.complex_mass:
2923+ raise MadGraph5Error, "The width for particle with PDG %d and"%PDG+\
2924+ " lambdaCMS=%f should have already been "%lambdaCMS+\
2925+ "computed during the NWA run."
2926+
2927+ # Use MadWith
2928+ if options['recompute_width'] in ['always','first_time']:
2929+ particle_name = particle.get_name()
2930+ with misc.TMP_directory(dir=options['output_path']) as path:
2931+ param_card.write(pjoin(path,'tmp.dat'))
2932+ # 2-body decay is the maximum that should be considered for NLO check.
2933+ # The default 1% accuracy is not enough when pushing to small
2934+ # lambdaCMS values, we need 1 per mil at least.
2935+ command = '%s --output=%s'%(particle_name,pjoin(path,'tmp.dat'))+\
2936+ ' --path=%s --body_decay=2'%pjoin(path,'tmp.dat')+\
2937+ ' --precision_channel=0.001'
2938+# misc.sprint(command)
2939+ param_card.write(pjoin(options['output_path'],'tmp.dat'))
2940+ # The MG5 command get_width will change the cmd._curr_model
2941+ # and the cmd._curr_fortran_model which what we specified, so
2942+ # we must make sure to restore them after it finishes
2943+ orig_model = options['cmd']._curr_model
2944+ orig_fortran_model = options['cmd']._curr_fortran_model
2945+ options['cmd'].do_compute_widths(command, evaluator.full_model)
2946+ # Restore the models
2947+ options['cmd']._curr_model = orig_model
2948+ options['cmd']._curr_fortran_model = orig_fortran_model
2949+ # Restore the width of the model passed in argument since
2950+ # MadWidth will automatically update the width
2951+ evaluator.full_model.set_parameters_and_couplings(
2952+ param_card=param_card)
2953+ try:
2954+ tmp_param_card = check_param_card.ParamCard(pjoin(path,'tmp.dat'))
2955+ except:
2956+ raise MadGraph5Error, 'Error occured during width '+\
2957+ 'computation with command:\n compute_widths %s'%command
2958+ width = tmp_param_card['decay'].get(PDG).value
2959+# misc.sprint('lambdaCMS checked is', lambdaCMS,
2960+# 'for particle',particle_name)
2961+# misc.sprint('Width obtained :', width)
2962+# if lambdaCMS != 1.0:
2963+# misc.sprint('Naively expected (lin. scaling) :',
2964+# options['cached_widths'][(PDG,1.0)]*lambdaCMS)
2965+
2966+ if options['recompute_width'] in ['never','first_time']:
2967+ # Assume linear scaling of the width
2968+ for lam in options['lambdaCMS']:
2969+ options['cached_widths'][(PDG,lam)]=width*(lam/lambdaCMS)
2970+ else:
2971+ options['cached_widths'][(PDG,lambdaCMS)] = width
2972+
2973+ return options['cached_widths'][(PDG,lambdaCMS)]
2974+
2975+ def get_order(diagrams, diagsName):
2976+ """Compute the common summed of coupling orders used for this cms check
2977+ in the diagrams specified. When inconsistency occurs, use orderName
2978+ in the warning message if throwm."""
2979+
2980+ orders = set([])
2981+ for diag in diagrams:
2982+ diag_orders = diag.calculate_orders()
2983+ orders.add(sum((diag_orders[order] if order in diag_orders else 0)
2984+ for order in options['expansion_orders']))
2985+ if len(orders)>1:
2986+ logger.warning(msg%('%s '%diagsName,str(orders)))
2987+ return min(list(orders))
2988+ else:
2989+ return list(orders)[0]
2990+
2991+ MLoptions = copy.copy(options['MLOptions'])
2992+ # Make sure double-check helicities is set to False
2993+ MLoptions['DoubleCheckHelicityFilter'] = False
2994+
2995+ # Apply the seed tweak if present
2996+ for tweak in options['tweak']['custom']:
2997+ if tweak.startswith('seed'):
2998+ try:
2999+ new_seed = int(tweak[4:])
3000+ except ValueError:
3001+ raise MadGraph5Error, "Seed '%s' is not of the right format 'seed<int>'."%tweak
3002+ random.seed(new_seed)
3003+
3004+ mode = 'CMS' if aloha.complex_mass else 'NWA'
3005+ for i, leg in enumerate(process.get('legs')):
3006+ leg.set('number', i+1)
3007+
3008+ logger.info("Running CMS check for process %s (now doing %s scheme)" % \
3009+ ( process.nice_string().replace('Process:', 'process'), mode))
3010+
3011+ proc_dir = None
3012+ resonances = None
3013+ warning_msg = "All %sdiagrams do not share the same sum of orders "+\
3014+ "%s; found %%s."%(','.join(options['expansion_orders']))+\
3015+ " This potentially problematic for the CMS check."
3016+ if NLO:
3017+ # We must first create the matrix element, export it and set it up.
3018+ # If the reuse option is specified, it will be recycled.
3019+
3020+ if options['name']=='auto':
3021+ proc_name = "%s%s_%s%s__%s__"%(('SAVED' if options['reuse'] else ''),
3022+ temp_dir_prefix, '_'.join(process.shell_string().split('_')[1:]),
3023+ ('_' if process.get('perturbation_couplings') else '')+
3024+ '_'.join(process.get('perturbation_couplings')),mode)
3025+ else:
3026+ proc_name = "%s%s_%s__%s__"%(('SAVED' if options['reuse'] else ''),
3027+ temp_dir_prefix,options['name'], mode)
3028+ # Generate the ME
3029+ timing, matrix_element = generate_loop_matrix_element(process,
3030+ options['reuse'], output_path=options['output_path'],
3031+ cmd = options['cmd'], proc_name=proc_name,
3032+ loop_filter=options['loop_filter'])
3033+ if matrix_element is None:
3034+ # No diagrams for this process
3035+ return None
3036+
3037+ reusing = isinstance(matrix_element, base_objects.Process)
3038+ proc_dir = pjoin(options['output_path'],proc_name)
3039+
3040+ # Export the ME
3041+ infos = evaluator.setup_process(matrix_element, proc_dir,
3042+ reusing = reusing, param_card = options['param_card'],
3043+ MLOptions=MLoptions)
3044+ # Make sure the right MLoptions are set
3045+ evaluator.fix_MadLoopParamCard(pjoin(proc_dir,'Cards'),
3046+ mp = None, loop_filter = True,MLOptions=MLoptions)
3047+
3048+ # Make sure to start from fresh if previous run was stopped
3049+ tmp_card_backup = pjoin(proc_dir,'Cards','param_card.dat__TemporaryBackup__')
3050+ if os.path.isfile(tmp_card_backup):
3051+ # Run was stopped mid-way, we must then restore the original card
3052+ logger.info("Last run in process '%s' apparently aborted."%proc_dir+\
3053+ " Now reverting 'param_card.dat' to its original value.")
3054+ shutil.copy(tmp_card_backup, pjoin(proc_dir, 'Cards','param_card.dat'))
3055+ else:
3056+ # Create a temporary backup which will be cleaned if the run ends properly
3057+ shutil.copy(pjoin(proc_dir,'Cards','param_card.dat'), tmp_card_backup)
3058+ # Now do the same with model_functions.f
3059+ tmp_modelfunc_backup = pjoin(proc_dir,'Source','MODEL',
3060+ 'model_functions.f__TemporaryBackup__')
3061+ if os.path.isfile(tmp_modelfunc_backup):
3062+ # Run was stopped mid-way, we must then restore the model functions
3063+ logger.info("Last run in process '%s' apparently aborted."%proc_dir+\
3064+ " Now reverting 'model_functions.f' to its original value.")
3065+ shutil.copy(tmp_modelfunc_backup, pjoin(proc_dir,'Source','MODEL',
3066+ 'model_functions.f'))
3067+ evaluator.apply_log_tweak(proc_dir, 'recompile')
3068+ else:
3069+ # Create a temporary backup which will be cleaned if the run ends properly
3070+ shutil.copy(pjoin(proc_dir,'Source','MODEL','model_functions.f'),
3071+ tmp_modelfunc_backup)
3072+
3073+ # Make sure to setup correctly the helicity
3074+ MadLoopInitializer.fix_PSPoint_in_check(pjoin(proc_dir,'SubProcesses'),
3075+ read_ps = True, npoints = 1, hel_config = options['helicity'],
3076+ split_orders=options['split_orders'])
3077+
3078+ # And recompile while making sure to recreate the executable and
3079+ # modified sources
3080+ for dir in glob.glob(pjoin(proc_dir,'SubProcesses','P*_*')):
3081+ if not (re.search(r'.*P\d+_\w*$', dir) or not os.path.isdir(dir)):
3082+ continue
3083+ try:
3084+ os.remove(pjoin(dir,'check'))
3085+ os.remove(pjoin(dir,'check_sa.o'))
3086+ except OSError:
3087+ pass
3088+ # Now run make
3089+ with open(os.devnull, 'w') as devnull:
3090+ retcode = subprocess.call(['make','check'],
3091+ cwd=dir, stdout=devnull, stderr=devnull)
3092+ if retcode != 0:
3093+ raise MadGraph5Error, "Compilation error with "+\
3094+ "'make check' in %s"%dir
3095+
3096+ # Now find all the resonances of the ME, if not saved from a previous run
3097+ pkl_path = pjoin(proc_dir,'resonance_specs.pkl')
3098+ if reusing:
3099+ # We recover the information from the pickle dumped during the
3100+ # original run
3101+ if not os.path.isfile(pkl_path):
3102+ raise InvalidCmd('The folder %s could'%proc_dir+\
3103+ " not be reused because the resonance specification file "+
3104+ "'resonance_specs.pkl' is missing.")
3105+ else:
3106+ proc_name, born_order, loop_order, resonances = \
3107+ save_load_object.load_from_file(pkl_path)
3108+ # Make sure to rederive the phase-space point since parameters
3109+ # such as masses, seed, offshellness could have affected it
3110+ for res in resonances:
3111+ set_PSpoint(res, force_other_res_offshell=resonances)
3112+
3113+ # Second run (CMS), we can reuse the information if it is a dictionary
3114+ if isinstance(opt, list):
3115+ opt.append((proc_name, resonances))
3116+ else:
3117+ resonances = opt
3118+ else:
3119+ helas_born_diagrams = matrix_element.get_born_diagrams()
3120+ if len(helas_born_diagrams)==0:
3121+ logger.warning('The CMS check for loop-induced process is '+\
3122+ 'not yet available (nor is it very interesting).')
3123+ return None
3124+ born_order = get_order(helas_born_diagrams,'Born')
3125+ loop_order = get_order(matrix_element.get_loop_diagrams(),'loop')
3126+
3127+ # Second run (CMS), we can reuse the information if it is a dictionary
3128+ if isinstance(opt, list):
3129+ opt.append((process.base_string(),find_resonances(helas_born_diagrams)))
3130+ resonances = opt[-1][1]
3131+ else:
3132+ resonances = opt
3133+ # Save the resonances to a pickle file in the output directory so that
3134+ # it can potentially be reused.
3135+ save_load_object.save_to_file(pkl_path, (process.base_string(),
3136+ born_order, loop_order,resonances))
3137+
3138+ else:
3139+ # The LO equivalent
3140+ try:
3141+ amplitude = diagram_generation.Amplitude(process)
3142+ except InvalidCmd:
3143+ logging.info("No diagrams for %s" % \
3144+ process.nice_string().replace('Process', 'process'))
3145+ return None
3146+ if not amplitude.get('diagrams'):
3147+ # This process has no diagrams; go to next process
3148+ logging.info("No diagrams for %s" % \
3149+ process.nice_string().replace('Process', 'process'))
3150+ return None
3151+
3152+ matrix_element = helas_objects.HelasMatrixElement(amplitude,
3153+ gen_color=True)
3154+ diagrams = matrix_element.get('diagrams')
3155+ born_order = get_order(diagrams,'Born')
3156+ # Loop order set to -1 indicates an LO result
3157+ loop_order = -1
3158+ # Find all the resonances of the ME, if not already given in opt
3159+ if isinstance(opt, list):
3160+ opt.append((process.base_string(),find_resonances(diagrams)))
3161+ resonances = opt[-1][1]
3162+ else:
3163+ resonances= opt
3164+
3165+ if len(resonances)==0:
3166+ logger.info("No resonance found for process %s."\
3167+ %process.base_string())
3168+ return None
3169+
3170+ # Cache the default param_card for NLO
3171+ if not options['cached_param_card'][mode][0]:
3172+ if NLO:
3173+ param_card = check_param_card.ParamCard(
3174+ pjoin(proc_dir,'Cards','param_card.dat'))
3175+ else:
3176+ param_card = check_param_card.ParamCard(
3177+ StringIO.StringIO(evaluator.full_model.write_param_card()))
3178+ options['cached_param_card'][mode][0] = param_card
3179+ name2block, _ = AskforEditCard.analyze_param_card(param_card)
3180+ options['cached_param_card'][mode][1] = name2block
3181+
3182+ else:
3183+ param_card = options['cached_param_card'][mode][0]
3184+ name2block = options['cached_param_card'][mode][1]
3185+
3186+ # Already add the coupling order for this sqaured ME.
3187+ if loop_order != -1 and (loop_order+born_order)%2 != 0:
3188+ raise MadGraph5Error, 'The summed squared matrix element '+\
3189+ " order '%d' is not even."%(loop_order+born_order)
3190+ result = {'born_order':born_order,
3191+ 'loop_order': (-1 if loop_order==-1 else (loop_order+born_order)/2),
3192+ 'resonances_result':[]}
3193+
3194+ # Create a physical backup of the param_card
3195+ if NLO:
3196+ try:
3197+ shutil.copy(pjoin(proc_dir,'Cards','param_card.dat'),
3198+ pjoin(proc_dir,'Cards','param_card.dat__backUp__'))
3199+ except:
3200+ pass
3201+
3202+ # Apply custom tweaks
3203+ had_log_tweaks=False
3204+ if NLO:
3205+ for tweak in options['tweak']['custom']:
3206+ if tweak.startswith('seed'):
3207+ continue
3208+ try:
3209+ logstart, logend = tweak.split('->')
3210+ except:
3211+ raise Madgraph5Error, "Tweak '%s' not reckognized."%tweak
3212+ if logstart in ['logp','logm', 'log'] and \
3213+ logend in ['logp','logm', 'log']:
3214+ if NLO:
3215+ evaluator.apply_log_tweak(proc_dir, [logstart, logend])
3216+ had_log_tweaks = True
3217+ else:
3218+ raise Madgraph5Error, "Tweak '%s' not reckognized."%tweak
3219+ if had_log_tweaks:
3220+ evaluator.apply_log_tweak(proc_dir, 'recompile')
3221+
3222+ # Select what resonances should be run
3223+ if options['resonances']=='all':
3224+ resonances_to_run = resonances
3225+ elif isinstance(options['resonances'],int):
3226+ resonances_to_run = resonances[:options['resonances']]
3227+ elif isinstance(options['resonances'],list):
3228+ resonances_to_run = []
3229+ for res in resonances:
3230+ for res_selection in options['resonances']:
3231+ if abs(res['ParticlePDG'])==res_selection[0] and \
3232+ res['FSMothersNumbers']==set(res_selection[1]):
3233+ resonances_to_run.append(res)
3234+ break
3235+ else:
3236+ raise InvalidCmd("Resonance selection '%s' not reckognized"%\
3237+ str(options['resonances']))
3238+
3239+ # Display progressbar both for LO and NLO for now but not when not showing
3240+ # the plots
3241+ if (NLO or True) and options['show_plot']:
3242+ widgets = ['ME evaluations:', pbar.Percentage(), ' ',
3243+ pbar.Bar(),' ', pbar.ETA(), ' ']
3244+ progress_bar = pbar.ProgressBar(widgets=widgets,
3245+ maxval=len(options['lambdaCMS'])*len(resonances_to_run), fd=sys.stdout)
3246+ progress_bar.update(0)
3247+ # Flush stdout to force the progress_bar to appear
3248+ sys.stdout.flush()
3249+ else:
3250+ progress_bar = None
3251+
3252+ for resNumber, res in enumerate(resonances_to_run):
3253+ # First add a dictionary for this resonance to the result with already
3254+ # one key specifying the resonance
3255+ result['resonances_result'].append({'resonance':res,'born':[]})
3256+ if NLO:
3257+ result['resonances_result'][-1]['finite'] = []
3258+ # Now scan the different lambdaCMS values
3259+ for lambdaNumber, lambdaCMS in enumerate(options['lambdaCMS']):
3260+ # Setup the model for that value of lambdaCMS
3261+ # The copy constructor below creates a deep copy
3262+ new_param_card = check_param_card.ParamCard(param_card)
3263+ # Change all specified parameters
3264+ for param, replacement in options['expansion_parameters'].items():
3265+ # Replace the temporary prefix used for evaluation of the
3266+ # substitution expression
3267+ orig_param = param.replace('__tmpprefix__','')
3268+ if orig_param not in name2block:
3269+ # It can be that some parameter ar in the NWA model but not
3270+ # in the CMS, such as the Yukawas for example.
3271+ # logger.warning("Unknown parameter '%s' in mode '%s'."%(param,mode))
3272+ continue
3273+ for block, lhaid in name2block[orig_param]:
3274+ orig_value = float(param_card[block].get(lhaid).value)
3275+ new_value = eval(replacement,
3276+ {param:orig_value,'lambdacms':lambdaCMS})
3277+ new_param_card[block].get(lhaid).value=new_value
3278+
3279+ # Apply these changes already (for the purpose of Width computation.
3280+ # although it is optional since we now provide the new_param_card to
3281+ # the width computation function.). Also in principle this matters
3282+ # only in the CMS and there the widths would be reused from their
3283+ # prior computation within NWA with zero widths. So, all in all,
3284+ # the line below is really not crucial, but semantically, it ought
3285+ # to be there.
3286+ evaluator.full_model.set_parameters_and_couplings(
3287+ param_card=new_param_card)
3288+ # Now compute or recyle all widths
3289+ for decay in new_param_card['decay'].keys():
3290+ if mode=='CMS':
3291+ new_width = get_width(abs(decay[0]), lambdaCMS,
3292+ new_param_card)
3293+ else:
3294+ new_width = 0.0
3295+ new_param_card['decay'].get(decay).value= new_width
3296+
3297+ # Apply these changes for the purpose of the final computation
3298+ evaluator.full_model.set_parameters_and_couplings(
3299+ param_card=new_param_card)
3300+ if NLO:
3301+ new_param_card.write(pjoin(proc_dir,'Cards','param_card.dat'))
3302+ # Write the recomputed widths so that it can potentially be
3303+ # used for future runs (here for the model in the CMS format)
3304+ if lambdaCMS==1.0 and mode=='CMS' and \
3305+ options['recompute_width'] in ['always','first_time']:
3306+ new_param_card.write(pjoin(proc_dir,
3307+ 'Cards','param_card.dat_recomputed_widths'))
3308+
3309+ # If recomputing widths with MadWidths, we want to do it within
3310+ # the NWA models with zero widths.
3311+ if mode=='NWA' and (options['recompute_width']=='always' or (
3312+ options['recompute_width']=='first_time' and lambdaCMS==1.0)):
3313+ # The copy constructor below creates a deep copy
3314+ tmp_param_card = check_param_card.ParamCard(new_param_card)
3315+ # We don't use the result here, it is just so that it is put
3316+ # in the cache and reused in the CMS run that follows.
3317+ for decay in new_param_card['decay'].keys():
3318+ particle_name = evaluator.full_model.get_particle(\
3319+ abs(decay[0])).get_name()
3320+ new_width = get_width(abs(decay[0]),lambdaCMS,new_param_card)
3321+ tmp_param_card['decay'].get(decay).value = new_width
3322+ if not options['has_FRdecay'] and new_width != 0.0:
3323+ logger.info('Numerically computed width of particle'+\
3324+ ' %s for lambda=%.4g : %-9.6gGeV'%
3325+ (particle_name,lambdaCMS,new_width))
3326+
3327+ # Write the recomputed widths so that it can potentially be
3328+ # used for future runs (here the model in the NWA format)
3329+ if lambdaCMS==1.0 and NLO:
3330+ tmp_param_card.write(pjoin(proc_dir,
3331+ 'Cards','param_card.dat_recomputed_widths'))
3332+
3333+ # Apply the params tweaks
3334+ for param, replacement in options['tweak']['params'].items():
3335+ # Replace the temporary prefix used for evaluation of the
3336+ # substitution expression
3337+ orig_param = param.replace('__tmpprefix__','')
3338+ # Treat the special keyword 'allwidths'
3339+ if orig_param.lower() == 'allwidths':
3340+ # Apply the rule to all widhts
3341+ for decay in new_param_card['decay'].keys():
3342+ orig_value = float(new_param_card['decay'].get(decay).value)
3343+ new_value = eval(replacement,
3344+ {param:orig_value,'lambdacms':lambdaCMS})
3345+ new_param_card['decay'].get(decay).value = new_value
3346+ continue
3347+ if orig_param not in name2block:
3348+ # It can be that some parameter are in the NWA model but not
3349+ # in the CMS, such as the Yukawas for example.
3350+ continue
3351+ for block, lhaid in name2block[orig_param]:
3352+ orig_value = float(new_param_card[block].get(lhaid).value)
3353+ new_value = eval(replacement,
3354+ {param:orig_value,'lambdacms':lambdaCMS})
3355+ new_param_card[block].get(lhaid).value=new_value
3356+
3357+ if options['tweak']['params']:
3358+ # Apply the tweaked param_card one last time
3359+ evaluator.full_model.set_parameters_and_couplings(
3360+ param_card=new_param_card)
3361+ if NLO:
3362+ new_param_card.write(pjoin(proc_dir,'Cards','param_card.dat'))
3363+
3364+ # Finally ready to compute the matrix element
3365+ if NLO:
3366+ ME_res = LoopMatrixElementEvaluator.get_me_value(process, 0,
3367+ proc_dir, PSpoint=res['PS_point_used'], verbose=False,
3368+ format='dict', skip_compilation=True)
3369+ # Notice that there is much more information in ME_res. It can
3370+ # be forwarded to check_complex_mass_scheme in this result
3371+ # dictionary if necessary for the analysis. (or even the full
3372+ # dictionary ME_res can be added).
3373+ result['resonances_result'][-1]['born'].append(ME_res['born'])
3374+ result['resonances_result'][-1]['finite'].append(
3375+ ME_res['finite']*ME_res['born']*ME_res['alphaS_over_2pi'])
3376+ else:
3377+ ME_res = evaluator.evaluate_matrix_element(matrix_element,
3378+ p=res['PS_point_used'], auth_skipping=False, output='m2')[0]
3379+ result['resonances_result'][-1]['born'].append(ME_res)
3380+ if not progress_bar is None:
3381+ progress_bar.update(resNumber*len(options['lambdaCMS'])+\
3382+ (lambdaNumber+1))
3383+ # Flush to force the printout of the progress_bar to be updated
3384+ sys.stdout.flush()
3385+
3386+ # Restore the original continued log definition if necessary
3387+ log_reversed = False
3388+ for tweak in options['tweak']['custom']:
3389+ if tweak.startswith('log') and had_log_tweaks:
3390+ if log_reversed:
3391+ continue
3392+ if NLO:
3393+ evaluator.apply_log_tweak(proc_dir, 'default')
3394+ evaluator.apply_log_tweak(proc_dir, 'recompile')
3395+ log_reversed = True
3396+
3397+ # Restore the original model parameters
3398+ evaluator.full_model.set_parameters_and_couplings(param_card=param_card)
3399+ if NLO:
3400+ try:
3401+ shutil.copy(pjoin(proc_dir,'Cards','param_card.dat__backUp__'),
3402+ pjoin(proc_dir,'Cards','param_card.dat'))
3403+ except:
3404+ param_card.write(pjoin(proc_dir,'Cards','param_card.dat'))
3405+
3406+ # All should have been restored properly, so we can now clean the temporary
3407+ # backups
3408+ try:
3409+ os.remove(pjoin(proc_dir,'Cards','param_card.dat__TemporaryBackup__'))
3410+ os.remove(pjoin(proc_dir,'Source','MODEL',
3411+ 'model_functions.f__TemporaryBackup__'))
3412+ except:
3413+ pass
3414+
3415+ return (process.nice_string().replace('Process:', '').strip(),result)
3416+
3417 def get_value(process, evaluator, p=None, options=None):
3418 """Return the value/momentum for a phase space point"""
3419
3420@@ -3677,6 +4983,765 @@
3421 else:
3422 return fail_proc
3423
3424-
3425-
3426-
3427+def CMS_save_path(extension, cms_res, used_model, opts, output_path=None):
3428+ """Creates a suitable filename for saving these results."""
3429+
3430+ if opts['name']=='auto' and opts['analyze']!='None':
3431+ # Reuse the same name then
3432+ return '%s.%s'%(os.path.splitext(opts['analyze'].split(',')[0])\
3433+ [0],extension)
3434+ # if a name is specified, use it
3435+ if opts['name']!='auto':
3436+ basename = opts['name']
3437+ else:
3438+ prefix = 'cms_check_'
3439+ # Use process name if there is only one process
3440+ if len(cms_res['ordered_processes'])==1:
3441+ proc = cms_res['ordered_processes'][0]
3442+ replacements = {' ':'','+':'p','-':'m','~':'x', '>':'_','=':'eq'}
3443+ # Remove the perturbation couplings:
3444+ try:
3445+ proc=proc[:proc.index('[')]
3446+ except ValueError:
3447+ pass
3448+
3449+ for key, value in replacements.items():
3450+ proc = proc.replace(key,value)
3451+
3452+ basename =prefix+proc+'_%s_'%used_model.get('name')+\
3453+ ( ('_'+'_'.join(cms_res['perturbation_orders'])) if \
3454+ cms_res['perturbation_orders']!=[] else '')
3455+ # Use timestamp otherwise
3456+ else:
3457+ basename = prefix+datetime.datetime.now().strftime("%Y_%m_%d_%Hh%Mm%Ss")
3458+
3459+ suffix = '_%s'%opts['tweak']['name'] if opts['tweak']['name']!='' else ''
3460+ if output_path:
3461+ return pjoin(output_path,'%s%s.%s'%(basename,suffix,extension))
3462+ else:
3463+ return '%s%s.%s'%(basename,suffix,extension)
3464+
3465+def output_complex_mass_scheme(result,output_path, options, model, output='text'):
3466+ """ Outputs nicely the outcome of the complex mass scheme check performed
3467+ by varying the width in the offshell region of resonances found for eahc process.
3468+ Output just specifies whether text should be returned or a list of failed
3469+ processes."""
3470+
3471+ pert_orders=result['perturbation_orders']
3472+
3473+ ######## CHECK PARAMETERS #########
3474+ #
3475+ # diff_lambda_power choses the power by which one should divide the difference
3476+ # curve. The test should only work with 1, but it is useful for the LO
3477+ # check to see the difference has O(\lambda) contribution by setting this
3478+ # parameter to 2. If the Born does not have O(\lambda) contributions
3479+ # (i.e. if the test still pas with diff_lambda_power=2) then the NLO test
3480+ # will not be sensitive to the CMS implementation details.
3481+ diff_lambda_power = options['diff_lambda_power']
3482+ # DISLAIMER:
3483+ # The CMS check is non trivial to automate and it is actually best done
3484+ # manually by looking at plots for various implementation of the CMS.
3485+ # The automatic check performed here with the default parameters below
3486+ # should typically capture the main features of the CMS implementation.
3487+ # There will always be exceptions however.
3488+ #
3489+ if 'has_FRdecay' in result:
3490+ has_FRdecay = result['has_FRdecay']
3491+ else:
3492+ has_FRdecay = False
3493+ # be tighter at LO
3494+ if not pert_orders:
3495+ CMS_test_threshold = 1e-3
3496+ else:
3497+ # AT NLO, a correct cancellation is typically of the order of 2% with
3498+ # a lowest lambda value of 10^-4. It is clear that the threshold should
3499+ # scale with the minimum lambda value because any little offset in the
3500+ # LO width value for example (acceptable when less than one 1% if the
3501+ # widths were computed numerically) will lead to an inaccuracy of the
3502+ # cancellation scaling with lambda.
3503+ if not has_FRdecay and ('recomputed_with' not in result or \
3504+ result['recompute_width'] in ['always','first_time']):
3505+ CMS_test_threshold = 2e-2*(1.0e-4/min(result['lambdaCMS']))
3506+ else:
3507+ # If the widths were not computed numerically, then the accuracy of
3508+ # the cancellation should be better.
3509+ CMS_test_threshold = 2e-2*(1.0e-5/min(result['lambdaCMS']))
3510+
3511+ # This threshold sets how flat the diff line must be when approaching it from
3512+ # the right to start considering its value. Notice that it cannot be larger
3513+ # than the CMS_test_threshold
3514+ consideration_threshold = min(CMS_test_threshold/10.0, 0.05)
3515+ # Number of values groupes with the median technique to avoid being
3516+ # sensitive to unstabilities
3517+ group_val = 3
3518+ # Starting from which value, relative to the averaged diff, should one consider
3519+ # the asymptotic diff median to be exactly 0.0 in which case one would use this
3520+ # average instead of this asymptotic median. u d~ > e+ ve LO exhibit a \
3521+ # difference at zero for example.
3522+ diff_zero_threshold = 1e-3
3523+ # Plotting parameters. Specify the lambda range to plot.
3524+ # lambda_range = [-1,-1] returns the default automatic setup
3525+ lambda_range = options['lambda_plot_range']
3526+ ##################################
3527+
3528+# One can print out the raw results by uncommenting the line below
3529+# misc.sprint(result)
3530+# for i, res in enumerate(result['a e- > e- ve ve~ [ virt = QCD QED ]']['CMS']):
3531+# for i, res in enumerate(result['u d~ > e+ ve a [ virt = QCD QED ]']['CMS']):
3532+# if res['resonance']['FSMothersNumbers'] == set([3, 4]):
3533+# misc.sprint(res['resonance']['PS_point_used'])
3534+# stop
3535+
3536+ res_str = ''
3537+
3538+ ####### BEGIN helper functions
3539+
3540+ # Chose here whether to use Latex particle names or not
3541+ # Possible values are 'none', 'model' or 'built-in'
3542+ useLatexParticleName = 'built-in'
3543+ name2tex = {'e+':r'e^+','w+':r'W^+','a':r'\gamma','g':'g',
3544+ 'e-':r'e^-','w-':r'W^-','z':'Z','h':'H',
3545+ 'mu+':r'\mu^+',
3546+ 'mu-':r'\mu^-',
3547+ 'ta+':r'\tau^+',
3548+ 'ta-':r'\tau^-'}
3549+ for p in ['e','m','t']:
3550+ d = {'e':'e','m':r'\mu','t':r'\tau'}
3551+ name2tex['v%s'%p]=r'\nu_{%s}'%d[p]
3552+ name2tex['v%s~'%p]=r'\bar{\nu_{%s}}'%d[p]
3553+
3554+ for p in ['u','d','c','s','b','t']:
3555+ name2tex[p]=p
3556+ name2tex['%s~'%p]=r'\bar{%s}'%p
3557+
3558+ def format_particle_name(particle, latex=useLatexParticleName):
3559+ p_name = particle
3560+ if latex=='model':
3561+ try:
3562+ texname = model.get_particle(particle).get('texname')
3563+ if texname and texname!='none':
3564+ p_name = r'$\displaystyle %s$'%texname
3565+ except:
3566+ pass
3567+ elif latex=='built-in':
3568+ try:
3569+ p_name = r'$\displaystyle %s$'%name2tex[particle]
3570+ except:
3571+ pass
3572+ return p_name
3573+
3574+ def resonance_str(resonance, latex=useLatexParticleName):
3575+ """ Provides a concise string to characterize the resonance """
3576+ particle_name = model.get_particle(resonance['ParticlePDG']).get_name()
3577+ mothersID=['%d'%n for n in sorted(resonance['FSMothersNumbers'])]
3578+ return r"%s [%s]"%(format_particle_name(particle_name,latex=latex),
3579+ ','.join(mothersID))
3580+
3581+ def format_title(process, resonance):
3582+ """ Format the plot title given the process and resonance """
3583+
3584+ process_string = []
3585+ for particle in process.split():
3586+ if particle=='$$':
3587+ process_string.append(r'\$\$')
3588+ continue
3589+ if particle=='>':
3590+ process_string.append(r'$\displaystyle \rightarrow$')
3591+ continue
3592+ process_string.append(format_particle_name(particle))
3593+
3594+ if resonance=='':
3595+ return r'CMS check for %s' %(' '.join(process_string))
3596+ else:
3597+ return r'CMS check for %s ( resonance %s )'\
3598+ %(' '.join(process_string),resonance)
3599+
3600+ def guess_lambdaorder(ME_values_list, lambda_values, expected=None,
3601+ proc=None, res=None):
3602+ """ Guess the lambda scaling from a list of ME values and return it.
3603+ Also compare with the expected result if specified and trigger a
3604+ warning if not in agreement."""
3605+ # guess the lambdaCMS power in the amplitude squared
3606+ bpowers = []
3607+ for i, lambdaCMS in enumerate(lambda_values[1:]):
3608+ bpowers.append(round(math.log(ME_values_list[0]/ME_values_list[i+1],\
3609+ lambda_values[0]/lambdaCMS)))
3610+
3611+ # Pick the most representative power
3612+ bpower = sorted([(el, bpowers.count(el)) for el in set(bpowers)],
3613+ key = lambda elem: elem[1], reverse=True)[0][0]
3614+ if not expected:
3615+ return bpower
3616+ if bpower != expected:
3617+ logger.warning('The apparent scaling of the squared amplitude'+
3618+ 'seems inconsistent w.r.t to detected value '+
3619+ '(%i vs %i). %i will be used.'%(expected,bpower,bpower)+
3620+ ' This happend for process %s and resonance %s'%(proc, res))
3621+ return bpower
3622+
3623+ def check_stability(ME_values, lambda_values, lambda_scaling, values_name):
3624+ """ Checks if the values passed in argument are stable and return the
3625+ stability check outcome warning if it is not precise enough. """
3626+ values = sorted([
3627+ abs(val*(lambda_values[0]/lambda_values[i])**lambda_scaling) for \
3628+ i, val in enumerate(ME_values)])
3629+ median = values[len(values)//2]
3630+ max_diff = max(abs(values[0]-median),abs(values[-1]-median))
3631+ stability = max_diff/median
3632+ stab_threshold = 1e-2
3633+ if stability >= stab_threshold:
3634+ return "== WARNING: Stability check failed for '%s' with stability %.2e.\n"\
3635+ %(values_name, stability)
3636+ else:
3637+ return None
3638+ ####### END helper functions
3639+ if options['analyze']=='None':
3640+ if options['reuse']:
3641+ save_path = CMS_save_path('pkl', result, model, options,
3642+ output_path=output_path)
3643+ res_str += "\nThe results of this check have been stored on disk and its "+\
3644+ "analysis can be rerun at anytime with the MG5aMC command:\n "+\
3645+ " check cms --analyze=%s\n"%save_path
3646+ save_load_object.save_to_file(save_path, result)
3647+ elif len(result['ordered_processes'])>0:
3648+ res_str += "\nUse the following synthax if you want to store "+\
3649+ "the raw results on disk.\n"+\
3650+ " check cms -reuse <proc_def> <options>\n"
3651+
3652+ ############################
3653+ # Numerical check first #
3654+ ############################
3655+
3656+ checks = []
3657+ for process in result['ordered_processes']:
3658+ checks.extend([(process,resID) for resID in \
3659+ range(len(result[process]['CMS']))])
3660+
3661+ if options['reuse']:
3662+ logFile = open(CMS_save_path(
3663+ 'log', result, model, options, output_path=output_path),'w')
3664+
3665+ lambdaCMS_list=result['lambdaCMS']
3666+
3667+ # List of failed processes
3668+ failed_procs = []
3669+
3670+ # A bar printing function helper. Change the length here for esthetics
3671+ bar = lambda char: char*47
3672+
3673+ # Write out the widths used if information is present:
3674+ if 'widths_computed' in result:
3675+ res_str += '\n%s%s%s\n'%(bar('='),' Widths ',bar('='))
3676+ if result['recompute_width'] == 'never':
3677+ res_str += '| Widths extracted from the param_card.dat'
3678+ else:
3679+ res_str += '| Widths computed %s'%('analytically' if has_FRdecay
3680+ else 'numerically')
3681+ if result['recompute_width'] == 'first_time':
3682+ res_str += ' for \lambda = 1'
3683+ elif result['recompute_width'] == 'always':
3684+ res_str += ' for all \lambda values'
3685+ res_str += " using mode '--recompute_width=%s'.\n"%result['recompute_width']
3686+ for particle_name, width in result['widths_computed']:
3687+ res_str += '| %-10s = %-11.6gGeV\n'%('Width(%s)'%particle_name,width)
3688+ res_str += '%s%s%s\n'%(bar('='),'='*8,bar('='))
3689+
3690+ # Doing the analysis to printout to the MG5 interface and determine whether
3691+ # the test is passed or not
3692+ # Number of last points to consider for the stability test
3693+ nstab_points=group_val
3694+ # Store here the asymptot detected for each difference curve
3695+ differences_target = {}
3696+ for process, resID in checks:
3697+ proc_res = result[process]
3698+ cms_res = proc_res['CMS'][resID]
3699+ nwa_res = proc_res['NWA'][resID]
3700+ resonance = resonance_str(cms_res['resonance'], latex='none')
3701+ cms_born=cms_res['born']
3702+ nwa_born=nwa_res['born']
3703+ # Starting top thick bar
3704+ res_str += '\n%s%s%s\n'%(bar('='),'='*8,bar('='))
3705+ # Centered process and resonance title
3706+ proc_title = "%s (resonance %s)"%(process,resonance)
3707+ centering = (bar(2)+8-len(proc_title))//2
3708+ res_str += "%s%s\n"%(' '*centering,proc_title)
3709+ # Starting bottom thin bar
3710+ res_str += '%s%s%s\n'%(bar('-'),'-'*8,bar('-'))
3711+ # Reminder if diff_lambda_power is not 1
3712+
3713+ if diff_lambda_power!=1:
3714+ res_str += "== WARNING diff_lambda_power is not 1 but = %g\n"%diff_lambda_power
3715+ res_str += '%s%s%s\n'%(bar('-'),'-'*8,bar('-'))
3716+
3717+ born_power = guess_lambdaorder(nwa_born,lambdaCMS_list,
3718+ expected=proc_res['born_order'], proc=process, res=resonance)
3719+ stab_cms_born = check_stability(cms_born[-nstab_points:],
3720+ lambdaCMS_list[-nstab_points:], born_power, 'CMS Born')
3721+ if stab_cms_born:
3722+ res_str += stab_cms_born
3723+ stab_nwa_born = check_stability(nwa_born[-nstab_points:],
3724+ lambdaCMS_list[-nstab_points:], born_power, 'NWA Born')
3725+ if stab_nwa_born:
3726+ res_str += stab_nwa_born
3727+ # Write out the phase-space point
3728+ res_str += "== Kinematic configuration in GeV (E,px,pypz)\n"
3729+ for i, p in enumerate(cms_res['resonance']['PS_point_used']):
3730+ res_str += " | p%-2.d = "%(i+1)
3731+ for pi in p:
3732+ res_str += '%-24.17g'%pi if pi<0.0 else ' %-23.17g'%pi
3733+ res_str += "\n"
3734+ # Write out the offshellnesses specification
3735+ res_str += "== Offshellnesses of all detected resonances\n"
3736+ for res_name, offshellness in cms_res['resonance']['offshellnesses']:
3737+ res_str += " | %-15s = %f\n"%(res_name, offshellness)
3738+ res_str += '%s%s%s\n'%(bar('-'),'-'*8,bar('-'))
3739+
3740+ if not pert_orders:
3741+ res_str += "== Born scaling lambda^n_born. nborn = %d\n"%born_power
3742+ else:
3743+ cms_finite=cms_res['finite']
3744+ nwa_finite=nwa_res['finite']
3745+ loop_power = guess_lambdaorder(nwa_finite,lambdaCMS_list,
3746+ expected=proc_res['loop_order'], proc=process, res=resonance)
3747+ res_str += "== Scaling lambda^n. nborn, nloop = %d, %d\n"\
3748+ %(born_power,loop_power)
3749+ stab_cms_finite = check_stability(cms_finite[-nstab_points:],
3750+ lambdaCMS_list[-nstab_points:], loop_power, 'CMS finite')
3751+ if stab_cms_finite:
3752+ res_str += stab_cms_finite
3753+ stab_nwa_finite = check_stability(nwa_finite[-nstab_points:],
3754+ lambdaCMS_list[-nstab_points:], loop_power, 'NWA finite')
3755+ if stab_nwa_finite:
3756+ res_str += stab_nwa_finite
3757+ # Now organize data
3758+ CMSData = []
3759+ NWAData = []
3760+ DiffData = []
3761+ for idata, lam in enumerate(lambdaCMS_list):
3762+ if not pert_orders:
3763+ new_cms=cms_born[idata]/(lam**born_power)
3764+ new_nwa=nwa_born[idata]/(lam**born_power)
3765+ else:
3766+ new_cms=(cms_finite[idata]+cms_born[idata]-nwa_born[idata])/(lam*nwa_born[idata])
3767+ new_nwa=nwa_finite[idata]/(lam*nwa_born[idata])
3768+ new_diff=(new_cms-new_nwa)/(lam**diff_lambda_power)
3769+ CMSData.append(new_cms)
3770+ NWAData.append(new_nwa)
3771+ DiffData.append(new_diff)
3772+
3773+
3774+ # NWA Born median
3775+
3776+ # Find which values to start the test at by looking at the CMSdata scaling
3777+ # First compute the median of the middle 60% of entries in the plot
3778+ trim_range=int(((1.0-0.6)/2.0)*len(DiffData))
3779+ low_diff_median = sorted(DiffData[trim_range:-trim_range])\
3780+ [(len(DiffData)-2*trim_range)//2]
3781+
3782+ # Now walk the values from the right of the diff plot until we reaches
3783+ # values stable with respect to the CMS_tale_median. This value will
3784+ # be limit of the range considered for the CMS test. Do it in a way which
3785+ # is insensitive to instabilities, by considering medians of group_val
3786+ # consecutive points.
3787+ current_median = 0
3788+ # We really want to select only the very stable region
3789+ scan_index = 0
3790+ reference = abs(sorted(NWAData)[len(NWAData)//2])
3791+ if low_diff_median!= 0.0:
3792+ if abs(reference/low_diff_median)<diff_zero_threshold:
3793+ reference = abs(low_diff_median)
3794+ while True:
3795+ scanner = DiffData[scan_index:group_val+scan_index]
3796+ current_median = sorted(scanner)[len(scanner)//2]
3797+ # Useful for debugging
3798+ #misc.sprint(scanner,current_median,abs(current_median-low_diff_median)/reference,reference,consideration_threshold)
3799+ if abs(current_median-low_diff_median)/reference<\
3800+ consideration_threshold:
3801+ break;
3802+ scan_index += 1
3803+ if (group_val+scan_index)>=len(DiffData):
3804+ # this should not happen, but in this case we arbitrarily take
3805+ # half of the data
3806+ logger.warning('The median scanning failed during the CMS check '+
3807+ 'for process %s'%proc_title+\
3808+ 'This is means that the difference plot has not stable'+\
3809+ 'intermediate region and MG5_aMC will arbitrarily consider the'+\
3810+ 'left half of the values.')
3811+ scan_index = -1
3812+ break;
3813+
3814+ if scan_index == -1:
3815+ cms_check_data_range = len(DiffData)//2
3816+ else:
3817+ cms_check_data_range = scan_index + group_val
3818+
3819+ res_str += "== Data range considered (min, max, n_val) = (%.1e, %.1e, %d)\n"\
3820+ %(lambdaCMS_list[-1],lambdaCMS_list[scan_index],
3821+ len(lambdaCMS_list)-scan_index)
3822+ # Now setup the list of values affecting the CMScheck
3823+ CMScheck_values = DiffData[cms_check_data_range:]
3824+
3825+ # For the purpose of checking the stability of the tale, we now do
3826+ # the consideration_threshold scan from the *left* and if we finsih
3827+ # before the end, it means that there is an unstable region.
3828+ if scan_index >= 0:
3829+ # try to find the numerical instability region
3830+ scan_index = len(CMScheck_values)
3831+ used_group_val = max(3,group_val)
3832+ unstability_found = True
3833+ while True:
3834+ scanner = CMScheck_values[scan_index-used_group_val:scan_index]
3835+ maxdiff = max(abs(scan-low_diff_median) for scan in scanner)
3836+ if maxdiff/reference<consideration_threshold:
3837+ break;
3838+ if (scan_index-used_group_val)==0:
3839+ # this only happens when no stable intermediate region can be found
3840+ # Set scan_index to -99 so as to prevent warning
3841+ unstability_found = False
3842+ break;
3843+ # Proceed to th next block of data
3844+ scan_index -= 1
3845+
3846+ # Now report here the unstability found
3847+ if unstability_found:
3848+ unstab_check=CMScheck_values[scan_index:]
3849+ relative_array = [val > CMScheck_values[scan_index-1] for
3850+ val in unstab_check]
3851+ upper = relative_array.count(True)
3852+ lower = relative_array.count(False)
3853+ if not ((lower==0 and upper>=0) or (lower>=0 and upper==0)):
3854+ logger.warning(
3855+"""For process %s, a numerically unstable region was detected starting from lambda < %.1e.
3856+Look at the plot in this region (and possibly throw more points using the option --lambdaCMS).
3857+If this is indeed a stability issue, then either decrease MLStabThreshold in MadLoop or decrease the
3858+minimum value of lambda to be considered in the CMS check."""\
3859+ %(proc_title, lambdaCMS_list[cms_check_data_range+scan_index-1]))
3860+
3861+ # Now apply the same same technique, as above but to the difference plot
3862+ # Now we will use low_diff_median instead of diff_tale_median
3863+ #diff_tale_median = sorted(CMScheck_values)[len(CMScheck_values)//2]
3864+ scan_index = 0
3865+ max_diff = 0.0
3866+ res_str += "== Ref. value used in the ratios (Born NWA) = %s\n"\
3867+ %('%.3g'%reference)
3868+ res_str += "== Asymptotic difference value detected = %s\n"\
3869+ %('%.3g'%low_diff_median)
3870+ # Pass information to the plotter for the difference target
3871+ differences_target[(process,resID)]= low_diff_median
3872+# misc.sprint('Now doing resonance %s.'%res_str)
3873+ while True:
3874+ current_vals = CMScheck_values[scan_index:scan_index+group_val]
3875+ max_diff = max(max_diff, abs(low_diff_median-
3876+ sorted(current_vals)[len(current_vals)//2])/reference)
3877+ if (scan_index+group_val)>=len(CMScheck_values):
3878+ break
3879+ scan_index += 1
3880+
3881+ # Now use the CMS check result
3882+ res_str += "== CMS check result (threshold) = "+\
3883+ "%.3g%% (%s%.3g%%)\n"%(max_diff*100.0,
3884+ '>' if max_diff>CMS_test_threshold else '<',
3885+ CMS_test_threshold*100.0)
3886+ if max_diff>CMS_test_threshold:
3887+ failed_procs.append((process,resonance))
3888+ res_str += "%s %s %s\n"%(bar('='),
3889+ 'FAILED' if max_diff>CMS_test_threshold else 'PASSED',bar('='))
3890+
3891+ if len(checks):
3892+ res_str += "\nSummary: %i/%i passed"%(len(checks)-len(failed_procs),len(checks))+\
3893+ ('.\n' if not failed_procs else ', failed checks are for:\n')
3894+ else:
3895+ res_str += "\nNo CMS check to perform."
3896+
3897+ for process, resonance in failed_procs:
3898+ res_str += "> %s, %s\n"%(process, resonance)
3899+
3900+ ############################
3901+ # Now we turn to the plots #
3902+ ############################
3903+ if not options['show_plot']:
3904+ if options['reuse']:
3905+ logFile.write(res_str)
3906+ logFile.close()
3907+ if output=='text':
3908+ return res_str
3909+ else:
3910+ return failed_procs
3911+
3912+ fig_output_file = CMS_save_path('pdf', result, model, options,
3913+ output_path=output_path)
3914+ base_fig_name = fig_output_file[:-4]
3915+ suffix = 1
3916+ while os.path.isfile(fig_output_file):
3917+ fig_output_file = '%s__%d__.pdf'%(base_fig_name,suffix)
3918+ suffix+=1
3919+
3920+ process_data_plot_dict={}
3921+
3922+ # load possible additional results. The second element of the tuple is
3923+ # the dataset name.
3924+ all_res = [(result, None)]
3925+ for i, add_res in enumerate(options['analyze'].split(',')[1:]):
3926+ specs =re.match(r'^(?P<filename>.*)\((?P<title>.*)\)$', add_res)
3927+ if specs:
3928+ filename = specs.group('filename')
3929+ title = specs.group('title')
3930+ else:
3931+ filename = add_res
3932+ title = '#%d'%(i+1)
3933+
3934+ new_result = save_load_object.load_from_file(filename)
3935+ if new_result is None:
3936+ raise InvalidCmd('The complex mass scheme check result'+
3937+ " file below could not be read.\n %s"%filename)
3938+ if len(new_result['ordered_processes'])!=len(result['ordered_processes']) \
3939+ or len(new_result['lambdaCMS'])!=len(result['lambdaCMS']):
3940+ raise self.InvalidCmd('The complex mass scheme check result'+
3941+ " file below does not seem compatible.\n %s"%filename)
3942+ all_res.append((new_result,title))
3943+
3944+ # Prepare the data
3945+ for process, resID in checks:
3946+ data1=[] # for subplot 1,i.e. CMS and NWA
3947+ data2=[] # for subplot 2,i.e. diff
3948+ info ={} # info to be passed to the plotter
3949+ for res in all_res:
3950+ proc_res = res[0][process]
3951+ cms_res = proc_res['CMS'][resID]
3952+ nwa_res = proc_res['NWA'][resID]
3953+ resonance = resonance_str(cms_res['resonance'])
3954+ if options['resonances']!=1:
3955+ info['title'] = format_title(process, resonance)
3956+ else:
3957+ info['title'] = format_title(process, '')
3958+ # Born result
3959+ cms_born=cms_res['born']
3960+ nwa_born=nwa_res['born']
3961+ if len(cms_born) != len(lambdaCMS_list) or\
3962+ len(nwa_born) != len(lambdaCMS_list):
3963+ raise MadGraph5Error, 'Inconsistent list of results w.r.t. the'+\
3964+ ' lambdaCMS values specified for process %s'%process
3965+ if pert_orders:
3966+ cms_finite=cms_res['finite']
3967+ nwa_finite=nwa_res['finite']
3968+ if len(cms_finite) != len(lambdaCMS_list) or\
3969+ len(nwa_finite) != len(lambdaCMS_list):
3970+ raise MadGraph5Error, 'Inconsistent list of results w.r.t. the'+\
3971+ ' lambdaCMS values specified for process %s'%process
3972+
3973+ bpower = guess_lambdaorder(nwa_born,lambdaCMS_list,
3974+ expected=proc_res['born_order'], proc=process, res=resonance)
3975+
3976+ CMSData = []
3977+ NWAData = []
3978+ DiffData = []
3979+ for idata, lam in enumerate(lambdaCMS_list):
3980+ if not pert_orders:
3981+ new_cms = cms_born[idata]/lam**bpower
3982+ new_nwa = nwa_born[idata]/lam**bpower
3983+ else:
3984+ new_cms=cms_finite[idata]+cms_born[idata]-nwa_born[idata]
3985+ new_nwa=nwa_finite[idata]
3986+ new_cms /= lam*nwa_born[idata]
3987+ new_nwa /= lam*nwa_born[idata]
3988+ new_diff=(new_cms-new_nwa)/(lam**diff_lambda_power)
3989+ CMSData.append(new_cms)
3990+ NWAData.append(new_nwa)
3991+ DiffData.append(new_diff)
3992+ if res[1] is None:
3993+ if not pert_orders:
3994+ data1.append([r'$\displaystyle CMS\;=\;\mathcal{M}_{CMS}^{(0)}/\lambda^%d$'%bpower,CMSData])
3995+ data1.append([r'$\displaystyle NWA\;=\;\mathcal{M}_{NWA}^{(0)}/\lambda^%d$'%bpower,NWAData])
3996+ else:
3997+ data1.append([r'$\displaystyle CMS\;=\;(\mathcal{M}^{(1)}_{CMS}+\mathcal{M}_{CMS}^{(0)}-\mathcal{M}^{(0)}_{NWA})/(\lambda\cdot\mathcal{M}^{(0)}_{NWA})$',CMSData])
3998+ data1.append([r'$\displaystyle NWA\;=\;\mathcal{M}^{(1)}_{NWA}/(\lambda\cdot\mathcal{M}^{(0)}_{NWA})$',NWAData])
3999+ data2.append([r'$\displaystyle\Delta\;=\;(CMS-NWA)/\lambda%s$'\
4000+ %('' if diff_lambda_power==1 else r'^{%g}'%diff_lambda_power)
4001+ ,DiffData])
4002+ data2.append([r'Detected asymptot',[differences_target[(process,resID)]
4003+ for i in range(len(lambdaCMS_list))]])
4004+ else:
4005+ data1.append([r'$\displaystyle CMS$ %s'%res[1].replace('_',' '),CMSData])
4006+ data1.append([r'$\displaystyle NWA$ %s'%res[1].replace('_',' '),NWAData])
4007+ data2.append([r'$\displaystyle\Delta$ %s'%res[1].replace('_',' '),DiffData])
4008+
4009+ process_data_plot_dict[(process,resID)]=(data1,data2, info)
4010+
4011+ # Now turn to the actual plotting
4012+ try:
4013+ import matplotlib.pyplot as plt
4014+ from matplotlib.backends.backend_pdf import PdfPages
4015+
4016+ # output the figures
4017+ if lambda_range[1]>0:
4018+ min_lambda_index = -1
4019+ for i, lam in enumerate(lambdaCMS_list):
4020+ if lam<=lambda_range[1]:
4021+ min_lambda_index = i
4022+ break
4023+ else:
4024+ min_lambda_index = 0
4025+ if lambda_range[0]>0:
4026+ max_lambda_index = -1
4027+ for i, lam in enumerate(lambdaCMS_list):
4028+ if lam<=lambda_range[0]:
4029+ max_lambda_index=i-1
4030+ break
4031+ else:
4032+ max_lambda_index=len(lambdaCMS_list)-1
4033+
4034+ if max_lambda_index==-1 or min_lambda_index==-1 or \
4035+ min_lambda_index==max_lambda_index:
4036+ raise InvalidCmd('Invalid lambda plotting range: (%.1e,%.1e)'%\
4037+ (lambda_range[0],lambda_range[1]))
4038+ # Trim lambda values
4039+ if lambda_range[0]>0.0 or lambda_range[1]>0.0:
4040+ lambdaCMS_list = lambdaCMS_list[min_lambda_index:max_lambda_index+1]
4041+
4042+ plt.rc('text', usetex=True)
4043+ plt.rc('font', family='serif')
4044+ pp=PdfPages(fig_output_file)
4045+ if len(checks)==0 or len(process_data_plot_dict[checks[0]][1])<=7:
4046+ colorlist=['b','r','g','k','c','m','y']
4047+ else:
4048+ import matplotlib.colors as colors
4049+ import matplotlib.cm as mplcm
4050+ import matplotlib.colors as colors
4051+
4052+ # Nice color maps here are 'gist_rainbow'
4053+ cm = plt.get_cmap('gist_rainbow')
4054+ cNorm = colors.Normalize(vmin=0, vmax=(len(data2)-1))
4055+ scalarMap = mplcm.ScalarMappable(norm=cNorm, cmap=cm)
4056+ # use vmax=(len(data1)-1)*0.9 to remove pink at the end of the spectrum
4057+ colorlist = [scalarMap.to_rgba(i*0.9) for i in range(len(data2))]
4058+ # Or it is also possible to alternate colors so as to make them
4059+ # as distant as possible to one another
4060+ # colorlist = sum([
4061+ # [scalarMap.to_rgba(i),scalarMap.to_rgba(i+len(data2)//2)]
4062+ # for i in range(len(data2)//2)],[])
4063+
4064+ legend_size = 10
4065+ for iproc, (process, resID) in enumerate(checks):
4066+ data1,data2, info=process_data_plot_dict[(process,resID)]
4067+ # Trim dataplot if necessary
4068+ if lambda_range[0]>0.0 or lambda_range[1]>0.0:
4069+ for i in range(len(data1)):
4070+ data1[i][1]=data1[i][1][min_lambda_index:max_lambda_index+1]
4071+ for i in range(len(data2)):
4072+ data2[i][1]=data2[i][1][min_lambda_index:max_lambda_index+1]
4073+ plt.figure(iproc+1)
4074+ plt.subplot(211)
4075+ minvalue=1e+99
4076+ maxvalue=-1e+99
4077+ for i, d1 in enumerate(data1):
4078+ # Use the same color for NWA and CMS curve but different linestyle
4079+ color=colorlist[i//2]
4080+ data_plot=d1[1]
4081+ minvalue=min(min(data_plot),minvalue)
4082+ maxvalue=max(max(data_plot),maxvalue)
4083+ plt.plot(lambdaCMS_list, data_plot, color=color, marker='', \
4084+ linestyle=('-' if i%2==0 else '--'),
4085+ label=(d1[0] if (i%2==0 or i==1) else '_nolegend_'))
4086+ ymin = minvalue-(maxvalue-minvalue)/5.
4087+ ymax = maxvalue+(maxvalue-minvalue)/5.
4088+
4089+ plt.yscale('linear')
4090+ plt.xscale('log')
4091+ plt.title(info['title'],fontsize=12,y=1.08)
4092+ plt.ylabel(r'$\displaystyle \mathcal{M}$')
4093+ #plt.xlabel('lambdaCMS')
4094+ if ymax*len(data1)-sum(max(d1[1][-len(d1[1])//2:]) \
4095+ for d1 in data1) > 0.5*(ymax-ymin)*len(data1):
4096+ plt.legend(prop={'size':legend_size},loc='upper left', frameon=False)
4097+ else:
4098+ plt.legend(prop={'size':legend_size},loc='lower left', frameon=False)
4099+
4100+ plt.axis([min(lambdaCMS_list),max(lambdaCMS_list), ymin, ymax])
4101+
4102+ plt.subplot(212)
4103+ minvalue=1e+99
4104+ maxvalue=-1e+99
4105+
4106+ try:
4107+ asymptot_index = [d2[0] for d2 in data2].index('Detected asymptot')
4108+ plt.plot(lambdaCMS_list, data2[asymptot_index][1],
4109+ color='0.75', marker='', linestyle='-', label='')
4110+ except ValueError:
4111+ pass
4112+
4113+ color_ID = -1
4114+ for d2 in data2:
4115+ # Special setup for the reference asymptot straight line
4116+ if d2[0]=='Detected asymptot':
4117+ continue
4118+ color_ID += 1
4119+ color=colorlist[color_ID]
4120+ data_plot=d2[1]
4121+ minvalue=min(min(data_plot),minvalue)
4122+ maxvalue=max(max(data_plot),maxvalue)
4123+ plt.plot(lambdaCMS_list, data_plot, color=color, marker='',\
4124+ linestyle='-', label=d2[0])
4125+ ymin = minvalue-(maxvalue-minvalue)/5.
4126+ ymax = maxvalue+(maxvalue-minvalue)/5.
4127+
4128+ plt.yscale('linear')
4129+ plt.xscale('log')
4130+ plt.ylabel(r'$\displaystyle \Delta$')
4131+ plt.xlabel(r'$\displaystyle \lambda$')
4132+ # The unreadable stuff below is just to check if the left of the
4133+ # plot is stable or not
4134+ sd = [sorted(d2[1][-len(d2[1])//2:]) for d2 in data2]
4135+ left_stability = sum(abs(s[0]-s[-1]) for s in sd)
4136+ sd = [sorted(d2[1][:-len(d2[1])//2]) for d2 in data2]
4137+ right_stability = sum(abs(s[0]-s[-1]) for s in sd)
4138+ left_stable = False if right_stability==0.0 else \
4139+ (left_stability/right_stability)<0.1
4140+
4141+ if left_stable:
4142+ if ymax*len(data2)-sum(max(d2[1][-len(d2[1])//2:]) \
4143+ for d2 in data2) > 0.5*(ymax-ymin)*len(data2):
4144+ plt.legend(prop={'size':legend_size},loc='upper left', frameon=False)
4145+ else:
4146+ plt.legend(prop={'size':legend_size},loc='lower left', frameon=False)
4147+ else:
4148+ if ymax*len(data2)-sum(max(d2[1][:-len(d2[1])//2]) \
4149+ for d2 in data2) > 0.5*(ymax-ymin)*len(data2):
4150+ plt.legend(prop={'size':legend_size},loc='upper right', frameon=False)
4151+ else:
4152+ plt.legend(prop={'size':legend_size},loc='lower right', frameon=False)
4153+
4154+ plt.axis([min(lambdaCMS_list),max(lambdaCMS_list),\
4155+ minvalue-(maxvalue-minvalue)/5., maxvalue+(maxvalue-minvalue)/5.])
4156+
4157+ plt.savefig(pp,format='pdf')
4158+
4159+ pp.close()
4160+
4161+ if len(checks)>0:
4162+ logger.info('Some cms check statistics will be displayed once you '+\
4163+ 'close the plot window')
4164+ logger.info('Complex Mass Scheme check plot output to file %s. '%fig_output_file)
4165+
4166+ if sys.platform.startswith('linux'):
4167+ misc.call(["xdg-open", fig_output_file])
4168+ elif sys.platform.startswith('darwin'):
4169+ misc.call(["open", fig_output_file])
4170+
4171+ plt.close("all")
4172+
4173+ except IOError as e:
4174+ if isinstance(e, ImportError):
4175+ res_str += "\n= Install matplotlib to get a "+\
4176+ "graphical display of the results of the cms check."
4177+ else:
4178+ res_str += "\n= Could not produce the cms check plot because of "+\
4179+ "the following error: %s"%str(e)
4180+
4181+ if options['reuse']:
4182+ logFile.write(res_str)
4183+ logFile.close()
4184+
4185+ if output=='text':
4186+ return res_str
4187+ else:
4188+ return failed_procs
4189
4190=== modified file 'models/check_param_card.py'
4191--- models/check_param_card.py 2015-07-16 11:03:56 +0000
4192+++ models/check_param_card.py 2015-08-16 06:06:34 +0000
4193@@ -13,6 +13,8 @@
4194 except:
4195 import internal.file_writers as file_writers
4196 import internal.misc as misc
4197+
4198+import StringIO
4199
4200 class InvalidParamCard(Exception):
4201 """ a class for invalid param_card """
4202@@ -274,9 +276,8 @@
4203 self.order = []
4204
4205 if isinstance(input_path, ParamCard):
4206- self.order = list(input_path.order)
4207- self.update(input_path)
4208- self.input_path = input_path.input_path
4209+ self.read(StringIO.StringIO(input_path.write()))
4210+ self.input_path = input_path.input_path
4211 else:
4212 self.input_path = input_path
4213 if input_path:
4214@@ -342,7 +343,7 @@
4215
4216 return self
4217
4218- def write(self, outpath):
4219+ def write(self, outpath=None):
4220 """schedular for writing a card"""
4221
4222 # order the block in a smart way
4223@@ -372,10 +373,8 @@
4224 diff += 'set param_card %s %s %s # orig: %s\n' % \
4225 (blockname, lhacode , new_value, value)
4226 return diff
4227-
4228-
4229-
4230-
4231+
4232+
4233 def write_inc_file(self, outpath, identpath, default, need_mp=False):
4234 """ write a fortran file which hardcode the param value"""
4235
4236@@ -396,8 +395,7 @@
4237 except KeyError:
4238 value =defaultcard[block].get(tuple(lhaid)).value
4239 logger.warning('information about \"%s %s" is missing using default value: %s.' %\
4240- (block, lhaid, value))
4241-
4242+ (block, lhaid, value))
4243 else:
4244 value =defaultcard[block].get(tuple(lhaid)).value
4245 logger.warning('information about \"%s %s" is missing (full block missing) using default value: %s.' %\
4246@@ -406,7 +404,61 @@
4247 fout.writelines(' %s = %s' % (variable, str(value).replace('e','d')))
4248 if need_mp:
4249 fout.writelines(' mp__%s = %s_16' % (variable, value))
4250-
4251+
4252+ def convert_to_complex_mass_scheme(self):
4253+ """ Convert this param_card to the convention used for the complex mass scheme:
4254+ This includes, removing the Yukawa block if present and making sure the EW input
4255+ scheme is (MZ, MW, aewm1). """
4256+
4257+ # The yukawa block is irrelevant for the CMS models, we must remove them
4258+ if self.has_block('yukawa'):
4259+ # Notice that the last parameter removed will also remove the block.
4260+ for lhacode in [param.lhacode for param in self['yukawa']]:
4261+ self.remove_param('yukawa', lhacode)
4262+
4263+ # Now fix the EW input scheme
4264+ EW_input = {('sminputs',(1,)):None,
4265+ ('sminputs',(2,)):None,
4266+ ('mass',(23,)):None,
4267+ ('mass',(24,)):None}
4268+ for block, lhaid in EW_input.keys():
4269+ try:
4270+ EW_input[(block,lhaid)] = self[block].get(lhaid).value
4271+ except:
4272+ pass
4273+
4274+ # Now specify the missing values. We only support the following EW
4275+ # input scheme:
4276+ # (alpha, GF, MZ) input
4277+ internal_param = [key for key,value in EW_input.items() if value is None]
4278+ if len(internal_param)==0:
4279+ # All parameters are already set, no need for modifications
4280+ return
4281+
4282+ if len(internal_param)!=1:
4283+ raise InvalidParamCard,' The specified EW inputs has more than one'+\
4284+ ' unknown: [%s]'%(','.join([str(elem) for elem in internal_param]))
4285+
4286+
4287+ if not internal_param[0] in [('mass',(24,)), ('sminputs',(2,)),
4288+ ('sminputs',(1,))]:
4289+ raise InvalidParamCard, ' The only EW input scheme currently supported'+\
4290+ ' are those with either the W mass or GF left internal.'
4291+
4292+ # Now if the Wmass is internal, then we must change the scheme
4293+ if internal_param[0] == ('mass',(24,)):
4294+ aewm1 = EW_input[('sminputs',(1,))]
4295+ Gf = EW_input[('sminputs',(2,))]
4296+ Mz = EW_input[('mass',(23,))]
4297+ try:
4298+ Mw = math.sqrt((Mz**2/2.0)+math.sqrt((Mz**4/4.0)-((
4299+ (1.0/aewm1)*math.pi*Mz**2)/(Gf*math.sqrt(2.0)))))
4300+ except:
4301+ InvalidParamCard, 'The EW inputs 1/a_ew=%f, Gf=%f, Mz=%f are inconsistent'%\
4302+ (aewm1,Gf,Mz)
4303+ self.remove_param('sminputs', (2,))
4304+ self.add_param('mass', (24,), Mw, 'MW')
4305+
4306 def append(self, obj):
4307 """add an object to this"""
4308
4309
4310=== modified file 'models/import_ufo.py'
4311--- models/import_ufo.py 2015-08-07 00:15:39 +0000
4312+++ models/import_ufo.py 2015-08-16 06:06:34 +0000
4313@@ -75,7 +75,8 @@
4314
4315 return model_path
4316
4317-def import_model(model_name, decay=False, restrict=True, prefix='mdl_'):
4318+def import_model(model_name, decay=False, restrict=True, prefix='mdl_',
4319+ complex_mass_scheme = None):
4320 """ a practical and efficient way to import a model"""
4321
4322 # check if this is a valid path or if this include restriction file
4323@@ -112,12 +113,16 @@
4324
4325 #import the FULL model
4326 model = import_full_model(model_path, decay, prefix)
4327-
4328+
4329 if os.path.exists(pjoin(model_path, "README")):
4330 logger.info("Please read carefully the README of the model file for instructions/restrictions of the model.",'$MG:color:BLACK')
4331 # restore the model name
4332 if restrict_name:
4333 model["name"] += '-' + restrict_name
4334+
4335+ # Decide whether complex mass scheme is on or not
4336+ useCMS = (complex_mass_scheme is None and aloha.complex_mass) or \
4337+ complex_mass_scheme==True
4338 #restrict it if needed
4339 if restrict_file:
4340 try:
4341@@ -130,14 +135,36 @@
4342 logger.info('Run \"set stdout_level DEBUG\" before import for more information.')
4343 # Modify the mother class of the object in order to allow restriction
4344 model = RestrictModel(model)
4345+
4346+ # Change to complex mass scheme if necessary. This must be done BEFORE
4347+ # the restriction.
4348+ if useCMS:
4349+ # We read the param_card a first time so that the function
4350+ # change_mass_to_complex_scheme can know if a particle is to
4351+ # be considered massive or not and with zero width or not.
4352+ # So we read the restrict card a first time, with the CMS set to
4353+ # False because we haven't changed the model yet.
4354+ model.set_parameters_and_couplings(param_card = restrict_file,
4355+ complex_mass_scheme=False)
4356+ model.change_mass_to_complex_scheme(toCMS=True)
4357+ else:
4358+ model.change_mass_to_complex_scheme(toCMS=False)
4359+
4360 if model_name == 'mssm' or os.path.basename(model_name) == 'mssm':
4361 keep_external=True
4362 else:
4363 keep_external=False
4364 model.restrict_model(restrict_file, rm_parameter=not decay,
4365- keep_external=keep_external)
4366+ keep_external=keep_external, complex_mass_scheme=complex_mass_scheme)
4367 model.path = model_path
4368+ else:
4369+ # Change to complex mass scheme if necessary
4370+ if useCMS:
4371+ model.change_mass_to_complex_scheme(toCMS=True)
4372+ else:
4373+ model.change_mass_to_complex_scheme(toCMS=False)
4374
4375+
4376 return model
4377
4378
4379@@ -263,8 +290,8 @@
4380 # save in a pickle files to fasten future usage
4381 if ReadWrite:
4382 save_load_object.save_to_file(os.path.join(model_path, pickle_name),
4383- model, log=False)
4384-
4385+ model, log=False)
4386+
4387 #if default and os.path.exists(os.path.join(model_path, 'restrict_default.dat')):
4388 # restrict_file = os.path.join(model_path, 'restrict_default.dat')
4389 # model = import_ufo.RestrictModel(model)
4390@@ -1488,7 +1515,8 @@
4391 self.rule_card = check_param_card.ParamCardRule()
4392 self.restrict_card = None
4393
4394- def restrict_model(self, param_card, rm_parameter=True, keep_external=False):
4395+ def restrict_model(self, param_card, rm_parameter=True, keep_external=False,
4396+ complex_mass_scheme=None):
4397 """apply the model restriction following param_card.
4398 rm_parameter defines if the Zero/one parameter are removed or not from
4399 the model.
4400@@ -1502,6 +1530,11 @@
4401 self.set('particles', self.get('particles'))
4402
4403 # compute the value of all parameters
4404+ # Get the list of definition of model functions, parameter values.
4405+ self.set_parameters_and_couplings(param_card,
4406+ complex_mass_scheme=complex_mass_scheme)
4407+
4408+
4409 # Keep the list of definition of model functions, parameter values.
4410 model_definitions = self.set_parameters_and_couplings(param_card)
4411
4412
4413=== added file 'models/loop_qcd_qed_sm/.restrict_parallel_test_MB.dat'
4414--- models/loop_qcd_qed_sm/.restrict_parallel_test_MB.dat 1970-01-01 00:00:00 +0000
4415+++ models/loop_qcd_qed_sm/.restrict_parallel_test_MB.dat 2015-08-16 06:06:34 +0000
4416@@ -0,0 +1,65 @@
4417+######################################################################
4418+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO #####################
4419+######################################################################
4420+
4421+###################################
4422+### INFORMATION FOR LOOP
4423+####################################
4424+Block LOOP
4425+ 666 1.00000000e+03 # MU_R
4426+
4427+###################################
4428+## INFORMATION FOR SMINPUTS
4429+###################################
4430+Block SMINPUTS
4431+ 1 1.32506980e+02 # aEWM1
4432+ 3 1.18000000e-01 # aS
4433+
4434+###################################
4435+## INFORMATION FOR MASS
4436+###################################
4437+Block MASS
4438+ 1 0.000000e+00 # MD
4439+ 2 0.000000e+00 # MU
4440+ 3 0.000000e+00 # MS
4441+ 4 0.000000e+00 # MC
4442+ 5 4.500000e+00 # MB
4443+ 6 1.743000e+02 # MT
4444+ 11 0.000000e+00 # Me
4445+ 13 0.000000e+00 # MM
4446+ 15 0.000000e+00 # MTA
4447+ 23 9.118800e+01 # MZ
4448+ 24 8.041900e+01 # MW
4449+ 25 1.200000e+02 # MH
4450+
4451+###################################
4452+## INFORMATION FOR DECAY
4453+###################################
4454+DECAY 6 0.000000e+00
4455+DECAY 15 0.000000e+00
4456+DECAY 23 0.000000e+00
4457+DECAY 24 0.000000e+00
4458+DECAY 25 0.000000e+00
4459+
4460+###################################
4461+## INFORMATION FOR WOLFENSTEIN
4462+###################################
4463+Block Wolfenstein
4464+ 1 0.000000e+00 # lamWS
4465+ 2 0.000000e+00 # AWS
4466+ 3 0.000000e+00 # rhoWS
4467+ 4 0.000000e+00 # etaWS
4468+
4469+###################################
4470+## INFORMATION FOR YUKAWA
4471+###################################
4472+Block YUKAWA
4473+ 1 0.000000e+00 # ymdo
4474+ 2 0.000000e+00 # ymup
4475+ 3 0.000000e+00 # yms
4476+ 4 0.000000e+00 # ymc
4477+ 5 4.500000e+00 # ymb
4478+ 6 1.743000e+02 # ymt
4479+ 11 0.000000e+00 # yme
4480+ 13 0.000000e+00 # ymm
4481+ 15 0.000000e+00 # ymtau
4482
4483=== modified file 'models/loop_qcd_qed_sm/CT_couplings.py'
4484--- models/loop_qcd_qed_sm/CT_couplings.py 2015-07-15 01:32:18 +0000
4485+++ models/loop_qcd_qed_sm/CT_couplings.py 2015-08-16 06:06:34 +0000
4486@@ -4,7 +4,7 @@
4487
4488 from object_library import all_couplings, Coupling
4489
4490-from function_library import complexconjugate, re, im, csc, sec, acsc, asec, arg, reglog
4491+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, arg, reglog, reglogp, reglogm, recms
4492
4493 ################
4494 # R2 couplings #
4495@@ -1754,7 +1754,7 @@
4496 order = {'QED':3})
4497
4498 R2_ssA2Cm = Coupling(name = 'R2_ssA2Cm',
4499- value = '((1./4.)*((1+lhv)/(4.*cw**2)*(-1./27.)+MS**2/(8*sw**2*MW**2)*(-1./3.))*(1./2.))*(-complex(0,1)*R2SFF)',
4500+ value = '((1./4.)*((1+lhv)/(4.*cw**2)*(-1./27.)+MS**2/(8*sw**2*MW**2)*(-1./3.)*(1./2.))*(-complex(0,1)*R2SFF))',
4501 order = {'QED':3})
4502
4503 R2_ssA2Cm_u = Coupling(name = 'R2_ssA2Cm_u',
4504
4505=== modified file 'models/loop_qcd_qed_sm/CT_parameters.py'
4506--- models/loop_qcd_qed_sm/CT_parameters.py 2015-07-08 18:54:36 +0000
4507+++ models/loop_qcd_qed_sm/CT_parameters.py 2015-08-16 06:06:34 +0000
4508@@ -4,7 +4,7 @@
4509
4510 from object_library import all_CTparameters, CTParameter
4511
4512-from function_library import complexconjugate, re, im, csc, sec, acsc, asec, arg, reglog
4513+from function_library import complexconjugate, re, im, csc, sec, acsc, asec, arg, reglog,reglogp,reglogm, recms
4514
4515 ################
4516 # R2 vertices #
4517@@ -174,131 +174,131 @@
4518
4519 dMB_HiggsTadpole_UV_EW = CTParameter(name = 'dMB_HiggsTadpole_UV_EW',
4520 type = 'complex',
4521- value = {-1:'( 0 if MB == 0 else re((ee*MB**4*Ncol)/(8.*MW*cmath.pi**2*sw)) )',
4522- 0:'( 0 if MB == 0 else re((ee*MB**4*Ncol*(1 + reglog(MU_R**2/MB**2)))/(8.*MW*cmath.pi**2*sw)) )'},
4523+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0,(ee*MB**4*Ncol)/(8.*MW*cmath.pi**2*sw)) )',
4524+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0,(ee*MB**4*Ncol*(1 - reglog(MB**2/MU_R**2)))/(8.*MW*cmath.pi**2*sw)) )'},
4525 texname = '\delta ht^{EW,MB}')
4526
4527
4528 dMB_tMass_UV_EW = CTParameter(name = 'dMB_tMass_UV_EW',
4529 type = 'complex',
4530- value = {-1:'( 0 if MB == 0 else re((-3*ee**2*MB**2*MT)/(128.*MW**2*cmath.pi**2*sw**2)) )',
4531- 0:'( 0 if MB == 0 else re((ee**2*(9*cw**2*MB**4 - 45*cw**2*MB**2*MT**2 + 9*cw**2*MB**2*MW**2 - 9*cw**2*MT**4*reglog(16.) + 48*MT**2*MW**2*sw**2*reglog(16.) - 64*cw**2*MT**2*MW**2*sw**2*reglog(16.) - 64*MT**2*MW**2*sw**4*reglog(16.) - 45*cw**2*MT**4*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*reglog(cmath.pi) + 192*MT**2*MW**2*sw**2*reglog(cmath.pi) - 272*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 256*MT**2*MW**2*sw**4*reglog(cmath.pi) + 54*cw**2*MT**4*reglog(2*cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(2*cmath.pi) - 192*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 288*cw**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 256*MT**2*MW**2*sw**4*reglog(2*cmath.pi) - 9*cw**2*MT**4*reglog(4*cmath.pi) - 18*cw**2*MT**2*MW**2*reglog(4*cmath.pi) - 16*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*MB**2*(MB**2 + MT**2 + 2*MW**2)*reglog(MU_R**2/MB**2))/(128.*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MT**4 - MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MW**2))/(128.*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(128.*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglog((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(128.*MT**3*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(256.*MT**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 - cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(256.*MT**3*MW**2*cmath.pi**2*sw**2)) )'},
4532+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WT != 0,(-3*ee**2*MB**2*MT)/(128.*MW**2*cmath.pi**2*sw**2)) )',
4533+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WT != 0,(ee**2*(9*cw**2*MB**4 - 45*cw**2*MB**2*MT**2 + 9*cw**2*MB**2*MW**2 - 9*cw**2*MT**4*reglog(16.) + 48*MT**2*MW**2*sw**2*reglog(16.) - 64*cw**2*MT**2*MW**2*sw**2*reglog(16.) - 64*MT**2*MW**2*sw**4*reglog(16.) - 45*cw**2*MT**4*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*reglog(cmath.pi) + 192*MT**2*MW**2*sw**2*reglog(cmath.pi) - 272*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 256*MT**2*MW**2*sw**4*reglog(cmath.pi) + 54*cw**2*MT**4*reglog(2*cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(2*cmath.pi) - 192*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 288*cw**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 256*MT**2*MW**2*sw**4*reglog(2*cmath.pi) - 9*cw**2*MT**4*reglog(4*cmath.pi) - 18*cw**2*MT**2*MW**2*reglog(4*cmath.pi) - 16*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*MB**2*(MB**2 + MT**2 + 2*MW**2)*(-reglog(MB**2/MU_R**2)))/(128.*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MT**4 - MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MW**2))/(128.*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(128.*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglogm((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(128.*MT**3*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglogm((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(256.*MT**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 - cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(256.*MT**3*MW**2*cmath.pi**2*sw**2)) )'},
4534 texname = '\delta m_t^{EW,MB}')
4535
4536
4537 dMB_bMass_UV_EW = CTParameter(name = 'dMB_bMass_UV_EW',
4538 type = 'complex',
4539- value = {-1:'( 0 if MB == 0 else re((ee**2*MB*(MW**2*(3 + 12*sw**2 - 8*sw**4) + cw**2*(9*MB**2 - 9*MT**2 + 2*MW**2*(3 - 4*sw**2))))/(384.*cw**2*MW**2*cmath.pi**2*sw**2)) )',
4540- 0:'( 0 if MB == 0 else re(-(ee**2*(-72*cw**2*MB**4 + 9*cw**2*MB**2*MH**2 + 45*cw**2*MB**2*MT**2 - 9*cw**2*MT**4 - 18*MB**2*MW**2 - 9*cw**2*MB**2*MW**2 - 9*cw**2*MT**2*MW**2 + 18*cw**2*MW**4 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 48*MB**2*MW**2*sw**2 + 32*cw**2*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 32*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4 - 9*cw**2*MB**4*reglog(16.) - 24*MB**2*MW**2*sw**2*reglog(16.) + 16*cw**2*MB**2*MW**2*sw**2*reglog(16.) + 16*MB**2*MW**2*sw**4*reglog(16.) + 9*cw**2*MB**4*reglog(1/(4.*cmath.pi)) + 9*MB**2*MW**2*reglog(1/(4.*cmath.pi)) - 12*MB**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 4*MB**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 18*cw**2*MB**4*reglog(cmath.pi) + 18*cw**2*MB**2*MW**2*reglog(cmath.pi) - 48*MB**2*MW**2*sw**2*reglog(cmath.pi) + 40*cw**2*MB**2*MW**2*sw**2*reglog(cmath.pi) + 32*MB**2*MW**2*sw**4*reglog(cmath.pi) - 36*cw**2*MB**2*MW**2*reglog(2*cmath.pi) - 16*cw**2*MB**2*MW**2*sw**2*reglog(2*cmath.pi) + 27*cw**2*MB**4*reglog(4*cmath.pi) + 9*MB**2*MW**2*reglog(4*cmath.pi) + 18*cw**2*MB**2*MW**2*reglog(4*cmath.pi) + 36*MB**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*cw**2*MB**2*MW**2*sw**2*reglog(4*cmath.pi) - 28*MB**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*MB*(18*cw**2*MB**2 + 9*MW**2 - 12*MW**2*sw**2 + 24*cw**2*MW**2*sw**2 + 8*MW**2*sw**4)*reglog(MU_R**2/MB**2))/(1152.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*MB*MH**2*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MT**2*(MB**2 + MT**2 + 2*MW**2)*reglog(MU_R**2/MT**2))/(128.*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**2 + MT**2 + 2*MW**2)*reglog(MU_R**2/MW**2))/(128.*MB*cmath.pi**2*sw**2) + (ee**2*MZ**2*(9*cw**2*MB**2 + 9*MW**2 - 12*MW**2*sw**2 + 8*MW**2*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(45*cw**2*MB**4 - 9*cw**2*MB**2*MH**2 - 18*cw**2*MB**2*MT**2 + 9*cw**2*MT**4 + 18*MB**2*MW**2 + 9*cw**2*MB**2*MW**2 + 9*cw**2*MT**2*MW**2 - 18*cw**2*MW**4 - 9*cw**2*MB**2*MZ**2 - 9*MW**2*MZ**2 + 24*MB**2*MW**2*sw**2 + 12*MW**2*MZ**2*sw**2 - 16*MB**2*MW**2*sw**4 - 8*MW**2*MZ**2*sw**4)*reglog((MB**2 + vep*complex(0,-1))/MU_R**2))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*MB*(2*MB - MH)*(2*MB + MH)*reglog((-MH**2 - cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MB*(2*MB - MH)*(2*MB + MH)*reglog((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*(2*MB - MH)*(2*MB + MH)*(2*MB**2 - MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglog((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2*MB**2 - MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(2*MB - MH)*(2*MB + MH)*(2*MB**2 - MH**2 - cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglog((MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(-2*MB**2 + MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog((-MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglog((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(256.*MB**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(256.*MB**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*(2*MB**2 - MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2*MB**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MB**3*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*(2*MB**2 - MZ**2 - cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(-2*MB**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MB**3*MW**2*cmath.pi**2*sw**2)) )'},
4541+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0,(ee**2*MB*(MW**2*(3 + 12*sw**2 - 8*sw**4) + cw**2*(9*MB**2 - 9*MT**2 + 2*MW**2*(3 - 4*sw**2))))/(384.*cw**2*MW**2*cmath.pi**2*sw**2)) )',
4542+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0,-(ee**2*(-72*cw**2*MB**4 + 9*cw**2*MB**2*MH**2 + 45*cw**2*MB**2*MT**2 - 9*cw**2*MT**4 - 18*MB**2*MW**2 - 9*cw**2*MB**2*MW**2 - 9*cw**2*MT**2*MW**2 + 18*cw**2*MW**4 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 48*MB**2*MW**2*sw**2 + 32*cw**2*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 32*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4 - 9*cw**2*MB**4*reglog(16.) - 24*MB**2*MW**2*sw**2*reglog(16.) + 16*cw**2*MB**2*MW**2*sw**2*reglog(16.) + 16*MB**2*MW**2*sw**4*reglog(16.) + 9*cw**2*MB**4*reglog(1/(4.*cmath.pi)) + 9*MB**2*MW**2*reglog(1/(4.*cmath.pi)) - 12*MB**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 4*MB**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 18*cw**2*MB**4*reglog(cmath.pi) + 18*cw**2*MB**2*MW**2*reglog(cmath.pi) - 48*MB**2*MW**2*sw**2*reglog(cmath.pi) + 40*cw**2*MB**2*MW**2*sw**2*reglog(cmath.pi) + 32*MB**2*MW**2*sw**4*reglog(cmath.pi) - 36*cw**2*MB**2*MW**2*reglog(2*cmath.pi) - 16*cw**2*MB**2*MW**2*sw**2*reglog(2*cmath.pi) + 27*cw**2*MB**4*reglog(4*cmath.pi) + 9*MB**2*MW**2*reglog(4*cmath.pi) + 18*cw**2*MB**2*MW**2*reglog(4*cmath.pi) + 36*MB**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*cw**2*MB**2*MW**2*sw**2*reglog(4*cmath.pi) - 28*MB**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*MB*(18*cw**2*MB**2 + 9*MW**2 - 12*MW**2*sw**2 + 24*cw**2*MW**2*sw**2 + 8*MW**2*sw**4)*(-reglog(MB**2/MU_R**2)))/(1152.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*MB*MH**2*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MT**2*(MB**2 + MT**2 + 2*MW**2)*reglog(MU_R**2/MT**2))/(128.*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**2 + MT**2 + 2*MW**2)*reglog(MU_R**2/MW**2))/(128.*MB*cmath.pi**2*sw**2) + (ee**2*MZ**2*(9*cw**2*MB**2 + 9*MW**2 - 12*MW**2*sw**2 + 8*MW**2*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(45*cw**2*MB**4 - 9*cw**2*MB**2*MH**2 - 18*cw**2*MB**2*MT**2 + 9*cw**2*MT**4 + 18*MB**2*MW**2 + 9*cw**2*MB**2*MW**2 + 9*cw**2*MT**2*MW**2 - 18*cw**2*MW**4 - 9*cw**2*MB**2*MZ**2 - 9*MW**2*MZ**2 + 24*MB**2*MW**2*sw**2 + 12*MW**2*MZ**2*sw**2 - 16*MB**2*MW**2*sw**4 - 8*MW**2*MZ**2*sw**4)*reglog((MB**2 + vep*complex(0,-1))/MU_R**2))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*MB*(2*MB - MH)*(2*MB + MH)*reglogm((-MH**2 - cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MB*(2*MB - MH)*(2*MB + MH)*reglogm((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*(2*MB - MH)*(2*MB + MH)*(2*MB**2 - MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglogm((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2*MB**2 - MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(2*MB - MH)*(2*MB + MH)*(2*MB**2 - MH**2 - cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglogm((MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(-2*MB**2 + MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglogm((-MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*reglogm((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(256.*MB**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**4 - 2*MB**2*MT**2 + MT**4 + MB**2*MW**2 + MT**2*MW**2 - 2*MW**4)*(MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(256.*MB**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*reglogm((-MZ**2 - cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*reglogm((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(1152.*cw**2*MB*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*(2*MB**2 - MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglogm((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2*MB**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MB**3*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MB**2*MW**2 + 9*cw**2*MB**2*MZ**2 + 9*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 - 12*MW**2*MZ**2*sw**2 + 16*MB**2*MW**2*sw**4 + 8*MW**2*MZ**2*sw**4)*(2*MB**2 - MZ**2 - cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglogm((MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(-2*MB**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MB**3*MW**2*cmath.pi**2*sw**2)) )'},
4543 texname = '\delta m_t^{EW,MB}')
4544
4545
4546 dMB_HMass2_UV_EW = CTParameter(name = 'dMB_HMass2_UV_EW',
4547 type = 'complex',
4548- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2*(6*MB**2 - MH**2)*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4549- 0:'( 0 if MB == 0 else re((ee**2*MB**2*Ncol*(-40*MB**2 + 8*MH**2 + MH**2*reglog(256.) - MB**2*reglog(281474976710656.) - 24*MB**2*reglog(cmath.pi) + 4*MH**2*reglog(cmath.pi) + 4*(6*MB**2 - MH**2)*reglog(4*cmath.pi) - 8*MB**2*reglog(MU_R**2/MB**2) + 4*(2*MB - MH)*(2*MB + MH)*reglog((MH**2 + vep*complex(0,-1))/MU_R**2) + 4*(2*MB - MH)*(2*MB + MH)*reglog((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)) - (2*(2*MB - MH)*(2*MB + MH)*(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**2 + 4*(2*MB - MH)*(2*MB + MH)*reglog(-(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)) + (2*(-2*MB + MH)*(2*MB + MH)*(MH**2 - cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**2))/(128.*MW**2*cmath.pi**2*sw**2)) )'},
4550+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WH != 0,-(ee**2*MB**2*(6*MB**2 - MH**2)*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4551+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WH != 0,(ee**2*MB**2*Ncol*(-40*MB**2 + 8*MH**2 + MH**2*reglog(256.) - MB**2*reglog(281474976710656.) - 24*MB**2*reglog(cmath.pi) + 4*MH**2*reglog(cmath.pi) + 4*(6*MB**2 - MH**2)*reglog(4*cmath.pi) - 8*MB**2*(-reglog(MB**2/MU_R**2)) + 4*(2*MB - MH)*(2*MB + MH)*reglog((MH**2 + vep*complex(0,-1))/MU_R**2) + 4*(2*MB - MH)*(2*MB + MH)*reglogm((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)) - (2*(2*MB - MH)*(2*MB + MH)*(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglogm((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**2 + 4*(2*MB - MH)*(2*MB + MH)*reglogm(-(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)) + (2*(-2*MB + MH)*(2*MB + MH)*(MH**2 - cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglogm((MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**2))/(128.*MW**2*cmath.pi**2*sw**2)) )'},
4552 texname = '\delta m2_H^{EW,MB}')
4553
4554
4555 dMB_WMass2_UV_EW = CTParameter(name = 'dMB_WMass2_UV_EW',
4556 type = 'complex',
4557- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2*Ncol)/(32.*cmath.pi**2*sw**2)) )',
4558- 0:'( 0 if MB == 0 else re((ee**2*Ncol*(6*MB**2*reglog(4*cmath.pi) + (-2*MB**2*MW**2*(MB**2 - 2*MT**2 + MW**2*(2 + reglog(64.) + 3*reglog(cmath.pi))) + 2*MB**2*MW**2*(MB**2 - MT**2 - 2*MW**2)*reglog(MU_R**2/MB**2) + 2*MW**2*(-(MB**2*MT**2) + MT**4 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MT**2) + 2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog(-(-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) + (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/MW**4))/(192.*cmath.pi**2*sw**2)) )'},
4559+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WW != 0,-(ee**2*MB**2*Ncol)/(32.*cmath.pi**2*sw**2)) )',
4560+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WW != 0,(ee**2*Ncol*(6*MB**2*reglog(4*cmath.pi) + (-2*MB**2*MW**2*(MB**2 - 2*MT**2 + MW**2*(2 + reglog(64.) + 3*reglog(cmath.pi))) + 2*MB**2*MW**2*(MB**2 - MT**2 - 2*MW**2)*(-reglog(MB**2/MU_R**2)) + 2*MW**2*(-(MB**2*MT**2) + MT**4 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MT**2) + 2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglogm((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglogm(-(-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) + (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/MW**4))/(192.*cmath.pi**2*sw**2)) )'},
4561 texname = '\delta m2_W^{EW,MB}')
4562
4563
4564 dMB_ZMass2_UV_EW = CTParameter(name = 'dMB_ZMass2_UV_EW',
4565 type = 'complex',
4566- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2*Ncol)/(32.*cw**2*cmath.pi**2*sw**2)) )',
4567- 0:'( 0 if MB == 0 else re((ee**2*(2*MB**2*Ncol*(-48*sw**2 + 32*sw**4 - reglog(18014398509481984.) - 9*(2 + 3*reglog(cmath.pi))) + 54*MB**2*Ncol*reglog(4*cmath.pi) - 4*MB**2*Ncol*(9 - 12*sw**2 + 8*sw**4)*reglog(MU_R**2/MB**2) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2) + 4*MZ**2*(27*(1 - 2*sw**2 + 4*sw**4) + 2*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2))/(1728.*cw**2*cmath.pi**2*sw**2)) )'},
4568+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WZ != 0,-(ee**2*MB**2*Ncol)/(32.*cw**2*cmath.pi**2*sw**2)) )',
4569+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WZ != 0,(ee**2*(2*MB**2*Ncol*(-48*sw**2 + 32*sw**4 - reglog(18014398509481984.) - 9*(2 + 3*reglog(cmath.pi))) + 54*MB**2*Ncol*reglog(4*cmath.pi) - 4*MB**2*Ncol*(9 - 12*sw**2 + 8*sw**4)*(-reglog(MB**2/MU_R**2)) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2) + 4*MZ**2*(27*(1 - 2*sw**2 + 4*sw**4) + 2*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglogm(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2))/(1728.*cw**2*cmath.pi**2*sw**2)) )'},
4570 texname = '\delta m2_Z^{EW,MB}')
4571
4572
4573 dMB_tWcft_UV_EW_R = CTParameter(name = 'dMB_tWcft_UV_EW_R',
4574 type = 'complex',
4575- value = { 0:'( 0 if MB == 0 else re((ee**2*(18*MB**4 - 18*MB**2*MT**2 + 18*MB**2*MW**2 + 9*MT**4*reglog(16.) - 32*MT**2*MW**2*sw**2*reglog(16.) + 16*MT**2*MW**2*sw**2*reglog(64.) + 36*MT**4*reglog(cmath.pi) - 32*MT**2*MW**2*sw**2*reglog(cmath.pi) - 36*MT**4*reglog(2*cmath.pi) + 32*MT**2*MW**2*sw**2*reglog(2*cmath.pi)))/(576.*MT**2*MW**2*cmath.pi**2*sw**2) - (ee**2*MB**2*(2*MB**6 - 5*MB**4*MT**2 + 4*MB**2*MT**4 - MT**6 - 4*MB**2*MT**2*MW**2 - 6*MB**2*MW**4 - 3*MT**2*MW**4 + 4*MW**6)*reglog(MU_R**2/MB**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**4*MT**4 - 2*MB**2*MT**6 + MT**8 + 2*MB**6*MW**2 - 3*MB**4*MT**2*MW**2 - 2*MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 6*MB**2*MW**6 - 7*MT**2*MW**6 + 4*MW**8)*reglog(MU_R**2/MW**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MT - MW)*(MT + MW)*(MT**4 + MT**2*MW**2 + 4*MW**4)*reglog((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(64.*MT**4*MW**2*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*reglog((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2)) )'},
4576+ value = { 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WT != 0,(ee**2*(18*MB**4 - 18*MB**2*MT**2 + 18*MB**2*MW**2 + 9*MT**4*reglog(16.) - 32*MT**2*MW**2*sw**2*reglog(16.) + 16*MT**2*MW**2*sw**2*reglog(64.) + 36*MT**4*reglog(cmath.pi) - 32*MT**2*MW**2*sw**2*reglog(cmath.pi) - 36*MT**4*reglog(2*cmath.pi) + 32*MT**2*MW**2*sw**2*reglog(2*cmath.pi)))/(576.*MT**2*MW**2*cmath.pi**2*sw**2) - (ee**2*MB**2*(2*MB**6 - 5*MB**4*MT**2 + 4*MB**2*MT**4 - MT**6 - 4*MB**2*MT**2*MW**2 - 6*MB**2*MW**4 - 3*MT**2*MW**4 + 4*MW**6)*(-reglog(MB**2/MU_R**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**4*MT**4 - 2*MB**2*MT**6 + MT**8 + 2*MB**6*MW**2 - 3*MB**4*MT**2*MW**2 - 2*MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 6*MB**2*MW**6 - 7*MT**2*MW**6 + 4*MW**8)*reglog(MU_R**2/MW**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MT - MW)*(MT + MW)*(MT**4 + MT**2*MW**2 + 4*MW**4)*reglogm((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(64.*MT**4*MW**2*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*reglogm((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(2*MB**8 - 5*MB**6*MT**2 + 3*MB**4*MT**4 + MB**2*MT**6 - MT**8 - 2*MB**6*MW**2 - MB**4*MT**2*MW**2 + 2*MB**2*MT**4*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - MB**2*MT**2*MW**4 - 3*MT**4*MW**4 + 10*MB**2*MW**6 + 7*MT**2*MW**6 - 4*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2)) )'},
4577 texname = '\delta ZR_t^{EW,MB}')
4578
4579
4580 dMB_bWcft_UV_EW_R = CTParameter(name = 'dMB_bWcft_UV_EW_R',
4581 type = 'complex',
4582- value = {-1:'( 0 if MB == 0 else re(-(ee**2*(3*MB**2 + 2*MW**2*sw**2))/(96.*MW**2*cmath.pi**2*sw**2)) )',
4583- 0:'( 0 if MB == 0 else re(-(ee**2*(-36*cw**2*MB**4 + 27*cw**2*MB**2*MH**2 + 36*cw**2*MB**2*MT**2 - 36*cw**2*MT**4 - 54*MB**2*MW**2 - 18*cw**2*MB**2*MW**2 - 36*cw**2*MT**2*MW**2 + 72*cw**2*MW**4 + 27*cw**2*MB**2*MZ**2 + 36*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 + 32*cw**2*MB**2*MW**2*sw**2 - 48*MW**2*MZ**2*sw**2 + 36*MB**2*MW**2*sw**4 + 24*MW**2*MZ**2*sw**4 + 18*cw**2*MB**4*reglog(16.) + 16*cw**2*MB**2*MW**2*sw**2*reglog(16.) - 4*MB**2*MW**2*sw**4*reglog(16.) - 4*cw**2*MB**2*MW**2*sw**2*reglog(256.) + 36*cw**2*MB**4*reglog(cmath.pi) + 8*cw**2*MB**2*MW**2*sw**2*reglog(cmath.pi) - 8*MB**2*MW**2*sw**4*reglog(cmath.pi) + 16*cw**2*MB**2*MW**2*sw**2*reglog(2*cmath.pi) - 36*cw**2*MB**4*reglog(4*cmath.pi) - 24*cw**2*MB**2*MW**2*sw**2*reglog(4*cmath.pi) + 8*MB**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MB**2*MW**2*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MB**4 + 18*MB**2*MW**2 - 9*cw**2*MB**2*MZ**2 - 6*MW**2*MZ**2 - 8*MB**2*MW**2*sw**2 + 16*cw**2*MB**2*MW**2*sw**2 + 8*MW**2*MZ**2*sw**2 - 4*cw**2*MW**2*MZ**2*sw**2 - 4*MW**2*MZ**2*sw**4)*reglog(MU_R**2/MB**2))/(192.*cw**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(4*MB**2 - 3*MH**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*MT**2*(MB**6 - 4*MB**4*MT**2 + 5*MB**2*MT**4 - 2*MT**6 + 4*MB**2*MT**2*MW**2 + 3*MB**2*MW**4 + 6*MT**2*MW**4 - 4*MW**6)*reglog(MU_R**2/MT**2))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6 - 3*MB**2*MT**4 + 2*MT**6 + 2*MB**4*MW**2 - 2*MB**2*MT**2*MW**2 - 7*MB**2*MW**4 - 6*MT**2*MW**4 + 4*MW**6)*reglog(MU_R**2/MW**2))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(-24*MB**4*MW**2 + 24*cw**2*MB**4*MZ**2 + 48*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 32*MB**4*MW**2*sw**2 - 32*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 8*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(48*cw**2*MB**10 - 36*cw**2*MB**8*MH**2 - 120*cw**2*MB**8*MT**2 + 72*cw**2*MB**6*MH**2*MT**2 + 144*cw**2*MB**6*MT**4 - 36*cw**2*MB**4*MH**2*MT**4 - 120*cw**2*MB**4*MT**6 + 48*cw**2*MB**2*MT**8 + 60*MB**8*MW**2 - 120*cw**2*MB**8*MW**2 + 72*cw**2*MB**6*MH**2*MW**2 - 120*MB**6*MT**2*MW**2 - 96*cw**2*MB**6*MT**2*MW**2 + 72*cw**2*MB**4*MH**2*MT**2*MW**2 + 60*MB**4*MT**4*MW**2 - 24*cw**2*MB**4*MT**4*MW**2 - 48*cw**2*MB**2*MT**6*MW**2 - 120*MB**6*MW**4 - 36*cw**2*MB**4*MH**2*MW**4 - 120*MB**4*MT**2*MW**4 - 24*cw**2*MB**4*MT**2*MW**4 - 144*cw**2*MB**2*MT**4*MW**4 + 60*MB**4*MW**6 + 168*cw**2*MB**4*MW**6 + 240*cw**2*MB**2*MT**2*MW**6 - 96*cw**2*MB**2*MW**8 - 42*cw**2*MB**8*MZ**2 + 9*cw**2*MB**6*MH**2*MZ**2 + 90*cw**2*MB**6*MT**2*MZ**2 - 18*cw**2*MB**4*MH**2*MT**2*MZ**2 - 66*cw**2*MB**4*MT**4*MZ**2 + 9*cw**2*MB**2*MH**2*MT**4*MZ**2 + 30*cw**2*MB**2*MT**6*MZ**2 - 12*cw**2*MT**8*MZ**2 - 60*MB**6*MW**2*MZ**2 + 90*cw**2*MB**6*MW**2*MZ**2 - 18*cw**2*MB**4*MH**2*MW**2*MZ**2 + 120*MB**4*MT**2*MW**2*MZ**2 + 84*cw**2*MB**4*MT**2*MW**2*MZ**2 - 18*cw**2*MB**2*MH**2*MT**2*MW**2*MZ**2 - 60*MB**2*MT**4*MW**2*MZ**2 + 6*cw**2*MB**2*MT**4*MW**2*MZ**2 + 12*cw**2*MT**6*MW**2*MZ**2 + 120*MB**4*MW**4*MZ**2 - 30*cw**2*MB**4*MW**4*MZ**2 + 9*cw**2*MB**2*MH**2*MW**4*MZ**2 + 120*MB**2*MT**2*MW**4*MZ**2 + 6*cw**2*MB**2*MT**2*MW**4*MZ**2 + 36*cw**2*MT**4*MW**4*MZ**2 - 60*MB**2*MW**6*MZ**2 - 42*cw**2*MB**2*MW**6*MZ**2 - 60*cw**2*MT**2*MW**6*MZ**2 + 24*cw**2*MW**8*MZ**2 + 9*cw**2*MB**6*MZ**4 - 18*cw**2*MB**4*MT**2*MZ**4 + 9*cw**2*MB**2*MT**4*MZ**4 + 12*MB**4*MW**2*MZ**4 - 18*cw**2*MB**4*MW**2*MZ**4 - 24*MB**2*MT**2*MW**2*MZ**4 - 18*cw**2*MB**2*MT**2*MW**2*MZ**4 + 12*MT**4*MW**2*MZ**4 - 24*MB**2*MW**4*MZ**4 + 9*cw**2*MB**2*MW**4*MZ**4 - 24*MT**2*MW**4*MZ**4 + 12*MW**6*MZ**4 + 16*MB**8*MW**2*sw**2 - 32*MB**6*MT**2*MW**2*sw**2 + 16*MB**4*MT**4*MW**2*sw**2 - 32*MB**6*MW**4*sw**2 - 32*MB**4*MT**2*MW**4*sw**2 + 16*MB**4*MW**6*sw**2 + 48*MB**6*MW**2*MZ**2*sw**2 - 96*MB**4*MT**2*MW**2*MZ**2*sw**2 + 48*MB**2*MT**4*MW**2*MZ**2*sw**2 - 96*MB**4*MW**4*MZ**2*sw**2 - 96*MB**2*MT**2*MW**4*MZ**2*sw**2 + 48*MB**2*MW**6*MZ**2*sw**2 - 16*MB**4*MW**2*MZ**4*sw**2 + 32*MB**2*MT**2*MW**2*MZ**4*sw**2 - 16*MT**4*MW**2*MZ**4*sw**2 + 32*MB**2*MW**4*MZ**4*sw**2 + 32*MT**2*MW**4*MZ**4*sw**2 - 16*MW**6*MZ**4*sw**2 - 32*MB**8*MW**2*sw**4 + 64*MB**6*MT**2*MW**2*sw**4 - 32*MB**4*MT**4*MW**2*sw**4 + 64*MB**6*MW**4*sw**4 + 64*MB**4*MT**2*MW**4*sw**4 - 32*MB**4*MW**6*sw**4 - 16*MB**6*MW**2*MZ**2*sw**4 + 32*MB**4*MT**2*MW**2*MZ**2*sw**4 - 16*MB**2*MT**4*MW**2*MZ**2*sw**4 + 32*MB**4*MW**4*MZ**2*sw**4 + 32*MB**2*MT**2*MW**4*MZ**2*sw**4 - 16*MB**2*MW**6*MZ**2*sw**4 + 8*MB**4*MW**2*MZ**4*sw**4 - 16*MB**2*MT**2*MW**2*MZ**4*sw**4 + 8*MT**4*MW**2*MZ**4*sw**4 - 16*MB**2*MW**4*MZ**4*sw**4 - 16*MT**2*MW**4*MZ**4*sw**4 + 8*MW**6*MZ**4*sw**4)*reglog((MB**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglog((-MH**2 - cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglog((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(2*MB**2 - MH**2)*(2*MB**2 - MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglog((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2*MB**2 - MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*(-2*MB**2 + MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglog((MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(-2*MB**2 + MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*reglog((-MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*reglog((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(2*MB**2 - MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2*MB**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(-2*MB**2 + MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(-2*MB**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2)) )'},
4584+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0,-(ee**2*(3*MB**2 + 2*MW**2*sw**2))/(96.*MW**2*cmath.pi**2*sw**2)) )',
4585+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0,-(ee**2*(-36*cw**2*MB**4 + 27*cw**2*MB**2*MH**2 + 36*cw**2*MB**2*MT**2 - 36*cw**2*MT**4 - 54*MB**2*MW**2 - 18*cw**2*MB**2*MW**2 - 36*cw**2*MT**2*MW**2 + 72*cw**2*MW**4 + 27*cw**2*MB**2*MZ**2 + 36*MW**2*MZ**2 - 24*MB**2*MW**2*sw**2 + 32*cw**2*MB**2*MW**2*sw**2 - 48*MW**2*MZ**2*sw**2 + 36*MB**2*MW**2*sw**4 + 24*MW**2*MZ**2*sw**4 + 18*cw**2*MB**4*reglog(16.) + 16*cw**2*MB**2*MW**2*sw**2*reglog(16.) - 4*MB**2*MW**2*sw**4*reglog(16.) - 4*cw**2*MB**2*MW**2*sw**2*reglog(256.) + 36*cw**2*MB**4*reglog(cmath.pi) + 8*cw**2*MB**2*MW**2*sw**2*reglog(cmath.pi) - 8*MB**2*MW**2*sw**4*reglog(cmath.pi) + 16*cw**2*MB**2*MW**2*sw**2*reglog(2*cmath.pi) - 36*cw**2*MB**4*reglog(4*cmath.pi) - 24*cw**2*MB**2*MW**2*sw**2*reglog(4*cmath.pi) + 8*MB**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MB**2*MW**2*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MB**4 + 18*MB**2*MW**2 - 9*cw**2*MB**2*MZ**2 - 6*MW**2*MZ**2 - 8*MB**2*MW**2*sw**2 + 16*cw**2*MB**2*MW**2*sw**2 + 8*MW**2*MZ**2*sw**2 - 4*cw**2*MW**2*MZ**2*sw**2 - 4*MW**2*MZ**2*sw**4)*(-reglog(MB**2/MU_R**2)))/(192.*cw**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(4*MB**2 - 3*MH**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*MT**2*(MB**6 - 4*MB**4*MT**2 + 5*MB**2*MT**4 - 2*MT**6 + 4*MB**2*MT**2*MW**2 + 3*MB**2*MW**4 + 6*MT**2*MW**4 - 4*MW**6)*reglog(MU_R**2/MT**2))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6 - 3*MB**2*MT**4 + 2*MT**6 + 2*MB**4*MW**2 - 2*MB**2*MT**2*MW**2 - 7*MB**2*MW**4 - 6*MT**2*MW**4 + 4*MW**6)*reglog(MU_R**2/MW**2))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(-24*MB**4*MW**2 + 24*cw**2*MB**4*MZ**2 + 48*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 32*MB**4*MW**2*sw**2 - 32*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 8*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(48*cw**2*MB**10 - 36*cw**2*MB**8*MH**2 - 120*cw**2*MB**8*MT**2 + 72*cw**2*MB**6*MH**2*MT**2 + 144*cw**2*MB**6*MT**4 - 36*cw**2*MB**4*MH**2*MT**4 - 120*cw**2*MB**4*MT**6 + 48*cw**2*MB**2*MT**8 + 60*MB**8*MW**2 - 120*cw**2*MB**8*MW**2 + 72*cw**2*MB**6*MH**2*MW**2 - 120*MB**6*MT**2*MW**2 - 96*cw**2*MB**6*MT**2*MW**2 + 72*cw**2*MB**4*MH**2*MT**2*MW**2 + 60*MB**4*MT**4*MW**2 - 24*cw**2*MB**4*MT**4*MW**2 - 48*cw**2*MB**2*MT**6*MW**2 - 120*MB**6*MW**4 - 36*cw**2*MB**4*MH**2*MW**4 - 120*MB**4*MT**2*MW**4 - 24*cw**2*MB**4*MT**2*MW**4 - 144*cw**2*MB**2*MT**4*MW**4 + 60*MB**4*MW**6 + 168*cw**2*MB**4*MW**6 + 240*cw**2*MB**2*MT**2*MW**6 - 96*cw**2*MB**2*MW**8 - 42*cw**2*MB**8*MZ**2 + 9*cw**2*MB**6*MH**2*MZ**2 + 90*cw**2*MB**6*MT**2*MZ**2 - 18*cw**2*MB**4*MH**2*MT**2*MZ**2 - 66*cw**2*MB**4*MT**4*MZ**2 + 9*cw**2*MB**2*MH**2*MT**4*MZ**2 + 30*cw**2*MB**2*MT**6*MZ**2 - 12*cw**2*MT**8*MZ**2 - 60*MB**6*MW**2*MZ**2 + 90*cw**2*MB**6*MW**2*MZ**2 - 18*cw**2*MB**4*MH**2*MW**2*MZ**2 + 120*MB**4*MT**2*MW**2*MZ**2 + 84*cw**2*MB**4*MT**2*MW**2*MZ**2 - 18*cw**2*MB**2*MH**2*MT**2*MW**2*MZ**2 - 60*MB**2*MT**4*MW**2*MZ**2 + 6*cw**2*MB**2*MT**4*MW**2*MZ**2 + 12*cw**2*MT**6*MW**2*MZ**2 + 120*MB**4*MW**4*MZ**2 - 30*cw**2*MB**4*MW**4*MZ**2 + 9*cw**2*MB**2*MH**2*MW**4*MZ**2 + 120*MB**2*MT**2*MW**4*MZ**2 + 6*cw**2*MB**2*MT**2*MW**4*MZ**2 + 36*cw**2*MT**4*MW**4*MZ**2 - 60*MB**2*MW**6*MZ**2 - 42*cw**2*MB**2*MW**6*MZ**2 - 60*cw**2*MT**2*MW**6*MZ**2 + 24*cw**2*MW**8*MZ**2 + 9*cw**2*MB**6*MZ**4 - 18*cw**2*MB**4*MT**2*MZ**4 + 9*cw**2*MB**2*MT**4*MZ**4 + 12*MB**4*MW**2*MZ**4 - 18*cw**2*MB**4*MW**2*MZ**4 - 24*MB**2*MT**2*MW**2*MZ**4 - 18*cw**2*MB**2*MT**2*MW**2*MZ**4 + 12*MT**4*MW**2*MZ**4 - 24*MB**2*MW**4*MZ**4 + 9*cw**2*MB**2*MW**4*MZ**4 - 24*MT**2*MW**4*MZ**4 + 12*MW**6*MZ**4 + 16*MB**8*MW**2*sw**2 - 32*MB**6*MT**2*MW**2*sw**2 + 16*MB**4*MT**4*MW**2*sw**2 - 32*MB**6*MW**4*sw**2 - 32*MB**4*MT**2*MW**4*sw**2 + 16*MB**4*MW**6*sw**2 + 48*MB**6*MW**2*MZ**2*sw**2 - 96*MB**4*MT**2*MW**2*MZ**2*sw**2 + 48*MB**2*MT**4*MW**2*MZ**2*sw**2 - 96*MB**4*MW**4*MZ**2*sw**2 - 96*MB**2*MT**2*MW**4*MZ**2*sw**2 + 48*MB**2*MW**6*MZ**2*sw**2 - 16*MB**4*MW**2*MZ**4*sw**2 + 32*MB**2*MT**2*MW**2*MZ**4*sw**2 - 16*MT**4*MW**2*MZ**4*sw**2 + 32*MB**2*MW**4*MZ**4*sw**2 + 32*MT**2*MW**4*MZ**4*sw**2 - 16*MW**6*MZ**4*sw**2 - 32*MB**8*MW**2*sw**4 + 64*MB**6*MT**2*MW**2*sw**4 - 32*MB**4*MT**4*MW**2*sw**4 + 64*MB**6*MW**4*sw**4 + 64*MB**4*MT**2*MW**4*sw**4 - 32*MB**4*MW**6*sw**4 - 16*MB**6*MW**2*MZ**2*sw**4 + 32*MB**4*MT**2*MW**2*MZ**2*sw**4 - 16*MB**2*MT**4*MW**2*MZ**2*sw**4 + 32*MB**4*MW**4*MZ**2*sw**4 + 32*MB**2*MT**2*MW**4*MZ**2*sw**4 - 16*MB**2*MW**6*MZ**2*sw**4 + 8*MB**4*MW**2*MZ**4*sw**4 - 16*MB**2*MT**2*MW**2*MZ**4*sw**4 + 8*MT**4*MW**2*MZ**4*sw**4 - 16*MB**2*MW**4*MZ**4*sw**4 - 16*MT**2*MW**4*MZ**4*sw**4 + 8*MW**6*MZ**4*sw**4)*reglogm((MB**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglogm((-MH**2 - cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglogm((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(2*MB**2 - MH**2)*(2*MB**2 - MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglogm((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2*MB**2 - MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*(-2*MB**2 + MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglogm((MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(-2*MB**2 + MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*reglogm((-MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*reglogm((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - MB**6*MT**2 - 3*MB**4*MT**4 + 5*MB**2*MT**6 - 2*MT**8 - MB**6*MW**2 - 2*MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 + 2*MT**6*MW**2 + 3*MB**4*MW**4 + MB**2*MT**2*MW**4 + 6*MT**4*MW**4 - 7*MB**2*MW**6 - 10*MT**2*MW**6 + 4*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglogm((-MZ**2 - cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglogm((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(2*MB**2 - MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglogm((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2*MB**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 60*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 12*MW**2*MZ**4 - 16*MB**4*MW**2*sw**2 - 48*MB**2*MW**2*MZ**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(-2*MB**2 + MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglogm((MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(-2*MB**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2)) )'},
4586 texname = '\delta ZR_b^{EW,MB}')
4587
4588 dMB_tWcft_UV_EW_L = CTParameter(name = 'dMB_tWcft_UV_EW_L',
4589 type = 'complex',
4590- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2)/(64.*MW**2*cmath.pi**2*sw**2)) )',
4591- 0:'( 0 if MB == 0 else re((ee**2*(9*MB**4 - 27*MB**2*MT**2 + 9*MB**2*MW**2 - 32*MT**2*MW**2*sw**2*reglog(16.) + 16*MT**2*MW**2*sw**2*reglog(64.) + 9*MT**4*reglog(cmath.pi) + 18*MT**2*MW**2*reglog(cmath.pi) - 32*MT**2*MW**2*sw**2*reglog(cmath.pi) - 18*MT**4*reglog(2*cmath.pi) - 36*MT**2*MW**2*reglog(2*cmath.pi) + 32*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 9*MT**4*reglog(4*cmath.pi) + 18*MT**2*MW**2*reglog(4*cmath.pi)))/(576.*MT**2*MW**2*cmath.pi**2*sw**2) - (ee**2*MB**2*(MB**6 - 2*MB**4*MT**2 + MB**2*MT**4 - 4*MT**4*MW**2 - 3*MB**2*MW**4 + 2*MT**2*MW**4 + 2*MW**6)*reglog(MU_R**2/MB**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6 + 2*MB**4*MT**2 - 7*MB**2*MT**4 + 4*MT**6 - 2*MB**2*MT**2*MW**2 - 6*MT**4*MW**2 - 3*MB**2*MW**4 + 2*MW**6)*reglog(MU_R**2/MW**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MT - MW)*(MT + MW)*(2*MT**2 + MW**2)*reglog((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(32.*MT**4*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*reglog((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2)) )'},
4592+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WT != 0,-(ee**2*MB**2)/(64.*MW**2*cmath.pi**2*sw**2)) )',
4593+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WT != 0,(ee**2*(9*MB**4 - 27*MB**2*MT**2 + 9*MB**2*MW**2 - 32*MT**2*MW**2*sw**2*reglog(16.) + 16*MT**2*MW**2*sw**2*reglog(64.) + 9*MT**4*reglog(cmath.pi) + 18*MT**2*MW**2*reglog(cmath.pi) - 32*MT**2*MW**2*sw**2*reglog(cmath.pi) - 18*MT**4*reglog(2*cmath.pi) - 36*MT**2*MW**2*reglog(2*cmath.pi) + 32*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 9*MT**4*reglog(4*cmath.pi) + 18*MT**2*MW**2*reglog(4*cmath.pi)))/(576.*MT**2*MW**2*cmath.pi**2*sw**2) - (ee**2*MB**2*(MB**6 - 2*MB**4*MT**2 + MB**2*MT**4 - 4*MT**4*MW**2 - 3*MB**2*MW**4 + 2*MT**2*MW**4 + 2*MW**6)*(-reglog(MB**2/MU_R**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6 + 2*MB**4*MT**2 - 7*MB**2*MT**4 + 4*MT**6 - 2*MB**2*MT**2*MW**2 - 6*MT**4*MW**2 - 3*MB**2*MW**4 + 2*MW**6)*reglog(MU_R**2/MW**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MT - MW)*(MT + MW)*(2*MT**2 + MW**2)*reglogm((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(32.*MT**4*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*reglogm((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(2.*MT**2)))/(64.*MT**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 3*MB**6*MT**2 + 3*MB**4*MT**4 - MB**2*MT**6 - MB**6*MW**2 + 5*MB**2*MT**4*MW**2 - 4*MT**6*MW**2 - 3*MB**4*MW**4 + 3*MB**2*MT**2*MW**4 + 6*MT**4*MW**4 + 5*MB**2*MW**6 - 2*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt(MB**4 - 2*MB**2*MT**2 + MT**4 - 2*MB**2*MW**2 - 2*MT**2*MW**2 + MW**4 + MT**2*vep*complex(0,4)))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MT**2*(MB**2 + vep*complex(0,-1))))))/(128.*MT**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2)) )'},
4594 texname = '\delta ZL_t^{EW,MB}')
4595
4596 dMB_bWcft_UV_EW_L = CTParameter(name = 'dMB_bWcft_UV_EW_L',
4597 type = 'complex',
4598- value = {-1:'( 0 if MB == 0 else re(-(ee**2*(3*MB**2 + 4*MW**2*sw**2))/(192.*MW**2*cmath.pi**2*sw**2)) )',
4599- 0:'( 0 if MB == 0 else re((ee**2*(72*cw**2*MB**4*MT**2 - 27*cw**2*MB**2*MH**2*MT**2 - 27*cw**2*MB**2*MT**4 + 18*cw**2*MT**6 - 72*cw**2*MB**4*MW**2 + 27*cw**2*MB**2*MH**2*MW**2 + 9*MB**2*MT**2*MW**2 + 27*cw**2*MB**2*MT**2*MW**2 - 9*MB**2*MW**4 + 54*cw**2*MB**2*MW**4 - 54*cw**2*MT**2*MW**4 + 36*cw**2*MW**6 - 27*cw**2*MB**2*MT**2*MZ**2 + 27*cw**2*MB**2*MW**2*MZ**2 - 18*MT**2*MW**2*MZ**2 + 18*MW**4*MZ**2 + 84*MB**2*MT**2*MW**2*sw**2 - 32*cw**2*MB**2*MT**2*MW**2*sw**2 - 84*MB**2*MW**4*sw**2 + 32*cw**2*MB**2*MW**4*sw**2 + 24*MT**2*MW**2*MZ**2*sw**2 - 24*MW**4*MZ**2*sw**2 - 36*MB**2*MT**2*MW**2*sw**4 + 36*MB**2*MW**4*sw**4 - 24*MT**2*MW**2*MZ**2*sw**4 + 24*MW**4*MZ**2*sw**4 + 9*cw**2*MB**2*MT**4*reglog(16.) + 9*MB**2*MT**2*MW**2*reglog(16.) + 9*cw**2*MB**2*MT**2*MW**2*reglog(16.) - 9*MB**2*MW**4*reglog(16.) - 18*cw**2*MB**2*MW**4*reglog(16.) - 12*MB**2*MT**2*MW**2*sw**2*reglog(16.) - 16*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(16.) + 12*MB**2*MW**4*sw**2*reglog(16.) + 16*cw**2*MB**2*MW**4*sw**2*reglog(16.) + 4*MB**2*MT**2*MW**2*sw**4*reglog(16.) - 4*MB**2*MW**4*sw**4*reglog(16.) + 4*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(256.) - 4*cw**2*MB**2*MW**4*sw**2*reglog(256.) + 18*cw**2*MB**4*MT**2*reglog(1/(4.*cmath.pi)) - 18*cw**2*MB**4*MW**2*reglog(1/(4.*cmath.pi)) + 18*MB**2*MT**2*MW**2*reglog(1/(4.*cmath.pi)) - 18*MB**2*MW**4*reglog(1/(4.*cmath.pi)) - 24*MB**2*MT**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 24*MB**2*MW**4*sw**2*reglog(1/(4.*cmath.pi)) + 8*MB**2*MT**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 8*MB**2*MW**4*sw**4*reglog(1/(4.*cmath.pi)) + 18*cw**2*MB**2*MT**4*reglog(cmath.pi) + 18*MB**2*MT**2*MW**2*reglog(cmath.pi) + 54*cw**2*MB**2*MT**2*MW**2*reglog(cmath.pi) - 18*MB**2*MW**4*reglog(cmath.pi) - 72*cw**2*MB**2*MW**4*reglog(cmath.pi) - 24*MB**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 8*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MB**2*MW**4*sw**2*reglog(cmath.pi) + 8*cw**2*MB**2*MW**4*sw**2*reglog(cmath.pi) + 8*MB**2*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MB**2*MW**4*sw**4*reglog(cmath.pi) - 72*cw**2*MB**2*MT**2*MW**2*reglog(2*cmath.pi) + 72*cw**2*MB**2*MW**4*reglog(2*cmath.pi) - 16*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 16*cw**2*MB**2*MW**4*sw**2*reglog(2*cmath.pi) + 18*cw**2*MB**4*MT**2*reglog(4*cmath.pi) - 18*cw**2*MB**2*MT**4*reglog(4*cmath.pi) - 18*cw**2*MB**4*MW**2*reglog(4*cmath.pi) + 18*cw**2*MB**2*MT**2*MW**2*reglog(4*cmath.pi) + 24*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*cw**2*MB**2*MW**4*sw**2*reglog(4*cmath.pi)))/(1152.*cw**2*MB**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MB**4 + 6*MB**2*MW**2 - 9*cw**2*MB**2*MZ**2 - 3*MW**2*MZ**2 + 8*MB**2*MW**2*sw**2 + 16*cw**2*MB**2*MW**2*sw**2 + 4*MW**2*MZ**2*sw**2 - 4*cw**2*MW**2*MZ**2*sw**2 - 4*MW**2*MZ**2*sw**4)*reglog(MU_R**2/MB**2))/(192.*cw**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(4*MB**2 - 3*MH**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*MT**2*(MB**6*MT**4 - 3*MB**4*MT**6 + 3*MB**2*MT**8 - MT**10 + 2*MB**6*MT**2*MW**2 - 4*MB**2*MT**6*MW**2 + 2*MT**8*MW**2 - 13*MB**4*MT**2*MW**4 - 3*MB**2*MT**4*MW**4 + 2*MT**6*MW**4 + 4*MB**4*MW**6 + 6*MB**2*MT**2*MW**6 - 8*MT**4*MW**6 - 2*MB**2*MW**8 + 7*MT**2*MW**8 - 2*MW**10)*reglog(MU_R**2/MT**2))/(64.*MB**2*(MB - MT - MW)*(MT - MW)**2*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MT + MW)**2*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(-(MB**4*MT**6) + 2*MB**2*MT**8 - MT**10 + 7*MB**6*MT**2*MW**2 - 14*MB**4*MT**4*MW**2 - 3*MB**2*MT**6*MW**2 + 2*MT**8*MW**2 - 4*MB**6*MW**4 - 3*MB**4*MT**2*MW**4 + 2*MT**6*MW**4 + 6*MB**4*MW**6 + MB**2*MT**2*MW**6 - 8*MT**4*MW**6 + 7*MT**2*MW**8 - 2*MW**10)*reglog(MU_R**2/MW**2))/(64.*MB**2*(MB - MT - MW)*(MT - MW)**2*(MB + MT - MW)*(MB - MT + MW)*(MT + MW)**2*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(24*cw**2*MB**4*MZ**2 + 18*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 64*MB**4*MW**2*sw**2 + 8*MB**2*MW**2*MZ**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 8*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(72*cw**2*MB**10 - 36*cw**2*MB**8*MH**2 - 168*cw**2*MB**8*MT**2 + 72*cw**2*MB**6*MH**2*MT**2 + 144*cw**2*MB**6*MT**4 - 36*cw**2*MB**4*MH**2*MT**4 - 72*cw**2*MB**4*MT**6 + 24*cw**2*MB**2*MT**8 + 12*MB**8*MW**2 - 240*cw**2*MB**8*MW**2 + 72*cw**2*MB**6*MH**2*MW**2 - 24*MB**6*MT**2*MW**2 - 24*cw**2*MB**6*MT**2*MW**2 + 72*cw**2*MB**4*MH**2*MT**2*MW**2 + 12*MB**4*MT**4*MW**2 - 24*cw**2*MB**2*MT**6*MW**2 - 24*MB**6*MW**4 + 216*cw**2*MB**6*MW**4 - 36*cw**2*MB**4*MH**2*MW**4 - 24*MB**4*MT**2*MW**4 + 72*cw**2*MB**4*MT**2*MW**4 - 72*cw**2*MB**2*MT**4*MW**4 + 12*MB**4*MW**6 + 120*cw**2*MB**2*MT**2*MW**6 - 48*cw**2*MB**2*MW**8 - 48*cw**2*MB**8*MZ**2 + 9*cw**2*MB**6*MH**2*MZ**2 + 102*cw**2*MB**6*MT**2*MZ**2 - 18*cw**2*MB**4*MH**2*MT**2*MZ**2 - 66*cw**2*MB**4*MT**4*MZ**2 + 9*cw**2*MB**2*MH**2*MT**4*MZ**2 + 18*cw**2*MB**2*MT**6*MZ**2 - 6*cw**2*MT**8*MZ**2 - 24*MB**6*MW**2*MZ**2 + 120*cw**2*MB**6*MW**2*MZ**2 - 18*cw**2*MB**4*MH**2*MW**2*MZ**2 + 48*MB**4*MT**2*MW**2*MZ**2 + 66*cw**2*MB**4*MT**2*MW**2*MZ**2 - 18*cw**2*MB**2*MH**2*MT**2*MW**2*MZ**2 - 24*MB**2*MT**4*MW**2*MZ**2 + 6*cw**2*MT**6*MW**2*MZ**2 + 48*MB**4*MW**4*MZ**2 - 84*cw**2*MB**4*MW**4*MZ**2 + 9*cw**2*MB**2*MH**2*MW**4*MZ**2 + 48*MB**2*MT**2*MW**4*MZ**2 - 18*cw**2*MB**2*MT**2*MW**4*MZ**2 + 18*cw**2*MT**4*MW**4*MZ**2 - 24*MB**2*MW**6*MZ**2 - 30*cw**2*MT**2*MW**6*MZ**2 + 12*cw**2*MW**8*MZ**2 + 9*cw**2*MB**6*MZ**4 - 18*cw**2*MB**4*MT**2*MZ**4 + 9*cw**2*MB**2*MT**4*MZ**4 + 6*MB**4*MW**2*MZ**4 - 18*cw**2*MB**4*MW**2*MZ**4 - 12*MB**2*MT**2*MW**2*MZ**4 - 18*cw**2*MB**2*MT**2*MW**2*MZ**4 + 6*MT**4*MW**2*MZ**4 - 12*MB**2*MW**4*MZ**4 + 9*cw**2*MB**2*MW**4*MZ**4 - 12*MT**2*MW**4*MZ**4 + 6*MW**6*MZ**4 + 80*MB**8*MW**2*sw**2 - 160*MB**6*MT**2*MW**2*sw**2 + 80*MB**4*MT**4*MW**2*sw**2 - 160*MB**6*MW**4*sw**2 - 160*MB**4*MT**2*MW**4*sw**2 + 80*MB**4*MW**6*sw**2 - 8*MB**4*MW**2*MZ**4*sw**2 + 16*MB**2*MT**2*MW**2*MZ**4*sw**2 - 8*MT**4*MW**2*MZ**4*sw**2 + 16*MB**2*MW**4*MZ**4*sw**2 + 16*MT**2*MW**4*MZ**4*sw**2 - 8*MW**6*MZ**4*sw**2 - 32*MB**8*MW**2*sw**4 + 64*MB**6*MT**2*MW**2*sw**4 - 32*MB**4*MT**4*MW**2*sw**4 + 64*MB**6*MW**4*sw**4 + 64*MB**4*MT**2*MW**4*sw**4 - 32*MB**4*MW**6*sw**4 - 16*MB**6*MW**2*MZ**2*sw**4 + 32*MB**4*MT**2*MW**2*MZ**2*sw**4 - 16*MB**2*MT**4*MW**2*MZ**2*sw**4 + 32*MB**4*MW**4*MZ**2*sw**4 + 32*MB**2*MT**2*MW**4*MZ**2*sw**4 - 16*MB**2*MW**6*MZ**2*sw**4 + 8*MB**4*MW**2*MZ**4*sw**4 - 16*MB**2*MT**2*MW**2*MZ**4*sw**4 + 8*MT**4*MW**2*MZ**4*sw**4 - 16*MB**2*MW**4*MZ**4*sw**4 - 16*MT**2*MW**4*MZ**4*sw**4 + 8*MW**6*MZ**4*sw**4)*reglog((MB**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglog((-MH**2 - cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglog((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(2*MB**2 - MH**2)*(2*MB**2 - MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglog((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2*MB**2 - MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*(-2*MB**2 + MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglog((MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(-2*MB**2 + MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*reglog((-MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*reglog((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(2*MB**2 - MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2*MB**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(-2*MB**2 + MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(-2*MB**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2)) )'},
4600+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0,-(ee**2*(3*MB**2 + 4*MW**2*sw**2))/(192.*MW**2*cmath.pi**2*sw**2)) )',
4601+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0,(ee**2*(72*cw**2*MB**4*MT**2 - 27*cw**2*MB**2*MH**2*MT**2 - 27*cw**2*MB**2*MT**4 + 18*cw**2*MT**6 - 72*cw**2*MB**4*MW**2 + 27*cw**2*MB**2*MH**2*MW**2 + 9*MB**2*MT**2*MW**2 + 27*cw**2*MB**2*MT**2*MW**2 - 9*MB**2*MW**4 + 54*cw**2*MB**2*MW**4 - 54*cw**2*MT**2*MW**4 + 36*cw**2*MW**6 - 27*cw**2*MB**2*MT**2*MZ**2 + 27*cw**2*MB**2*MW**2*MZ**2 - 18*MT**2*MW**2*MZ**2 + 18*MW**4*MZ**2 + 84*MB**2*MT**2*MW**2*sw**2 - 32*cw**2*MB**2*MT**2*MW**2*sw**2 - 84*MB**2*MW**4*sw**2 + 32*cw**2*MB**2*MW**4*sw**2 + 24*MT**2*MW**2*MZ**2*sw**2 - 24*MW**4*MZ**2*sw**2 - 36*MB**2*MT**2*MW**2*sw**4 + 36*MB**2*MW**4*sw**4 - 24*MT**2*MW**2*MZ**2*sw**4 + 24*MW**4*MZ**2*sw**4 + 9*cw**2*MB**2*MT**4*reglog(16.) + 9*MB**2*MT**2*MW**2*reglog(16.) + 9*cw**2*MB**2*MT**2*MW**2*reglog(16.) - 9*MB**2*MW**4*reglog(16.) - 18*cw**2*MB**2*MW**4*reglog(16.) - 12*MB**2*MT**2*MW**2*sw**2*reglog(16.) - 16*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(16.) + 12*MB**2*MW**4*sw**2*reglog(16.) + 16*cw**2*MB**2*MW**4*sw**2*reglog(16.) + 4*MB**2*MT**2*MW**2*sw**4*reglog(16.) - 4*MB**2*MW**4*sw**4*reglog(16.) + 4*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(256.) - 4*cw**2*MB**2*MW**4*sw**2*reglog(256.) + 18*cw**2*MB**4*MT**2*reglog(1/(4.*cmath.pi)) - 18*cw**2*MB**4*MW**2*reglog(1/(4.*cmath.pi)) + 18*MB**2*MT**2*MW**2*reglog(1/(4.*cmath.pi)) - 18*MB**2*MW**4*reglog(1/(4.*cmath.pi)) - 24*MB**2*MT**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 24*MB**2*MW**4*sw**2*reglog(1/(4.*cmath.pi)) + 8*MB**2*MT**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 8*MB**2*MW**4*sw**4*reglog(1/(4.*cmath.pi)) + 18*cw**2*MB**2*MT**4*reglog(cmath.pi) + 18*MB**2*MT**2*MW**2*reglog(cmath.pi) + 54*cw**2*MB**2*MT**2*MW**2*reglog(cmath.pi) - 18*MB**2*MW**4*reglog(cmath.pi) - 72*cw**2*MB**2*MW**4*reglog(cmath.pi) - 24*MB**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 8*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MB**2*MW**4*sw**2*reglog(cmath.pi) + 8*cw**2*MB**2*MW**4*sw**2*reglog(cmath.pi) + 8*MB**2*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MB**2*MW**4*sw**4*reglog(cmath.pi) - 72*cw**2*MB**2*MT**2*MW**2*reglog(2*cmath.pi) + 72*cw**2*MB**2*MW**4*reglog(2*cmath.pi) - 16*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 16*cw**2*MB**2*MW**4*sw**2*reglog(2*cmath.pi) + 18*cw**2*MB**4*MT**2*reglog(4*cmath.pi) - 18*cw**2*MB**2*MT**4*reglog(4*cmath.pi) - 18*cw**2*MB**4*MW**2*reglog(4*cmath.pi) + 18*cw**2*MB**2*MT**2*MW**2*reglog(4*cmath.pi) + 24*cw**2*MB**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*cw**2*MB**2*MW**4*sw**2*reglog(4*cmath.pi)))/(1152.*cw**2*MB**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MB**4 + 6*MB**2*MW**2 - 9*cw**2*MB**2*MZ**2 - 3*MW**2*MZ**2 + 8*MB**2*MW**2*sw**2 + 16*cw**2*MB**2*MW**2*sw**2 + 4*MW**2*MZ**2*sw**2 - 4*cw**2*MW**2*MZ**2*sw**2 - 4*MW**2*MZ**2*sw**4)*(-reglog(MB**2/MU_R**2)))/(192.*cw**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(4*MB**2 - 3*MH**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*MT**2*(MB**6*MT**4 - 3*MB**4*MT**6 + 3*MB**2*MT**8 - MT**10 + 2*MB**6*MT**2*MW**2 - 4*MB**2*MT**6*MW**2 + 2*MT**8*MW**2 - 13*MB**4*MT**2*MW**4 - 3*MB**2*MT**4*MW**4 + 2*MT**6*MW**4 + 4*MB**4*MW**6 + 6*MB**2*MT**2*MW**6 - 8*MT**4*MW**6 - 2*MB**2*MW**8 + 7*MT**2*MW**8 - 2*MW**10)*reglog(MU_R**2/MT**2))/(64.*MB**2*(MB - MT - MW)*(MT - MW)**2*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MT + MW)**2*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(-(MB**4*MT**6) + 2*MB**2*MT**8 - MT**10 + 7*MB**6*MT**2*MW**2 - 14*MB**4*MT**4*MW**2 - 3*MB**2*MT**6*MW**2 + 2*MT**8*MW**2 - 4*MB**6*MW**4 - 3*MB**4*MT**2*MW**4 + 2*MT**6*MW**4 + 6*MB**4*MW**6 + MB**2*MT**2*MW**6 - 8*MT**4*MW**6 + 7*MT**2*MW**8 - 2*MW**10)*reglog(MU_R**2/MW**2))/(64.*MB**2*(MB - MT - MW)*(MT - MW)**2*(MB + MT - MW)*(MB - MT + MW)*(MT + MW)**2*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(24*cw**2*MB**4*MZ**2 + 18*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 64*MB**4*MW**2*sw**2 + 8*MB**2*MW**2*MZ**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 8*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(72*cw**2*MB**10 - 36*cw**2*MB**8*MH**2 - 168*cw**2*MB**8*MT**2 + 72*cw**2*MB**6*MH**2*MT**2 + 144*cw**2*MB**6*MT**4 - 36*cw**2*MB**4*MH**2*MT**4 - 72*cw**2*MB**4*MT**6 + 24*cw**2*MB**2*MT**8 + 12*MB**8*MW**2 - 240*cw**2*MB**8*MW**2 + 72*cw**2*MB**6*MH**2*MW**2 - 24*MB**6*MT**2*MW**2 - 24*cw**2*MB**6*MT**2*MW**2 + 72*cw**2*MB**4*MH**2*MT**2*MW**2 + 12*MB**4*MT**4*MW**2 - 24*cw**2*MB**2*MT**6*MW**2 - 24*MB**6*MW**4 + 216*cw**2*MB**6*MW**4 - 36*cw**2*MB**4*MH**2*MW**4 - 24*MB**4*MT**2*MW**4 + 72*cw**2*MB**4*MT**2*MW**4 - 72*cw**2*MB**2*MT**4*MW**4 + 12*MB**4*MW**6 + 120*cw**2*MB**2*MT**2*MW**6 - 48*cw**2*MB**2*MW**8 - 48*cw**2*MB**8*MZ**2 + 9*cw**2*MB**6*MH**2*MZ**2 + 102*cw**2*MB**6*MT**2*MZ**2 - 18*cw**2*MB**4*MH**2*MT**2*MZ**2 - 66*cw**2*MB**4*MT**4*MZ**2 + 9*cw**2*MB**2*MH**2*MT**4*MZ**2 + 18*cw**2*MB**2*MT**6*MZ**2 - 6*cw**2*MT**8*MZ**2 - 24*MB**6*MW**2*MZ**2 + 120*cw**2*MB**6*MW**2*MZ**2 - 18*cw**2*MB**4*MH**2*MW**2*MZ**2 + 48*MB**4*MT**2*MW**2*MZ**2 + 66*cw**2*MB**4*MT**2*MW**2*MZ**2 - 18*cw**2*MB**2*MH**2*MT**2*MW**2*MZ**2 - 24*MB**2*MT**4*MW**2*MZ**2 + 6*cw**2*MT**6*MW**2*MZ**2 + 48*MB**4*MW**4*MZ**2 - 84*cw**2*MB**4*MW**4*MZ**2 + 9*cw**2*MB**2*MH**2*MW**4*MZ**2 + 48*MB**2*MT**2*MW**4*MZ**2 - 18*cw**2*MB**2*MT**2*MW**4*MZ**2 + 18*cw**2*MT**4*MW**4*MZ**2 - 24*MB**2*MW**6*MZ**2 - 30*cw**2*MT**2*MW**6*MZ**2 + 12*cw**2*MW**8*MZ**2 + 9*cw**2*MB**6*MZ**4 - 18*cw**2*MB**4*MT**2*MZ**4 + 9*cw**2*MB**2*MT**4*MZ**4 + 6*MB**4*MW**2*MZ**4 - 18*cw**2*MB**4*MW**2*MZ**4 - 12*MB**2*MT**2*MW**2*MZ**4 - 18*cw**2*MB**2*MT**2*MW**2*MZ**4 + 6*MT**4*MW**2*MZ**4 - 12*MB**2*MW**4*MZ**4 + 9*cw**2*MB**2*MW**4*MZ**4 - 12*MT**2*MW**4*MZ**4 + 6*MW**6*MZ**4 + 80*MB**8*MW**2*sw**2 - 160*MB**6*MT**2*MW**2*sw**2 + 80*MB**4*MT**4*MW**2*sw**2 - 160*MB**6*MW**4*sw**2 - 160*MB**4*MT**2*MW**4*sw**2 + 80*MB**4*MW**6*sw**2 - 8*MB**4*MW**2*MZ**4*sw**2 + 16*MB**2*MT**2*MW**2*MZ**4*sw**2 - 8*MT**4*MW**2*MZ**4*sw**2 + 16*MB**2*MW**4*MZ**4*sw**2 + 16*MT**2*MW**4*MZ**4*sw**2 - 8*MW**6*MZ**4*sw**2 - 32*MB**8*MW**2*sw**4 + 64*MB**6*MT**2*MW**2*sw**4 - 32*MB**4*MT**4*MW**2*sw**4 + 64*MB**6*MW**4*sw**4 + 64*MB**4*MT**2*MW**4*sw**4 - 32*MB**4*MW**6*sw**4 - 16*MB**6*MW**2*MZ**2*sw**4 + 32*MB**4*MT**2*MW**2*MZ**2*sw**4 - 16*MB**2*MT**4*MW**2*MZ**2*sw**4 + 32*MB**4*MW**4*MZ**2*sw**4 + 32*MB**2*MT**2*MW**4*MZ**2*sw**4 - 16*MB**2*MW**6*MZ**2*sw**4 + 8*MB**4*MW**2*MZ**4*sw**4 - 16*MB**2*MT**2*MW**2*MZ**4*sw**4 + 8*MT**4*MW**2*MZ**4*sw**4 - 16*MB**2*MW**4*MZ**4*sw**4 - 16*MT**2*MW**4*MZ**4*sw**4 + 8*MW**6*MZ**4*sw**4)*reglog((MB**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglogm((-MH**2 - cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*reglogm((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2.*MB**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(2*MB**2 - MH**2)*(2*MB**2 - MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglogm((-MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(2*MB**2 - MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(2*MB**2 - MH**2)*(-2*MB**2 + MH**2 + cmath.sqrt(-4*MB**2*MH**2 + MH**4 + MB**2*vep*complex(0,4)))*reglogm((MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))/(-2*MB**2 + MH**2 + cmath.sqrt(MH**4 - 4*MB**2*(MH**2 + vep*complex(0,-1))))))/(256.*MB**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*reglogm((-MB**2 + MT**2 - MW**2 - cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*reglogm((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(2.*MB**2)))/(64.*MB**2*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 + 4*MB**6*MW**2 - 5*MB**4*MT**2*MW**2 + MT**6*MW**2 - 6*MB**4*MW**4 - 3*MB**2*MT**2*MW**4 + 3*MT**4*MW**4 - 5*MT**2*MW**6 + 2*MW**8)*(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))/(-MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 + MT**2 - MW**2)**2 - 4*MB**2*(MT**2 + vep*complex(0,-1))))))/(128.*MB**4*(MB - MT - MW)*(MB + MT - MW)*MW**2*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglogm((-MZ**2 - cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*reglogm((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2.*MB**2)))/(384.*cw**2*MB**2*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) - (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(2*MB**2 - MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglogm((-MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(2*MB**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MB**4*MW**2 + 30*cw**2*MB**4*MZ**2 + 24*MB**2*MW**2*MZ**2 - 9*cw**2*MB**2*MZ**4 - 6*MW**2*MZ**4 - 80*MB**4*MW**2*sw**2 + 8*MW**2*MZ**4*sw**2 + 32*MB**4*MW**2*sw**4 + 16*MB**2*MW**2*MZ**2*sw**4 - 8*MW**2*MZ**4*sw**4)*(-2*MB**2 + MZ**2 + cmath.sqrt(-4*MB**2*MZ**2 + MZ**4 + MB**2*vep*complex(0,4)))*reglogm((MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))/(-2*MB**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MB**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MB**4*MW**2*(2*MB - MZ)*(2*MB + MZ)*cmath.pi**2*sw**2)) )'},
4602 texname = '\delta ZL_b^{EW,MB}')
4603
4604 dMB_HWcft_UV_EW = CTParameter(name = 'dMB_HWcft_UV_EW',
4605 type = 'complex',
4606- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4607- 0:'( 0 if MB == 0 else re((ee**2*MB**2*Ncol*((-8*MB**2)/MH**2 + 2*reglog(4*cmath.pi) - 2*(1 + reglog(4*cmath.pi)) + (4*MB**2*reglog(MU_R**2/MB**2))/MH**2 + (2*(2*MB**2 + MH**2)*reglog((MH**2 + vep*complex(0,-1))/MU_R**2))/MH**2 + (2*(2*MB**2 + MH**2)*reglog((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)))/MH**2 - ((2*MB**2 + MH**2)*(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**4 + (2*(2*MB**2 + MH**2)*reglog(-(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)))/MH**2 + ((2*MB**2 + MH**2)*(-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**4))/(64.*MW**2*cmath.pi**2*sw**2)) )'},
4608+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WH != 0,-(ee**2*MB**2*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4609+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WH != 0,(ee**2*MB**2*Ncol*((-8*MB**2)/MH**2 + 2*reglog(4*cmath.pi) - 2*(1 + reglog(4*cmath.pi)) + (4*MB**2*(-reglog(MB**2/MU_R**2)))/MH**2 + (2*(2*MB**2 + MH**2)*reglog((MH**2 + vep*complex(0,-1))/MU_R**2))/MH**2 + (2*(2*MB**2 + MH**2)*reglogm((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)))/MH**2 - ((2*MB**2 + MH**2)*(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglogm((-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**4 + (2*(2*MB**2 + MH**2)*reglogm(-(MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(2.*MH**2)))/MH**2 + ((2*MB**2 + MH**2)*(-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))*reglogm((MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(-4*MB**2 + MH**2 + vep*complex(0,4))))))/MH**4))/(64.*MW**2*cmath.pi**2*sw**2)) )'},
4610 texname = '\delta Z_{H}^{EW,MB}')
4611
4612
4613 dMB_G0Wcft_UV_EW = CTParameter(name = 'dMB_G0Wcft_UV_EW',
4614 type = 'complex',
4615- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4616- 0:'( 0 if MB == 0 else re((ee**2*MB**2*Ncol*(-reglog(16.) - 2*(1 + reglog(cmath.pi)) + 2*reglog(4*cmath.pi) - (4*MB**2*reglog(MU_R**2/MB**2))/(4*MB**2 - MZ**2) + (2*(-2*MB**2 + MZ**2)*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/(-4*MB**2 + MZ**2) + (2*(2*MB**2 - MZ**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2 - MZ**2) + ((-2*MB**2 + MZ**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(4*MB**2*MZ**2 - MZ**4) + (2*(2*MB**2 - MZ**2)*reglog(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2 - MZ**2) + ((-2*MB**2 + MZ**2)*(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(-4*MB**2*MZ**2 + MZ**4)))/(64.*MW**2*cmath.pi**2*sw**2)) )'},
4617+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WZ != 0,-(ee**2*MB**2*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4618+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WZ != 0,(ee**2*MB**2*Ncol*(-reglog(16.) - 2*(1 + reglog(cmath.pi)) + 2*reglog(4*cmath.pi) - (4*MB**2*(-reglog(MB**2/MU_R**2)))/(4*MB**2 - MZ**2) + (2*(-2*MB**2 + MZ**2)*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/(-4*MB**2 + MZ**2) + (2*(2*MB**2 - MZ**2)*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2 - MZ**2) + ((-2*MB**2 + MZ**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(4*MB**2*MZ**2 - MZ**4) + (2*(2*MB**2 - MZ**2)*reglogm(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2 - MZ**2) + ((-2*MB**2 + MZ**2)*(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(-4*MB**2*MZ**2 + MZ**4)))/(64.*MW**2*cmath.pi**2*sw**2)) )'},
4619 texname = '\delta Z_{G0}^{EW,MB}')
4620
4621
4622 dMB_GpWcft_UV_EW = CTParameter(name = 'dMB_GpWcft_UV_EW',
4623 type = 'complex',
4624- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4625- 0:'( 0 if MB == 0 else re((ee**2*MB**2*Ncol*reglog(4*cmath.pi))/(32.*MW**2*cmath.pi**2*sw**2) + (ee**2*Ncol*(-(MB**2*MW**2*(2*MB**2 - 4*MT**2 + MW**2*(2 + reglog(16.) + 2*reglog(cmath.pi)))) + (2*MB**2*MW**2*(MB**2 - MT**2 - MW**2)*(MB**4 + MT**4 - MT**2*MW**2 - MB**2*(2*MT**2 + MW**2))*reglog(MU_R**2/MB**2))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + (2*MT**2*MW**2*(-MB**2 + MT**2 + MW**2)*(MB**4 - 2*MB**2*MT**2 + (MT**2 - MW**2)**2)*reglog(MU_R**2/MT**2))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + 2*MT**2*(MT - MW)*(MT + MW)*(MT**2 + MW**2)*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) + (2*MW**2*(MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + (2*MW**2*(MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*reglog((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + (2*MW**2*(MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) - ((MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + ((MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW))))/(64.*MW**6*cmath.pi**2*sw**2)) )'},
4626+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and WW != 0,-(ee**2*MB**2*Ncol)/(32.*MW**2*cmath.pi**2*sw**2)) )',
4627+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WW != 0,(ee**2*MB**2*Ncol*reglog(4*cmath.pi))/(32.*MW**2*cmath.pi**2*sw**2) + (ee**2*Ncol*(-(MB**2*MW**2*(2*MB**2 - 4*MT**2 + MW**2*(2 + reglog(16.) + 2*reglog(cmath.pi)))) + (2*MB**2*MW**2*(MB**2 - MT**2 - MW**2)*(MB**4 + MT**4 - MT**2*MW**2 - MB**2*(2*MT**2 + MW**2))*(-reglog(MB**2/MU_R**2)))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + (2*MT**2*MW**2*(-MB**2 + MT**2 + MW**2)*(MB**4 - 2*MB**2*MT**2 + (MT**2 - MW**2)**2)*reglog(MU_R**2/MT**2))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + 2*MT**2*(MT - MW)*(MT + MW)*(MT**2 + MW**2)*reglogm((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) + (2*MW**2*(MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + (2*MW**2*(MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*reglogm((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + (2*MW**2*(MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) - ((MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW)) + ((MB**8 - MB**6*(4*MT**2 + MW**2) + (MT**2 + MW**2)*(MT**3 - MT*MW**2)**2 + MB**4*(6*MT**4 + MT**2*MW**2 - MW**4) + MB**2*(-4*MT**6 + MT**4*MW**2 - 2*MT**2*MW**4 + MW**6))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/((MB - MT - MW)*(MB + MT - MW)*(MB - MT + MW)*(MB + MT + MW))))/(64.*MW**6*cmath.pi**2*sw**2)) )'},
4628 texname = '\delta Z_{Gp}^{EW,MB}')
4629
4630 dMB_WWcft_UV_EW = CTParameter(name = 'dMB_WWcft_UV_EW',
4631 type = 'complex',
4632- value = {0:'( 0 if MB == 0 else re(-(ee**2*MB**2*(2*MB**2 - 4*MT**2 + MW**2)*Ncol)/(96.*MW**4*cmath.pi**2*sw**2) + (ee**2*MB**2*(MB**2 - MT**2 - MT*MW - MW**2)*(MB**2 - MT**2 + MT*MW - MW**2)*(MB**2 - MT**2 + MW**2)*Ncol*reglog(MU_R**2/MB**2))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 - MB**2*MT**4*MW**2 + MT**6*MW**2 - MB**4*MW**4 + 2*MB**2*MT**2*MW**4 + 2*MB**2*MW**6 + MT**2*MW**6 - MW**8)*Ncol*reglog(MU_R**2/MT**2))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(-MT + MW)*(MT + MW)*(MT**2 - MT*MW + MW**2)*(MT**2 + MT*MW + MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/(48.*MW**6*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*reglog((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/(96.*(MB - MT - MW)*(MB + MT - MW)*MW**6*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*(MB**2 - MT**2 + MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/(96.*(MB - MT - MW)*(MB + MT - MW)*MW**6*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2)) )'},
4633+ value = {0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WW != 0,-(ee**2*MB**2*(2*MB**2 - 4*MT**2 + MW**2)*Ncol)/(96.*MW**4*cmath.pi**2*sw**2) + (ee**2*MB**2*(MB**2 - MT**2 - MT*MW - MW**2)*(MB**2 - MT**2 + MT*MW - MW**2)*(MB**2 - MT**2 + MW**2)*Ncol*(-reglog(MB**2/MU_R**2)))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**6*MT**2 - 3*MB**4*MT**4 + 3*MB**2*MT**6 - MT**8 - MB**2*MT**4*MW**2 + MT**6*MW**2 - MB**4*MW**4 + 2*MB**2*MT**2*MW**4 + 2*MB**2*MW**6 + MT**2*MW**6 - MW**8)*Ncol*reglog(MU_R**2/MT**2))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(-MT + MW)*(MT + MW)*(MT**2 - MT*MW + MW**2)*(MT**2 + MT*MW + MW**2)*Ncol*reglogm((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/(48.*MW**6*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*reglogm((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) + (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)))/(48.*(MB - MT - MW)*(MB + MT - MW)*MW**4*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/(96.*(MB - MT - MW)*(MB + MT - MW)*MW**6*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2) - (ee**2*(MB**8 - 4*MB**6*MT**2 + 6*MB**4*MT**4 - 4*MB**2*MT**6 + MT**8 - MB**6*MW**2 + MB**4*MT**2*MW**2 + MB**2*MT**4*MW**2 - MT**6*MW**2 - 2*MB**2*MT**2*MW**4 - MB**2*MW**6 - MT**2*MW**6 + MW**8)*Ncol*(MB**2 - MT**2 + MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))))/(96.*(MB - MT - MW)*(MB + MT - MW)*MW**6*(MB - MT + MW)*(MB + MT + MW)*cmath.pi**2*sw**2)) )'},
4634 texname = '\delta Z_{W}^{EW,MB}')
4635
4636 dMB_ZZWcft_UV_EW = CTParameter(name = 'dMB_ZZWcft_UV_EW',
4637 type = 'complex',
4638- value = { 0:'( 0 if MB == 0 else re((ee**2*Ncol*((2*MB**2*(-9 - 24*sw**2 + 16*sw**4))/MZ**2 - (4*MB**2*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog(MU_R**2/MB**2))/(4*MB**2*MZ**2 - MZ**4) - (2*(-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/(4*MB**2*MZ**2 - MZ**4) + 2*(9 - 12*sw**2 + 8*sw**4)*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - (2*(-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2*MZ**2 - MZ**4) + ((-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(4*MB**2*MZ**4 - MZ**6) - (2*(-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*reglog(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2*MZ**2 - MZ**4) + ((-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(4*MB**2*MZ**4 - MZ**6)))/(1728.*cw**2*cmath.pi**2*sw**2)) )'},
4639+ value = { 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WZ != 0,(ee**2*Ncol*((2*MB**2*(-9 - 24*sw**2 + 16*sw**4))/MZ**2 - (4*MB**2*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(-reglog(MB**2/MU_R**2)))/(4*MB**2*MZ**2 - MZ**4) - (2*(-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/(4*MB**2*MZ**2 - MZ**4) + 2*(9 - 12*sw**2 + 8*sw**4)*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - (2*(-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2*MZ**2 - MZ**4) + ((-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(4*MB**2*MZ**4 - MZ**6) - (2*(-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*reglogm(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MB**2*MZ**2 - MZ**4) + ((-2*MB**2*MZ**2*(9 - 12*sw**2 + 8*sw**4) + MZ**4*(9 - 12*sw**2 + 8*sw**4) + 2*MB**4*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/(4*MB**2*MZ**4 - MZ**6)))/(1728.*cw**2*cmath.pi**2*sw**2)) )'},
4640 texname = '\delta Z_{ZZ}^{EW,MB}')
4641
4642
4643 dMB_AZWcft_UV_EW = CTParameter(name = 'dMB_AZWcft_UV_EW',
4644 type = 'complex',
4645- value = { 0:'( 0 if MB == 0 else re((ee**2*((16*MB**2*Ncol*(3 - 4*sw**2))/MZ**2 + (8*MB**2*Ncol*(-3 + 4*sw**2)*reglog(MU_R**2/MB**2))/MZ**2 + (4*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - 4*(-27 - 18*Ncol + 108*sw**2 + 40*Ncol*sw**2)*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + 4*(-27 - 21*Ncol + 108*sw**2 + 44*Ncol*sw**2)*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + (4*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (2*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 + (4*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*reglog(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (2*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4))/(864.*cw*cmath.pi**2*sw)) )'},
4646+ value = { 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and WZ != 0,(ee**2*((16*MB**2*Ncol*(3 - 4*sw**2))/MZ**2 + (8*MB**2*Ncol*(-3 + 4*sw**2)*(-reglog(MB**2/MU_R**2)))/MZ**2 + (4*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - 4*(-27 - 18*Ncol + 108*sw**2 + 40*Ncol*sw**2)*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + 4*(-27 - 21*Ncol + 108*sw**2 + 44*Ncol*sw**2)*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + (4*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (2*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 + (4*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*reglogm(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (2*(2*MB**2 + MZ**2)*Ncol*(-3 + 4*sw**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4))/(864.*cw*cmath.pi**2*sw)) )'},
4647 texname = '\delta Z_{AZ}^{EW,MB}')
4648
4649
4650 dMB_AAWcft_UV_EW = CTParameter(name = 'dMB_AAWcft_UV_EW',
4651 type = 'complex',
4652- value = {-1:'( 0 if MB == 0 else re(-(ee**2*Ncol)/(108.*cmath.pi**2)) )',
4653- 0:'( 0 if MB == 0 else re((ee**2*Ncol*(reglog(MB) - reglog(MU_R)))/(54.*cmath.pi**2)) )'},
4654+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0,-(ee**2*Ncol)/(108.*cmath.pi**2)) )',
4655+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0,(ee**2*Ncol*(reglog(MB) - reglog(MU_R)))/(54.*cmath.pi**2)) )'},
4656 texname = '\delta Z_{AA}^{EW,MB}')
4657
4658
4659 dMB_eCoup_UV_EW = CTParameter(name = 'dMB_eCoup_UV_EW',
4660 type = 'complex',
4661- value = { 0:'( 0 if MB == 0 else re((ee**2*Ncol*(reglog(256.) - 8*reglog(MB) + 4*reglog(cmath.pi) + 8*reglog(MU_R)))/(864.*cmath.pi**2) + (ee**2*(2*Ncol*((12*MB**2)/MZ**2 - reglog(64.) - 3*reglog(cmath.pi)) - (6*(2*MB**2 + MZ**2)*Ncol*reglog(MU_R**2/MB**2))/MZ**2 - (6*(2*MB**2 + MZ**2)*Ncol*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 + 6*(27 + 10*Ncol)*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 6*(27 + 11*Ncol)*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - (6*(2*MB**2 + MZ**2)*Ncol*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (3*(2*MB**2 + MZ**2)*Ncol*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 - (6*(2*MB**2 + MZ**2)*Ncol*reglog(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (3*(2*MB**2 + MZ**2)*Ncol*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4))/(1296.*cmath.pi**2)) )'},
4662+ value = { 0:'( 0 if MB == 0 else recms(CMSParam==1.0,(ee**2*Ncol*(reglog(256.) - 8*reglog(MB) + 4*reglog(cmath.pi) + 8*reglog(MU_R)))/(864.*cmath.pi**2) + (ee**2*(2*Ncol*((12*MB**2)/MZ**2 - reglog(64.) - 3*reglog(cmath.pi)) - (6*(2*MB**2 + MZ**2)*Ncol*(-reglog(MB**2/MU_R**2)))/MZ**2 - (6*(2*MB**2 + MZ**2)*Ncol*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 + 6*(27 + 10*Ncol)*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 6*(27 + 11*Ncol)*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - (6*(2*MB**2 + MZ**2)*Ncol*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (3*(2*MB**2 + MZ**2)*Ncol*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 - (6*(2*MB**2 + MZ**2)*Ncol*reglogm(-(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (3*(2*MB**2 + MZ**2)*Ncol*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**4))/(1296.*cmath.pi**2)) )'},
4663 texname = '\delta e^{MB}')
4664
4665
4666 dMB_SWCoup_UV_EW = CTParameter(name = 'dMB_SWCoup_UV_EW',
4667 type = 'complex',
4668- value = {-1:'( 0 if MB == 0 else re(-(ee**2*MB**2*(MW - cw*MZ)*(MW + cw*MZ)*Ncol)/(64.*MW**2*MZ**2*cmath.pi**2*sw**3)) )',
4669- 0:'( 0 if MB == 0 else re((ee**2*MB**2*(MW**2 - cw**2*MZ**2)*Ncol*reglog(4*cmath.pi))/(64.*MW**2*MZ**2*cmath.pi**2*sw**3) + (cw**2*(-(ee**2*Ncol*(-2*MB**2*MW**2*(MB**2 - 2*MT**2 + MW**2*(2 + reglog(64.) + 3*reglog(cmath.pi))) + 2*MB**2*MW**2*(MB**2 - MT**2 - 2*MW**2)*reglog(MU_R**2/MB**2) + 2*MW**2*(-(MB**2*MT**2) + MT**4 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MT**2) + 2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))) + (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1)))))))/(192.*MW**6*cmath.pi**2*sw**2) + (ee**2*(2*MB**2*Ncol*(-18 - 48*sw**2 + 32*sw**4 - reglog(18014398509481984.) - 27*reglog(cmath.pi)) - 4*MB**2*Ncol*(9 - 12*sw**2 + 8*sw**4)*reglog(MU_R**2/MB**2) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2) + 4*MZ**2*(27*(1 - 2*sw**2 + 4*sw**4) + 2*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2))/(1728.*cw**2*MZ**2*cmath.pi**2*sw**2)))/(2.*sw)) )'},
4670+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and (WW != 0 or WZ != 0),-(ee**2*MB**2*(MW - cw*MZ)*(MW + cw*MZ)*Ncol)/(64.*MW**2*MZ**2*cmath.pi**2*sw**3)) )',
4671+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and (WW != 0 or WZ != 0),(ee**2*MB**2*(MW**2 - cw**2*MZ**2)*Ncol*reglog(4*cmath.pi))/(64.*MW**2*MZ**2*cmath.pi**2*sw**3) + (cw**2*(-(ee**2*Ncol*(-2*MB**2*MW**2*(MB**2 - 2*MT**2 + MW**2*(2 + reglog(64.) + 3*reglog(cmath.pi))) + 2*MB**2*MW**2*(MB**2 - MT**2 - 2*MW**2)*(-reglog(MB**2/MU_R**2)) + 2*MW**2*(-(MB**2*MT**2) + MT**4 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MT**2) + 2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglogm((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglogm((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))) + (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1)))))))/(192.*MW**6*cmath.pi**2*sw**2) + (ee**2*(2*MB**2*Ncol*(-18 - 48*sw**2 + 32*sw**4 - reglog(18014398509481984.) - 27*reglog(cmath.pi)) - 4*MB**2*Ncol*(9 - 12*sw**2 + 8*sw**4)*(-reglog(MB**2/MU_R**2)) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2) + 4*MZ**2*(27*(1 - 2*sw**2 + 4*sw**4) + 2*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglogm((-MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2))/(1728.*cw**2*MZ**2*cmath.pi**2*sw**2)))/(2.*sw)) )'},
4672 texname = '\delta SW^{MB}')
4673
4674
4675 dMB_CWCoup_UV_EW = CTParameter(name = 'dMB_CWCoup_UV_EW',
4676 type = 'complex',
4677- value = {-1:'( 0 if MB == 0 else re((ee**2*MB**2*(MW**2 - cw**2*MZ**2)*Ncol)/(64.*cw*MW**2*MZ**2*cmath.pi**2*sw**2)) )',
4678- 0:'( 0 if MB == 0 else re(-(ee**2*MB**2*(MW**2 - cw**2*MZ**2)*Ncol*reglog(4*cmath.pi))/(64.*cw*MW**2*MZ**2*cmath.pi**2*sw**2) + (cw*((ee**2*Ncol*(-2*MB**2*MW**2*(MB**2 - 2*MT**2 + MW**2*(2 + reglog(64.) + 3*reglog(cmath.pi))) + 2*MB**2*MW**2*(MB**2 - MT**2 - 2*MW**2)*reglog(MU_R**2/MB**2) + 2*MW**2*(-(MB**2*MT**2) + MT**4 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MT**2) + 2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))) + (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglog((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1)))))))/(192.*MW**6*cmath.pi**2*sw**2) - (ee**2*(2*MB**2*Ncol*(-18 - 48*sw**2 + 32*sw**4 - reglog(18014398509481984.) - 27*reglog(cmath.pi)) - 4*MB**2*Ncol*(9 - 12*sw**2 + 8*sw**4)*reglog(MU_R**2/MB**2) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2) + 4*MZ**2*(27*(1 - 2*sw**2 + 4*sw**4) + 2*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2))/(1728.*cw**2*MZ**2*cmath.pi**2*sw**2)))/2.) )'},
4679+ value = {-1:'( 0 if MB == 0 else recms(CMSParam==1.0 and (WW != 0 or WZ != 0),(ee**2*MB**2*(MW**2 - cw**2*MZ**2)*Ncol)/(64.*cw*MW**2*MZ**2*cmath.pi**2*sw**2)) )',
4680+ 0:'( 0 if MB == 0 else recms(CMSParam==1.0 and (WW != 0 or WZ != 0),-(ee**2*MB**2*(MW**2 - cw**2*MZ**2)*Ncol*reglog(4*cmath.pi))/(64.*cw*MW**2*MZ**2*cmath.pi**2*sw**2) + (cw*((ee**2*Ncol*(-2*MB**2*MW**2*(MB**2 - 2*MT**2 + MW**2*(2 + reglog(64.) + 3*reglog(cmath.pi))) + 2*MB**2*MW**2*(MB**2 - MT**2 - 2*MW**2)*(-reglog(MB**2/MU_R**2)) + 2*MW**2*(-(MB**2*MT**2) + MT**4 + MT**2*MW**2 - 2*MW**4)*reglog(MU_R**2/MT**2) + 2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglogm((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglogm((MB**2 - MT**2 - MW**2 - cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - 2*MW**2*(-MB**4 - MT**4 - MT**2*MW**2 + 2*MW**4 + MB**2*(2*MT**2 - MW**2))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(2.*MW**2)) - (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((MB**2 - MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(MB**2 - MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))) + (MB**4 + MT**4 + MT**2*MW**2 - 2*MW**4 + MB**2*(-2*MT**2 + MW**2))*(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))*reglogm((-MB**2 + MT**2 + MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1))))/(-MB**2 + MT**2 - MW**2 + cmath.sqrt((MB**2 - MT**2 + MW**2)**2 - 4*MW**2*(MB**2 + vep*complex(0,-1)))))))/(192.*MW**6*cmath.pi**2*sw**2) - (ee**2*(2*MB**2*Ncol*(-18 - 48*sw**2 + 32*sw**4 - reglog(18014398509481984.) - 27*reglog(cmath.pi)) - 4*MB**2*Ncol*(9 - 12*sw**2 + 8*sw**4)*(-reglog(MB**2/MU_R**2)) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2) + 4*MZ**2*(27*(1 - 2*sw**2 + 4*sw**4) + 2*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglogm((-MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 2*Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (Ncol*(MZ**2*(9 - 12*sw**2 + 8*sw**4) + MB**2*(-9 - 24*sw**2 + 16*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))*reglogm((MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MB**2 + MZ**2 + vep*complex(0,4))))))/MZ**2))/(1728.*cw**2*MZ**2*cmath.pi**2*sw**2)))/2.) )'},
4681 texname = '\delta CW^{MB}')
4682
4683
4684@@ -318,33 +318,40 @@
4685
4686 tMass_UV_EW = CTParameter(name = 'tMass_UV_EW',
4687 type = 'complex',
4688- value = {-1:'re((ee**2*MT*(MW**2*(3 + 24*sw**2 - 32*sw**4) + cw**2*(9*MT**2 + 2*MW**2*(3 - 16*sw**2))))/(384.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tMass_UV_EW.value[-1],
4689- 0:'re(-(ee**2*(9*cw**2*MH**2*MT**2 - 72*cw**2*MT**4 - 18*MT**2*MW**2 - 9*cw**2*MT**2*MW**2 + 18*cw**2*MW**4 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 96*MT**2*MW**2*sw**2 + 128*cw**2*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 128*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4 - 9*cw**2*MT**4*reglog(16) + 9*cw**2*MT**4*reglog(1/(4.*cmath.pi)) + 9*MT**2*MW**2*reglog(1/(4.*cmath.pi)) - 24*MT**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 16*MT**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 18*cw**2*MT**4*reglog(cmath.pi) + 96*MT**2*MW**2*sw**2*reglog(cmath.pi) - 112*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 128*MT**2*MW**2*sw**4*reglog(cmath.pi) - 192*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 224*cw**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 256*MT**2*MW**2*sw**4*reglog(2*cmath.pi) + 27*cw**2*MT**4*reglog(4*cmath.pi) + 9*MT**2*MW**2*reglog(4*cmath.pi) + 72*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 112*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 112*MT**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*MH**2*MT*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MT*(18*cw**2*MT**2 + 9*MW**2 - 24*MW**2*sw**2 + 96*cw**2*MW**2*sw**2 + 32*MW**2*sw**4)*reglog(MU_R**2/MT**2))/(1152.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*MT*(MT**2 + 2*MW**2)*reglog(MU_R**2/MW**2))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*MZ**2*(9*cw**2*MT**2 + 9*MW**2 - 24*MW**2*sw**2 + 32*MW**2*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(-9*cw**2*MH**2*MT**2 + 36*cw**2*MT**4 + 18*MT**2*MW**2 - 9*cw**2*MT**2*MZ**2 - 9*MW**2*MZ**2 + 48*MT**2*MW**2*sw**2 + 24*MW**2*MZ**2*sw**2 - 64*MT**2*MW**2*sw**4 - 32*MW**2*MZ**2*sw**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglog((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(128.*MT**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*(2*MT**2 - MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2*MT**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MT**3*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*(2*MT**2 - MZ**2 - cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(-2*MT**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MT**3*MW**2*cmath.pi**2*sw**2) - (ee**2*MT*(-MH + 2*MT)*(MH + 2*MT)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MT*(-MH + 2*MT)*(MH + 2*MT)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*(-MH + 2*MT)*(MH + 2*MT)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((MH**2 - 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(-MH + 2*MT)*(MH + 2*MT)*(MH**2 - cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tMass_UV_EW.value[0]},
4690+ value = {-1:'recms(CMSParam==1.0 and WT != 0,(ee**2*MT*(MW**2*(3 + 24*sw**2 - 32*sw**4) + cw**2*(9*MT**2 + 2*MW**2*(3 - 16*sw**2))))/(384.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tMass_UV_EW.value[-1],
4691+ 0:'recms(CMSParam==1.0 and WT != 0,-(ee**2*(9*cw**2*MH**2*MT**2 - 72*cw**2*MT**4 - 18*MT**2*MW**2 - 9*cw**2*MT**2*MW**2 + 18*cw**2*MW**4 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 96*MT**2*MW**2*sw**2 + 128*cw**2*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 128*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4 - 9*cw**2*MT**4*reglog(16) + 9*cw**2*MT**4*reglog(1/(4.*cmath.pi)) + 9*MT**2*MW**2*reglog(1/(4.*cmath.pi)) - 24*MT**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 16*MT**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 18*cw**2*MT**4*reglog(cmath.pi) + 96*MT**2*MW**2*sw**2*reglog(cmath.pi) - 112*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 128*MT**2*MW**2*sw**4*reglog(cmath.pi) - 192*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 224*cw**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 256*MT**2*MW**2*sw**4*reglog(2*cmath.pi) + 27*cw**2*MT**4*reglog(4*cmath.pi) + 9*MT**2*MW**2*reglog(4*cmath.pi) + 72*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 112*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 112*MT**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*MH**2*MT*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MT*(18*cw**2*MT**2 + 9*MW**2 - 24*MW**2*sw**2 + 96*cw**2*MW**2*sw**2 + 32*MW**2*sw**4)*reglog(MU_R**2/MT**2))/(1152.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*MT*(MT**2 + 2*MW**2)*reglog(MU_R**2/MW**2))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*MZ**2*(9*cw**2*MT**2 + 9*MW**2 - 24*MW**2*sw**2 + 32*MW**2*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(-9*cw**2*MH**2*MT**2 + 36*cw**2*MT**4 + 18*MT**2*MW**2 - 9*cw**2*MT**2*MZ**2 - 9*MW**2*MZ**2 + 48*MT**2*MW**2*sw**2 + 24*MW**2*MZ**2*sw**2 - 64*MT**2*MW**2*sw**4 - 32*MW**2*MZ**2*sw**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*reglogm((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(128.*MT**3*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(1152.*cw**2*MT*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*(2*MT**2 - MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2*MT**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MT**3*MW**2*cmath.pi**2*sw**2) - (ee**2*(-18*MT**2*MW**2 + 9*cw**2*MT**2*MZ**2 + 9*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 - 24*MW**2*MZ**2*sw**2 + 64*MT**2*MW**2*sw**4 + 32*MW**2*MZ**2*sw**4)*(2*MT**2 - MZ**2 - cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(-2*MT**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(2304.*cw**2*MT**3*MW**2*cmath.pi**2*sw**2) - (ee**2*MT*(-MH + 2*MT)*(MH + 2*MT)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*MT*(-MH + 2*MT)*(MH + 2*MT)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (ee**2*(-MH + 2*MT)*(MH + 2*MT)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((MH**2 - 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT*MW**2*cmath.pi**2*sw**2) + (ee**2*(-MH + 2*MT)*(MH + 2*MT)*(MH**2 - cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tMass_UV_EW.value[0]},
4692 texname = '\delta m_t^{EW}')
4693
4694 HMass2_UV_EW = CTParameter(name = 'HMass2_UV_EW',
4695 type = 'complex',
4696- value = {-1:'re((ee**2*(16*MW**4 + 2*cw**2*MW**2*(-2*MH**2 + MZ**2) + cw**4*(15*MH**4 + 36*MW**4 - 24*MT**4*Ncol + MH**2*(-6*MW**2 + MZ**2 + 4*MT**2*Ncol))))/(128.*cw**4*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_HMass2_UV_EW.value[-1],
4697- 0:'re(-(ee**2*(16*MW**4 + 2*cw**2*MW**2*(-2*MH**2 + MZ**2) + cw**4*(15*MH**4 + 36*MW**4 - 24*MT**4*Ncol + MH**2*(-6*MW**2 + MZ**2 + 4*MT**2*Ncol)))*reglog(4*cmath.pi))/(128.*cw**4*MW**2*cmath.pi**2*sw**2) + (ee**2*((-2*(8*MW**4*(-3 - reglog(16) - 2*reglog(cmath.pi)) + 2*cw**2*MW**2*(MZ**2*(3 + reglog(1/(4.*cmath.pi))) + MH**2*(4 + reglog(16) + 2*reglog(cmath.pi))) + cw**4*(4*(9*MW**4*(-1 + reglog(1/(4.*cmath.pi))) + 2*MT**4*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi))) + 3*MH**4*(-9 + 5*reglog(cmath.pi) - 10*reglog(2*cmath.pi)) - MH**2*(MW**2*(-14 - reglog(4096) - 6*reglog(cmath.pi)) + MT**2*Ncol*(8 + reglog(256) + 4*reglog(cmath.pi)) + MZ**2*(1 + reglog(4*cmath.pi))))))/(cw**4*MW**2) + (6*MH**4*reglog(MU_R**2/MH**2))/MW**2 - (16*MT**4*Ncol*reglog(MU_R**2/MT**2))/MW**2 + 4*(MH**2 + 6*MW**2)*reglog(MU_R**2/MW**2) + (2*(cw**2*MH**2 + 6*MW**2)*MZ**2*reglog(MU_R**2/MZ**2))/(cw**2*MW**2) - (8*(4*MW**4 - cw**2*MW**2*(MH**2 + MZ**2) + cw**4*(3*MH**4 + 6*MW**4 - 4*MT**4*Ncol + MH**2*(-2*MW**2 + MT**2*Ncol)))*reglog((MH**2 + vep*complex(0,-1))/MU_R**2))/(cw**4*MW**2) + (8*MT**2*(-MH + 2*MT)*(MH + 2*MT)*Ncol*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 + (8*MT**2*(-MH + 2*MT)*(MH + 2*MT)*Ncol*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 + (4*(MH - 2*MT)*MT**2*(MH + 2*MT)*Ncol*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**2*MW**2) + (4*(MH - 2*MT)*MT**2*(MH + 2*MT)*Ncol*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**2*MW**2) - (4*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 - (4*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 + (2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**2*MW**2) + (2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**2*MW**2) - (2*(cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MW**2) - (2*(cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MW**2) + ((cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**2*MW**2) + ((cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**2*MW**2) + (9*MH**2*(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 + (9*MH**2*(MH**2 - cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 - (18*MH**4*reglog(-0.5 - cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2 - (18*MH**4*reglog(-0.5 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2))/(256.*cmath.pi**2*sw**2))'+'+'+dMB_HMass2_UV_EW.value[0]},
4698+ value = {-1:'recms(CMSParam==1.0 and WH != 0,(ee**2*(16*MW**4 + 2*cw**2*MW**2*(-2*MH**2 + MZ**2) + cw**4*(15*MH**4 + 36*MW**4 - 24*MT**4*Ncol + MH**2*(-6*MW**2 + MZ**2 + 4*MT**2*Ncol))))/(128.*cw**4*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_HMass2_UV_EW.value[-1],
4699+ 0:'recms(CMSParam==1.0 and WH != 0,-(ee**2*(16*MW**4 + 2*cw**2*MW**2*(-2*MH**2 + MZ**2) + cw**4*(15*MH**4 + 36*MW**4 - 24*MT**4*Ncol + MH**2*(-6*MW**2 + MZ**2 + 4*MT**2*Ncol)))*reglog(4*cmath.pi))/(128.*cw**4*MW**2*cmath.pi**2*sw**2) + (ee**2*((-2*(8*MW**4*(-3 - reglog(16) - 2*reglog(cmath.pi)) + 2*cw**2*MW**2*(MZ**2*(3 + reglog(1/(4.*cmath.pi))) + MH**2*(4 + reglog(16) + 2*reglog(cmath.pi))) + cw**4*(4*(9*MW**4*(-1 + reglog(1/(4.*cmath.pi))) + 2*MT**4*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi))) + 3*MH**4*(-9 + 5*reglog(cmath.pi) - 10*reglog(2*cmath.pi)) - MH**2*(MW**2*(-14 - reglog(4096) - 6*reglog(cmath.pi)) + MT**2*Ncol*(8 + reglog(256) + 4*reglog(cmath.pi)) + MZ**2*(1 + reglog(4*cmath.pi))))))/(cw**4*MW**2) + (6*MH**4*reglog(MU_R**2/MH**2))/MW**2 - (16*MT**4*Ncol*reglog(MU_R**2/MT**2))/MW**2 + 4*(MH**2 + 6*MW**2)*reglog(MU_R**2/MW**2) + (2*(cw**2*MH**2 + 6*MW**2)*MZ**2*reglog(MU_R**2/MZ**2))/(cw**2*MW**2) - (8*(4*MW**4 - cw**2*MW**2*(MH**2 + MZ**2) + cw**4*(3*MH**4 + 6*MW**4 - 4*MT**4*Ncol + MH**2*(-2*MW**2 + MT**2*Ncol)))*reglog((MH**2 + vep*complex(0,-1))/MU_R**2))/(cw**4*MW**2) + (8*MT**2*(-MH + 2*MT)*(MH + 2*MT)*Ncol*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 + (8*MT**2*(-MH + 2*MT)*(MH + 2*MT)*Ncol*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 + (4*(MH - 2*MT)*MT**2*(MH + 2*MT)*Ncol*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**2*MW**2) + (4*(MH - 2*MT)*MT**2*(MH + 2*MT)*Ncol*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**2*MW**2) - (4*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 - (4*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/MW**2 + (2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**2*MW**2) + (2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**2*MW**2) - (2*(cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MW**2) - (2*(cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MW**2) + ((cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**2*MW**2) + ((cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**2*MW**2) + (9*MH**2*(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 + (9*MH**2*(MH**2 - cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 - (18*MH**4*reglog(-0.5 - cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2 - (18*MH**4*reglog(-0.5 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2))/(256.*cmath.pi**2*sw**2))'+'+'+dMB_HMass2_UV_EW.value[0]},
4700 texname = '\delta m2_H^{EW}')
4701
4702+# adding term of B0[MW^2-iGW*MW,0,MW^2-iGW*MW]-B0[s,0,MW^2-iGW*MW]
4703+
4704+#WMass2_UV_EW_add = CTParameter(name = 'WMass2_UV_EW_add',
4705+# type = 'complex',
4706+# value = {0:'-lhv*ee**2*MW**2*complex(0,1)*im(MW**2)*reglog(complex(0,1)*im(MW**2)/MW**2)/(4.*cmath.pi**2*re(MW**2))'},
4707+# texname = '\delta m2_W^{EW,add}')
4708+
4709 WMass2_UV_EW = CTParameter(name = 'WMass2_UV_EW',
4710 type = 'complex',
4711- value = {-1:'re(-(ee**2*(cw**4*(44*MW**2 + 6*MZ**2) - 6*MW**2*sw**4 + cw**2*(3*MT**2*Ncol + MW**2*(-31 - 6*Ncol + 38*sw**2))))/(96.*cw**2*cmath.pi**2*sw**2))'+'+'+dMB_WMass2_UV_EW.value[-1],
4712- 0:'re((ee**2*(cw**4*(44*MW**2 + 6*MZ**2) - 6*MW**2*sw**4 + cw**2*(3*MT**2*Ncol + MW**2*(-31 - 6*Ncol + 38*sw**2)))*reglog(4*cmath.pi))/(96.*cw**2*cmath.pi**2*sw**2) + (ee**2*((2*(cw**2*(3*MH**4 - 18*MH**2*MW**2 + 3*(MZ**4 - 2*MT**4*Ncol) - 6*MW**2*(3*MZ**2 + MT**2*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi))) - 2*MW**4*(-83 + 178*sw**2 + 93*reglog(cmath.pi) - 114*sw**2*reglog(cmath.pi) - 6*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi)) - 186*reglog(2*cmath.pi) + 228*sw**2*reglog(2*cmath.pi))) + 4*cw**4*(6*MZ**4 + MW**4*(-107 + 66*reglog(cmath.pi) - 132*reglog(2*cmath.pi)) + 9*MW**2*MZ**2*(-6 - reglog(4*cmath.pi))) + 36*MW**4*sw**4*(2 + reglog(4*cmath.pi))))/(cw**2*MW**2) - (6*MH**2*(MH**2 - 3*MW**2)*reglog(MU_R**2/MH**2))/MW**2 - 12*(3*MT**2 - 2*MW**2)*Ncol*reglog(MU_R**2/MT**2) + 6*(MH**2 + (1 + 8*cw**2)*MZ**2 + MW**2*(38 - 28*cw**2 - 76*sw**2))*reglog(MU_R**2/MW**2) - (6*(1 + 8*cw**2)*MZ**2*(-3*MW**2 + MZ**2)*reglog(MU_R**2/MZ**2))/MW**2 - (12*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**4 + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) - cw**2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4 - 4*MW**2*MZ**2 + MZ**4) - 12*MW**4*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) - (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) + (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 + 24*MW**2*(3 + 2*Ncol)*reglog(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4 - (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4))/(1152.*cmath.pi**2*sw**2))'+'+'+dMB_WMass2_UV_EW.value[0]},
4713+ value = {-1:'recms(CMSParam==1.0 and WW != 0,-(ee**2*(cw**4*(44*MW**2 + 6*MZ**2) - 6*MW**2*sw**4 + cw**2*(3*MT**2*Ncol + MW**2*(-31 - 6*Ncol + 38*sw**2))))/(96.*cw**2*cmath.pi**2*sw**2))'+'+'+dMB_WMass2_UV_EW.value[-1],
4714+ 0:'recms(CMSParam==1.0 and WW != 0,(ee**2*(cw**4*(44*MW**2 + 6*MZ**2) - 6*MW**2*sw**4 + cw**2*(3*MT**2*Ncol + MW**2*(-31 - 6*Ncol + 38*sw**2)))*reglog(4*cmath.pi))/(96.*cw**2*cmath.pi**2*sw**2) + (ee**2*((2*(cw**2*(3*MH**4 - 18*MH**2*MW**2 + 3*(MZ**4 - 2*MT**4*Ncol) - 6*MW**2*(3*MZ**2 + MT**2*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi))) - 2*MW**4*(-83 + 178*sw**2 + 93*reglog(cmath.pi) - 114*sw**2*reglog(cmath.pi) - 6*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi)) - 186*reglog(2*cmath.pi) + 228*sw**2*reglog(2*cmath.pi))) + 4*cw**4*(6*MZ**4 + MW**4*(-107 + 66*reglog(cmath.pi) - 132*reglog(2*cmath.pi)) + 9*MW**2*MZ**2*(-6 - reglog(4*cmath.pi))) + 36*MW**4*sw**4*(2 + reglog(4*cmath.pi))))/(cw**2*MW**2) - (6*MH**2*(MH**2 - 3*MW**2)*reglog(MU_R**2/MH**2))/MW**2 - 12*(3*MT**2 - 2*MW**2)*Ncol*reglog(MU_R**2/MT**2) + 6*(MH**2 + (1 + 8*cw**2)*MZ**2 + MW**2*(38 - 28*cw**2 - 76*sw**2))*reglog(MU_R**2/MW**2) - (6*(1 + 8*cw**2)*MZ**2*(-3*MW**2 + MZ**2)*reglog(MU_R**2/MZ**2))/MW**2 - (12*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**4 + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) - cw**2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4 - 4*MW**2*MZ**2 + MZ**4) - 12*MW**4*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) - (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) + (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 + 24*MW**2*(3 + 2*Ncol)*reglogp(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4 - (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4))/(1152.*cmath.pi**2*sw**2))'+'+'+dMB_WMass2_UV_EW.value[0]},
4715 texname = '\delta m2_W^{EW}')
4716
4717 ZMass2_UV_EW = CTParameter(name = 'ZMass2_UV_EW',
4718 type = 'complex',
4719- value = {-1:'re(-(ee**2*(36*MW**2*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*(18*MT**2*Ncol + MZ**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))))/(576.*cw**4*cmath.pi**2*sw**2))'+'+'+dMB_ZMass2_UV_EW.value[-1],
4720- 0:'re((ee**2*(36*MW**2*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*(18*MT**2*Ncol + MZ**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4))))*reglog(4*cmath.pi))/(576.*cw**4*cmath.pi**2*sw**2) + (ee**2*((2*(-108*MW**2*MZ**2*(-2 + reglog(1/(4.*cmath.pi))) + 6*cw**4*MZ**2*sw**2*(24*MW**2 + MZ**2*(-8 - reglog(64) - 3*reglog(cmath.pi))) + 9*cw**6*MZ**2*(24*MW**2*(-5 + reglog(1/(4.*cmath.pi))) + MZ**2*(-80 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(9*MH**4 - 54*MH**2*MZ**2 + MZ**2*(2*(-36*MW**2*sw**4*(-5 - reglog(64) - 3*reglog(cmath.pi)) + MT**2*Ncol*(-96*sw**2 + 128*sw**4 - 9*(2 + reglog(64) + 3*reglog(cmath.pi)))) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(59 - 39*reglog(cmath.pi) - 24*sw**2*(5 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(248 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**2 - (18*cw**2*MH**2*(MH**2 - 3*MZ**2)*reglog(MU_R**2/MH**2))/MZ**2 - 8*cw**2*MT**2*Ncol*(9 - 24*sw**2 + 32*sw**4)*reglog(MU_R**2/MT**2) + 72*cw**2*MW**2*(9*cw**4 - 2*cw**2*sw**2 + sw**4)*reglog(MU_R**2/MW**2) + 18*cw**2*(MH**2 + MZ**2)*reglog(MU_R**2/MZ**2) + (2*(-108*MW**2*MZ**2 + 27*cw**6*(20*MW**2*MZ**2 + 13*MZ**4) + 18*cw**4*MZ**2*(-4*MW**2 + MZ**2)*sw**2 - cw**2*(9*MH**4 - 36*MH**2*MZ**2 + MZ**2*(180*MW**2*sw**4 + 2*MT**2*Ncol*(-9 - 48*sw**2 + 64*sw**4) + MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 + 4*cw**2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4 - (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4))/(3456.*cw**4*cmath.pi**2*sw**2))'+'+'+dMB_ZMass2_UV_EW.value[0]},
4721+ value = {-1:'recms(CMSParam==1.0 and WZ != 0,-(ee**2*(36*MW**2*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*(18*MT**2*Ncol + MZ**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))))/(576.*cw**4*cmath.pi**2*sw**2))'+'+'+dMB_ZMass2_UV_EW.value[-1],
4722+ 0:'recms(CMSParam==1.0 and WZ != 0,(ee**2*(36*MW**2*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*(18*MT**2*Ncol + MZ**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4))))*reglog(4*cmath.pi))/(576.*cw**4*cmath.pi**2*sw**2) + (ee**2*((2*(-108*MW**2*MZ**2*(-2 + reglog(1/(4.*cmath.pi))) + 6*cw**4*MZ**2*sw**2*(24*MW**2 + MZ**2*(-8 - reglog(64) - 3*reglog(cmath.pi))) + 9*cw**6*MZ**2*(24*MW**2*(-5 + reglog(1/(4.*cmath.pi))) + MZ**2*(-80 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(9*MH**4 - 54*MH**2*MZ**2 + MZ**2*(2*(-36*MW**2*sw**4*(-5 - reglog(64) - 3*reglog(cmath.pi)) + MT**2*Ncol*(-96*sw**2 + 128*sw**4 - 9*(2 + reglog(64) + 3*reglog(cmath.pi)))) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(59 - 39*reglog(cmath.pi) - 24*sw**2*(5 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(248 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**2 - (18*cw**2*MH**2*(MH**2 - 3*MZ**2)*reglog(MU_R**2/MH**2))/MZ**2 - 8*cw**2*MT**2*Ncol*(9 - 24*sw**2 + 32*sw**4)*reglog(MU_R**2/MT**2) + 72*cw**2*MW**2*(9*cw**4 - 2*cw**2*sw**2 + sw**4)*reglog(MU_R**2/MW**2) + 18*cw**2*(MH**2 + MZ**2)*reglog(MU_R**2/MZ**2) + (2*(-108*MW**2*MZ**2 + 27*cw**6*(20*MW**2*MZ**2 + 13*MZ**4) + 18*cw**4*MZ**2*(-4*MW**2 + MZ**2)*sw**2 - cw**2*(9*MH**4 - 36*MH**2*MZ**2 + MZ**2*(180*MW**2*sw**4 + 2*MT**2*Ncol*(-9 - 48*sw**2 + 64*sw**4) + MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 + 4*cw**2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4 - (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4))/(3456.*cw**4*cmath.pi**2*sw**2))'+'+'+dMB_ZMass2_UV_EW.value[0]},
4723 texname = '\delta m2_Z^{EW}')
4724
4725
4726 tWcft_UV_EW_R = CTParameter(name = 'tWcft_UV_EW_R',
4727 type = 'complex',
4728- value = {-1:'re(-(ee**2*(8*MW**2*sw**4 + 3*cw**2*(3*MT**2 + 8*MW**2*sw**2)))/(288.*cw**2*MW**2*cmath.pi**2*sw**2))',
4729- 0:'re(-(ee**2*(27*cw**2*MH**2*MT**2 - 36*cw**2*MT**4 - 54*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 72*cw**2*MW**4 + 27*cw**2*MT**2*MZ**2 + 36*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 + 128*cw**2*MT**2*MW**2*sw**2 - 96*MW**2*MZ**2*sw**2 + 128*MT**2*MW**2*sw**4 + 96*MW**2*MZ**2*sw**4 + 18*cw**2*MT**4*reglog(16) + 64*cw**2*MT**2*MW**2*sw**2*reglog(16) + 36*cw**2*MT**4*reglog(cmath.pi) + 128*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 36*cw**2*MT**4*reglog(4*cmath.pi) - 128*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi)))/(1152.*cw**2*MT**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(3*MH**2 - 4*MT**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MT**4 + 18*MT**2*MW**2 - 9*cw**2*MT**2*MZ**2 - 6*MW**2*MZ**2 - 16*MT**2*MW**2*sw**2 + 64*cw**2*MT**2*MW**2*sw**2 + 16*MW**2*MZ**2*sw**2 - 16*cw**2*MW**2*MZ**2*sw**2 - 16*MW**2*MZ**2*sw**4)*reglog(MU_R**2/MT**2))/(192.*cw**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*MT**2*reglog(MU_R**2/MW**2))/(64.*MW**2*cmath.pi**2*sw**2) + (ee**2*(-72*MT**4*MW**2 + 72*cw**2*MT**4*MZ**2 + 144*MT**2*MW**2*MZ**2 - 27*cw**2*MT**2*MZ**4 - 36*MW**2*MZ**4 - 192*MT**4*MW**2*sw**2 - 192*MT**2*MW**2*MZ**2*sw**2 + 96*MW**2*MZ**4*sw**2 + 256*MT**4*MW**2*sw**4 + 128*MT**2*MW**2*MZ**2*sw**4 - 96*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-36*cw**2*MH**2*MT**4 + 72*cw**2*MT**6 + 60*MT**4*MW**2 + 9*cw**2*MH**2*MT**2*MZ**2 - 48*cw**2*MT**4*MZ**2 - 60*MT**2*MW**2*MZ**2 + 9*cw**2*MT**2*MZ**4 + 12*MW**2*MZ**4 + 32*MT**4*MW**2*sw**2 + 96*MT**2*MW**2*MZ**2*sw**2 - 32*MW**2*MZ**4*sw**2 - 128*MT**4*MW**2*sw**4 - 64*MT**2*MW**2*MZ**2*sw**4 + 32*MW**2*MZ**4*sw**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(MT - MW)*(MT + MW)*(MT**4 + MT**2*MW**2 + 4*MW**4)*reglog((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(64.*MT**4*MW**2*cmath.pi**2*sw**2) + (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(2*MT**2 - MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2*MT**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(-2*MT**2 + MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(-2*MT**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(MH**2 - 2*MT**2)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((MH**2 - 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tWcft_UV_EW_R.value[0]},
4730+ value = {-1:'recms(CMSParam==1.0 and WT != 0,-(ee**2*(8*MW**2*sw**4 + 3*cw**2*(3*MT**2 + 8*MW**2*sw**2)))/(288.*cw**2*MW**2*cmath.pi**2*sw**2))',
4731+ 0:'recms(CMSParam==1.0 and WT != 0,-(ee**2*(27*cw**2*MH**2*MT**2 - 36*cw**2*MT**4 - 54*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 72*cw**2*MW**4 + 27*cw**2*MT**2*MZ**2 + 36*MW**2*MZ**2 - 48*MT**2*MW**2*sw**2 + 128*cw**2*MT**2*MW**2*sw**2 - 96*MW**2*MZ**2*sw**2 + 128*MT**2*MW**2*sw**4 + 96*MW**2*MZ**2*sw**4 + 18*cw**2*MT**4*reglog(16) + 64*cw**2*MT**2*MW**2*sw**2*reglog(16) + 36*cw**2*MT**4*reglog(cmath.pi) + 128*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) - 36*cw**2*MT**4*reglog(4*cmath.pi) - 128*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi)))/(1152.*cw**2*MT**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(3*MH**2 - 4*MT**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MT**4 + 18*MT**2*MW**2 - 9*cw**2*MT**2*MZ**2 - 6*MW**2*MZ**2 - 16*MT**2*MW**2*sw**2 + 64*cw**2*MT**2*MW**2*sw**2 + 16*MW**2*MZ**2*sw**2 - 16*cw**2*MW**2*MZ**2*sw**2 - 16*MW**2*MZ**2*sw**4)*reglog(MU_R**2/MT**2))/(192.*cw**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*MT**2*reglog(MU_R**2/MW**2))/(64.*MW**2*cmath.pi**2*sw**2) + (ee**2*(-72*MT**4*MW**2 + 72*cw**2*MT**4*MZ**2 + 144*MT**2*MW**2*MZ**2 - 27*cw**2*MT**2*MZ**4 - 36*MW**2*MZ**4 - 192*MT**4*MW**2*sw**2 - 192*MT**2*MW**2*MZ**2*sw**2 + 96*MW**2*MZ**4*sw**2 + 256*MT**4*MW**2*sw**4 + 128*MT**2*MW**2*MZ**2*sw**4 - 96*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-36*cw**2*MH**2*MT**4 + 72*cw**2*MT**6 + 60*MT**4*MW**2 + 9*cw**2*MH**2*MT**2*MZ**2 - 48*cw**2*MT**4*MZ**2 - 60*MT**2*MW**2*MZ**2 + 9*cw**2*MT**2*MZ**4 + 12*MW**2*MZ**4 + 32*MT**4*MW**2*sw**2 + 96*MT**2*MW**2*MZ**2*sw**2 - 32*MW**2*MZ**4*sw**2 - 128*MT**4*MW**2*sw**4 - 64*MT**2*MW**2*MZ**2*sw**4 + 32*MW**2*MZ**4*sw**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(MT - MW)*(MT + MW)*(MT**4 + MT**2*MW**2 + 4*MW**4)*reglogm((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(64.*MT**4*MW**2*cmath.pi**2*sw**2) + (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(2*MT**2 - MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2*MT**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-60*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 60*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 12*MW**2*MZ**4 - 32*MT**4*MW**2*sw**2 - 96*MT**2*MW**2*MZ**2*sw**2 + 32*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(-2*MT**2 + MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(-2*MT**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(MH**2 - 2*MT**2)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((MH**2 - 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tWcft_UV_EW_R.value[0]},
4732 texname = '\delta ZR_t^{EW}')
4733
4734
4735@@ -352,181 +359,181 @@
4736
4737 cWcft_UV_EW_R = CTParameter(name = 'cWcft_UV_EW_R',
4738 type = 'complex',
4739- value = {-1:'re(-(ee**2*sw**2)/(36.*cw**2*cmath.pi**2))',
4740- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(72.*cw**2*cmath.pi**2))'},
4741+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(36.*cw**2*cmath.pi**2))',
4742+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(72.*cw**2*cmath.pi**2))'},
4743 texname = '\delta ZR_c^{EW}')
4744
4745
4746 uWcft_UV_EW_R = CTParameter(name = 'uWcft_UV_EW_R',
4747 type = 'complex',
4748- value = {-1:'re(-(ee**2*sw**2)/(36.*cw**2*cmath.pi**2))',
4749- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(72.*cw**2*cmath.pi**2))'},
4750+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(36.*cw**2*cmath.pi**2))',
4751+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(72.*cw**2*cmath.pi**2))'},
4752 texname = '\delta ZR_u^{EW}')
4753
4754
4755
4756 bWcft_UV_EW_R = CTParameter(name = 'bWcft_UV_EW_R',
4757 type = 'complex',
4758- value = {-1:'re(-(ee**2*sw**2)/(144.*cw**2*cmath.pi**2))'+'+'+dMB_bWcft_UV_EW_R.value[-1],
4759- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(288.*cw**2*cmath.pi**2))'+'+'+dMB_bWcft_UV_EW_R.value[0]},
4760+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(144.*cw**2*cmath.pi**2))'+'+'+dMB_bWcft_UV_EW_R.value[-1],
4761+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(288.*cw**2*cmath.pi**2))'+'+'+dMB_bWcft_UV_EW_R.value[0]},
4762 texname = '\delta ZR_b^{EW}')
4763
4764
4765 sWcft_UV_EW_R = CTParameter(name = 'sWcft_UV_EW_R',
4766 type = 'complex',
4767- value = {-1:'re(-(ee**2*sw**2)/(144.*cw**2*cmath.pi**2))',
4768- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(288.*cw**2*cmath.pi**2))'},
4769+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(144.*cw**2*cmath.pi**2))',
4770+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(288.*cw**2*cmath.pi**2))'},
4771 texname = '\delta ZR_s^{EW}')
4772
4773
4774 dWcft_UV_EW_R = CTParameter(name = 'dWcft_UV_EW_R',
4775 type = 'complex',
4776- value = {-1:'re(-(ee**2*sw**2)/(144.*cw**2*cmath.pi**2))',
4777- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(288.*cw**2*cmath.pi**2))'},
4778+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(144.*cw**2*cmath.pi**2))',
4779+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(288.*cw**2*cmath.pi**2))'},
4780 texname = '\delta ZR_d^{EW}')
4781
4782
4783 tauWcft_UV_EW_R = CTParameter(name = 'tauWcft_UV_EW_R',
4784 type = 'complex',
4785- value = {-1:'re(-(ee**2*sw**2)/(16.*cw**2*cmath.pi**2))',
4786- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(32.*cw**2*cmath.pi**2))'},
4787+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(16.*cw**2*cmath.pi**2))',
4788+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(32.*cw**2*cmath.pi**2))'},
4789 texname = '\delta ZR_tau^{EW}')
4790
4791
4792 muWcft_UV_EW_R = CTParameter(name = 'muWcft_UV_EW_R',
4793 type = 'complex',
4794- value = {-1:'re(-(ee**2*sw**2)/(16.*cw**2*cmath.pi**2))',
4795- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(32.*cw**2*cmath.pi**2))'},
4796+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(16.*cw**2*cmath.pi**2))',
4797+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(32.*cw**2*cmath.pi**2))'},
4798 texname = '\delta ZR_mu^{EW}')
4799
4800
4801 eWcft_UV_EW_R = CTParameter(name = 'eWcft_UV_EW_R',
4802 type = 'complex',
4803- value = {-1:'re(-(ee**2*sw**2)/(16.*cw**2*cmath.pi**2))',
4804- 0:'re(-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(32.*cw**2*cmath.pi**2))'},
4805+ value = {-1:'recms(CMSParam==1.0,-(ee**2*sw**2)/(16.*cw**2*cmath.pi**2))',
4806+ 0:'recms(CMSParam==1.0,-(ee**2*sw**2*(-1 + 2*reglog(MU_R**2/MZ**2)))/(32.*cw**2*cmath.pi**2))'},
4807 texname = '\delta ZR_e^{EW}')
4808
4809 tWcft_UV_EW_L = CTParameter(name = 'tWcft_UV_EW_L',
4810 type = 'complex',
4811- value = {-1:'re(-(ee**2*(MW**2*(3 - 4*sw**2)**2 + 3*cw**2*(3*MT**2 + 2*MW**2*(3 + 8*sw**2))))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tWcft_UV_EW_L.value[-1],
4812- 0:'re((ee**2*(-27*cw**2*MH**2*MT**2 + 72*cw**2*MT**4 + 18*MT**2*MW**2 - 36*cw**2*MT**2*MW**2 - 36*cw**2*MW**4 - 27*cw**2*MT**2*MZ**2 - 18*MW**2*MZ**2 + 144*MT**2*MW**2*sw**2 - 128*cw**2*MT**2*MW**2*sw**2 + 48*MW**2*MZ**2*sw**2 - 128*MT**2*MW**2*sw**4 - 96*MW**2*MZ**2*sw**4 - 64*cw**2*MT**2*MW**2*sw**2*reglog(16) + 18*cw**2*MT**4*reglog(1/(4.*cmath.pi)) + 18*MT**2*MW**2*reglog(1/(4.*cmath.pi)) - 48*MT**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 32*MT**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 160*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) + 64*cw**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 18*cw**2*MT**4*reglog(4*cmath.pi) + 18*MT**2*MW**2*reglog(4*cmath.pi) - 48*MT**2*MW**2*sw**2*reglog(4*cmath.pi) + 96*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi) + 32*MT**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MT**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(3*MH**2 - 4*MT**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MT**4 + 6*MT**2*MW**2 - 9*cw**2*MT**2*MZ**2 - 3*MW**2*MZ**2 + 16*MT**2*MW**2*sw**2 + 64*cw**2*MT**2*MW**2*sw**2 + 8*MW**2*MZ**2*sw**2 - 16*cw**2*MW**2*MZ**2*sw**2 - 16*MW**2*MZ**2*sw**4)*reglog(MU_R**2/MT**2))/(192.*cw**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*reglog(MU_R**2/MW**2))/(32.*cmath.pi**2*sw**2) + (ee**2*(-72*MT**4*MW**2 + 72*cw**2*MT**4*MZ**2 + 72*MT**2*MW**2*MZ**2 - 27*cw**2*MT**2*MZ**4 - 18*MW**2*MZ**4 - 192*MT**4*MW**2*sw**2 + 48*MW**2*MZ**4*sw**2 + 256*MT**4*MW**2*sw**4 + 128*MT**2*MW**2*MZ**2*sw**4 - 96*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-36*cw**2*MH**2*MT**4 + 72*cw**2*MT**6 + 12*MT**4*MW**2 + 9*cw**2*MH**2*MT**2*MZ**2 - 48*cw**2*MT**4*MZ**2 - 24*MT**2*MW**2*MZ**2 + 9*cw**2*MT**2*MZ**4 + 6*MW**2*MZ**4 + 160*MT**4*MW**2*sw**2 - 16*MW**2*MZ**4*sw**2 - 128*MT**4*MW**2*sw**4 - 64*MT**2*MW**2*MZ**2*sw**4 + 32*MW**2*MZ**4*sw**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(MT - MW)*(MT + MW)*(2*MT**2 + MW**2)*reglog((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(32.*MT**4*cmath.pi**2*sw**2) + (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(2*MT**2 - MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2*MT**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(-2*MT**2 + MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(-2*MT**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(MH**2 - 2*MT**2)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((MH**2 - 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tWcft_UV_EW_L.value[0]},
4813+ value = {-1:'recms(CMSParam==1.0 and WT != 0,-(ee**2*(MW**2*(3 - 4*sw**2)**2 + 3*cw**2*(3*MT**2 + 2*MW**2*(3 + 8*sw**2))))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tWcft_UV_EW_L.value[-1],
4814+ 0:'recms(CMSParam==1.0 and WT != 0,(ee**2*(-27*cw**2*MH**2*MT**2 + 72*cw**2*MT**4 + 18*MT**2*MW**2 - 36*cw**2*MT**2*MW**2 - 36*cw**2*MW**4 - 27*cw**2*MT**2*MZ**2 - 18*MW**2*MZ**2 + 144*MT**2*MW**2*sw**2 - 128*cw**2*MT**2*MW**2*sw**2 + 48*MW**2*MZ**2*sw**2 - 128*MT**2*MW**2*sw**4 - 96*MW**2*MZ**2*sw**4 - 64*cw**2*MT**2*MW**2*sw**2*reglog(16) + 18*cw**2*MT**4*reglog(1/(4.*cmath.pi)) + 18*MT**2*MW**2*reglog(1/(4.*cmath.pi)) - 48*MT**2*MW**2*sw**2*reglog(1/(4.*cmath.pi)) + 32*MT**2*MW**2*sw**4*reglog(1/(4.*cmath.pi)) - 160*cw**2*MT**2*MW**2*sw**2*reglog(cmath.pi) + 64*cw**2*MT**2*MW**2*sw**2*reglog(2*cmath.pi) + 18*cw**2*MT**4*reglog(4*cmath.pi) + 18*MT**2*MW**2*reglog(4*cmath.pi) - 48*MT**2*MW**2*sw**2*reglog(4*cmath.pi) + 96*cw**2*MT**2*MW**2*sw**2*reglog(4*cmath.pi) + 32*MT**2*MW**2*sw**4*reglog(4*cmath.pi)))/(1152.*cw**2*MT**2*MW**2*cmath.pi**2*sw**2) + (ee**2*(3*MH**2 - 4*MT**2)*reglog(MU_R**2/MH**2))/(128.*MW**2*cmath.pi**2*sw**2) - (ee**2*(24*cw**2*MT**4 + 6*MT**2*MW**2 - 9*cw**2*MT**2*MZ**2 - 3*MW**2*MZ**2 + 16*MT**2*MW**2*sw**2 + 64*cw**2*MT**2*MW**2*sw**2 + 8*MW**2*MZ**2*sw**2 - 16*cw**2*MW**2*MZ**2*sw**2 - 16*MW**2*MZ**2*sw**4)*reglog(MU_R**2/MT**2))/(192.*cw**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*reglog(MU_R**2/MW**2))/(32.*cmath.pi**2*sw**2) + (ee**2*(-72*MT**4*MW**2 + 72*cw**2*MT**4*MZ**2 + 72*MT**2*MW**2*MZ**2 - 27*cw**2*MT**2*MZ**4 - 18*MW**2*MZ**4 - 192*MT**4*MW**2*sw**2 + 48*MW**2*MZ**4*sw**2 + 256*MT**4*MW**2*sw**4 + 128*MT**2*MW**2*MZ**2*sw**4 - 96*MW**2*MZ**4*sw**4)*reglog(MU_R**2/MZ**2))/(1152.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-36*cw**2*MH**2*MT**4 + 72*cw**2*MT**6 + 12*MT**4*MW**2 + 9*cw**2*MH**2*MT**2*MZ**2 - 48*cw**2*MT**4*MZ**2 - 24*MT**2*MW**2*MZ**2 + 9*cw**2*MT**2*MZ**4 + 6*MW**2*MZ**4 + 160*MT**4*MW**2*sw**2 - 16*MW**2*MZ**4*sw**2 - 128*MT**4*MW**2*sw**4 - 64*MT**2*MW**2*MZ**2*sw**4 + 32*MW**2*MZ**4*sw**4)*reglog((MT**2 + vep*complex(0,-1))/MU_R**2))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(MT - MW)*(MT + MW)*(2*MT**2 + MW**2)*reglogm((-MT**2 + MW**2 + vep*complex(0,-1))/MW**2))/(32.*MT**4*cmath.pi**2*sw**2) + (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2.*MT**2)))/(384.*cw**2*MT**2*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) - (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(2*MT**2 - MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(2*MT**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (ee**2*(-12*MT**4*MW**2 + 30*cw**2*MT**4*MZ**2 + 24*MT**2*MW**2*MZ**2 - 9*cw**2*MT**2*MZ**4 - 6*MW**2*MZ**4 - 160*MT**4*MW**2*sw**2 + 16*MW**2*MZ**4*sw**2 + 128*MT**4*MW**2*sw**4 + 64*MT**2*MW**2*MZ**2*sw**4 - 32*MW**2*MZ**4*sw**4)*(-2*MT**2 + MZ**2 + cmath.sqrt(-4*MT**2*MZ**2 + MZ**4 + MT**2*vep*complex(0,4)))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))/(-2*MT**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MT**2*(MZ**2 + vep*complex(0,-1))))))/(768.*cw**2*MT**4*MW**2*(2*MT - MZ)*(2*MT + MZ)*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MT**2*(MH**2 + vep*complex(0,-1))))/(2.*MT**2)))/(128.*MW**2*cmath.pi**2*sw**2) - (3*ee**2*(MH**2 - 2*MT**2)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((MH**2 - 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2) + (3*ee**2*(MH**2 - 2*MT**2)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MT**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MT**2 + MT**2*vep*complex(0,4)))))/(256.*MT**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_tWcft_UV_EW_L.value[0]},
4815 texname = '\delta ZL_t^{EW}')
4816
4817
4818 cWcft_UV_EW_L = CTParameter(name = 'cWcft_UV_EW_L',
4819 type = 'complex',
4820- value = {-1:'re(-(ee**2*(18*cw**2 + (3 - 4*sw**2)**2))/(576.*cw**2*cmath.pi**2*sw**2))',
4821- 0:'re(-(ee**2*(-9 - 18*cw**2 + 24*sw**2 - 16*sw**4 + 36*cw**2*reglog(MU_R**2/MW**2) + 2*(3 - 4*sw**2)**2*reglog(MU_R**2/MZ**2)))/(1152.*cw**2*cmath.pi**2*sw**2))'},
4822+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(18*cw**2 + (3 - 4*sw**2)**2))/(576.*cw**2*cmath.pi**2*sw**2))',
4823+ 0:'recms(CMSParam==1.0,-(ee**2*(-9 - 18*cw**2 + 24*sw**2 - 16*sw**4 + 36*cw**2*reglog(MU_R**2/MW**2) + 2*(3 - 4*sw**2)**2*reglog(MU_R**2/MZ**2)))/(1152.*cw**2*cmath.pi**2*sw**2))'},
4824 texname = '\delta ZL_c^{EW}')
4825
4826
4827 uWcft_UV_EW_L = CTParameter(name = 'uWcft_UV_EW_L',
4828 type = 'complex',
4829- value = {-1:'re(-(ee**2*(18*cw**2 + (3 - 4*sw**2)**2))/(576.*cw**2*cmath.pi**2*sw**2))',
4830- 0:'re(-(ee**2*(-9 - 18*cw**2 + 24*sw**2 - 16*sw**4 + 36*cw**2*reglog(MU_R**2/MW**2) + 2*(3 - 4*sw**2)**2*reglog(MU_R**2/MZ**2)))/(1152.*cw**2*cmath.pi**2*sw**2))'},
4831+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(18*cw**2 + (3 - 4*sw**2)**2))/(576.*cw**2*cmath.pi**2*sw**2))',
4832+ 0:'recms(CMSParam==1.0,-(ee**2*(-9 - 18*cw**2 + 24*sw**2 - 16*sw**4 + 36*cw**2*reglog(MU_R**2/MW**2) + 2*(3 - 4*sw**2)**2*reglog(MU_R**2/MZ**2)))/(1152.*cw**2*cmath.pi**2*sw**2))'},
4833 texname = '\delta ZL_u^{EW}')
4834
4835
4836
4837 bWcft_UV_EW_L = CTParameter(name = 'bWcft_UV_EW_L',
4838 type = 'complex',
4839- value = {-1:'re(-(ee**2*(MW**2*(18*cw**2 + (3 - 2*sw**2)**2) + 9*cw**2*MT**2*CKM33*complexconjugate(CKM33)))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_bWcft_UV_EW_L.value[-1],
4840- 0:'re(-(ee**2*(-9*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 9*MW**4 + 18*cw**2*MW**4 + 12*MT**2*MW**2*sw**2 - 12*MW**4*sw**2 - 4*MT**2*MW**2*sw**4 + 4*MW**4*sw**4 + 27*cw**2*MT**4*CKM33*complexconjugate(CKM33) + 27*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33) + 9*MT**2*MW**2*reglog(16) + 18*cw**2*MT**2*MW**2*reglog(16) - 9*MW**4*reglog(16) - 18*cw**2*MW**4*reglog(16) - 12*MT**2*MW**2*sw**2*reglog(16) + 12*MW**4*sw**2*reglog(16) + 4*MT**2*MW**2*sw**4*reglog(16) - 4*MW**4*sw**4*reglog(16) + 9*cw**2*MT**4*CKM33*complexconjugate(CKM33)*reglog(16) - 9*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33)*reglog(16) + 18*MT**2*MW**2*reglog(cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(cmath.pi) - 18*MW**4*reglog(cmath.pi) - 36*cw**2*MW**4*reglog(cmath.pi) - 24*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MW**4*sw**2*reglog(cmath.pi) + 8*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MW**4*sw**4*reglog(cmath.pi) + 18*cw**2*MT**4*CKM33*complexconjugate(CKM33)*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33)*reglog(cmath.pi) - 18*MT**2*MW**2*reglog(4*cmath.pi) - 36*cw**2*MT**2*MW**2*reglog(4*cmath.pi) + 18*MW**4*reglog(4*cmath.pi) + 36*cw**2*MW**4*reglog(4*cmath.pi) + 24*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*MW**4*sw**2*reglog(4*cmath.pi) - 8*MT**2*MW**2*sw**4*reglog(4*cmath.pi) + 8*MW**4*sw**4*reglog(4*cmath.pi) - 18*cw**2*MT**4*CKM33*complexconjugate(CKM33)*reglog(4*cmath.pi) + 18*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33)*reglog(4*cmath.pi)))/(1152.*cw**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*MT**4*(MT**2 + 2*MW**2)*CKM33*complexconjugate(CKM33)*reglog(MU_R**2/MT**2))/(64.*(MT - MW)**2*MW**2*(MT + MW)**2*cmath.pi**2*sw**2) + (ee**2*(-2*MT**4 + 4*MT**2*MW**2 - 2*MW**4 + 4*MT**4*CKM33*complexconjugate(CKM33) - MT**2*MW**2*CKM33*complexconjugate(CKM33))*reglog(MU_R**2/MW**2))/(64.*(MT - MW)**2*(MT + MW)**2*cmath.pi**2*sw**2) - (ee**2*(-3 + 2*sw**2)**2*reglog(MU_R**2/MZ**2))/(576.*cw**2*cmath.pi**2*sw**2))'+'+'+dMB_bWcft_UV_EW_L.value[0]},
4841+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(MW**2*(18*cw**2 + (3 - 2*sw**2)**2) + 9*cw**2*MT**2*CKM33*complexconjugate(CKM33)))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_bWcft_UV_EW_L.value[-1],
4842+ 0:'recms(CMSParam==1.0,-(ee**2*(-9*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 9*MW**4 + 18*cw**2*MW**4 + 12*MT**2*MW**2*sw**2 - 12*MW**4*sw**2 - 4*MT**2*MW**2*sw**4 + 4*MW**4*sw**4 + 27*cw**2*MT**4*CKM33*complexconjugate(CKM33) + 27*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33) + 9*MT**2*MW**2*reglog(16) + 18*cw**2*MT**2*MW**2*reglog(16) - 9*MW**4*reglog(16) - 18*cw**2*MW**4*reglog(16) - 12*MT**2*MW**2*sw**2*reglog(16) + 12*MW**4*sw**2*reglog(16) + 4*MT**2*MW**2*sw**4*reglog(16) - 4*MW**4*sw**4*reglog(16) + 9*cw**2*MT**4*CKM33*complexconjugate(CKM33)*reglog(16) - 9*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33)*reglog(16) + 18*MT**2*MW**2*reglog(cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(cmath.pi) - 18*MW**4*reglog(cmath.pi) - 36*cw**2*MW**4*reglog(cmath.pi) - 24*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MW**4*sw**2*reglog(cmath.pi) + 8*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MW**4*sw**4*reglog(cmath.pi) + 18*cw**2*MT**4*CKM33*complexconjugate(CKM33)*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33)*reglog(cmath.pi) - 18*MT**2*MW**2*reglog(4*cmath.pi) - 36*cw**2*MT**2*MW**2*reglog(4*cmath.pi) + 18*MW**4*reglog(4*cmath.pi) + 36*cw**2*MW**4*reglog(4*cmath.pi) + 24*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*MW**4*sw**2*reglog(4*cmath.pi) - 8*MT**2*MW**2*sw**4*reglog(4*cmath.pi) + 8*MW**4*sw**4*reglog(4*cmath.pi) - 18*cw**2*MT**4*CKM33*complexconjugate(CKM33)*reglog(4*cmath.pi) + 18*cw**2*MT**2*MW**2*CKM33*complexconjugate(CKM33)*reglog(4*cmath.pi)))/(1152.*cw**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*MT**4*(MT**2 + 2*MW**2)*CKM33*complexconjugate(CKM33)*reglog(MU_R**2/MT**2))/(64.*(MT - MW)**2*MW**2*(MT + MW)**2*cmath.pi**2*sw**2) + (ee**2*(-2*MT**4 + 4*MT**2*MW**2 - 2*MW**4 + 4*MT**4*CKM33*complexconjugate(CKM33) - MT**2*MW**2*CKM33*complexconjugate(CKM33))*reglog(MU_R**2/MW**2))/(64.*(MT - MW)**2*(MT + MW)**2*cmath.pi**2*sw**2) - (ee**2*(-3 + 2*sw**2)**2*reglog(MU_R**2/MZ**2))/(576.*cw**2*cmath.pi**2*sw**2))'+'+'+dMB_bWcft_UV_EW_L.value[0]},
4843 texname = '\delta ZL_b^{EW}')
4844
4845
4846 sWcft_UV_EW_L = CTParameter(name = 'sWcft_UV_EW_L',
4847 type = 'complex',
4848- value = {-1:'re(-(ee**2*(MW**2*(18*cw**2 + (3 - 2*sw**2)**2) + 9*cw**2*MT**2*CKM32*complexconjugate(CKM32)))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))',
4849- 0:'re(-(ee**2*(-9*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 9*MW**4 + 18*cw**2*MW**4 + 12*MT**2*MW**2*sw**2 - 12*MW**4*sw**2 - 4*MT**2*MW**2*sw**4 + 4*MW**4*sw**4 + 27*cw**2*MT**4*CKM32*complexconjugate(CKM32) + 27*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32) + 9*MT**2*MW**2*reglog(16) + 18*cw**2*MT**2*MW**2*reglog(16) - 9*MW**4*reglog(16) - 18*cw**2*MW**4*reglog(16) - 12*MT**2*MW**2*sw**2*reglog(16) + 12*MW**4*sw**2*reglog(16) + 4*MT**2*MW**2*sw**4*reglog(16) - 4*MW**4*sw**4*reglog(16) + 9*cw**2*MT**4*CKM32*complexconjugate(CKM32)*reglog(16) - 9*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32)*reglog(16) + 18*MT**2*MW**2*reglog(cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(cmath.pi) - 18*MW**4*reglog(cmath.pi) - 36*cw**2*MW**4*reglog(cmath.pi) - 24*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MW**4*sw**2*reglog(cmath.pi) + 8*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MW**4*sw**4*reglog(cmath.pi) + 18*cw**2*MT**4*CKM32*complexconjugate(CKM32)*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32)*reglog(cmath.pi) - 18*MT**2*MW**2*reglog(4*cmath.pi) - 36*cw**2*MT**2*MW**2*reglog(4*cmath.pi) + 18*MW**4*reglog(4*cmath.pi) + 36*cw**2*MW**4*reglog(4*cmath.pi) + 24*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*MW**4*sw**2*reglog(4*cmath.pi) - 8*MT**2*MW**2*sw**4*reglog(4*cmath.pi) + 8*MW**4*sw**4*reglog(4*cmath.pi) - 18*cw**2*MT**4*CKM32*complexconjugate(CKM32)*reglog(4*cmath.pi) + 18*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32)*reglog(4*cmath.pi)))/(1152.*cw**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*MT**4*(MT**2 + 2*MW**2)*CKM32*complexconjugate(CKM32)*reglog(MU_R**2/MT**2))/(64.*(MT - MW)**2*MW**2*(MT + MW)**2*cmath.pi**2*sw**2) + (ee**2*(-2*MT**4 + 4*MT**2*MW**2 - 2*MW**4 + 4*MT**4*CKM32*complexconjugate(CKM32) - MT**2*MW**2*CKM32*complexconjugate(CKM32))*reglog(MU_R**2/MW**2))/(64.*(MT - MW)**2*(MT + MW)**2*cmath.pi**2*sw**2) - (ee**2*(-3 + 2*sw**2)**2*reglog(MU_R**2/MZ**2))/(576.*cw**2*cmath.pi**2*sw**2))'},
4850+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(MW**2*(18*cw**2 + (3 - 2*sw**2)**2) + 9*cw**2*MT**2*CKM32*complexconjugate(CKM32)))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))',
4851+ 0:'recms(CMSParam==1.0,-(ee**2*(-9*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 9*MW**4 + 18*cw**2*MW**4 + 12*MT**2*MW**2*sw**2 - 12*MW**4*sw**2 - 4*MT**2*MW**2*sw**4 + 4*MW**4*sw**4 + 27*cw**2*MT**4*CKM32*complexconjugate(CKM32) + 27*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32) + 9*MT**2*MW**2*reglog(16) + 18*cw**2*MT**2*MW**2*reglog(16) - 9*MW**4*reglog(16) - 18*cw**2*MW**4*reglog(16) - 12*MT**2*MW**2*sw**2*reglog(16) + 12*MW**4*sw**2*reglog(16) + 4*MT**2*MW**2*sw**4*reglog(16) - 4*MW**4*sw**4*reglog(16) + 9*cw**2*MT**4*CKM32*complexconjugate(CKM32)*reglog(16) - 9*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32)*reglog(16) + 18*MT**2*MW**2*reglog(cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(cmath.pi) - 18*MW**4*reglog(cmath.pi) - 36*cw**2*MW**4*reglog(cmath.pi) - 24*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MW**4*sw**2*reglog(cmath.pi) + 8*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MW**4*sw**4*reglog(cmath.pi) + 18*cw**2*MT**4*CKM32*complexconjugate(CKM32)*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32)*reglog(cmath.pi) - 18*MT**2*MW**2*reglog(4*cmath.pi) - 36*cw**2*MT**2*MW**2*reglog(4*cmath.pi) + 18*MW**4*reglog(4*cmath.pi) + 36*cw**2*MW**4*reglog(4*cmath.pi) + 24*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*MW**4*sw**2*reglog(4*cmath.pi) - 8*MT**2*MW**2*sw**4*reglog(4*cmath.pi) + 8*MW**4*sw**4*reglog(4*cmath.pi) - 18*cw**2*MT**4*CKM32*complexconjugate(CKM32)*reglog(4*cmath.pi) + 18*cw**2*MT**2*MW**2*CKM32*complexconjugate(CKM32)*reglog(4*cmath.pi)))/(1152.*cw**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*MT**4*(MT**2 + 2*MW**2)*CKM32*complexconjugate(CKM32)*reglog(MU_R**2/MT**2))/(64.*(MT - MW)**2*MW**2*(MT + MW)**2*cmath.pi**2*sw**2) + (ee**2*(-2*MT**4 + 4*MT**2*MW**2 - 2*MW**4 + 4*MT**4*CKM32*complexconjugate(CKM32) - MT**2*MW**2*CKM32*complexconjugate(CKM32))*reglog(MU_R**2/MW**2))/(64.*(MT - MW)**2*(MT + MW)**2*cmath.pi**2*sw**2) - (ee**2*(-3 + 2*sw**2)**2*reglog(MU_R**2/MZ**2))/(576.*cw**2*cmath.pi**2*sw**2))'},
4852 texname = '\delta ZL_s^{EW}')
4853
4854
4855 dWcft_UV_EW_L = CTParameter(name = 'dWcft_UV_EW_L',
4856 type = 'complex',
4857- value = {-1:'re(-(ee**2*(MW**2*(18*cw**2 + (3 - 2*sw**2)**2) + 9*cw**2*MT**2*CKM31*complexconjugate(CKM31)))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))',
4858- 0:'re(-(ee**2*(-9*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 9*MW**4 + 18*cw**2*MW**4 + 12*MT**2*MW**2*sw**2 - 12*MW**4*sw**2 - 4*MT**2*MW**2*sw**4 + 4*MW**4*sw**4 + 27*cw**2*MT**4*CKM31*complexconjugate(CKM31) + 27*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31) + 9*MT**2*MW**2*reglog(16) + 18*cw**2*MT**2*MW**2*reglog(16) - 9*MW**4*reglog(16) - 18*cw**2*MW**4*reglog(16) - 12*MT**2*MW**2*sw**2*reglog(16) + 12*MW**4*sw**2*reglog(16) + 4*MT**2*MW**2*sw**4*reglog(16) - 4*MW**4*sw**4*reglog(16) + 9*cw**2*MT**4*CKM31*complexconjugate(CKM31)*reglog(16) - 9*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31)*reglog(16) + 18*MT**2*MW**2*reglog(cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(cmath.pi) - 18*MW**4*reglog(cmath.pi) - 36*cw**2*MW**4*reglog(cmath.pi) - 24*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MW**4*sw**2*reglog(cmath.pi) + 8*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MW**4*sw**4*reglog(cmath.pi) + 18*cw**2*MT**4*CKM31*complexconjugate(CKM31)*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31)*reglog(cmath.pi) - 18*MT**2*MW**2*reglog(4*cmath.pi) - 36*cw**2*MT**2*MW**2*reglog(4*cmath.pi) + 18*MW**4*reglog(4*cmath.pi) + 36*cw**2*MW**4*reglog(4*cmath.pi) + 24*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*MW**4*sw**2*reglog(4*cmath.pi) - 8*MT**2*MW**2*sw**4*reglog(4*cmath.pi) + 8*MW**4*sw**4*reglog(4*cmath.pi) - 18*cw**2*MT**4*CKM31*complexconjugate(CKM31)*reglog(4*cmath.pi) + 18*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31)*reglog(4*cmath.pi)))/(1152.*cw**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*MT**4*(MT**2 + 2*MW**2)*CKM31*complexconjugate(CKM31)*reglog(MU_R**2/MT**2))/(64.*(MT - MW)**2*MW**2*(MT + MW)**2*cmath.pi**2*sw**2) + (ee**2*(-2*MT**4 + 4*MT**2*MW**2 - 2*MW**4 + 4*MT**4*CKM31*complexconjugate(CKM31) - MT**2*MW**2*CKM31*complexconjugate(CKM31))*reglog(MU_R**2/MW**2))/(64.*(MT - MW)**2*(MT + MW)**2*cmath.pi**2*sw**2) - (ee**2*(-3 + 2*sw**2)**2*reglog(MU_R**2/MZ**2))/(576.*cw**2*cmath.pi**2*sw**2))'},
4859+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(MW**2*(18*cw**2 + (3 - 2*sw**2)**2) + 9*cw**2*MT**2*CKM31*complexconjugate(CKM31)))/(576.*cw**2*MW**2*cmath.pi**2*sw**2))',
4860+ 0:'recms(CMSParam==1.0,-(ee**2*(-9*MT**2*MW**2 - 18*cw**2*MT**2*MW**2 + 9*MW**4 + 18*cw**2*MW**4 + 12*MT**2*MW**2*sw**2 - 12*MW**4*sw**2 - 4*MT**2*MW**2*sw**4 + 4*MW**4*sw**4 + 27*cw**2*MT**4*CKM31*complexconjugate(CKM31) + 27*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31) + 9*MT**2*MW**2*reglog(16) + 18*cw**2*MT**2*MW**2*reglog(16) - 9*MW**4*reglog(16) - 18*cw**2*MW**4*reglog(16) - 12*MT**2*MW**2*sw**2*reglog(16) + 12*MW**4*sw**2*reglog(16) + 4*MT**2*MW**2*sw**4*reglog(16) - 4*MW**4*sw**4*reglog(16) + 9*cw**2*MT**4*CKM31*complexconjugate(CKM31)*reglog(16) - 9*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31)*reglog(16) + 18*MT**2*MW**2*reglog(cmath.pi) + 36*cw**2*MT**2*MW**2*reglog(cmath.pi) - 18*MW**4*reglog(cmath.pi) - 36*cw**2*MW**4*reglog(cmath.pi) - 24*MT**2*MW**2*sw**2*reglog(cmath.pi) + 24*MW**4*sw**2*reglog(cmath.pi) + 8*MT**2*MW**2*sw**4*reglog(cmath.pi) - 8*MW**4*sw**4*reglog(cmath.pi) + 18*cw**2*MT**4*CKM31*complexconjugate(CKM31)*reglog(cmath.pi) - 18*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31)*reglog(cmath.pi) - 18*MT**2*MW**2*reglog(4*cmath.pi) - 36*cw**2*MT**2*MW**2*reglog(4*cmath.pi) + 18*MW**4*reglog(4*cmath.pi) + 36*cw**2*MW**4*reglog(4*cmath.pi) + 24*MT**2*MW**2*sw**2*reglog(4*cmath.pi) - 24*MW**4*sw**2*reglog(4*cmath.pi) - 8*MT**2*MW**2*sw**4*reglog(4*cmath.pi) + 8*MW**4*sw**4*reglog(4*cmath.pi) - 18*cw**2*MT**4*CKM31*complexconjugate(CKM31)*reglog(4*cmath.pi) + 18*cw**2*MT**2*MW**2*CKM31*complexconjugate(CKM31)*reglog(4*cmath.pi)))/(1152.*cw**2*(MT - MW)*MW**2*(MT + MW)*cmath.pi**2*sw**2) - (ee**2*MT**4*(MT**2 + 2*MW**2)*CKM31*complexconjugate(CKM31)*reglog(MU_R**2/MT**2))/(64.*(MT - MW)**2*MW**2*(MT + MW)**2*cmath.pi**2*sw**2) + (ee**2*(-2*MT**4 + 4*MT**2*MW**2 - 2*MW**4 + 4*MT**4*CKM31*complexconjugate(CKM31) - MT**2*MW**2*CKM31*complexconjugate(CKM31))*reglog(MU_R**2/MW**2))/(64.*(MT - MW)**2*(MT + MW)**2*cmath.pi**2*sw**2) - (ee**2*(-3 + 2*sw**2)**2*reglog(MU_R**2/MZ**2))/(576.*cw**2*cmath.pi**2*sw**2))'},
4861 texname = '\delta ZL_d^{EW}')
4862
4863
4864 tauWcft_UV_EW_L = CTParameter(name = 'tauWcft_UV_EW_L',
4865 type = 'complex',
4866- value = {-1:'re(-(ee**2*(2*cw**2 + (1 - 2*sw**2)**2))/(64.*cw**2*cmath.pi**2*sw**2))',
4867- 0:'re(-(ee**2*(-1 - 2*cw**2 + 4*sw**2 - 4*sw**4 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*(1 - 2*sw**2)**2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4868+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(2*cw**2 + (1 - 2*sw**2)**2))/(64.*cw**2*cmath.pi**2*sw**2))',
4869+ 0:'recms(CMSParam==1.0,-(ee**2*(-1 - 2*cw**2 + 4*sw**2 - 4*sw**4 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*(1 - 2*sw**2)**2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4870 texname = '\delta ZL_tau^{EW}')
4871
4872
4873 muWcft_UV_EW_L = CTParameter(name = 'muWcft_UV_EW_L',
4874 type = 'complex',
4875- value = {-1:'re(-(ee**2*(2*cw**2 + (1 - 2*sw**2)**2))/(64.*cw**2*cmath.pi**2*sw**2))',
4876- 0:'re(-(ee**2*(-1 - 2*cw**2 + 4*sw**2 - 4*sw**4 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*(1 - 2*sw**2)**2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4877+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(2*cw**2 + (1 - 2*sw**2)**2))/(64.*cw**2*cmath.pi**2*sw**2))',
4878+ 0:'recms(CMSParam==1.0,-(ee**2*(-1 - 2*cw**2 + 4*sw**2 - 4*sw**4 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*(1 - 2*sw**2)**2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4879 texname = '\delta ZL_mu^{EW}')
4880
4881
4882 eWcft_UV_EW_L = CTParameter(name = 'eWcft_UV_EW_L',
4883 type = 'complex',
4884- value = {-1:'re(-(ee**2*(2*cw**2 + (1 - 2*sw**2)**2))/(64.*cw**2*cmath.pi**2*sw**2))',
4885- 0:'re(-(ee**2*(-1 - 2*cw**2 + 4*sw**2 - 4*sw**4 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*(1 - 2*sw**2)**2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4886+ value = {-1:'recms(CMSParam==1.0,-(ee**2*(2*cw**2 + (1 - 2*sw**2)**2))/(64.*cw**2*cmath.pi**2*sw**2))',
4887+ 0:'recms(CMSParam==1.0,-(ee**2*(-1 - 2*cw**2 + 4*sw**2 - 4*sw**4 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*(1 - 2*sw**2)**2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4888 texname = '\delta ZL_e^{EW}')
4889
4890
4891 vtWcft_UV_EW_L = CTParameter(name = 'vtWcft_UV_EW_L',
4892 type = 'complex',
4893- value = {-1:'re(-((1 + 2*cw**2)*ee**2)/(64.*cw**2*cmath.pi**2*sw**2))',
4894- 0:'re(-(ee**2*(-1 - 2*cw**2 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4895+ value = {-1:'recms(CMSParam==1.0,-((1 + 2*cw**2)*ee**2)/(64.*cw**2*cmath.pi**2*sw**2))',
4896+ 0:'recms(CMSParam==1.0,-(ee**2*(-1 - 2*cw**2 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4897 texname = '\delta ZL_vt^{EW}')
4898
4899
4900 vmWcft_UV_EW_L = CTParameter(name = 'vmWcft_UV_EW_L',
4901 type = 'complex',
4902- value = {-1:'re(-((1 + 2*cw**2)*ee**2)/(64.*cw**2*cmath.pi**2*sw**2))',
4903- 0:'re(-(ee**2*(-1 - 2*cw**2 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4904+ value = {-1:'recms(CMSParam==1.0,-((1 + 2*cw**2)*ee**2)/(64.*cw**2*cmath.pi**2*sw**2))',
4905+ 0:'recms(CMSParam==1.0,-(ee**2*(-1 - 2*cw**2 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4906 texname = '\delta ZL_vm^{EW}')
4907
4908
4909 veWcft_UV_EW_L = CTParameter(name = 'veWcft_UV_EW_L',
4910 type = 'complex',
4911- value = {-1:'re(-((1 + 2*cw**2)*ee**2)/(64.*cw**2*cmath.pi**2*sw**2))',
4912- 0:'re(-(ee**2*(-1 - 2*cw**2 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4913+ value = {-1:'recms(CMSParam==1.0,-((1 + 2*cw**2)*ee**2)/(64.*cw**2*cmath.pi**2*sw**2))',
4914+ 0:'recms(CMSParam==1.0,-(ee**2*(-1 - 2*cw**2 + 4*cw**2*reglog(MU_R**2/MW**2) + 2*reglog(MU_R**2/MZ**2)))/(128.*cw**2*cmath.pi**2*sw**2))'},
4915 texname = '\delta ZL_ve^{EW}')
4916
4917 HWcft_UV_EW = CTParameter(name = 'HWcft_UV_EW',
4918 type = 'complex',
4919- value = {-1:'re((ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol))/(32.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_HWcft_UV_EW.value[-1],
4920- 0:'re(-(ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol)*reglog(4*cmath.pi))/(32.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*((4*(4*MW**4 + cw**4*(3*MH**4 + 6*MW**4 - 4*MT**4*Ncol + MH**2*(MW**2*(2 + reglog(16) + 2*reglog(cmath.pi)) + MT**2*Ncol*(-1 - reglog(4*cmath.pi)))) + cw**2*MW**2*(-MZ**2 + MH**2*(1 + reglog(4*cmath.pi)))))/(cw**4*MH**2*MW**2) - (6*MH**2*reglog(MU_R**2/MH**2))/MW**2 + (8*MT**4*Ncol*reglog(MU_R**2/MT**2))/(MH**2*MW**2) + (4*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(MU_R**2/MW**2))/(MH**4 - 4*MH**2*MW**2) + (2*MZ**2*(cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*reglog(MU_R**2/MZ**2))/(cw**4*MH**2*MW**2*(MH**2 - 4*MZ**2)) - (2*(16*MW**4*(-MH**2 + 4*MW**2)*MZ**2 + 2*cw**2*MW**2*(MH**2 - 4*MW**2)*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4) + cw**4*(3*MH**8 - MH**6*(10*MW**2 + 13*MZ**2 + 2*MT**2*Ncol) + 32*MW**2*MZ**2*(3*MW**4 - 2*MT**4*Ncol) - 8*MH**2*(3*MW**6 - 4*MW**4*MZ**2 - 2*MT**4*MZ**2*Ncol - 2*MT**2*MW**2*(MT**2 - 2*MZ**2)*Ncol) + MH**4*(-8*MW**4 - 4*MT**2*(MT**2 - 2*MZ**2)*Ncol + MW**2*(44*MZ**2 + 8*MT**2*Ncol))))*reglog((MH**2 + vep*complex(0,-1))/MU_R**2))/(cw**4*MH**2*(MH - 2*MW)*MW**2*(MH + 2*MW)*(MH - 2*MZ)*(MH + 2*MZ)) + (4*MT**2*(MH**2 + 2*MT**2)*Ncol*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**2*MW**2) + (4*MT**2*(MH**2 + 2*MT**2)*Ncol*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**2*MW**2) - (2*MT**2*(MH**2 + 2*MT**2)*Ncol*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**4*MW**2) - (2*MT**2*(MH**2 + 2*MT**2)*Ncol*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**4*MW**2) - (4*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**4 - 4*MH**2*MW**2) - (4*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**4 - 4*MH**2*MW**2) + (2*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**6 - 4*MH**4*MW**2) + (2*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**6 - 4*MH**4*MW**2) + (2*(cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MH**2*MW**2*(MH**2 - 4*MZ**2)) + (2*(cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MH**2*MW**2*(MH**2 - 4*MZ**2)) - ((cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**4*MW**2*(MH**2 - 4*MZ**2)) + ((cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**4*MW**2*(MH**2 - 4*MZ**2)) + (3*(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 - (3*(-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 - (6*MH**2*reglog(-0.5 - cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2 - (6*MH**2*reglog(-0.5 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2))/(128.*cmath.pi**2*sw**2))'+'+'+dMB_HWcft_UV_EW.value[0]},
4921+ value = {-1:'recms(CMSParam==1.0 and WH != 0,(ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol))/(32.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_HWcft_UV_EW.value[-1],
4922+ 0:'recms(CMSParam==1.0 and WH != 0,-(ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol)*reglog(4*cmath.pi))/(32.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*((4*(4*MW**4 + cw**4*(3*MH**4 + 6*MW**4 - 4*MT**4*Ncol + MH**2*(MW**2*(2 + reglog(16) + 2*reglog(cmath.pi)) + MT**2*Ncol*(-1 - reglog(4*cmath.pi)))) + cw**2*MW**2*(-MZ**2 + MH**2*(1 + reglog(4*cmath.pi)))))/(cw**4*MH**2*MW**2) - (6*MH**2*reglog(MU_R**2/MH**2))/MW**2 + (8*MT**4*Ncol*reglog(MU_R**2/MT**2))/(MH**2*MW**2) + (4*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(MU_R**2/MW**2))/(MH**4 - 4*MH**2*MW**2) + (2*MZ**2*(cw**4*MH**4 + 16*MW**4 - 4*cw**2*MW**2*(MH**2 + MZ**2))*reglog(MU_R**2/MZ**2))/(cw**4*MH**2*MW**2*(MH**2 - 4*MZ**2)) - (2*(16*MW**4*(-MH**2 + 4*MW**2)*MZ**2 + 2*cw**2*MW**2*(MH**2 - 4*MW**2)*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4) + cw**4*(3*MH**8 - MH**6*(10*MW**2 + 13*MZ**2 + 2*MT**2*Ncol) + 32*MW**2*MZ**2*(3*MW**4 - 2*MT**4*Ncol) - 8*MH**2*(3*MW**6 - 4*MW**4*MZ**2 - 2*MT**4*MZ**2*Ncol - 2*MT**2*MW**2*(MT**2 - 2*MZ**2)*Ncol) + MH**4*(-8*MW**4 - 4*MT**2*(MT**2 - 2*MZ**2)*Ncol + MW**2*(44*MZ**2 + 8*MT**2*Ncol))))*reglog((MH**2 + vep*complex(0,-1))/MU_R**2))/(cw**4*MH**2*(MH - 2*MW)*MW**2*(MH + 2*MW)*(MH - 2*MZ)*(MH + 2*MZ)) + (4*MT**2*(MH**2 + 2*MT**2)*Ncol*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**2*MW**2) + (4*MT**2*(MH**2 + 2*MT**2)*Ncol*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**2*MW**2) - (2*MT**2*(MH**2 + 2*MT**2)*Ncol*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**4*MW**2) - (2*MT**2*(MH**2 + 2*MT**2)*Ncol*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MT**2 + vep*complex(0,4))))))/(MH**4*MW**2) - (4*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**4 - 4*MH**2*MW**2) - (4*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(2.*MH**2)))/(MH**4 - 4*MH**2*MW**2) + (2*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**6 - 4*MH**4*MW**2) + (2*(MH**2 - 6*MW**2)*(MH**2 + 2*MW**2)*(MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MW**2 + vep*complex(0,4))))))/(MH**6 - 4*MH**4*MW**2) + (2*(cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*reglog((-MH**2 - cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MH**2*MW**2*(MH**2 - 4*MZ**2)) + (2*(cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(2.*MH**2)))/(cw**4*MH**2*MW**2*(MH**2 - 4*MZ**2)) - ((cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**4*MW**2*(MH**2 - 4*MZ**2)) + ((cw**4*MH**4*MZ**2 + 16*MW**4*MZ**2 - 2*cw**2*MW**2*(MH**4 - 2*MH**2*MZ**2 + 2*MZ**4))*(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))*reglog((MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))/(-MH**2 + cmath.sqrt(MH**2*(MH**2 - 4*MZ**2 + vep*complex(0,4))))))/(cw**4*MH**4*MW**2*(MH**2 - 4*MZ**2)) + (3*(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 - (3*(-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))*reglog((MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4)))))/MW**2 - (6*MH**2*reglog(-0.5 - cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2 - (6*MH**2*reglog(-0.5 + cmath.sqrt(-3*MH**4 + MH**2*vep*complex(0,4))/(2.*MH**2)))/MW**2))/(128.*cmath.pi**2*sw**2))'+'+'+dMB_HWcft_UV_EW.value[0]},
4923 texname = '\delta Z_{H}^{EW}')
4924
4925 G0Wcft_UV_EW = CTParameter(name = 'G0Wcft_UV_EW',
4926 type = 'complex',
4927- value = {-1:'re((ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol))/(32.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_G0Wcft_UV_EW.value[-1],
4928- 0:'re(-(ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol)*reglog(4*cmath.pi))/(32.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*((2*(MW**2*(-2*MH**2 + MZ**2*(3 + reglog(16) + 2*reglog(cmath.pi))) + cw**2*(MH**4 + MZ**2*(MT**2*Ncol*(-2 - reglog(16) - 2*reglog(cmath.pi)) + MW**2*(4 + reglog(256) + 4*reglog(cmath.pi))))))/(cw**2*MW**2*MZ**2) - (2*(MH**2 - 2*MZ**2)*(cw**2*MH**4 - MW**2*(2*MH**2 + MZ**2))*reglog(MU_R**2/MH**2))/(cw**2*MW**2*MZ**2*(MH**2 - 4*MZ**2)) - (8*MT**4*Ncol*reglog(MU_R**2/MT**2))/(MW**2*(4*MT**2 - MZ**2)) + (16*MW**2*reglog(MU_R**2/MW**2))/(4*MW**2 - MZ**2) + (2*(cw**2*MH**4 - MW**2*(2*MH**2 + MZ**2))*reglog(MU_R**2/MZ**2))/(cw**2*MW**2*(MH**2 - 4*MZ**2)) - (2*(MW**2*(4*MT**2 - MZ**2)*(-4*MW**2 + MZ**2)*(2*MH**4 - 7*MH**2*MZ**2 + 5*MZ**4) + cw**2*(-(MH**6*(4*MT**2 - MZ**2)*(-4*MW**2 + MZ**2)) - 3*MH**4*MZ**2*(-4*MT**2 + MZ**2)*(-4*MW**2 + MZ**2) - 2*MH**2*MZ**2*(4*MW**4*MZ**2 - 2*MW**2*MZ**4 + MT**4*(8*MW**2*Ncol - 2*MZ**2*Ncol) + MT**2*(-16*MW**4 - 4*MW**2*MZ**2*(-2 + Ncol) + MZ**4*Ncol)) + 8*MZ**4*(4*MW**4*MZ**2 - 2*MW**2*MZ**4 + MT**4*(8*MW**2*Ncol - 2*MZ**2*Ncol) + MT**2*(-16*MW**4 - 4*MW**2*MZ**2*(-2 + Ncol) + MZ**4*Ncol))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2*(2*MW - MZ)*MZ**2*(-2*MT + MZ)*(2*MT + MZ)*(2*MW + MZ)*(-MH + 2*MZ)*(MH + 2*MZ)) + (2*(cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(cw**2*MW**2*MZ**2*(-MH**2 + 4*MZ**2)) + (2*(cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(cw**2*MW**2*MZ**2*(-MH**2 + 4*MZ**2)) + (4*MT**2*(2*MT**2 - MZ**2)*Ncol*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(MW**2*(4*MT**2 - MZ**2)) + (4*MT**2*(2*MT**2 - MZ**2)*Ncol*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(MW**2*(4*MT**2 - MZ**2)) + (2*MT**2*(2*MT**2 - MZ**2)*Ncol*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(MW**2*MZ**2*(-4*MT**2 + MZ**2)) + (2*MT**2*(2*MT**2 - MZ**2)*Ncol*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(MW**2*MZ**2*(-4*MT**2 + MZ**2)) - (8*(2*MW**2 - MZ**2)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2 - MZ**2) - (8*(2*MW**2 - MZ**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2 - MZ**2) + (4*(-2*MW**2 + MZ**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(-4*MW**2*MZ**2 + MZ**4) + (4*(-2*MW**2 + MZ**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(-4*MW**2*MZ**2 + MZ**4) + ((cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(cw**2*MW**2*MZ**4*(MH**2 - 4*MZ**2)) - ((cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(cw**2*MW**2*MZ**4*(MH**2 - 4*MZ**2))))/(128.*cmath.pi**2*sw**2))'+'+'+dMB_G0Wcft_UV_EW.value[0]},
4929+ value = {-1:'recms(CMSParam==1.0 and WZ != 0,(ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol))/(32.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_G0Wcft_UV_EW.value[-1],
4930+ 0:'recms(CMSParam==1.0 and WZ != 0,-(ee**2*((1 + 2*cw**2)*MW**2 - cw**2*MT**2*Ncol)*reglog(4*cmath.pi))/(32.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*((2*(MW**2*(-2*MH**2 + MZ**2*(3 + reglog(16) + 2*reglog(cmath.pi))) + cw**2*(MH**4 + MZ**2*(MT**2*Ncol*(-2 - reglog(16) - 2*reglog(cmath.pi)) + MW**2*(4 + reglog(256) + 4*reglog(cmath.pi))))))/(cw**2*MW**2*MZ**2) - (2*(MH**2 - 2*MZ**2)*(cw**2*MH**4 - MW**2*(2*MH**2 + MZ**2))*reglog(MU_R**2/MH**2))/(cw**2*MW**2*MZ**2*(MH**2 - 4*MZ**2)) - (8*MT**4*Ncol*reglog(MU_R**2/MT**2))/(MW**2*(4*MT**2 - MZ**2)) + (16*MW**2*reglog(MU_R**2/MW**2))/(4*MW**2 - MZ**2) + (2*(cw**2*MH**4 - MW**2*(2*MH**2 + MZ**2))*reglog(MU_R**2/MZ**2))/(cw**2*MW**2*(MH**2 - 4*MZ**2)) - (2*(MW**2*(4*MT**2 - MZ**2)*(-4*MW**2 + MZ**2)*(2*MH**4 - 7*MH**2*MZ**2 + 5*MZ**4) + cw**2*(-(MH**6*(4*MT**2 - MZ**2)*(-4*MW**2 + MZ**2)) - 3*MH**4*MZ**2*(-4*MT**2 + MZ**2)*(-4*MW**2 + MZ**2) - 2*MH**2*MZ**2*(4*MW**4*MZ**2 - 2*MW**2*MZ**4 + MT**4*(8*MW**2*Ncol - 2*MZ**2*Ncol) + MT**2*(-16*MW**4 - 4*MW**2*MZ**2*(-2 + Ncol) + MZ**4*Ncol)) + 8*MZ**4*(4*MW**4*MZ**2 - 2*MW**2*MZ**4 + MT**4*(8*MW**2*Ncol - 2*MZ**2*Ncol) + MT**2*(-16*MW**4 - 4*MW**2*MZ**2*(-2 + Ncol) + MZ**4*Ncol))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2*(2*MW - MZ)*MZ**2*(-2*MT + MZ)*(2*MT + MZ)*(2*MW + MZ)*(-MH + 2*MZ)*(MH + 2*MZ)) + (2*(cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(cw**2*MW**2*MZ**2*(-MH**2 + 4*MZ**2)) + (2*(cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(cw**2*MW**2*MZ**2*(-MH**2 + 4*MZ**2)) + (4*MT**2*(2*MT**2 - MZ**2)*Ncol*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(MW**2*(4*MT**2 - MZ**2)) + (4*MT**2*(2*MT**2 - MZ**2)*Ncol*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(MW**2*(4*MT**2 - MZ**2)) + (2*MT**2*(2*MT**2 - MZ**2)*Ncol*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(MW**2*MZ**2*(-4*MT**2 + MZ**2)) + (2*MT**2*(2*MT**2 - MZ**2)*Ncol*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(MW**2*MZ**2*(-4*MT**2 + MZ**2)) - (8*(2*MW**2 - MZ**2)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2 - MZ**2) - (8*(2*MW**2 - MZ**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2 - MZ**2) + (4*(-2*MW**2 + MZ**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(-4*MW**2*MZ**2 + MZ**4) + (4*(-2*MW**2 + MZ**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(-4*MW**2*MZ**2 + MZ**4) + ((cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(cw**2*MW**2*MZ**4*(MH**2 - 4*MZ**2)) - ((cw**2*(MH**6 - 3*MH**4*MZ**2) + MW**2*(-2*MH**4 + 7*MH**2*MZ**2 - 5*MZ**4))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(cw**2*MW**2*MZ**4*(MH**2 - 4*MZ**2))))/(128.*cmath.pi**2*sw**2))'+'+'+dMB_G0Wcft_UV_EW.value[0]},
4931 texname = '\delta Z_{G0}^{EW}')
4932
4933 GpWcft_UV_EW = CTParameter(name = 'GpWcft_UV_EW',
4934 type = 'complex',
4935- value = {-1:'re((ee**2*(cw**4*MW**2 + MW**2*sw**4 + cw**2*(-(MT**2*Ncol) + 2*MW**2*(1 + sw**2))))/(32.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_GpWcft_UV_EW.value[-1],
4936- 0:'re(-(ee**2*(cw**4*MW**2 + MW**2*sw**4 + cw**2*(-(MT**2*Ncol) + 2*MW**2*(1 + sw**2)))*reglog(4*cmath.pi))/(32.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*((2*MW**2*(2*cw**3*MW**3*MZ - 2*cw*MW**3*MZ*sw**2 + cw**4*MW**2*(MZ**2 + MW**2*(reglog(16) + 2*reglog(cmath.pi))) + MW**2*sw**4*(MZ**2 + MW**2*(16 + reglog(16) + 2*reglog(cmath.pi))) + cw**2*(MH**4 - 2*MH**2*MW**2 - 2*MT**4*Ncol - MW**2*(2*MZ**2*(1 + sw**2) + MT**2*Ncol*(2 + reglog(16) + 2*reglog(cmath.pi))) + MW**4*(6 + reglog(256) + 4*reglog(cmath.pi) + sw**2*(12 + reglog(256) + 4*reglog(cmath.pi))))))/cw**2 - (2*MW**2*(MH**2 - 2*MW**2)*(MH**4 - 2*MH**2*MW**2 - MW**4)*reglog(MU_R**2/MH**2))/(MH**2 - 4*MW**2) - 4*MT**2*MW**4*Ncol*reglog(MU_R**2/MT**2) - (2*MW**4*(2*cw**3*MW**3*(MH**2 - 4*MW**2)*MZ + cw**4*MW**2*(-MH**2 + 4*MW**2)*(4*MW**2 - MZ**2) + 2*cw*MW**3*(-MH**2 + 4*MW**2)*MZ*sw**2 + MW**2*(MH**2 - 4*MW**2)*(12*MW**2 + MZ**2)*sw**4 + cw**2*(MH**4*(-4*MW**2 + MZ**2) + MH**2*MW**2*(MW**2*(7 - 24*sw**2) + 2*MZ**2*(-2 + 3*sw**2)) + MW**4*(MZ**2*(7 - 24*sw**2) + MW**2*(8 + 96*sw**2))))*reglog(MU_R**2/MW**2))/(cw**2*(MH - 2*MW)*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) + (2*MW**4*(2*MW**2 - MZ**2)*(-2*cw**3*MW*MZ + cw**4*(4*MW**2 - MZ**2) + 2*cw*MW*MZ*sw**2 - (12*MW**2 + MZ**2)*sw**4 + cw**2*(MW**2*(1 - 8*sw**2) + 2*MZ**2*(1 + sw**2)))*reglog(MU_R**2/MZ**2))/(cw**2*(4*MW**2 - MZ**2)) - 4*MT**2*(MT - MW)*(MT + MW)*(MT**2 + MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) + (2*MW**2*(-2*cw**3*MW**3*(MH**2 - 4*MW**2)*(3*MW**2*MZ - MZ**3) + cw**4*MW**2*(MH**2 - 4*MW**2)*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW**3*(MH**2 - 4*MW**2)*MZ*(3*MW**2 - MZ**2)*sw**2 + MW**2*(-MH**2 + 4*MW**2)*(44*MW**4 - 11*MW**2*MZ**2 - MZ**4)*sw**4 + cw**2*(MH**6*(-4*MW**2 + MZ**2) + 5*MH**4*(4*MW**4 - MW**2*MZ**2) - MH**2*MW**2*(2*MZ**4*(1 + sw**2) - 2*MW**2*MZ**2*(7 + 5*sw**2) + MW**4*(33 + 8*sw**2)) + MW**4*(8*MZ**4*(1 + sw**2) + 8*MW**4*(5 + 4*sw**2) - MW**2*MZ**2*(33 + 40*sw**2))))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*(MH - 2*MW)*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) + (2*MW**4*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*(4*MW**2 - MZ**2)) + (2*MW**4*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*(4*MW**2 - MZ**2)) - (MW**2*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*(4*MW**2 - MZ**2)) - (MW**2*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*(2*MW**2 - MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*(4*MW**2 - MZ**2)) - (2*MW**2*(-MH**6 + 5*MH**4*MW**2 - 7*MH**2*MW**4 + 5*MW**6)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(-MH**2 + 4*MW**2) - (2*MW**2*(-MH**6 + 5*MH**4*MW**2 - 7*MH**2*MW**4 + 5*MW**6)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(-MH**2 + 4*MW**2) + ((MH**6 - 5*MH**4*MW**2 + 7*MH**2*MW**4 - 5*MW**6)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MH**2 - 4*MW**2) - ((MH**6 - 5*MH**4*MW**2 + 7*MH**2*MW**4 - 5*MW**6)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MH**2 - 4*MW**2)))/(128.*MW**6*cmath.pi**2*sw**2))'+'+'+dMB_GpWcft_UV_EW.value[0]},
4937+ value = {-1:'recms(CMSParam==1.0 and WW != 0,(ee**2*(cw**4*MW**2 + MW**2*sw**4 + cw**2*(-(MT**2*Ncol) + 2*MW**2*(1 + sw**2))))/(32.*cw**2*MW**2*cmath.pi**2*sw**2))'+'+'+dMB_GpWcft_UV_EW.value[-1],
4938+ 0:'recms(CMSParam==1.0 and WW != 0,-(ee**2*(cw**4*MW**2 + MW**2*sw**4 + cw**2*(-(MT**2*Ncol) + 2*MW**2*(1 + sw**2)))*reglog(4*cmath.pi))/(32.*cw**2*MW**2*cmath.pi**2*sw**2) + (ee**2*((2*MW**2*(2*cw**3*MW**3*MZ - 2*cw*MW**3*MZ*sw**2 + cw**4*MW**2*(MZ**2 + MW**2*(reglog(16) + 2*reglog(cmath.pi))) + MW**2*sw**4*(MZ**2 + MW**2*(16 + reglog(16) + 2*reglog(cmath.pi))) + cw**2*(MH**4 - 2*MH**2*MW**2 - 2*MT**4*Ncol - MW**2*(2*MZ**2*(1 + sw**2) + MT**2*Ncol*(2 + reglog(16) + 2*reglog(cmath.pi))) + MW**4*(6 + reglog(256) + 4*reglog(cmath.pi) + sw**2*(12 + reglog(256) + 4*reglog(cmath.pi))))))/cw**2 - (2*MW**2*(MH**2 - 2*MW**2)*(MH**4 - 2*MH**2*MW**2 - MW**4)*reglog(MU_R**2/MH**2))/(MH**2 - 4*MW**2) - 4*MT**2*MW**4*Ncol*reglog(MU_R**2/MT**2) - (2*MW**4*(2*cw**3*MW**3*(MH**2 - 4*MW**2)*MZ + cw**4*MW**2*(-MH**2 + 4*MW**2)*(4*MW**2 - MZ**2) + 2*cw*MW**3*(-MH**2 + 4*MW**2)*MZ*sw**2 + MW**2*(MH**2 - 4*MW**2)*(12*MW**2 + MZ**2)*sw**4 + cw**2*(MH**4*(-4*MW**2 + MZ**2) + MH**2*MW**2*(MW**2*(7 - 24*sw**2) + 2*MZ**2*(-2 + 3*sw**2)) + MW**4*(MZ**2*(7 - 24*sw**2) + MW**2*(8 + 96*sw**2))))*reglog(MU_R**2/MW**2))/(cw**2*(MH - 2*MW)*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) + (2*MW**4*(2*MW**2 - MZ**2)*(-2*cw**3*MW*MZ + cw**4*(4*MW**2 - MZ**2) + 2*cw*MW*MZ*sw**2 - (12*MW**2 + MZ**2)*sw**4 + cw**2*(MW**2*(1 - 8*sw**2) + 2*MZ**2*(1 + sw**2)))*reglog(MU_R**2/MZ**2))/(cw**2*(4*MW**2 - MZ**2)) - 4*MT**2*(MT - MW)*(MT + MW)*(MT**2 + MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2) + (2*MW**2*(-2*cw**3*MW**3*(MH**2 - 4*MW**2)*(3*MW**2*MZ - MZ**3) + cw**4*MW**2*(MH**2 - 4*MW**2)*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW**3*(MH**2 - 4*MW**2)*MZ*(3*MW**2 - MZ**2)*sw**2 + MW**2*(-MH**2 + 4*MW**2)*(44*MW**4 - 11*MW**2*MZ**2 - MZ**4)*sw**4 + cw**2*(MH**6*(-4*MW**2 + MZ**2) + 5*MH**4*(4*MW**4 - MW**2*MZ**2) - MH**2*MW**2*(2*MZ**4*(1 + sw**2) - 2*MW**2*MZ**2*(7 + 5*sw**2) + MW**4*(33 + 8*sw**2)) + MW**4*(8*MZ**4*(1 + sw**2) + 8*MW**4*(5 + 4*sw**2) - MW**2*MZ**2*(33 + 40*sw**2))))*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*(MH - 2*MW)*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) + (2*MW**4*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*(4*MW**2 - MZ**2)) + (2*MW**4*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*(4*MW**2 - MZ**2)) - (MW**2*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*(4*MW**2 - MZ**2)) - (MW**2*(cw**3*(-6*MW**3*MZ + 2*MW*MZ**3) + cw**4*(4*MW**4 - 5*MW**2*MZ**2 + MZ**4) + 2*cw*MW*MZ*(3*MW**2 - MZ**2)*sw**2 + (-44*MW**4 + 11*MW**2*MZ**2 + MZ**4)*sw**4 - cw**2*(MW**2 - MZ**2)*(-2*MZ**2*(1 + sw**2) + MW**2*(5 + 8*sw**2)))*(2*MW**2 - MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*(4*MW**2 - MZ**2)) - (2*MW**2*(-MH**6 + 5*MH**4*MW**2 - 7*MH**2*MW**4 + 5*MW**6)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(-MH**2 + 4*MW**2) - (2*MW**2*(-MH**6 + 5*MH**4*MW**2 - 7*MH**2*MW**4 + 5*MW**6)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(-MH**2 + 4*MW**2) + ((MH**6 - 5*MH**4*MW**2 + 7*MH**2*MW**4 - 5*MW**6)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MH**2 - 4*MW**2) - ((MH**6 - 5*MH**4*MW**2 + 7*MH**2*MW**4 - 5*MW**6)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MH**2 - 4*MW**2)))/(128.*MW**6*cmath.pi**2*sw**2))'+'+'+dMB_GpWcft_UV_EW.value[0]},
4939 texname = '\delta Z_{Gp}^{EW}')
4940
4941
4942 WWcft_UV_EW = CTParameter(name = 'WWcft_UV_EW',
4943 type = 'complex',
4944- value = {-1:'re((ee**2*(-7 + 20*cw**2 - 6*Ncol + 8*sw**2))/(96.*cmath.pi**2*sw**2))',
4945- 0:'re(-(ee**2*(-7 + 20*cw**2 - 6*Ncol + 8*sw**2)*reglog(4*cmath.pi))/(96.*cmath.pi**2*sw**2) + (ee**2*((-4*(-18*MW**4*sw**4 + 2*cw**4*(45*MW**2*MZ**2 - 12*MZ**4 + MW**4*(-23 + 30*reglog(cmath.pi) - 60*reglog(2*cmath.pi))) + cw**2*(-3*MH**4 + 9*MH**2*MW**2 - 3*MZ**4 + 6*MT**4*Ncol + 3*MW**2*(3*MZ**2 + MT**2*Ncol) + MW**4*(-1 - 64*sw**2 - 21*reglog(cmath.pi) + 24*sw**2*reglog(cmath.pi) + 6*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi)) + 42*reglog(2*cmath.pi) - 48*sw**2*reglog(2*cmath.pi)))))/(cw**2*MW**4) - (6*(2*MH**6 - 11*MH**4*MW**2 + 24*MH**2*MW**4 - 24*MW**6)*reglog(MU_R**2/MH**2))/(MW**4*(MH**2 - 4*MW**2)) - 24*Ncol*reglog(MU_R**2/MT**2) + (12*(2*cw**4*(MH**2 - 4*MW**2)*(7*MW**4 + 21*MW**2*MZ**2 - 4*MZ**4) + 6*MW**4*(-MH**2 + 4*MW**2)*sw**4 + cw**2*(4*MW**2 - MZ**2)*(MH**4 - 4*MW**2*MZ**2 + MW**4*(10 - 32*sw**2) + MH**2*(MZ**2 + MW**2*(-5 + 8*sw**2))))*reglog(MU_R**2/MW**2))/(cw**2*(MH - 2*MW)*MW**2*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) + (6*(cw**2*(12*MW**4*MZ**2 - 11*MW**2*MZ**4 + 2*MZ**6) + 4*cw**4*(30*MW**6 + 15*MW**4*MZ**2 - 25*MW**2*MZ**4 + 4*MZ**6) + 12*MW**4*(-2*MW**2 + MZ**2)*sw**4)*reglog(MU_R**2/MZ**2))/(cw**2*MW**4*(4*MW**2 - MZ**2)) + (24*(-MT + MW)*(MT + MW)*(MT**2 - MT*MW + MW**2)*(MT**2 + MT*MW + MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**6 - (6*(4*cw**4*(MH**2 - 4*MW**2)*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(4*MW**2 - MZ**2)*(2*MH**6 - 13*MH**4*MW**2 - 4*MW**2*(9*MW**4 - 5*MW**2*MZ**2 + 2*MZ**4) + MH**2*(32*MW**4 - 5*MW**2*MZ**2 + 2*MZ**4)) + 12*MW**4*(MH**2 - 4*MW**2)*(3*MW**2 - MZ**2)*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*(MH - 2*MW)*MW**4*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) - (6*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**4*(4*MW**2 - MZ**2)) - (6*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**4*(4*MW**2 - MZ**2)) + (3*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**6*(4*MW**2 - MZ**2)) - (3*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**6*(4*MW**2 - MZ**2)) - (6*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(MW**4*(MH**2 - 4*MW**2)) - (6*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(MW**4*(MH**2 - 4*MW**2)) - 24*(3 + 2*Ncol)*reglog(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MW**6*(MH**2 - 4*MW**2)) - (3*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MW**6*(MH**2 - 4*MW**2))))/(1152.*cmath.pi**2*sw**2))'+'+'+dMB_WWcft_UV_EW.value[0]},
4946+ value = {-1:'recms(CMSParam==1.0 and WW != 0,(ee**2*(-7 + 20*cw**2 - 6*Ncol + 8*sw**2))/(96.*cmath.pi**2*sw**2))',
4947+ 0:'recms(CMSParam==1.0 and WW != 0, -(ee**2*(-7 + 20*cw**2 - 6*Ncol + 8*sw**2)*reglog(4*cmath.pi))/(96.*cmath.pi**2*sw**2) + (ee**2*((-4*(-18*MW**4*sw**4 + 2*cw**4*(45*MW**2*MZ**2 - 12*MZ**4 + MW**4*(-23 + 30*reglog(cmath.pi) - 60*reglog(2*cmath.pi))) + cw**2*(-3*MH**4 + 9*MH**2*MW**2 - 3*MZ**4 + 6*MT**4*Ncol + 3*MW**2*(3*MZ**2 + MT**2*Ncol) + MW**4*(-1 - 64*sw**2 - 21*reglog(cmath.pi) + 24*sw**2*reglog(cmath.pi) + 6*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi)) + 42*reglog(2*cmath.pi) - 48*sw**2*reglog(2*cmath.pi)))))/(cw**2*MW**4) - (6*(2*MH**6 - 11*MH**4*MW**2 + 24*MH**2*MW**4 - 24*MW**6)*reglog(MU_R**2/MH**2))/(MW**4*(MH**2 - 4*MW**2)) - 24*Ncol*reglog(MU_R**2/MT**2) + (12*(2*cw**4*(MH**2 - 4*MW**2)*(7*MW**4 + 21*MW**2*MZ**2 - 4*MZ**4) + 6*MW**4*(-MH**2 + 4*MW**2)*sw**4 + cw**2*(4*MW**2 - MZ**2)*(MH**4 - 4*MW**2*MZ**2 + MW**4*(10 - 32*sw**2) + MH**2*(MZ**2 + MW**2*(-5 + 8*sw**2))))*reglog(MU_R**2/MW**2))/(cw**2*(MH - 2*MW)*MW**2*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) + (6*(cw**2*(12*MW**4*MZ**2 - 11*MW**2*MZ**4 + 2*MZ**6) + 4*cw**4*(30*MW**6 + 15*MW**4*MZ**2 - 25*MW**2*MZ**4 + 4*MZ**6) + 12*MW**4*(-2*MW**2 + MZ**2)*sw**4)*reglog(MU_R**2/MZ**2))/(cw**2*MW**4*(4*MW**2 - MZ**2)) + (24*(-MT + MW)*(MT + MW)*(MT**2 - MT*MW + MW**2)*(MT**2 + MT*MW + MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**6 - (6*(4*cw**4*(MH**2 - 4*MW**2)*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(4*MW**2 - MZ**2)*(2*MH**6 - 13*MH**4*MW**2 - 4*MW**2*(9*MW**4 - 5*MW**2*MZ**2 + 2*MZ**4) + MH**2*(32*MW**4 - 5*MW**2*MZ**2 + 2*MZ**4)) + 12*MW**4*(MH**2 - 4*MW**2)*(3*MW**2 - MZ**2)*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*(MH - 2*MW)*MW**4*(MH + 2*MW)*(2*MW - MZ)*(2*MW + MZ)) - (6*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**4*(4*MW**2 - MZ**2)) - (6*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**4*(4*MW**2 - MZ**2)) + (3*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**6*(4*MW**2 - MZ**2)) - (3*(4*cw**4*(3*MW**6 - 46*MW**4*MZ**2 + 29*MW**2*MZ**4 - 4*MZ**6) + cw**2*(-20*MW**4*MZ**2 + 13*MW**2*MZ**4 - 2*MZ**6) + 12*MW**4*(3*MW**2 - MZ**2)*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**6*(4*MW**2 - MZ**2)) - (6*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(MW**4*(MH**2 - 4*MW**2)) - (6*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/(MW**4*(MH**2 - 4*MW**2)) - 24*(3 + 2*Ncol)*reglogp(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MW**6*(MH**2 - 4*MW**2)) - (3*(2*MH**6 - 13*MH**4*MW**2 + 32*MH**2*MW**4 - 36*MW**6)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/(MW**6*(MH**2 - 4*MW**2))))/(1152.*cmath.pi**2*sw**2))'+'+'+dMB_WWcft_UV_EW.value[0]},
4948 texname = '\delta Z_{W}^{EW}')
4949
4950
4951 ZZWcft_UV_EW = CTParameter(name = 'ZZWcft_UV_EW',
4952 type = 'complex',
4953- value = {-1:'re((ee**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))/(576.*cw**2*cmath.pi**2*sw**2))',
4954- 0:'re(-(ee**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglog(4*cmath.pi))/(576.*cw**2*cmath.pi**2*sw**2) + (ee**2*((-2*(-108*MW**2*MZ**2 - 6*cw**4*MZ**2*sw**2*(12*MW**2 + MZ**2*(5 + reglog(64) + 3*reglog(cmath.pi))) + 9*cw**6*(60*MW**2*MZ**2 + MZ**4*(-41 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(-18*MH**4 + 54*MH**2*MZ**2 + MZ**2*(2*(-90*MW**2*sw**4 + MT**2*Ncol*(9 + 48*sw**2 - 64*sw**4)) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(2 + reglog(64) + 3*reglog(cmath.pi)) + 3*(29 - 39*reglog(cmath.pi) - 24*sw**2*(2 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(101 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**4 - (18*(12*MW**2*MZ**2*(MH**2 - 2*MZ**2) + cw**2*(2*MH**6 - 11*MH**4*MZ**2 + 12*MH**2*MZ**4))*reglog(MU_R**2/MH**2))/(MZ**4*(MH**2 - 4*MZ**2)) - (8*cw**2*MT**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog(MU_R**2/MT**2))/(4*MT**2*MZ**2 - MZ**4) + (36*cw**2*MW**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog(MU_R**2/MW**2))/(4*MW**2*MZ**2 - MZ**4) + (18*(12*MW**2*MZ**2 + cw**2*(2*MH**4 - 9*MH**2*MZ**2 + 4*MZ**4))*reglog(MU_R**2/MZ**2))/(MZ**2*(MH**2 - 4*MZ**2)) + (2*(-108*MW**2*MZ**2*(MH**2 - 3*MZ**2)*(-4*MT**2 + MZ**2)*(-4*MW**2 + MZ**2) + 27*cw**6*MZ**2*(-4*MT**2 + MZ**2)*(-MH**2 + 4*MZ**2)*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 18*cw**4*MZ**2*(MH**2 - 4*MZ**2)*(-4*MT**2 + MZ**2)*(-8*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**2 - cw**2*(MH**2 - 4*MZ**2)*(-18*MH**4*(4*MT**2 - MZ**2)*(-4*MW**2 + MZ**2) - 45*MH**2*MZ**2*(-4*MT**2 + MZ**2)*(-4*MW**2 + MZ**2) + MZ**2*(-360*MW**4*MZ**2*sw**4 + 4*MT**4*(4*MW**2 - MZ**2)*Ncol*(-9 - 48*sw**2 + 64*sw**4) - MZ**6*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)) + 2*MW**2*MZ**4*(9*sw**4 + 4*Ncol*(9 - 24*sw**2 + 32*sw**4)) + 4*MT**2*(360*MW**4*sw**4 + MZ**4*(9*sw**4 + Ncol*(9 - 24*sw**2 + 32*sw**4)) - 2*MW**2*MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4))))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/((MH - 2*MZ)*MZ**4*(-2*MT + MZ)*(2*MT + MZ)*(-2*MW + MZ)*(2*MW + MZ)*(MH + 2*MZ)) - (18*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(MZ**4*(MH**2 - 4*MZ**2)) - (18*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(MZ**4*(MH**2 - 4*MZ**2)) - 4*cw**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - (4*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MT**2*MZ**2 - MZ**4) - (4*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MT**2*MZ**2 - MZ**4) + (2*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(4*MT**2*MZ**4 - MZ**6) + (2*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(4*MT**2*MZ**4 - MZ**6) + (18*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2*MZ**2 - MZ**4) + (18*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2*MZ**2 - MZ**4) - (9*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(4*MW**2*MZ**4 - MZ**6) + (9*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(4*MW**2*MZ**4 - MZ**6) + (9*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(MZ**6*(MH**2 - 4*MZ**2)) - (9*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(MZ**6*(MH**2 - 4*MZ**2))))/(3456.*cw**4*cmath.pi**2*sw**2))'+'+'+dMB_ZZWcft_UV_EW.value[0]},
4955+ value = {-1:'recms(CMSParam==1.0 and WZ != 0, (ee**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))/(576.*cw**2*cmath.pi**2*sw**2))',
4956+ 0:'recms(CMSParam==1.0 and WZ != 0,-(ee**2*(-39 + 117*cw**4 + 72*sw**2 + 6*cw**2*sw**2 - 147*sw**4 - 4*Ncol*(9 - 18*sw**2 + 20*sw**4))*reglog(4*cmath.pi))/(576.*cw**2*cmath.pi**2*sw**2) + (ee**2*((-2*(-108*MW**2*MZ**2 - 6*cw**4*MZ**2*sw**2*(12*MW**2 + MZ**2*(5 + reglog(64) + 3*reglog(cmath.pi))) + 9*cw**6*(60*MW**2*MZ**2 + MZ**4*(-41 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(-18*MH**4 + 54*MH**2*MZ**2 + MZ**2*(2*(-90*MW**2*sw**4 + MT**2*Ncol*(9 + 48*sw**2 - 64*sw**4)) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(2 + reglog(64) + 3*reglog(cmath.pi)) + 3*(29 - 39*reglog(cmath.pi) - 24*sw**2*(2 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(101 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**4 - (18*(12*MW**2*MZ**2*(MH**2 - 2*MZ**2) + cw**2*(2*MH**6 - 11*MH**4*MZ**2 + 12*MH**2*MZ**4))*reglog(MU_R**2/MH**2))/(MZ**4*(MH**2 - 4*MZ**2)) - (8*cw**2*MT**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog(MU_R**2/MT**2))/(4*MT**2*MZ**2 - MZ**4) + (36*cw**2*MW**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog(MU_R**2/MW**2))/(4*MW**2*MZ**2 - MZ**4) + (18*(12*MW**2*MZ**2 + cw**2*(2*MH**4 - 9*MH**2*MZ**2 + 4*MZ**4))*reglog(MU_R**2/MZ**2))/(MZ**2*(MH**2 - 4*MZ**2)) + (2*(-108*MW**2*MZ**2*(MH**2 - 3*MZ**2)*(-4*MT**2 + MZ**2)*(-4*MW**2 + MZ**2) + 27*cw**6*MZ**2*(-4*MT**2 + MZ**2)*(-MH**2 + 4*MZ**2)*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 18*cw**4*MZ**2*(MH**2 - 4*MZ**2)*(-4*MT**2 + MZ**2)*(-8*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**2 - cw**2*(MH**2 - 4*MZ**2)*(-18*MH**4*(4*MT**2 - MZ**2)*(-4*MW**2 + MZ**2) - 45*MH**2*MZ**2*(-4*MT**2 + MZ**2)*(-4*MW**2 + MZ**2) + MZ**2*(-360*MW**4*MZ**2*sw**4 + 4*MT**4*(4*MW**2 - MZ**2)*Ncol*(-9 - 48*sw**2 + 64*sw**4) - MZ**6*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)) + 2*MW**2*MZ**4*(9*sw**4 + 4*Ncol*(9 - 24*sw**2 + 32*sw**4)) + 4*MT**2*(360*MW**4*sw**4 + MZ**4*(9*sw**4 + Ncol*(9 - 24*sw**2 + 32*sw**4)) - 2*MW**2*MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4))))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/((MH - 2*MZ)*MZ**4*(-2*MT + MZ)*(2*MT + MZ)*(-2*MW + MZ)*(2*MW + MZ)*(MH + 2*MZ)) - (18*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(MZ**4*(MH**2 - 4*MZ**2)) - (18*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/(MZ**4*(MH**2 - 4*MZ**2)) - 4*cw**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - (4*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MT**2*MZ**2 - MZ**4) - (4*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MT**2*MZ**2 - MZ**4) + (2*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(4*MT**2*MZ**4 - MZ**6) + (2*cw**2*Ncol*(-2*MT**2*MZ**2*(9 - 24*sw**2 + 32*sw**4) + MZ**4*(9 - 24*sw**2 + 32*sw**4) + 2*MT**4*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/(4*MT**2*MZ**4 - MZ**6) + (18*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2*MZ**2 - MZ**4) + (18*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/(4*MW**2*MZ**2 - MZ**4) - (9*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(4*MW**2*MZ**4 - MZ**6) + (9*cw**2*(3*cw**4*(40*MW**4 - 26*MW**2*MZ**2 + 13*MZ**4) - 2*cw**2*(8*MW**4 + 2*MW**2*MZ**2 - MZ**4)*sw**2 - (40*MW**4 - 2*MW**2*MZ**2 + MZ**4)*sw**4)*(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/(4*MW**2*MZ**4 - MZ**6) + (9*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(MZ**6*(MH**2 - 4*MZ**2)) - (9*(12*MW**2*MZ**2*(MH**2 - 3*MZ**2) + cw**2*(2*MH**6 - 13*MH**4*MZ**2 + 20*MH**2*MZ**4))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/(MZ**6*(MH**2 - 4*MZ**2))))/(3456.*cw**4*cmath.pi**2*sw**2))'+'+'+dMB_ZZWcft_UV_EW.value[0]},
4957 texname = '\delta Z_{ZZ}^{EW}')
4958
4959
4960 AZWcft_UV_EW = CTParameter(name = 'AZWcft_UV_EW',
4961 type = 'complex',
4962- value = {-1:'re(-(ee**2*(cw**2*(36*MW**2 + 57*MZ**2) + 36*MW**2*sw**2 + MZ**2*(-18 - 18*Ncol + 75*sw**2 + 40*Ncol*sw**2)))/(144.*cw*MZ**2*cmath.pi**2*sw))',
4963- 0:'re((ee**2*(cw**2*(36*MW**2 + 57*MZ**2) + 36*MW**2*sw**2 + MZ**2*(-18 - 18*Ncol + 75*sw**2 + 40*Ncol*sw**2))*reglog(4*cmath.pi))/(144.*cw*MZ**2*cmath.pi**2*sw) + (ee**2*((2*(4*(-4*MT**2*Ncol*(-3 + 8*sw**2) + 9*MW**2*sw**2*(-4 - reglog(64) - 3*reglog(cmath.pi))) + MZ**2*(-2*Ncol*(-9 + 20*sw**2)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(6*(5 + reglog(64) + 3*reglog(cmath.pi)) + sw**2*(-128 + 75*reglog(cmath.pi) - 150*reglog(2*cmath.pi)))) + 3*cw**2*(12*MW**2*(-16 - reglog(64) - 3*reglog(cmath.pi)) + MZ**2*(-116 + 57*reglog(cmath.pi) - 114*reglog(2*cmath.pi)))))/MZ**2 + (16*MT**2*Ncol*(-3 + 8*sw**2)*reglog(MU_R**2/MT**2))/MZ**2 + (72*MW**2*(5*cw**2 - sw**2)*reglog(MU_R**2/MW**2))/MZ**2 + (2*(9*cw**2*(32*MW**2 + 19*MZ**2) - 12*MZ**2*Ncol + 72*MW**2*sw**2 + 9*MZ**2*sw**2 + 32*MZ**2*Ncol*sw**2 + 8*MT**2*Ncol*(-3 + 8*sw**2))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - 4*(-27 - 21*Ncol + 108*sw**2 + 44*Ncol*sw**2)*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + (8*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (8*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (4*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 - (4*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 + (18*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (18*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (9*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 - (9*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**4))/(864.*cw*cmath.pi**2*sw))'+'+'+dMB_AZWcft_UV_EW.value[0]},
4964+ value = {-1:'recms(CMSParam==1.0 and WZ != 0, -(ee**2*(cw**2*(36*MW**2 + 57*MZ**2) + 36*MW**2*sw**2 + MZ**2*(-18 - 18*Ncol + 75*sw**2 + 40*Ncol*sw**2)))/(144.*cw*MZ**2*cmath.pi**2*sw))',
4965+ 0:'recms(CMSParam==1.0 and WZ != 0,(ee**2*(cw**2*(36*MW**2 + 57*MZ**2) + 36*MW**2*sw**2 + MZ**2*(-18 - 18*Ncol + 75*sw**2 + 40*Ncol*sw**2))*reglog(4*cmath.pi))/(144.*cw*MZ**2*cmath.pi**2*sw) + (ee**2*((2*(4*(-4*MT**2*Ncol*(-3 + 8*sw**2) + 9*MW**2*sw**2*(-4 - reglog(64) - 3*reglog(cmath.pi))) + MZ**2*(-2*Ncol*(-9 + 20*sw**2)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(6*(5 + reglog(64) + 3*reglog(cmath.pi)) + sw**2*(-128 + 75*reglog(cmath.pi) - 150*reglog(2*cmath.pi)))) + 3*cw**2*(12*MW**2*(-16 - reglog(64) - 3*reglog(cmath.pi)) + MZ**2*(-116 + 57*reglog(cmath.pi) - 114*reglog(2*cmath.pi)))))/MZ**2 + (16*MT**2*Ncol*(-3 + 8*sw**2)*reglog(MU_R**2/MT**2))/MZ**2 + (72*MW**2*(5*cw**2 - sw**2)*reglog(MU_R**2/MW**2))/MZ**2 + (2*(9*cw**2*(32*MW**2 + 19*MZ**2) - 12*MZ**2*Ncol + 72*MW**2*sw**2 + 9*MZ**2*sw**2 + 32*MZ**2*Ncol*sw**2 + 8*MT**2*Ncol*(-3 + 8*sw**2))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - 4*(-27 - 21*Ncol + 108*sw**2 + 44*Ncol*sw**2)*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + (8*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (8*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (4*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 - (4*(2*MT**2 + MZ**2)*Ncol*(-3 + 8*sw**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 + (18*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 + (18*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)))/MZ**2 - (9*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**4 - (9*(cw**2*(32*MW**2 + 19*MZ**2) + (8*MW**2 + MZ**2)*sw**2)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**4))/(864.*cw*cmath.pi**2*sw))'+'+'+dMB_AZWcft_UV_EW.value[0]},
4966 texname = '\delta Z_{AZ}^{EW}')
4967
4968 ZAWcft_UV_EW = CTParameter(name = 'ZAWcft_UV_EW',
4969@@ -544,21 +551,21 @@
4970 eCoup_UV_EW = CTParameter(name = 'eCoup_UV_EW',
4971 type = 'complex',
4972 value = {-1:'(ee**2*(cw**2*(-36*MW**2 + MZ**2*(9 + 20*Ncol)) - 36*MW**2*sw**2))/(288.*cw**2*MZ**2*cmath.pi**2)',
4973- 0:'re((ee**2*(162*MW**2*(cw**2 + sw**2)*reglog(MW**2/MU_R**2) + cw**2*MZ**2*(243 + 110*Ncol - 48*Ncol*reglog(MT/MU_R) + 243*reglog(MW/MU_R) + 162*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + 66*Ncol*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))))))/(1296.*cw**2*MZ**2*cmath.pi**2))'+'+'+dMB_eCoup_UV_EW.value[0]},
4974+ 0:'recms(CMSParam==1.0,(ee**2*(162*MW**2*(cw**2 + sw**2)*reglog(MW**2/MU_R**2) + cw**2*MZ**2*(243 + 110*Ncol - 48*Ncol*reglog(MT/MU_R) + 243*reglog(MW/MU_R) + 162*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) + 66*Ncol*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))))))/(1296.*cw**2*MZ**2*cmath.pi**2))'+'+'+dMB_eCoup_UV_EW.value[0]},
4975 texname = '\delta e')
4976
4977
4978 SWCoup_UV_EW = CTParameter(name = 'SWCoup_UV_EW',
4979 type = 'complex',
4980- value = {-1:'re(-(ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))))/(1152.*cw**2*MW**2*MZ**2*cmath.pi**2*sw**3))'+'+'+dMB_SWCoup_UV_EW.value[-1],
4981- 0:'re((ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4))))*reglog(4*cmath.pi))/(1152.*cw**2*MW**2*MZ**2*cmath.pi**2*sw**3) + (cw**2*(-(ee**2*((2*(cw**2*(3*MH**4 - 18*MH**2*MW**2 + 3*(MZ**4 - 2*MT**4*Ncol) - 6*MW**2*(3*MZ**2 + MT**2*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi))) - 2*MW**4*(-83 + 178*sw**2 + 93*reglog(cmath.pi) - 114*sw**2*reglog(cmath.pi) - 6*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi)) - 186*reglog(2*cmath.pi) + 228*sw**2*reglog(2*cmath.pi))) + 4*cw**4*(6*MZ**4 + MW**4*(-107 + 66*reglog(cmath.pi) - 132*reglog(2*cmath.pi)) + 9*MW**2*MZ**2*(-6 - reglog(4*cmath.pi))) + 36*MW**4*sw**4*(2 + reglog(4*cmath.pi))))/(cw**2*MW**2) - (6*MH**2*(MH**2 - 3*MW**2)*reglog(MU_R**2/MH**2))/MW**2 - 12*(3*MT**2 - 2*MW**2)*Ncol*reglog(MU_R**2/MT**2) + 6*(MH**2 + (1 + 8*cw**2)*MZ**2 + MW**2*(38 - 28*cw**2 - 76*sw**2))*reglog(MU_R**2/MW**2) - (6*(1 + 8*cw**2)*MZ**2*(-3*MW**2 + MZ**2)*reglog(MU_R**2/MZ**2))/MW**2 - (12*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**4 + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) - cw**2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4 - 4*MW**2*MZ**2 + MZ**4) - 12*MW**4*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) - (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) + (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 + 24*MW**2*(3 + 2*Ncol)*reglog(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4 - (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4))/(1152.*MW**2*cmath.pi**2*sw**2) + (ee**2*((2*(-108*MW**2*MZ**2*(-2 + reglog(1/(4.*cmath.pi))) + 6*cw**4*MZ**2*sw**2*(24*MW**2 + MZ**2*(-8 - reglog(64) - 3*reglog(cmath.pi))) + 9*cw**6*MZ**2*(24*MW**2*(-5 + reglog(1/(4.*cmath.pi))) + MZ**2*(-80 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(9*MH**4 - 54*MH**2*MZ**2 + MZ**2*(2*(-36*MW**2*sw**4*(-5 - reglog(64) - 3*reglog(cmath.pi)) + MT**2*Ncol*(-96*sw**2 + 128*sw**4 - 9*(2 + reglog(64) + 3*reglog(cmath.pi)))) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(59 - 39*reglog(cmath.pi) - 24*sw**2*(5 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(248 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**2 - (18*cw**2*MH**2*(MH**2 - 3*MZ**2)*reglog(MU_R**2/MH**2))/MZ**2 - 8*cw**2*MT**2*Ncol*(9 - 24*sw**2 + 32*sw**4)*reglog(MU_R**2/MT**2) + 72*cw**2*MW**2*(9*cw**4 - 2*cw**2*sw**2 + sw**4)*reglog(MU_R**2/MW**2) + 18*cw**2*(MH**2 + MZ**2)*reglog(MU_R**2/MZ**2) + (2*(-108*MW**2*MZ**2 + 27*cw**6*(20*MW**2*MZ**2 + 13*MZ**4) + 18*cw**4*MZ**2*(-4*MW**2 + MZ**2)*sw**2 - cw**2*(9*MH**4 - 36*MH**2*MZ**2 + MZ**2*(180*MW**2*sw**4 + 2*MT**2*Ncol*(-9 - 48*sw**2 + 64*sw**4) + MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 + 4*cw**2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4 - (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4))/(3456.*cw**4*MZ**2*cmath.pi**2*sw**2)))/(2.*sw))'+'+'+dMB_SWCoup_UV_EW.value[0]},
4982+ value = {-1:'recms(CMSParam==1.0 and (WW != 0 or WZ != 0),-(ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))))/(1152.*cw**2*MW**2*MZ**2*cmath.pi**2*sw**3))'+'+'+dMB_SWCoup_UV_EW.value[-1],
4983+ 0:'recms(CMSParam==1.0 and (WW != 0 or WZ != 0),(ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4))))*reglog(4*cmath.pi))/(1152.*cw**2*MW**2*MZ**2*cmath.pi**2*sw**3) + (cw**2*(-(ee**2*((2*(cw**2*(3*MH**4 - 18*MH**2*MW**2 + 3*(MZ**4 - 2*MT**4*Ncol) - 6*MW**2*(3*MZ**2 + MT**2*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi))) - 2*MW**4*(-83 + 178*sw**2 + 93*reglog(cmath.pi) - 114*sw**2*reglog(cmath.pi) - 6*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi)) - 186*reglog(2*cmath.pi) + 228*sw**2*reglog(2*cmath.pi))) + 4*cw**4*(6*MZ**4 + MW**4*(-107 + 66*reglog(cmath.pi) - 132*reglog(2*cmath.pi)) + 9*MW**2*MZ**2*(-6 - reglog(4*cmath.pi))) + 36*MW**4*sw**4*(2 + reglog(4*cmath.pi))))/(cw**2*MW**2) - (6*MH**2*(MH**2 - 3*MW**2)*reglog(MU_R**2/MH**2))/MW**2 - 12*(3*MT**2 - 2*MW**2)*Ncol*reglog(MU_R**2/MT**2) + 6*(MH**2 + (1 + 8*cw**2)*MZ**2 + MW**2*(38 - 28*cw**2 - 76*sw**2))*reglog(MU_R**2/MW**2) - (6*(1 + 8*cw**2)*MZ**2*(-3*MW**2 + MZ**2)*reglog(MU_R**2/MZ**2))/MW**2 - (12*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**4 + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) - cw**2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4 - 4*MW**2*MZ**2 + MZ**4) - 12*MW**4*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) - (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) + (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 + 24*MW**2*(3 + 2*Ncol)*reglogp(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4 - (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4))/(1152.*MW**2*cmath.pi**2*sw**2) + (ee**2*((2*(-108*MW**2*MZ**2*(-2 + reglog(1/(4.*cmath.pi))) + 6*cw**4*MZ**2*sw**2*(24*MW**2 + MZ**2*(-8 - reglog(64) - 3*reglog(cmath.pi))) + 9*cw**6*MZ**2*(24*MW**2*(-5 + reglog(1/(4.*cmath.pi))) + MZ**2*(-80 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(9*MH**4 - 54*MH**2*MZ**2 + MZ**2*(2*(-36*MW**2*sw**4*(-5 - reglog(64) - 3*reglog(cmath.pi)) + MT**2*Ncol*(-96*sw**2 + 128*sw**4 - 9*(2 + reglog(64) + 3*reglog(cmath.pi)))) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(59 - 39*reglog(cmath.pi) - 24*sw**2*(5 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(248 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**2 - (18*cw**2*MH**2*(MH**2 - 3*MZ**2)*reglog(MU_R**2/MH**2))/MZ**2 - 8*cw**2*MT**2*Ncol*(9 - 24*sw**2 + 32*sw**4)*reglog(MU_R**2/MT**2) + 72*cw**2*MW**2*(9*cw**4 - 2*cw**2*sw**2 + sw**4)*reglog(MU_R**2/MW**2) + 18*cw**2*(MH**2 + MZ**2)*reglog(MU_R**2/MZ**2) + (2*(-108*MW**2*MZ**2 + 27*cw**6*(20*MW**2*MZ**2 + 13*MZ**4) + 18*cw**4*MZ**2*(-4*MW**2 + MZ**2)*sw**2 - cw**2*(9*MH**4 - 36*MH**2*MZ**2 + MZ**2*(180*MW**2*sw**4 + 2*MT**2*Ncol*(-9 - 48*sw**2 + 64*sw**4) + MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 + 4*cw**2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4 - (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4))/(3456.*cw**4*MZ**2*cmath.pi**2*sw**2)))/(2.*sw))'+'+'+dMB_SWCoup_UV_EW.value[0]},
4984 texname = '\delta SW')
4985
4986
4987 CWCoup_UV_EW = CTParameter(name = 'CWCoup_UV_EW',
4988 type = 'complex',
4989- value = {-1:'re((ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))))/(1152.*cw**3*MW**2*MZ**2*cmath.pi**2*sw**2))'+'+'+dMB_CWCoup_UV_EW.value[-1],
4990- 0:'re(-(ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4))))*reglog(4*cmath.pi))/(1152.*cw**3*MW**2*MZ**2*cmath.pi**2*sw**2) + (cw*((ee**2*((2*(cw**2*(3*MH**4 - 18*MH**2*MW**2 + 3*(MZ**4 - 2*MT**4*Ncol) - 6*MW**2*(3*MZ**2 + MT**2*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi))) - 2*MW**4*(-83 + 178*sw**2 + 93*reglog(cmath.pi) - 114*sw**2*reglog(cmath.pi) - 6*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi)) - 186*reglog(2*cmath.pi) + 228*sw**2*reglog(2*cmath.pi))) + 4*cw**4*(6*MZ**4 + MW**4*(-107 + 66*reglog(cmath.pi) - 132*reglog(2*cmath.pi)) + 9*MW**2*MZ**2*(-6 - reglog(4*cmath.pi))) + 36*MW**4*sw**4*(2 + reglog(4*cmath.pi))))/(cw**2*MW**2) - (6*MH**2*(MH**2 - 3*MW**2)*reglog(MU_R**2/MH**2))/MW**2 - 12*(3*MT**2 - 2*MW**2)*Ncol*reglog(MU_R**2/MT**2) + 6*(MH**2 + (1 + 8*cw**2)*MZ**2 + MW**2*(38 - 28*cw**2 - 76*sw**2))*reglog(MU_R**2/MW**2) - (6*(1 + 8*cw**2)*MZ**2*(-3*MW**2 + MZ**2)*reglog(MU_R**2/MZ**2))/MW**2 - (12*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**4 + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) - cw**2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4 - 4*MW**2*MZ**2 + MZ**4) - 12*MW**4*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) - (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) + (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 + 24*MW**2*(3 + 2*Ncol)*reglog(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4 - (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4))/(1152.*MW**2*cmath.pi**2*sw**2) - (ee**2*((2*(-108*MW**2*MZ**2*(-2 + reglog(1/(4.*cmath.pi))) + 6*cw**4*MZ**2*sw**2*(24*MW**2 + MZ**2*(-8 - reglog(64) - 3*reglog(cmath.pi))) + 9*cw**6*MZ**2*(24*MW**2*(-5 + reglog(1/(4.*cmath.pi))) + MZ**2*(-80 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(9*MH**4 - 54*MH**2*MZ**2 + MZ**2*(2*(-36*MW**2*sw**4*(-5 - reglog(64) - 3*reglog(cmath.pi)) + MT**2*Ncol*(-96*sw**2 + 128*sw**4 - 9*(2 + reglog(64) + 3*reglog(cmath.pi)))) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(59 - 39*reglog(cmath.pi) - 24*sw**2*(5 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(248 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**2 - (18*cw**2*MH**2*(MH**2 - 3*MZ**2)*reglog(MU_R**2/MH**2))/MZ**2 - 8*cw**2*MT**2*Ncol*(9 - 24*sw**2 + 32*sw**4)*reglog(MU_R**2/MT**2) + 72*cw**2*MW**2*(9*cw**4 - 2*cw**2*sw**2 + sw**4)*reglog(MU_R**2/MW**2) + 18*cw**2*(MH**2 + MZ**2)*reglog(MU_R**2/MZ**2) + (2*(-108*MW**2*MZ**2 + 27*cw**6*(20*MW**2*MZ**2 + 13*MZ**4) + 18*cw**4*MZ**2*(-4*MW**2 + MZ**2)*sw**2 - cw**2*(9*MH**4 - 36*MH**2*MZ**2 + MZ**2*(180*MW**2*sw**4 + 2*MT**2*Ncol*(-9 - 48*sw**2 + 64*sw**4) + MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 + 4*cw**2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglog(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + 18*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 - (9*cw**2*(cw**4*(60*MW**2 + 39*MZ**2) + 2*cw**2*(-4*MW**2 + MZ**2)*sw**2 - (20*MW**2 + MZ**2)*sw**4)*(MZ**2 - cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))*reglog((MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))/(-MZ**2 + cmath.sqrt(MZ**2*(-4*MW**2 + MZ**2 + vep*complex(0,4))))))/MZ**2 + (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((MH**2 - 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4 - (9*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MZ**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MZ**2 + MZ**2*vep*complex(0,4)))))/MZ**4))/(3456.*cw**4*MZ**2*cmath.pi**2*sw**2)))/2.)'+'+'+dMB_CWCoup_UV_EW.value[0]},
4991+ value = {-1:'recms(CMSParam==1.0 and (WW != 0 or WZ != 0),(ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4)))))/(1152.*cw**3*MW**2*MZ**2*cmath.pi**2*sw**2))'+'+'+dMB_CWCoup_UV_EW.value[-1],
4992+ 0:'recms(CMSParam==1.0 and (WW != 0 or WZ != 0),-(ee**2*(-18*(2*cw**6*MZ**4 + cw**4*MT**2*MZ**2*Ncol) + 36*MW**4*(-1 + 2*cw**6 - 2*cw**2*sw**4) + cw**2*MW**2*(18*MT**2*Ncol - MZ**2*(39 + 147*cw**4 - 72*sw**2 + 111*sw**4 - 6*cw**2*(31 + 6*Ncol - 37*sw**2) + 4*Ncol*(9 - 18*sw**2 + 20*sw**4))))*reglog(4*cmath.pi))/(1152.*cw**3*MW**2*MZ**2*cmath.pi**2*sw**2) + (cw*((ee**2*((2*(cw**2*(3*MH**4 - 18*MH**2*MW**2 + 3*(MZ**4 - 2*MT**4*Ncol) - 6*MW**2*(3*MZ**2 + MT**2*Ncol*(2 + reglog(64) + 3*reglog(cmath.pi))) - 2*MW**4*(-83 + 178*sw**2 + 93*reglog(cmath.pi) - 114*sw**2*reglog(cmath.pi) - 6*Ncol*(5 + reglog(64) + 3*reglog(cmath.pi)) - 186*reglog(2*cmath.pi) + 228*sw**2*reglog(2*cmath.pi))) + 4*cw**4*(6*MZ**4 + MW**4*(-107 + 66*reglog(cmath.pi) - 132*reglog(2*cmath.pi)) + 9*MW**2*MZ**2*(-6 - reglog(4*cmath.pi))) + 36*MW**4*sw**4*(2 + reglog(4*cmath.pi))))/(cw**2*MW**2) - (6*MH**2*(MH**2 - 3*MW**2)*reglog(MU_R**2/MH**2))/MW**2 - 12*(3*MT**2 - 2*MW**2)*Ncol*reglog(MU_R**2/MT**2) + 6*(MH**2 + (1 + 8*cw**2)*MZ**2 + MW**2*(38 - 28*cw**2 - 76*sw**2))*reglog(MU_R**2/MW**2) - (6*(1 + 8*cw**2)*MZ**2*(-3*MW**2 + MZ**2)*reglog(MU_R**2/MZ**2))/MW**2 - (12*(MT - MW)**2*(MT + MW)**2*(MT**2 + 2*MW**2)*Ncol*reglog((MT**2 - MW**2 + vep*complex(0,-1))/MT**2))/MW**4 + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) - cw**2*(MH**4 - 4*MH**2*MW**2 + 12*MW**4 - 4*MW**2*MZ**2 + MZ**4) - 12*MW**4*sw**4)*reglog((MW**2 + vep*complex(0,-1))/MU_R**2))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 - cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) + (6*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2.*MW**2)))/(cw**2*MW**2) - (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((-MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(2*MW**2 - MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) + (3*(cw**4*(60*MW**4 + 44*MW**2*MZ**2 - 8*MZ**4) + cw**2*(4*MW**2*MZ**2 - MZ**4) - 12*MW**4*sw**4)*(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))*reglog((MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))/(-2*MW**2 + MZ**2 + cmath.sqrt(MZ**4 - 4*MW**2*(MZ**2 + vep*complex(0,-1))))))/(cw**2*MW**4) - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 - (6*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MW**2*(MH**2 + vep*complex(0,-1))))/(2.*MW**2)))/MW**2 + 24*MW**2*(3 + 2*Ncol)*reglogp(-(MU_R**2/(MW**2 + vep*complex(0,1)))) + (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((MH**2 - 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4 - (3*(MH**4 - 4*MH**2*MW**2 + 12*MW**4)*(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))*reglog((-MH**2 + 2*MW**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))/(-MH**2 + cmath.sqrt(MH**4 - 4*MH**2*MW**2 + MW**2*vep*complex(0,4)))))/MW**4))/(1152.*MW**2*cmath.pi**2*sw**2) - (ee**2*((2*(-108*MW**2*MZ**2*(-2 + reglog(1/(4.*cmath.pi))) + 6*cw**4*MZ**2*sw**2*(24*MW**2 + MZ**2*(-8 - reglog(64) - 3*reglog(cmath.pi))) + 9*cw**6*MZ**2*(24*MW**2*(-5 + reglog(1/(4.*cmath.pi))) + MZ**2*(-80 + 39*reglog(cmath.pi) - 78*reglog(2*cmath.pi))) + cw**2*(9*MH**4 - 54*MH**2*MZ**2 + MZ**2*(2*(-36*MW**2*sw**4*(-5 - reglog(64) - 3*reglog(cmath.pi)) + MT**2*Ncol*(-96*sw**2 + 128*sw**4 - 9*(2 + reglog(64) + 3*reglog(cmath.pi)))) + MZ**2*(4*Ncol*(9 - 18*sw**2 + 20*sw**4)*(5 + reglog(64) + 3*reglog(cmath.pi)) + 3*(59 - 39*reglog(cmath.pi) - 24*sw**2*(5 + reglog(64) + 3*reglog(cmath.pi)) + 78*reglog(2*cmath.pi) + sw**4*(248 - 147*reglog(cmath.pi) + 294*reglog(2*cmath.pi))))))))/MZ**2 - (18*cw**2*MH**2*(MH**2 - 3*MZ**2)*reglog(MU_R**2/MH**2))/MZ**2 - 8*cw**2*MT**2*Ncol*(9 - 24*sw**2 + 32*sw**4)*reglog(MU_R**2/MT**2) + 72*cw**2*MW**2*(9*cw**4 - 2*cw**2*sw**2 + sw**4)*reglog(MU_R**2/MW**2) + 18*cw**2*(MH**2 + MZ**2)*reglog(MU_R**2/MZ**2) + (2*(-108*MW**2*MZ**2 + 27*cw**6*(20*MW**2*MZ**2 + 13*MZ**4) + 18*cw**4*MZ**2*(-4*MW**2 + MZ**2)*sw**2 - cw**2*(9*MH**4 - 36*MH**2*MZ**2 + MZ**2*(180*MW**2*sw**4 + 2*MT**2*Ncol*(-9 - 48*sw**2 + 64*sw**4) + MZ**2*(9*sw**4 + 2*Ncol*(9 - 24*sw**2 + 32*sw**4)))))*reglog((MZ**2 + vep*complex(0,-1))/MU_R**2))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 - cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 - (18*(12*MW**2*MZ**2 + cw**2*(MH**4 - 4*MH**2*MZ**2))*reglog(-1 + (MH**2 + cmath.sqrt(MH**4 - 4*MZ**2*(MH**2 + vep*complex(0,-1))))/(2.*MZ**2)))/MZ**2 + 4*cw**2*MZ**2*(54*(1 - 2*sw**2 + 4*sw**4) + Ncol*(45 - 84*sw**2 + 88*sw**4))*reglogp(-(MU_R**2/(MZ**2 + vep*complex(0,1)))) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 - cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) - 4*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(2.*MZ**2)) + (2*cw**2*Ncol*(MZ**2*(9 - 24*sw**2 + 32*sw**4) + MT**2*(-9 - 48*sw**2 + 64*sw**4))*(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))*reglog((-MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 + vep*complex(0,4))))/(MZ**2 + cmath.sqrt(MZ**2*(-4*MT**2 + MZ**2 +

Subscribers

People subscribed via source and target branches

to all changes: