コード例 #1
0
ファイル: softsusy_exmap.cpp プロジェクト: Expander/softsusy
 /// Return GiNac exmap with MSSM (Yukawa Model) parameters
GiNaC::exmap drBarPars_exmap(const MssmSoftsusy & mssy_) {
	exmap  mass_n_coupls;
	softsusy::drBarPars drb_params(mssy_.displayDrBarPars());
	mass_n_coupls[MSSM::mt] = drb_params.mt;	
	mass_n_coupls[MSSM::mb] = drb_params.mb;	
	mass_n_coupls[MSSM::MZ] = drb_params.mz;	
	mass_n_coupls[MSSM::MW] = drb_params.mw;

		// -------------- physical higgses masses ------------ //

	mass_n_coupls[MSSM::mh0] = drb_params.mh0(1);
	mass_n_coupls[MSSM::mA0] = drb_params.mA0(1);
	mass_n_coupls[MSSM::mH0] = drb_params.mh0(2);
	mass_n_coupls[MSSM::mHp] = drb_params.mHpm;
	
		// -------------- higgses mixing --------------------- //

		{
	ex tb_num(mssy_.displayTanb());
	ex cb_num = pow(pow(tb_num, 2) +1, numeric(-1,2)).evalf();
	ex sb_num = (tb_num*cb_num).evalf();
	ex alhpa_num(drb_params.thetaH);
	ex ca_num = cos(alhpa_num).evalf();
	ex sa_num = sin(alhpa_num).evalf();
	mass_n_coupls[MSSM::TB] = tb_num;
	mass_n_coupls[MSSM::SB] = sb_num;
	mass_n_coupls[MSSM::CB] = cb_num;
	mass_n_coupls[MSSM::CA] = ca_num;
	mass_n_coupls[MSSM::SA] = sa_num;

		// ------------------- gluino mass ------------------- //


	if ((close(drb_params.mGluino, drb_params.md(1,2),0.003)) ||
      (close(drb_params.mGluino, drb_params.md(2,2),0.003))) 
			{ 
				mass_n_coupls[MSSM::mgl] = drb_params.mGluino*0.995;
				cerr << "gluino mass has been changed by 0.5 % to avoid instability" << endl;
			}
	 	else
			mass_n_coupls[MSSM::mgl] = drb_params.mGluino;
			
	 

		// -------------- sfermion mixings --------------------- //

	mass_n_coupls[MSSM::csb] = cos(numeric(drb_params.thetab).evalf());
	mass_n_coupls[MSSM::snb] = sin(numeric(drb_params.thetab).evalf());
	mass_n_coupls[MSSM::cst] = cos(numeric(drb_params.thetat).evalf());
	mass_n_coupls[MSSM::snt] = sin(numeric(drb_params.thetat).evalf());
	mass_n_coupls[MSSM::csl] = cos(numeric(drb_params.thetatau).evalf());
	mass_n_coupls[MSSM::snl] = sin(numeric(drb_params.thetatau).evalf());

		// -------------- sfermion masses --------------------- //

	mass_n_coupls[MSSM::mst1] = numeric(drb_params.mu(1, 3));
	mass_n_coupls[MSSM::mst2] = numeric(drb_params.mu(2, 3));
	mass_n_coupls[MSSM::msb1] = numeric(drb_params.md(1,3));
	mass_n_coupls[MSSM::msb2] = numeric(drb_params.md(2,3));
	mass_n_coupls[MSSM::mstau1] = numeric(drb_params.me(1,3));
	mass_n_coupls[MSSM::mstau2] = numeric(drb_params.me(2,3));
	mass_n_coupls[MSSM::msd1] = numeric(drb_params.md(1,2)); // second generation squarks
	mass_n_coupls[MSSM::msd2] = numeric(drb_params.md(2,2));

		// squarks of generations 1,2 do not mix

		// -------------- coupling constants ---------------- //

		mass_n_coupls[MSSM::GS] = mssy_.displayGaugeCoupling(3);
		mass_n_coupls[MSSM::YT] = drb_params.ht;
		mass_n_coupls[MSSM::YB] = drb_params.hb;
		mass_n_coupls[MSSM::YL] = drb_params.htau;

		// -------------- soft couplings ------------------- //

		mass_n_coupls[MSSM::MUE] = mssy_.displaySusyMu();
		mass_n_coupls[MSSM::At] = mssy_.displaySoftA(UA,3,3);
		mass_n_coupls[MSSM::Ab] = mssy_.displaySoftA(DA,3,3);
		mass_n_coupls[MSSM::Al] = mssy_.displaySoftA(EA,3,3);

		mass_n_coupls[MSSM::ab] = mssy_.displaySoftA(UA,3,3) - mssy_.displaySusyMu()*tb_num;
		mass_n_coupls[MSSM::at] = mssy_.displaySoftA(DA,3,3) - mssy_.displaySusyMu()/tb_num; ;
		// --------------- (Scale MZ) --------------//
		mass_n_coupls[MSSM::scale] = mssy_.displayMu(); //drb_params.mz;

		// -------------- msusy common scale --------------- //
		
		mass_n_coupls[MSSM::msusy] = drb_params.mu(1,1);
		//sqrt(drb_params.mu(1,3)*drb_params.mu(2,3));

		// -------------- tau sneutrino mass --------------- //
		//
		mass_n_coupls[MSSM::msntau] = drb_params.msnu(3);

		// FIXME: need to do msq == mgl
		return mass_n_coupls;
		}

	}
コード例 #2
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;
}