void recordphysics( ofstream& outputfile, MssmSoftsusy& m, double M_moduli, double M_gauge, double M_mess, double tanb, double btosgamma, double muong2, double bsmumu, double oh2 ) { sPhysical p = m.displayPhys(); outputfile << M_moduli << " " << M_gauge << " " << M_mess << " " << tanb ; outputfile << " " << p.mhiggs(1) << " " << p.mhiggs(2) << " " << p.mhiggs(3) << " " << p.mhiggs(4) << " " << p.msnu(1) << " " << p.msnu(2) << " " << p.msnu(3) << " " << p.mch(1) << " " << p.mch(2) << " " << p.mneut(1) << " " << p.mneut(2) << " " << p.mneut(3) << " " << p.mneut(4) << " " << p.mGluino << " " << p.mu(1,1) << " " << p.mu(2,1) << " " << p.mu(1,2) << " " << p.mu(2,2) << " " << p.mu(1,3) << " " << p.mu(2,3) << " " << p.md(1,1) << " " << p.md(2,1) << " " << p.md(1,2) << " " << p.md(2,2) << " " << p.md(1,3) << " " << p.md(2,3) << " " << p.me(1,1) << " " << p.me(2,1) << " " << p.me(1,2) << " " << p.me(2,2) << " " << p.me(1,3) << " " << p.me(2,3) ; outputfile << " " << btosgamma << " " << muong2 << " " << bsmumu << " " << oh2 << " " << m.displayProblem().test() << endl ; }
int main() { /// Sets up exception handling signal(SIGFPE, FPE_ExceptionHandler); try { /// Sets format of output: 6 decimal places outputCharacteristics(6); cerr << "SOFTSUSY" << SOFTSUSY_VERSION << " test program, Ben Allanach 2002\n"; cerr << "If you use SOFTSUSY, please refer to B.C. Allanach,\n"; cerr << "Comput. Phys. Commun. 143 (2002) 305, hep-ph/0104145\n"; /// Parameters used: CMSSM parameters double m12 = 500., a0 = 0., mGutGuess = 2.0e16, tanb = 10.0, m0 = 125.; int sgnMu = 1; ///< sign of mu parameter int numPoints = 10; ///< number of scan points QedQcd oneset; ///< See "lowe.h" for default definitions parameters /// most important Standard Model inputs: you may change these and recompile double alphasMZ = 0.1187, mtop = 173.5, mbmb = 4.18; oneset.setAlpha(ALPHAS, alphasMZ); oneset.setPoleMt(mtop); oneset.setMbMb(mbmb); oneset.toMz(); ///< Runs SM fermion masses to MZ /// Print out the SM data being used, as well as quark mixing assumption and /// the numerical accuracy of the solution cout << "# Low energy data in SOFTSUSY: MIXING=" << MIXING << " TOLERANCE=" << TOLERANCE << endl << oneset << endl; /// Print out header line cout << "# tan beta mh mA mH0 mH+-\n"; int i; /// Set limits of tan beta scan double startTanb = 3.0, endTanb = 50.0; /// Cycle through different points in the scan for (i = 0; i<=numPoints; i++) { tanb = (endTanb - startTanb) / double(numPoints) * double(i) + startTanb; // set tan beta ready for the scan. /// Preparation for calculation: set up object and input parameters MssmSoftsusy r; DoubleVector pars(3); pars(1) = m0; pars(2) = m12; pars(3) = a0; bool uni = true; // MGUT defined by g1(MGUT)=g2(MGUT) /// Calculate the spectrum r.lowOrg(sugraBcs, mGutGuess, pars, sgnMu, tanb, oneset, uni); /// check the point in question is problem free: if so print the output if (!r.displayProblem().test()) cout << tanb << " " << r.displayPhys().mh0 << " " << r.displayPhys().mA0 << " " << r.displayPhys().mH0 << " " << r.displayPhys().mHpm << endl; else /// print out what the problem(s) is(are) cout << tanb << " " << r.displayProblem() << endl; } } catch(const string & a) { cout << a; } catch(const char * a) { cout << a; } catch(...) { cout << "Unknown type of exception caught.\n"; } exit(0); }
void printLineOut(double m0, double m12, double a0, double tanb, MssmSoftsusy twoLoop, MssmSoftsusy twoLoopAs, MssmSoftsusy & twoLoopMt, MssmSoftsusy & twoLoopMb, MssmSoftsusy & threeLoop, double omega2, double omegaAs, double omegaMt, double omegaMb, double omega3, double msqAv2, double msqAvAs, double msqAvMt, double msqAvMb, double msqAv3, double cs, double csAs, double csMt, double csMb, double cs3, double dA, double dAAs, double dAMt, double dAMb, double dA3, double dY, double dYAs, double dYMt, double dYMb, double dY3, double dYp, double dYpAs, double dYpMt, double dYpMb, double dYp3) { /// Any problems and get gnuplot to ignore the point unless it's only musq /// wrong sign... if (twoLoop.displayProblem().test() || threeLoop.displayProblem().test()) if (!testMuSqWrongSignOnlyProblem(twoLoop.displayProblem()) || !testMuSqWrongSignOnlyProblem(threeLoop.displayProblem())) cout << "# "; cout << m0 ///< 1 << " " << m12 ///< 2 << " " << a0 ///< 3 << " " << tanb ///< 4 << " " << twoLoop.displayPhys().mh0(1) ///< 5 << " " << twoLoopAs.displayPhys().mh0(1) ///< 6 << " " << twoLoopMt.displayPhys().mh0(1) ///< 7 << " " << twoLoopMb.displayPhys().mh0(1) ///< 8 << " " << threeLoop.displayPhys().mh0(1) ///< 9 << " " << twoLoop.displayPhys().mA0(1) ///< 10 << " " << twoLoopAs.displayPhys().mA0(1) ///< 11 << " " << twoLoopMt.displayPhys().mA0(1) ///< 12 << " " << twoLoopMb.displayPhys().mA0(1) ///< 13 << " " << threeLoop.displayPhys().mA0(1) ///< 14 << " " << twoLoop.displayPhys().mh0(2) ///< 15 << " " << twoLoopAs.displayPhys().mh0(2) ///< 16 << " " << twoLoopMt.displayPhys().mh0(2) ///< 17 << " " << twoLoopMb.displayPhys().mh0(2) ///< 18 << " " << threeLoop.displayPhys().mh0(2) ///< 19 << " " << twoLoop.displayPhys().mHpm ///< 20 << " " << twoLoopAs.displayPhys().mHpm ///< 21 << " " << twoLoopMt.displayPhys().mHpm ///< 22 << " " << twoLoopMb.displayPhys().mHpm ///< 23 << " " << threeLoop.displayPhys().mHpm ///< 24 << " " << twoLoop.displayPhys().mGluino ///< 25 << " " << twoLoopAs.displayPhys().mGluino ///< 26 << " " << twoLoopMt.displayPhys().mGluino ///< 27 << " " << twoLoopMb.displayPhys().mGluino ///< 28 << " " << threeLoop.displayPhys().mGluino ///< 29 << " " << msqAv2 ///< 30 << " " << msqAvAs ///< 31 << " " << msqAvMt ///< 32 << " " << msqAvMb ///< 33 << " " << msqAv3 ///< 34 << " " << twoLoop.displayPhys().me(1, 1) ///< 35 << " " << twoLoopAs.displayPhys().me(1, 1) ///< 36 << " " << twoLoopMt.displayPhys().me(1, 1) ///< 37 << " " << twoLoopMb.displayPhys().me(1, 1) ///< 38 << " " << threeLoop.displayPhys().me(1, 1) ///< 39 << " " << twoLoop.displayPhys().me(2, 1) ///< 40 << " " << twoLoopAs.displayPhys().me(2, 1) ///< 41 << " " << twoLoopMt.displayPhys().me(2, 1) ///< 42 << " " << twoLoopMb.displayPhys().me(2, 1) ///< 43 << " " << threeLoop.displayPhys().me(2, 1) ///< 44 << " " << fabs(twoLoop.displayPhys().mneut(1)) ///< 45 << " " << fabs(twoLoopAs.displayPhys().mneut(1)) ///< 46 << " " << fabs(twoLoopMt.displayPhys().mneut(1)) ///< 47 << " " << fabs(twoLoopMb.displayPhys().mneut(1)) ///< 48 << " " << fabs(threeLoop.displayPhys().mneut(1)) ///< 49 << " " << fabs(twoLoop.displayPhys().mneut(2)) ///< 50 << " " << fabs(twoLoopAs.displayPhys().mneut(2)) ///< 51 << " " << fabs(twoLoopMt.displayPhys().mneut(2)) ///< 52 << " " << fabs(twoLoopMb.displayPhys().mneut(2)) ///< 53 << " " << fabs(threeLoop.displayPhys().mneut(2)) ///< 54 << " " << fabs(twoLoop.displayPhys().mneut(3)) ///< 55 << " " << fabs(twoLoopAs.displayPhys().mneut(3)) ///< 56 << " " << fabs(twoLoopMt.displayPhys().mneut(3)) ///< 57 << " " << fabs(twoLoopMb.displayPhys().mneut(3)) ///< 58 << " " << fabs(threeLoop.displayPhys().mneut(3)) ///< 59 << " " << fabs(twoLoop.displayPhys().mneut(4)) ///< 60 << " " << fabs(twoLoopAs.displayPhys().mneut(4)) ///< 61 << " " << fabs(twoLoopMt.displayPhys().mneut(4)) ///< 62 << " " << fabs(twoLoopMb.displayPhys().mneut(4)) ///< 63 << " " << fabs(threeLoop.displayPhys().mneut(4)) ///< 64 << " " << twoLoop.displayPhys().mu(1, 3) ///< 65 << " " << twoLoopAs.displayPhys().mu(1, 3) ///< 66 << " " << twoLoopMt.displayPhys().mu(1, 3) ///< 67 << " " << twoLoopMb.displayPhys().mu(1, 3) ///< 68 << " " << threeLoop.displayPhys().mu(1, 3) ///< 69 << " " << twoLoop.displayPhys().mu(2, 3) ///< 70 << " " << twoLoopAs.displayPhys().mu(2, 3) ///< 71 << " " << twoLoopMt.displayPhys().mu(2, 3) ///< 72 << " " << twoLoopMb.displayPhys().mu(2, 3) ///< 73 << " " << threeLoop.displayPhys().mu(2, 3) ///< 74 << " " << twoLoop.displayPhys().md(1, 3) ///< 75 << " " << twoLoopAs.displayPhys().md(1, 3) ///< 76 << " " << twoLoopMt.displayPhys().md(1, 3) ///< 77 << " " << twoLoopMb.displayPhys().md(1, 3) ///< 78 << " " << threeLoop.displayPhys().md(1, 3) ///< 79 << " " << twoLoop.displayPhys().md(2, 3) ///< 80 << " " << twoLoopAs.displayPhys().md(2, 3) ///< 81 << " " << twoLoopMt.displayPhys().md(2, 3) ///< 82 << " " << twoLoopMb.displayPhys().md(2, 3) ///< 83 << " " << threeLoop.displayPhys().md(2, 3) ///< 84 << " " << twoLoop.displayPhys().me(1, 3) ///< 85 << " " << twoLoopAs.displayPhys().me(1, 3) ///< 86 << " " << twoLoopMt.displayPhys().me(1, 3) ///< 87 << " " << twoLoopMb.displayPhys().me(1, 3) ///< 88 << " " << threeLoop.displayPhys().me(1, 3) ///< 89 << " " << twoLoop.displayPhys().me(2, 3) ///< 90 << " " << twoLoopAs.displayPhys().me(2, 3) ///< 91 << " " << twoLoopMt.displayPhys().me(2, 3) ///< 92 << " " << twoLoopMb.displayPhys().me(2, 3) ///< 93 << " " << threeLoop.displayPhys().me(2, 3) ///< 94 << " " << twoLoop.displayYukawaElement(YU, 3, 3) ///< 95 << " " << twoLoopAs.displayYukawaElement(YU, 3, 3) ///< 96 << " " << twoLoopMt.displayYukawaElement(YU, 3, 3) ///< 97 << " " << twoLoopMb.displayYukawaElement(YU, 3, 3) ///< 98 << " " << threeLoop.displayYukawaElement(YU, 3, 3) ///< 99 << " " << twoLoop.displayYukawaElement(YD, 3, 3) ///< 100 << " " << twoLoopAs.displayYukawaElement(YD, 3, 3) ///< 101 << " " << twoLoopMt.displayYukawaElement(YD, 3, 3) ///< 102 << " " << twoLoopMb.displayYukawaElement(YD, 3, 3) ///< 103 << " " << threeLoop.displayYukawaElement(YD, 3, 3) ///< 104 << " " << twoLoop.displayYukawaElement(YE, 3, 3) ///< 105 << " " << twoLoopAs.displayYukawaElement(YE, 3, 3) ///< 106 << " " << twoLoopMt.displayYukawaElement(YE, 3, 3) ///< 107 << " " << twoLoopMb.displayYukawaElement(YE, 3, 3) ///< 108 << " " << threeLoop.displayYukawaElement(YE, 3, 3); ///< 109 int facMusq3= 1., facMusq2 = 1., facMusq2As = 1., facMusq2Mt = 1., facMusq2Mb = 1.; if (twoLoop.displayProblem().muSqWrongSign) facMusq2 = -1. ; if (twoLoopAs.displayProblem().muSqWrongSign) facMusq2As = -1. ; if (twoLoopMt.displayProblem().muSqWrongSign) facMusq2Mt = -1. ; if (twoLoopMb.displayProblem().muSqWrongSign) facMusq2Mb = -1. ; if (threeLoop.displayProblem().muSqWrongSign) facMusq3 = -1. ; cout << " " << twoLoop.displaySusyMu() * facMusq2 ///< 110 << " " << twoLoopAs.displaySusyMu() * facMusq2As ///< 111 << " " << twoLoopMt.displaySusyMu() * facMusq2Mt ///< 112 << " " << twoLoopMb.displaySusyMu() * facMusq2Mb ///< 113 << " " << threeLoop.displaySusyMu() * facMusq3 ///< 114 << " " << fabs(twoLoop.displayPhys().mch(1)) ///< 115 << " " << fabs(twoLoopAs.displayPhys().mch(1)) ///< 116 << " " << fabs(twoLoopMt.displayPhys().mch(1)) ///< 117 << " " << fabs(twoLoopMb.displayPhys().mch(1)) ///< 118 << " " << fabs(threeLoop.displayPhys().mch(1)) ///< 119 << " " << fabs(twoLoop.displayPhys().mch(2)) ///< 120 << " " << fabs(twoLoopAs.displayPhys().mch(2)) ///< 121 << " " << fabs(twoLoopMt.displayPhys().mch(2)) ///< 122 << " " << fabs(twoLoopMb.displayPhys().mch(2)) ///< 123 << " " << fabs(threeLoop.displayPhys().mch(2)) ///< 124 << " " << omega2 ///< 125 << " " << omegaAs ///< 126 << " " << omegaMt ///< 127 << " " << omegaMb ///< 128 << " " << omega3 ///< 129 << " " << twoLoop.displayGaugeCoupling(3) ///< 130 << " " << twoLoopAs.displayGaugeCoupling(3) ///< 131 << " " << twoLoopMt.displayGaugeCoupling(3) ///< 132 << " " << twoLoopMb.displayGaugeCoupling(3) ///< 133 << " " << threeLoop.displayGaugeCoupling(3) ///< 134 << " " << cs ///< 135 << " " << csAs ///< 136 << " " << csMt ///< 137 << " " << csMb ///< 138 << " " << cs3 ///< 139 << " " << QEWSB ///< 140 << " " << dA ///< 141 << " " << dAAs ///< 142 << " " << dAMt ///< 143 << " " << dAMb ///< 144 << " " << dA3 ///< 145 << " " << dY ///< 146 << " " << dYAs ///< 147 << " " << dYMt ///< 148 << " " << dYMb ///< 149 << " " << dY3 ///< 150 << " " << dYp ///< 151 << " " << dYpAs ///< 152 << " " << dYpMt ///< 153 << " " << dYpMb ///< 154 << " " << dYp3; ///< 155 if (twoLoop.displayProblem().test()) cout << "# 2-loop problem: " << twoLoop.displayProblem(); if (threeLoop.displayProblem().test()) cout << "# 3-loop problem " << threeLoop.displayProblem(); cout << endl; }