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

	}