Himalaya
DSZHiggs.cpp
Go to the documentation of this file.
1 // ====================================================================
2 // This file is part of Himalaya.
3 //
4 // Himalaya is licenced under the GNU General Public License (GNU GPL)
5 // version 3.
6 // ====================================================================
7 
10 #include "himalaya/mh2l/Li2f.hpp"
12 #include <cmath>
13 #include <iostream>
14 #include <limits>
15 #include <mutex>
16 #include <utility>
17 
18 /**
19  * @file DSZHiggs.cpp
20  * @brief Implementation of C++ wrappers for 2-loop FORTRAN routines.
21  */
22 
23 namespace himalaya {
24 namespace mh2l {
25 
26 namespace {
27 
28 /// locks MSSM fortran functions that are not threadsafe
29 std::mutex mtx;
30 
31 template <typename T> T constexpr sqr(T a) { return a * a; }
32 template <typename T> T sqrtabs(T a) { return std::sqrt(std::abs(a)); }
33 template <typename T> T logabs(T x) { return std::log(std::abs(x)); }
34 
35 /// limit st -> 0 and mst1 -> mst2
36 Eigen::Matrix<double, 2, 2> delta_mh2_2loop_at_as_st_0_mst1_eq_mst2(
37  double mt2, double mg, double mst12, double /* mst22 */,
38  double /* sxt */, double /* cxt */, double scale2, double mu,
39  double tanb, double vev2, double g3, int /* scheme */)
40 {
41  constexpr double Pi2 = M_PI * M_PI;
42  constexpr double Pi4 = M_PI * M_PI * M_PI * M_PI;
43  const double g = sqr(mg);
44  const double g2 = sqr(g);
45  const double q = scale2;
46  const double t = mt2;
47  const double tsq = sqr(t);
48  const double T = mst12;
49  const double Tsq = sqr(mst12);
50  const double del = g2 + tsq + Tsq - 2*(g*t + g*T + t*T);
51  const double rdel = sqrtabs(del);
52  const double sb = std::sin(std::atan(tanb));
53  const double ht2 = 2./vev2*mt2/sqr(sb);
54 
55  Eigen::Matrix<double, 2, 2> result;
56 
57  result(0,0) = 0.;
58 
59  result(0,1) = (sqr(g3)*ht2*mg*mt2*mu* (-1 + logabs(t/q) -
60  (T*((2*del* (-(logabs(t/g)/T) - (2*(g + t - T +
61  g*sqrtabs(del/g2))* logabs((g + t - T - g*sqrtabs(del/g2))/
62  (2.*g)))/ (g*sqrtabs(del/g2)* (t - T + g*(-1 +
63  sqrtabs(del/g2)))) + (2*logabs((g - t + T - g*sqrtabs(del/g2))/
64  (2.*g)))/(g*sqrtabs(del/g2)) - (2*((g + t - T +
65  g*sqrtabs(del/g2))* logabs((g + t - T + g*sqrtabs(del/g2))/
66  (2.*g)) + (g - t + T - g*sqrtabs(del/g2))* logabs((g - t + T +
67  g*sqrtabs(del/g2))/ (2.*g))))/ (g*sqrtabs(del/g2)* (t - T +
68  g*(-1 + sqrtabs(del/g2))))))/ g2 + (2*(g + t - T)*(Pi2 -
69  3*logabs(t/g)*logabs(T/g) + 6*logabs((g + t - T -
70  g*sqrtabs(del/g2))/(2.*g))*logabs((g - t + T -
71  g*sqrtabs(del/g2))/(2.*g)) - 6*li2((g + t - T -
72  g*sqrtabs(del/g2))/(2.*g)) - 6*li2((g - t + T -
73  g*sqrtabs(del/g2))/(2.*g))))/ (3.*g2)))/(2.*std::pow(std::abs(del)/g2,1.5))))/
74  (8.*Pi4*T);
75 
76  result(1,0) = result(0,1);
77 
78  result(1,1) = (sqr(g3)*ht2*mt2*(-2 - (8*(g + t)*(-1 +
79  logabs(g/q)))/T + 8*logabs(t/g) + 6*(-1 + logabs(t/q)) +
80  8*sqr(logabs(t/q)) - 4*logabs(T/g) + (4*((g2*T - sqr(t - T)*(2*t
81  + T) + 2*g*t*(t + 5*T))*logabs(t/g) +
82  4*g2*T*logabs(T/g)))/(del*T) + 2*logabs(T/q) -
83  8*sqr(logabs(T/q)) + 5*logabs(Tsq/tsq) + sqr(logabs(Tsq/tsq)) +
84  (4*g2*(g + t - T)*(Pi2 - 6*li2((g + t - T -
85  g*sqrtabs(del/g2))/ (2.*g)) - 6*li2((g - t + T -
86  g*sqrtabs(del/g2))/(2.*g)) - 3*logabs(t/g)*logabs(T/g) +
87  6*logabs((-rdel + g + t - T)/(2.*g))* logabs((-rdel + g - t +
88  T)/(2.*g))))/(3.*std::pow(std::abs(del),1.5)) + (4*g*(g + t - T)*(Pi2 -
89  6*li2((g + t - T - g*sqrtabs(del/g2))/(2.*g)) - 6*li2((g - t
90  + T - g*sqrtabs(del/g2))/ (2.*g)) - 3*logabs(t/g)*logabs(T/g) +
91  6*logabs((g + t - T - g*sqrtabs(del/g2))/(2.*g))* logabs((g - t
92  + T - g*sqrtabs(del/g2))/(2.*g))))/ (3.*del*sqrtabs(del/g2)) +
93  (8*mg*mu*(1/T - logabs(t/q)/T + (g*(g + t - T)* (Pi2 -
94  6*li2((g + t - T - g*sqrtabs(del/g2))/(2.*g)) - 6*li2((g - t
95  + T - g*sqrtabs(del/g2))/ (2.*g)) - 3*logabs(t/g)*logabs(T/g) +
96  6*logabs((-rdel + g + t - T)/(2.*g))*logabs((-rdel + g - t +
97  T)/(2.*g))))/ (3.*std::pow(std::abs(del),1.5)) + (g*(-(logabs(t/g)/T) -
98  (2*(-(g*logabs(4.)) + (rdel + g + t - T)*logabs((-rdel + g + t -
99  T)/g) + (-rdel + g - t + T)*logabs((-rdel + g - t + T)/g)))/
100  (rdel*(rdel - g + t - T)) - 2*(((rdel + g + t - T)* logabs((g +
101  t - T + g*sqrtabs(del/g2))/ (2.*g)))/ (rdel*(t - T + g*(-1 +
102  sqrtabs(del/g2)))) - ((rdel - g - t + T)* logabs((g - t + T +
103  g*sqrtabs(del/g2))/ (2.*g)))/ (rdel*(-t + T + g*(-1 +
104  sqrtabs(del/g2)))))))/ rdel))/tanb))/(32.*Pi4);
105 
106  return result;
107 }
108 
109 /// Pietro Slavich implementation
110 Eigen::Matrix<double, 2, 2> delta_mh2_2loop_at_as_general(
111  double mt2, double mg, double mst12, double mst22,
112  double sxt, double cxt, double scale2, double mu,
113  double tanb, double vev2, double g3, int scheme)
114 {
115  Eigen::Matrix<double, 2, 2> result;
116 
117  dszhiggs_(&mt2, &mg, &mst12, &mst22, &sxt, &cxt, &scale2, &mu,
118  &tanb, &vev2, &g3, &scheme,
119  &result(0,0), &result(1,1), &result(0,1));
120 
121  result(1,0) = result(0,1);
122 
123  return result;
124 }
125 
126 Eigen::Matrix<double, 2, 2> rotate_by(double dm2, double tanb)
127 {
128  const double tanb2 = sqr(tanb);
129  const double sinb = tanb / sqrtabs(1. + tanb2);
130  const double cosb = 1. / sqrtabs(1. + tanb2);
131 
132  Eigen::Matrix<double, 2, 2> result;
133 
134  result(0,0) = dm2 * sqr(sinb);
135  result(0,1) = - dm2 * sinb * cosb;
136  result(1,0) = result(0,1);
137  result(1,1) = dm2 * sqr(cosb);
138 
139  return result;
140 }
141 
142 double calc_At(double mt2, double mst12, double mst22,
143  double sxt, double cxt, double mu, double tanb)
144 {
145  const double s2t = 2*cxt*sxt;
146  const double Xt = (mst12 - mst22)*s2t/2./sqrtabs(mt2);
147  const double At = Xt - mu/tanb;
148 
149  return At;
150 }
151 
152 double phi(double x, double y, double z)
153 {
154  const double u = x/z, v = y/z;
155  const double lambda = sqrtabs(sqr(1 - u - v) - 4*u*v);
156  const double xp = 0.5 * (1 + (u - v) - lambda);
157  const double xm = 0.5 * (1 - (u - v) - lambda);
158 
159  return 1./lambda * (2*logabs(xp)*logabs(xm) - logabs(u)*logabs(v) -
160  2*(li2(xp) + li2(xm)) + M_PI*M_PI/3.);
161 }
162 
163 /// First derivative of phi[t,T,g] w.r.t. T
164 double dphi_010(double t, double T, double g)
165 {
166  constexpr double Pi2 = M_PI * M_PI;
167  const double g2 = sqr(g);
168  const double abbr = (-4*t*T)/g2 + sqr(1 - t/g - T/g);
169  const double rabbr = sqrtabs(abbr);
170 
171  return ((g + t - T)*(Pi2 - 6*li2((g - rabbr*g + t - T)/(2.*g)) -
172  6*li2((g - rabbr*g - t + T)/(2.*g)) -
173  3*logabs(t/g)*logabs(T/g) + 6*logabs((g - rabbr*g + t -
174  T)/(2.*g))*logabs((g - rabbr*g - t + T)/(2.*g))) + (3*rabbr*g* (
175  rabbr*g*((-1 + rabbr)*g + t - T)*logabs(t/g) +
176  2*T*(-2*g*logabs(4.) + (g + rabbr*g + t - T)*logabs((g - rabbr*g
177  + t - T)/g) + (g + rabbr*g + t - T)*logabs((g + rabbr*g + t -
178  T)/g) + g*logabs((g - rabbr*g - t + T)/g) - rabbr*g*logabs((g -
179  rabbr*g - t + T)/g) - t*logabs((g - rabbr*g - t + T)/g) +
180  T*logabs((g - rabbr*g - t + T)/g) + g*logabs((g + rabbr*g - t +
181  T)/g) - rabbr*g*logabs((g + rabbr*g - t + T)/g) - t*logabs((g +
182  rabbr*g - t + T)/g) + T*logabs((g + rabbr*g - t + T)/g)) ) ) /
183  (T*(g - rabbr*g - t + T)))/(3.*std::pow(std::abs(abbr),1.5)*g2);
184 }
185 
186 } // anonymous namespace
187 
189  double mt2, double mg, double mst12, double mst22,
190  double sxt, double cxt, double scale2, double mu,
191  double tanb, double vev2, double g3)
192 {
193  constexpr double Pi2 = M_PI * M_PI;
194  const double g = sqr(mg);
195  const double g2 = sqr(g);
196  const double q = scale2;
197  const double q2 = sqr(scale2);
198  const double t = mt2;
199  const double T = mst12;
200  const double sb = std::sin(std::atan(tanb));
201  const double ht2 = 2./vev2*mt2/sqr(sb);
202  const double At = calc_At(mt2, mst12, mst22, sxt, cxt, mu, tanb);
203 
204  const double result = (-2*(g*(2*At*g + 2*At*t - At*T + mg*T + mg*(g
205  - t)*logabs(g/t) - At*T*logabs(g/q)*logabs(t/q) -
206  mg*T*logabs(g/q)*logabs(t/q) - 4*mg*T*logabs(T/q) -
207  2*At*T*sqr(logabs(T/q)) + logabs((g*t)/q2)*(-(At*(g + t - T)) +
208  mg*T + (At + mg)*T*logabs(T/q))) - 2*(At + mg)*(g + t -
209  T)*T*phi(t,T,g) + T*(At*(g2 + sqr(t - T) - 2*g*T) + mg*(g2 +
210  sqr(t - T) - 2*g*(t + T)))*dphi_010(t,T,g)))/ (g*T);
211 
212  const double pref = 4*sqr(g3)/sqr(16*Pi2) * ht2*mu*(1./tanb + tanb);
213 
214  return pref * result;
215 }
216 
218  double mt2, double mg, double mst12, double mst22,
219  double sxt, double cxt, double scale2, double mu,
220  double tanb, double vev2, double g3)
221 {
222  double result = 0.;
223 
224  dszodd_(&mt2, &mg, &mst12, &mst22, &sxt, &cxt, &scale2, &mu,
225  &tanb, &vev2, &g3, &result);
226 
227  return result;
228 }
229 
230 /// 2-loop contribution to CP-odd Higgs O(at*as)
232  double mt2, double mg, double mst12, double mst22,
233  double sxt, double cxt, double scale2, double mu,
234  double tanb, double vev2, double g3)
235 {
236  if (std::abs((mst12 - mst22)/mst12) < 1e-8) {
237  const double At = calc_At(mt2, mst12, mst22, sxt, cxt, mu, tanb);
238 
239  // if At = 0 => mu = 0 => dMA(2L) = 0
240  if (std::abs(At) < std::numeric_limits<double>::epsilon())
241  return 0.;
242 
244  mt2, mg, mst12, mst22, sxt, cxt, scale2, mu, tanb, vev2, g3);
245  }
246 
248  mt2, mg, mst12, mst22, sxt, cxt, scale2, mu, tanb, vev2, g3);
249 }
250 
252  double mt2, double mb2, double mA2, double mst12,
253  double mst22, double msb12, double msb22,
254  double sxt, double cxt, double sxb, double cxb,
255  double scale2, double mu, double tanb, double vev2, int atat)
256 {
257  double result = 0.;
258 
259  {
260  std::lock_guard<std::mutex> lg(mtx);
261 
262  ddsodd_(&mt2, &mb2, &mA2, &mst12, &mst22, &msb12, &msb22,
263  &sxt, &cxt, &sxb, &cxb, &scale2, &mu, &tanb, &vev2, &result, &atat);
264  }
265 
266  return result;
267 }
268 
269 Eigen::Matrix<double, 2, 2> delta_mh2_2loop_at_as(
270  double mt2, double mg, double mst12, double mst22,
271  double sxt, double cxt, double scale2, double mu,
272  double tanb, double vev2, double g3,
273  int include_heavy_higgs)
274 {
275  Eigen::Matrix<double, 2, 2> result;
276 
277  if (std::abs((mst12 - mst22)/mst12) < 1e-8) {
278  result = delta_mh2_2loop_at_as_st_0_mst1_eq_mst2(
279  mt2, mg, mst12, mst22, sxt, cxt, scale2, mu, tanb, vev2, g3, 0);
280  } else {
281  result = delta_mh2_2loop_at_as_general(
282  mt2, mg, mst12, mst22, sxt, cxt, scale2, mu, tanb, vev2, g3, 0);
283  }
284 
285  const double dMA = include_heavy_higgs
287  mt2, mg, mst12, mst22, sxt, cxt, scale2, mu, tanb, vev2, g3)
288  : 0.;
289 
290  return result + rotate_by(dMA, tanb);
291 }
292 
293 Eigen::Matrix<double, 2, 2> delta_mh2_2loop_at_at(
294  double mt2, double mb2, double mA2, double mst12,
295  double mst22, double msb12, double msb22,
296  double sxt, double cxt, double sxb, double cxb,
297  double scale2, double mu, double tanb, double vev2,
298  int include_heavy_higgs, int atat)
299 {
300  Eigen::Matrix<double, 2, 2> result;
301 
302  {
303  std::lock_guard<std::mutex> lg(mtx);
304 
305  ddshiggs_(&mt2, &mb2, &mA2, &mst12, &mst22, &msb12, &msb22,
306  &sxt, &cxt, &sxb, &cxb, &scale2, &mu, &tanb, &vev2,
307  &result(0,0), &result(0,1), &result(1,1), &atat);
308  }
309 
310  result(1,0) = result(0,1);
311 
312  const double dMA = include_heavy_higgs
314  mt2, mb2, mA2, mst12, mst22, msb12, msb22,
315  sxt, cxt, sxb, cxb, scale2, mu, tanb, vev2, atat)
316  : 0.;
317 
318  return result + rotate_by(dMA, tanb);
319 }
320 
321 Eigen::Matrix<double, 2, 2> delta_mh2_2loop_ab_as(
322  double mb2, double mg, double msb12, double msb22,
323  double sxb, double cxb, double scale2, double mu,
324  double cotb, double vev2, double g3,
325  int include_heavy_higgs)
326 {
327  Eigen::Matrix<double, 2, 2> result(delta_mh2_2loop_at_as(
328  mb2, mg, msb12, msb22, sxb, cxb, scale2, mu,
329  cotb, vev2, g3, include_heavy_higgs));
330 
331  std::swap(result(0,0), result(1,1));
332 
333  return result;
334 }
335 
337  double mtau2, double mA2, double msv2, double mstau12,
338  double mstau22, double sintau, double costau, double scale2,
339  double mu, double tanb, double vev2)
340 {
341  double result = 0.;
342 
343  tausqodd_(&mtau2, &mA2, &msv2, &mstau12, &mstau22, &sintau,
344  &costau, &scale2, &mu, &tanb, &vev2, &result);
345 
346  return result;
347 }
348 
349 Eigen::Matrix<double, 2, 2> delta_mh2_2loop_atau_atau(
350  double mtau2, double mA2, double msv2, double mstau12,
351  double mstau22, double sintau, double costau, double scale2,
352  double mu, double tanb, double vev2,
353  int include_heavy_higgs)
354 {
355  int scheme = 0;
356  Eigen::Matrix<double, 2, 2> result;
357 
358  tausqhiggs_(&mtau2, &mA2, &msv2, &mstau12, &mstau22, &sintau,
359  &costau, &scale2, &mu, &tanb, &vev2, &scheme,
360  &result(0,0), &result(1,1), &result(0,1));
361 
362  result(1,0) = result(0,1);
363 
364  const double dMA = include_heavy_higgs
366  mtau2, mA2, msv2, mstau12, mstau22, sintau, costau, scale2,
367  mu, tanb, vev2)
368  : 0.;
369 
370  return result + rotate_by(dMA, tanb);
371 }
372 
374  double mtau2, double mb2,
375  double mstau12, double mstau22, double msb12, double msb22,
376  double sintau, double costau, double sxb, double cxb,
377  double scale2, double mu, double tanb, double vev2)
378 {
379  double result = 0.;
380 
381  taubotodd_(&mtau2, &mb2,
382  &mstau12, &mstau22, &msb12, &msb22,
383  &sintau, &costau, &sxb, &cxb,
384  &scale2, &mu, &tanb, &vev2, &result);
385 
386  return result;
387 }
388 
389 Eigen::Matrix<double, 2, 2> delta_mh2_2loop_ab_atau(
390  double mtau2, double mb2,
391  double mstau12, double mstau22, double msb12, double msb22,
392  double sintau, double costau, double sxb, double cxb,
393  double scale2, double mu, double tanb, double vev2,
394  int include_heavy_higgs)
395 {
396  Eigen::Matrix<double, 2, 2> result;
397 
398  taubot_(&mtau2, &mb2,
399  &mstau12, &mstau22, &msb12, &msb22,
400  &sintau, &costau, &sxb, &cxb,
401  &scale2, &mu, &tanb, &vev2,
402  &result(0,0), &result(1,1), &result(0,1));
403 
404  result(1,0) = result(0,1);
405 
406  const double dMA = include_heavy_higgs
408  mtau2, mb2, mstau12, mstau22, msb12, msb22, sintau, costau, sxb, cxb,
409  scale2, mu, tanb, vev2)
410  : 0.;
411 
412  return result + rotate_by(dMA, tanb);
413 }
414 
415 } // namespace mh2l
416 } // namespace himalaya
truncate the expansion depth in At/Ab by one order
Definition: H3.cpp:14
int dszodd_(double *t, double *g, double *T1, double *T2, double *st, double *ct, double *q, double *mu, double *tanb, double *vv, double *gs, double *dma)
Eigen::Matrix< double, 2, 2 > delta_mh2_2loop_at_at(double mt2, double mb2, double mA2, double mst12, double mst22, double msb12, double msb22, double sxt, double cxt, double sxb, double cxb, double scale2, double mu, double tanb, double vev2, int include_heavy_higgs, int atat)
2-loop CP-even Higgs contribution O(at^2)
Definition: DSZHiggs.cpp:293
double delta_ma2_2loop_atau_atau(double mtau2, double mA2, double msv2, double mstau12, double mstau22, double sintau, double costau, double scale2, double mu, double tanb, double vev2)
Definition: DSZHiggs.cpp:336
Eigen::Matrix< double, 2, 2 > delta_mh2_2loop_ab_as(double mb2, double mg, double msb12, double msb22, double sxb, double cxb, double scale2, double mu, double cotb, double vev2, double g3, int include_heavy_higgs)
2-loop CP-even Higgs contribution O(ab*as)
Definition: DSZHiggs.cpp:321
double delta_ma2_2loop_at_as_general(double mt2, double mg, double mst12, double mst22, double sxt, double cxt, double scale2, double mu, double tanb, double vev2, double g3)
Definition: DSZHiggs.cpp:217
Eigen::Matrix< double, 2, 2 > delta_mh2_2loop_ab_atau(double mtau2, double mb2, double mstau12, double mstau22, double msb12, double msb22, double sintau, double costau, double sxb, double cxb, double scale2, double mu, double tanb, double vev2, int include_heavy_higgs)
2-loop CP-even Higgs contribution O(ab*atau)
Definition: DSZHiggs.cpp:389
int taubot_(double *t, double *b, double *T1, double *T2, double *B1, double *B2, double *st, double *ct, double *sb, double *cb, double *q, double *mu, double *tanb, double *vv, double *S11, double *S22, double *S12)
Eigen::Matrix< double, 2, 2 > delta_mh2_2loop_atau_atau(double mtau2, double mA2, double msv2, double mstau12, double mstau22, double sintau, double costau, double scale2, double mu, double tanb, double vev2, int include_heavy_higgs)
2-loop CP-even Higgs contribution O(atau^2)
Definition: DSZHiggs.cpp:349
Eigen::Matrix< double, 2, 2 > delta_mh2_2loop_at_as(double mt2, double mg, double mst12, double mst22, double sxt, double cxt, double scale2, double mu, double tanb, double vev2, double g3, int include_heavy_higgs)
2-loop CP-even Higgs contribution O(at*as)
Definition: DSZHiggs.cpp:269
int ddshiggs_(double *t, double *b, double *A0, double *T1, double *T2, double *B1, double *B2, double *st, double *ct, double *sb, double *cb, double *q, double *mu, double *tanb, double *vv, double *S11, double *S12, double *S22, int *atat)
enum definitions
double delta_ma2_2loop_ab_atau(double mtau2, double mb2, double mstau12, double mstau22, double msb12, double msb22, double sintau, double costau, double sxb, double cxb, double scale2, double mu, double tanb, double vev2)
Definition: DSZHiggs.cpp:373
Contains two-loop routines from Slavich et al.
int taubotodd_(double *t, double *b, double *T1, double *T2, double *B1, double *B2, double *st, double *ct, double *sb, double *cb, double *q, double *mu, double *tanb, double *vv, double *dma)
int tausqodd_(double *t, double *A0, double *BL, double *T1, double *T2, double *st, double *ct, double *q, double *mu, double *tanb, double *vv, double *dma)
double li2(double x)
real dilogarithm from FORTRAN module
Definition: Li2f.cpp:17
double delta_ma2_2loop_at_at(double mt2, double mb2, double mA2, double mst12, double mst22, double msb12, double msb22, double sxt, double cxt, double sxb, double cxb, double scale2, double mu, double tanb, double vev2, int atat)
Definition: DSZHiggs.cpp:251
function declarations for 2-loop MSSM Higgs contributions
Complex< T > log(const Complex< T > &z_) noexcept
Definition: complex.hpp:45
double delta_ma2_2loop_at_as_mst1_eq_mst2(double mt2, double mg, double mst12, double mst22, double sxt, double cxt, double scale2, double mu, double tanb, double vev2, double g3)
Definition: DSZHiggs.cpp:188
int tausqhiggs_(double *t, double *A0, double *BL, double *T1, double *T2, double *st, double *ct, double *q, double *mu, double *tanb, double *vv, int *OS, double *S11, double *S22, double *S12)
double delta_ma2_2loop_at_as(double mt2, double mg, double mst12, double mst22, double sxt, double cxt, double scale2, double mu, double tanb, double vev2, double g3)
2-loop contribution to CP-odd Higgs O(at*as)
Definition: DSZHiggs.cpp:231
int ddsodd_(double *t, double *b, double *A0, double *T1, double *T2, double *B1, double *B2, double *st, double *ct, double *sb, double *cb, double *q, double *mu, double *tanb, double *vv, double *dma, int *atat)
int dszhiggs_(double *t, double *g, double *T1, double *T2, double *st, double *ct, double *q, double *mu, double *tanb, double *vv, double *gs, int *OS, double *S11, double *S22, double *S12)
double precision function phi(x, y, z)
Definition: DSZHiggs.f:5161