-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnnuhm.c
141 lines (117 loc) · 5.79 KB
/
nnuhm.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "src/include.h"
#include "src/nmssmtools.h"
#define USE_NMSSMTOOLS /* to be commented if NMSSMTOOLS is unavailable */
/*--------------------------------------------------------------------*/
/* Calculation of the observables, corresponding to an NNUHM point generated by NMSSMTools */
/*--------------------------------------------------------------------*/
int main(int argc,char** argv)
{
char name[200];
double m0,m12,tanb,A0,lambda,AK,sgnmu,MHDGUT,MHUGUT,mtop,mbot,alphas_mz,delta0;
double obs[Nobs_BKsll+1];
if(argc<8)
{
printf(" This program needs 7 parameters:\n"
" m0 universal scalar mass at GUT scale\n"
" m12 universal gaugino mass at GUT scale\n"
" A0 trilinear soft breaking parameter at GUT scale\n"
" tanb tan(beta) \n"
" lambda Yukawa coupling\n"
" MHDGUT Down Higgs mass at GUT scale\n"
" MHUGUT Up Higgs mass at GUT scale\n");
printf(" Auxiliary parameters are:\n"
" sgnmu +/-1, sign of Higgsino mass term (default 1)\n" " AK (if different from A0)\n"
" mtop top quark pole mass\n"
" mbot Mb(Mb) scale independent b-quark mass\n"
" alphas_mz strong coupling at MZ\n");
exit(1);
}
else
{
sscanf(argv[1],"%lf",&m0);
sscanf(argv[2],"%lf",&m12);
sscanf(argv[3],"%lf",&A0);
sscanf(argv[4],"%lf",&tanb);
sscanf(argv[5],"%lf",&lambda);
sscanf(argv[6],"%lf",&MHDGUT);
sscanf(argv[7],"%lf",&MHUGUT);
if(argc>8) sscanf(argv[8],"%lf",&sgnmu); else sgnmu=1;
if(argc>9) sscanf(argv[9],"%lf",&AK); else AK=A0;
if(argc>10) sscanf(argv[10],"%lf",&mtop); else mtop=173.34;
if(argc>11) sscanf(argv[11],"%lf",&mbot); else mbot=4.18;
if(argc>12) sscanf(argv[12],"%lf",&alphas_mz); else alphas_mz=0.1184;
}
int filesOK=1;
#ifdef USE_NMSSMTOOLS
if(!test_file(NMSSMTools))
{
printf("\"%s\" absent. Please check the NMSSMTOOLS path or comment \"#define USE_NMSSMTOOLS\" in nnuhm.c\n",NMSSMTools);
filesOK=0;
}
#endif
if(!filesOK) return 1;
if(!test_file("tmp")) system("mkdir tmp");
chdir("tmp");
printf("\n");
printf("SuperIso v3.4 - F. Mahmoudi\n\n");
#ifdef USE_NMSSMTOOLS
sprintf(name,"nnuhm_nmssmtools%d.tmplha",getpid());
nmssmtools_nnuhm(m0, m12, tanb, A0, MHDGUT, MHUGUT, lambda, AK, sgnmu, mtop, mbot, alphas_mz,name);
printf("NNUHM - SLHA file generated by NMSSMTOOLS\n\n");
delta0=delta0_calculator(name);
if(delta0 !=0.)
{
printf("Observable\t\t\tValue\n\n");
printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);
printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
printf("P1(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
printf("P2(B->K* mu mu)_low\t\t%.3e\n",obs[14]);
printf("P4'(B->K* mu mu)_low\t\t%.3e\n",obs[17]);
printf("P5'(B->K* mu mu)_low\t\t%.3e\n",obs[18]);
printf("P6'(B->K* mu mu)_low\t\t%.3e\n",obs[19]);
printf("P8'(B->K* mu mu)_low\t\t%.3e\n",obs[21]);
printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
printf("P1(B->K* mu mu)_high\t\t%.3e\n",obs[5]);
printf("P2(B->K* mu mu)_high\t\t%.3e\n",obs[14]);
printf("P4'(B->K* mu mu)_high\t\t%.3e\n",obs[17]);
printf("P5'(B->K* mu mu)_high\t\t%.3e\n",obs[18]);
printf("P6'(B->K* mu mu)_high\t\t%.3e\n",obs[19]);
printf("P8'(B->K* mu mu)_high\t\t%.3e\n",obs[21]);
printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));
printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));
printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));
printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));
printf("excluded_collider_NMSSMTools\t%d\n",NMSSM_collider_excluded(name));
printf("theory_excluded\t\t\t%d\n",NMSSM_theory_excluded(name));
printf("charged_LSP\t\t\t%d\n\n",charged_LSP_calculator(name));
flha_generator(name,"../output.flha");
printf("output.flha generated\n\n");
}
else printf("Invalid point\n\n");
sprintf(name,"rm nnuhm_nmssmtools%d.tmplha",getpid());
system(name);
#endif
return 1;
}