int main () { int i,loop = 0; TSIL_REAL Qi,Qf,Q0,dQ; /* Disable annoying warning messages */ fclose (stderr); /* Set benchmark model: */ SUMO_SetTestModel (); /* Minimize 2-loop Veff, just for fun (vevs are already correct in benchmark model): */ SUMO_Minimize_Veff (2); /* Set up for stepping in Q */ Q0 = Q; Qi = 500.0; Qf = 2.0*Q0; dQ = (Qf - Qi)/NSTEPS; /* This is the gluino running mass at the reference scale Q0: */ printf("%Lf\n", SUMO_SQRT(m2_gluino)); /* Now do the scan... */ SUMO_RGrun (Qi, 2); while (Q < Qf) { SUMO_GluinoPole (1); printf("%Lf\t%Lf\t", Q, SUMO_SQRT(M2_gluino)); SUMO_GluinoPole (2); printf("%Lf\n", SUMO_SQRT(M2_gluino)); SUMO_RGrun (Q + dQ, 2); } return 0; }
void higherorder (supermodel *smodel) { int i; /* Disable annoying warning messages */ fclose (stderr); #ifdef TSIL_SIZE_DOUBLE vu = smodel->vu; vd = smodel->vd; gp = smodel->gp; g = smodel->g; g3 = smodel->g3; ytop = smodel->ytop; ybot = smodel->ybot; ytau = smodel->ytau; M1 = smodel->m1; M2 = smodel->m2; M3 = smodel->m3; atop = smodel->atop; abot = smodel->abot; atau = smodel->atau; // for(i=0; i<3; i++) { m2Q[i] = smodel->m2Q[i]; m2u[i] = smodel->m2u[i]; m2d[i] = smodel->m2d[i]; m2L[i] = smodel->m2L[i]; m2e[i] = smodel->m2e[i]; } // m2Hu = smodel->m2Hu; m2Hd = smodel->m2Hd; mu = smodel->mu; b = smodel->b; //renormalization scale Q = smodel->Q; #else vu = (long double) smodel->vu; vd = (long double) smodel->vd; gp = (long double) smodel->gp; g = (long double) smodel->g; g3 = (long double) smodel->g3; ytop = (long double) smodel->ytop; ybot = (long double) smodel->ybot; ytau = (long double) smodel->ytau; M1 = (long double) smodel->m1; M2 = (long double) smodel->m2; M3 = (long double) smodel->m3; atop = (long double) smodel->atop; abot = (long double) smodel->abot; atau = (long double) smodel->atau; // for(i=0; i<3; i++) { m2Q[i] = (long double) smodel->m2Q[i]; m2u[i] = (long double) smodel->m2u[i]; m2d[i] = (long double) smodel->m2d[i]; m2L[i] = (long double) smodel->m2L[i]; m2e[i] = (long double) smodel->m2e[i]; } // m2Hu = (long double) smodel->m2Hu; m2Hd = (long double) smodel->m2Hd; mu = (long double) smodel->mu; b = (long double) smodel->b; //renormalization scale Q = (long double) smodel->Q; #endif /* Transfering information */ /* vu = 172.L; vd = 17.2L; gp = 0.36L; g = 0.65L; g3 = 1.06L; ytop = 0.90L; ybot = 0.13L; ytau = 0.10L; M1 = 150.L; M2 = 280.L; M3 = 800.L; atop = -600.L; abot = -150.L; atau = -40.L; m2Q[1] = m2Q[0] = 780.L*780.L; m2u[1] = m2u[0] = 740.L*740.L; m2d[1] = m2d[0] = 735.L*735.L; m2L[1] = m2L[0] = 280.L*280.L; m2e[1] = m2e[0] = 200.L*200.L; m2Q[2] = 700.L*700.L; m2u[2] = 580.L*580.L; m2d[2] = 725.L*725.L; m2L[2] = 270.L*270.L; m2e[2] = 195.L*195.L; m2Hu = -500.L*500.L; m2Hd = 270.L*270.L; mu = 504.1811202L; b = 33937.10367865087L; */ //Check this /* DGR can safely be ignored */ /* LambdaVacuum = 0.L; */ tanbeta = vu/vd; SUMO_Update (); SUMO_Tree_Masses (); SUMO_Tree_Couplings (); /* Minimize 2-loop Veff, to set correct vu,vd,tanbeta: */ /* printf("Before minimizing (vu, vd) = (%Lf, %Lf)\n", vu, vd); */ SUMO_Minimize_Veff (2); /* printf("After minimizing (vu, vd) = (%Lf, %Lf)\n", vu, vd); */ // For debugging purposes printf("Tree-level gluino mass: %Lf \n",SUMO_SQRT(M2_gluino)); SUMO_GluinoPole (1); printf("One-loop gluino mass: %Lf \n",SUMO_SQRT(M2_gluino)); SUMO_GluinoPole (2); printf("Two-loop gluino mass: %Lf \n", SUMO_SQRT(M2_gluino)); #ifdef TSIL_SIZE_DOUBLE smodel->mgluino = SUMO_SQRT(M2_gluino); #else smodel->mgluino = (double) SUMO_SQRT(M2_gluino); #endif }
void higherorder (supermodel *smodel) { int i; /* Disable annoying warning messages */ fclose (stderr); #ifdef TSIL_SIZE_DOUBLE vu = smodel->vu; vd = smodel->vd; gp = smodel->gp; g = smodel->g; g3 = smodel->g3; ytop = smodel->ytop; ybot = smodel->ybot; ytau = smodel->ytau; M1 = smodel->m1; M2 = smodel->m2; M3 = smodel->m3; atop = smodel->atop; abot = smodel->abot; atau = smodel->atau; // for(i=0; i<3; i++) { m2Q[i] = smodel->m2Q[i]; m2u[i] = smodel->m2u[i]; m2d[i] = smodel->m2d[i]; m2L[i] = smodel->m2L[i]; m2e[i] = smodel->m2e[i]; } // m2Hu = smodel->m2Hu; m2Hd = smodel->m2Hd; mu = smodel->mu; b = smodel->b; //renormalization scale Q = smodel->Q; // DGR added: M_top = smodel->mtop; #else vu = (long double) smodel->vu; vd = (long double) smodel->vd; gp = (long double) smodel->gp; g = (long double) smodel->g; g3 = (long double) smodel->g3; ytop = (long double) smodel->ytop; ybot = (long double) smodel->ybot; ytau = (long double) smodel->ytau; M1 = (long double) smodel->m1; M2 = (long double) smodel->m2; M3 = (long double) smodel->m3; atop = (long double) smodel->atop; abot = (long double) smodel->abot; atau = (long double) smodel->atau; // for(i=0; i<3; i++) { m2Q[i] = (long double) smodel->m2Q[i]; m2u[i] = (long double) smodel->m2u[i]; m2d[i] = (long double) smodel->m2d[i]; m2L[i] = (long double) smodel->m2L[i]; m2e[i] = (long double) smodel->m2e[i]; } // m2Hu = (long double) smodel->m2Hu; m2Hd = (long double) smodel->m2Hd; mu = (long double) smodel->mu; b = (long double) smodel->b; //renormalization scale Q = (long double) smodel->Q; // DGR added: M_top = (long double) smodel->mtop; #endif tanbeta = vu/vd; /// DEBUG: Ben has added for checking // TSIL_REAL m2Ztree, mztree; // TSIL_REAL cos2bet; // TSIL_REAL primer818; // TSIL_REAL primer819; // Following uses normalization where VEV is about 175 GeV // vu = vu/sqrt(2.); // vd = vd/sqrt(2.); // printf("Softsusy (vu, vd, tanbeta) = (%Lf, %Lf, %Lf)\n", vu, vd, tanbeta); // SUMO_Update (); // SUMO_Tree_Masses (); // SUMO_Tree_Couplings (); // printf("Supermodel 0-loop (vu, vd) = (%Lf, %Lf)\n", vu, vd); // SUMO_Minimize_Veff (1); // printf("Supermodel 1-loop (vu, vd) = (%Lf, %Lf)\n", vu, vd); // SUMO_Minimize_Veff (2); // printf("Supermodel 2-loop (vu, vd) = (%Lf, %Lf)\n", vu, vd); // m2Ztree = (g*g + gp*gp)*(vu*vu + vd*vd)/2.0; // mztree = sqrt(m2Ztree); // cos2bet = (vd*vd - vu*vu)/(vd*vd + vu*vu); // primer818 = TSIL_CREAL(m2Hu + mu*mu - b*vd/vu - m2Ztree*cos2bet/2.0); // primer819 = TSIL_CREAL(m2Hd + mu*mu - b*vu/vd + m2Ztree*cos2bet/2.0); // printf("Primer eq. (8.1.8) = %Lf\n", primer818); // printf("Primer eq. (8.1.9) = %Lf\n", primer819); // printf("Primer eq. (8.1.8)/mu^2 = %Lf\n", primer818/(mu*mu)); // printf("Primer eq. (8.1.9)/mu^2 = %Lf\n", primer819/(mu*mu)); /// end of DEBUG SUMO_Update (); SUMO_Tree_Masses (); SUMO_Tree_Couplings (); /* Minimize 2-loop Veff, to set correct vu,vd,tanbeta: */ /* printf("Before minimizing (vu, vd) = (%Lf, %Lf)\n", vu, vd); SUMO_Minimize_Veff (0); printf("After minimizing (vu, vd) = (%Lf, %Lf)\n", vu, vd); */ // DGR top pole mass needs to be set before gluino calculation: // M_top = 173.5; M2_top = M_top * M_top; int which = 0; int loops = 2; for (which = 0; which < 2; which++) { /* loops = 1; SUMO_StopPole (which, loops); printf("Loops=%i Which=%i stop mass: %Lf \n",loops,which,SUMO_SQRT(M2_stop[which])); loops = 2; */ SUMO_StopPole (which, loops); // printf("Loops=%i Which=%i stop mass: %Lf \n",loops,which,SUMO_SQRT(M2_stop[which])); /* loops = 1; SUMO_SbotPole (which, loops); printf("Loops=%i Which=%i sbot mass: %Lf \n",loops,which,SUMO_SQRT(M2_sbot[which])); loops = 2;*/ SUMO_SbotPole (which, loops); // printf("Loops=%i Which=%i sbot mass: %Lf \n",loops,which,SUMO_SQRT(M2_sbot[which])); /* loops = 1; SUMO_SuLPole (which, loops); printf("Loops=%i Which=%i suL mass: %Lf \n",loops,which,SUMO_SQRT(M2_suL[which])); loops = 2;*/ SUMO_SuLPole (which, loops); // printf("Loops=%i Which=%i suL mass: %Lf \n",loops,which,SUMO_SQRT(M2_suL[which])); /* loops = 1; SUMO_SuRPole (which, loops); printf("Loops=%i Which=%i suR mass: %Lf \n",loops,which,SUMO_SQRT(M2_suR[which])); loops = 2; */ SUMO_SuRPole (which, loops); // printf("Loops=%i Which=%i suR mass: %Lf \n",loops,which,SUMO_SQRT(M2_suR[which])); /*loops = 1; SUMO_SdLPole (which, loops); printf("Loops=%i Which=%i sdL mass: %Lf \n",loops,which,SUMO_SQRT(M2_sdL[which])); loops = 2; */ SUMO_SdLPole (which, loops); // printf("Loops=%i Which=%i sdL mass: %Lf \n",loops,which,SUMO_SQRT(M2_sdL[which])); /* loops = 1; SUMO_SdRPole (which, loops); printf("Loops=%i Which=%i sdR mass: %Lf \n",loops,which,SUMO_SQRT(M2_sdR[which])); loops = 2;*/ SUMO_SdRPole (which, loops); // printf("Loops=%i Which=%i sdR mass: %Lf \n",loops,which,SUMO_SQRT(M2_sdR[which])); } // DGR Moved this *after* top and squark pole mass calculation // (necessary when expanding gluino around pole masses). // For debugging purposes, we print // SUMO_GluinoPole (0,1); // printf("Tree-level gluino mass: %Lf \n",SUMO_SQRT(M2_gluino)); // SUMO_GluinoPole (1, 1); // printf("One-loop gluino mass 0: %Lf \n",SUMO_SQRT(M2_gluino)); SUMO_GluinoPole (2, 0); /* printf("Two-loop gluino mass 0: %Lf \n",SUMO_SQRT(M2_gluino)); SUMO_GluinoPole (2, 1); printf("Two-loop gluino mass 1: %Lf \n",SUMO_SQRT(M2_gluino)); SUMO_GluinoPole (2, 2); printf("Two-loop gluino mass 2: %Lf \n",SUMO_SQRT(M2_gluino)); // printf("Two-loop gluino mass: %Lf \n", SUMO_SQRT(M2_gluino)); exit(0);*/ /* SUMO_h0Pole (loops); SUMO_H0Pole (loops); SUMO_G0Pole (loops); SUMO_A0Pole (loops); */ #ifdef TSIL_SIZE_DOUBLE smodel->mgluino = SUMO_SQRT(M2_gluino); smodel->mstop1 = SUMO_SQRT(M2_stop[0]); smodel->mstop2 = SUMO_SQRT(M2_stop[1]); smodel->msbot1 = SUMO_SQRT(M2_sbot[0]); smodel->msbot2 = SUMO_SQRT(M2_sbot[1]); smodel->muL = SUMO_SQRT(M2_suL[0]); smodel->mcL = SUMO_SQRT(M2_suL[1]); smodel->mdL = SUMO_SQRT(M2_sdL[0]); smodel->msL = SUMO_SQRT(M2_sdL[1]); smodel->muR = SUMO_SQRT(M2_suR[0]); smodel->mcR = SUMO_SQRT(M2_suR[1]); smodel->mdR = SUMO_SQRT(M2_sdR[0]); smodel->msR = SUMO_SQRT(M2_sdR[1]); #else smodel->mgluino = (double) SUMO_SQRT(M2_gluino); smodel->mstop1 = (double) SUMO_SQRT(M2_stop[0]); smodel->mstop2 = (double) SUMO_SQRT(M2_stop[1]); smodel->msbot1 = (double) SUMO_SQRT(M2_sbot[0]); smodel->msbot2 = (double) SUMO_SQRT(M2_sbot[1]); smodel->muL = (double) SUMO_SQRT(M2_suL[0]); smodel->mcL = (double) SUMO_SQRT(M2_suL[1]); smodel->mdL = (double) SUMO_SQRT(M2_sdL[0]); smodel->msL = (double) SUMO_SQRT(M2_sdL[1]); smodel->muR = (double) SUMO_SQRT(M2_suR[0]); smodel->mcR = (double) SUMO_SQRT(M2_suR[1]); smodel->mdR = (double) SUMO_SQRT(M2_sdR[0]); smodel->msR = (double) SUMO_SQRT(M2_sdR[1]); #endif }