コード例 #1
0
ファイル: scan.cpp プロジェクト: cbpark/softsusy
double getCrossSection(MssmSoftsusy & r, char * fileName, double m0, double m12, double a0, double tanb) {
  double msq = (r.displayPhys().mu(1, 1) + r.displayPhys().mu(2, 1) + 
	 r.displayPhys().md(1, 1) + r.displayPhys().mu(2, 1)) / 4;
  double mg = r.displayPhys().mGluino;
  double mt = r.displayDataSet().displayPoleMt();

  char buff[500];
  char fn[500];
  sprintf(fn, "/home/bca20/code/prospino/output_%d_%d_%d_%d",int(m0),int(m12),int(a0),int(tanb));
  sprintf(buff, "cd /home/bca20/code/prospino; echo \"%10.4f %10.4f %8.2f %d 14000.\" | ./crosssec | grep -v NAN > output_%d_%d_%d_%d",msq,mg,mt,1,int(m0),int(m12),int(a0),int(tanb));
  cout << buff << endl;
  int err = system(buff);
  double xs = 0.;

  if (!err) {
  fstream fin(fn, ios::in); 
  fin >> xs;
  } else  cout << "CROSS SECTION ERROR\n" << xs;
コード例 #2
0
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 ; 

}
コード例 #3
0
bool checktheresult( MssmSoftsusy& m ) 
{
  sPhysical p = m.displayPhys(); 
  
  if( p.mhiggs(1) != p.mhiggs(1) ) return false; 
  if( p.mhiggs(2) != p.mhiggs(2) ) return false; 
  if( p.mhiggs(3) != p.mhiggs(3) ) return false; 
  if( p.mhiggs(4) != p.mhiggs(4) ) return false; 
  if( p.msnu(1)   != p.msnu(1)   ) return false;
  if( p.msnu(2)   != p.msnu(2)   ) return false;
  if( p.msnu(3)   != p.msnu(3)   ) return false;
  if( p.mch(1)    != p.mch(1)    ) return false;
  if( p.mch(2)    != p.mch(2)    ) return false;
  if( p.mneut(1)  != p.mneut(1)  ) return false;
  if( p.mneut(2)  != p.mneut(2)  ) return false;
  if( p.mneut(3)  != p.mneut(3)  ) return false;
  if( p.mneut(4)  != p.mneut(4)  ) return false;
  if( p.mGluino   != p.mGluino   ) return false; 

  return true; 
}
コード例 #4
0
void spectrumrecord( ofstream& spectrumfile, MssmSoftsusy& m ) 
{
  sPhysical p = m.displayPhys() ;

  spectrumfile << " " << 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) 
	       << endl ; 

}
コード例 #5
0
ファイル: main.cpp プロジェクト: xueweiphy/superpy
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);
}
コード例 #6
0
ファイル: scan.cpp プロジェクト: cbpark/softsusy
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;
}