Skip to content

Commit

Permalink
rename user-defined matching condition
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Jul 25, 2016
1 parent ec79f7f commit f56fc56
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 186 deletions.
73 changes: 35 additions & 38 deletions meta/FlexibleSUSY.m
Expand Up @@ -77,7 +77,7 @@ FlexibleSUSY model file (FlexibleSUSY.m).
InitialGuessAtHighScale = {};
OnlyLowEnergyFlexibleSUSY = False;
SMTower = False;
SUSYScaleUserMatching={};
SUSYScaleMatching={};
AutomaticInputAtMSUSY = True; (* input unfixed parameters at MSUSY *)
TreeLevelEWSBSolution = {};
Pole;
Expand Down Expand Up @@ -833,9 +833,9 @@ corresponding tadpole is real or imaginary (only in models with CP

WriteMatchingClass[files_List] :=
Module[ {scheme = GetRenormalizationScheme[], userMatching = ""},
If[SMTower && Head[SUSYScaleUserMatching] === List,
userMatching = Parameters`CreateLocalConstRefs[Rest /@ SUSYScaleUserMatching] <>
Utils`StringJoinWithSeparator[ApplyUserMatching /@ SUSYScaleUserMatching, "\n"];
If[SMTower && Head[SUSYScaleMatching] === List,
userMatching = Parameters`CreateLocalConstRefs[Rest /@ SUSYScaleMatching] <>
Utils`StringJoinWithSeparator[ApplyUserMatching /@ SUSYScaleMatching, "\n"];
];
WriteOut`ReplaceInFiles[files,
{ "@gauge1Linit@" -> IndentText[WrapLines[Parameters`CreateLocalConstRefs[
Expand Down Expand Up @@ -1144,9 +1144,9 @@ corresponding tadpole is real or imaginary (only in models with CP
Module[{parseCmdLineOptions, printCommandLineOptions, spectrumGen},
parseCmdLineOptions = WriteOut`ParseCmdLineOptions[inputParameters];
printCommandLineOptions = WriteOut`PrintCmdLineOptions[inputParameters];
spectrumGen = If[SMTower, CConversion`ToValidCSymbolString[FlexibleSUSY`FSModelName] <> "_standard_model",
CConversion`ToValidCSymbolString[FlexibleSUSY`FSModelName],
CConversion`ToValidCSymbolString[FlexibleSUSY`FSModelName]
spectrumGen = If[SMTower === True,
CConversion`ToValidCSymbolString[FlexibleSUSY`FSModelName] <> "_standard_model",
CConversion`ToValidCSymbolString[FlexibleSUSY`FSModelName]
];
WriteOut`ReplaceInFiles[files,
{ "@parseCmdLineOptions@" -> IndentText[IndentText[parseCmdLineOptions]],
Expand Down Expand Up @@ -1521,17 +1521,16 @@ corresponding tadpole is real or imaginary (only in models with CP
];
];

(* TODO: remove automatic setting of gauge and Yukawa couplings from here *)
FindUnfixedParameters[parameters_List, fixed_List] :=
Module[{fixedParameters, autoInput},
autoInput = { SARAH`hyperchargeCoupling, SARAH`leftCoupling,
SARAH`strongCoupling };
If[FlexibleSUSY`SMTower,
autoInput = Join[autoInput, {SARAH`UpYukawa, SARAH`DownYukawa, SARAH`ElectronYukawa},
#[[1]] & /@ SUSYScaleUserMatching
];
];
fixedParameters = DeleteDuplicates[Flatten[Join[fixed,
autoInput]]];
autoInput = { SARAH`hyperchargeCoupling, SARAH`leftCoupling, SARAH`strongCoupling };
If[FlexibleSUSY`SMTower === True,
autoInput = Join[autoInput, {SARAH`UpYukawa, SARAH`DownYukawa, SARAH`ElectronYukawa},
First /@ SUSYScaleMatching
];
];
fixedParameters = DeleteDuplicates[Flatten[Join[fixed, autoInput]]];
Complement[parameters, fixedParameters]
];

Expand Down Expand Up @@ -1768,35 +1767,33 @@ corresponding tadpole is real or imaginary (only in models with CP
Constraint`CheckConstraint[FlexibleSUSY`InitialGuessAtLowScale, "InitialGuessAtLowScale"];
Constraint`CheckConstraint[FlexibleSUSY`InitialGuessAtSUSYScale, "InitialGuessAtSUSYScale"];
Constraint`CheckConstraint[FlexibleSUSY`InitialGuessAtHighScale, "InitialGuessAtHighScale"];
Constraint`SanityCheck[Join[ If[SMTower, FlexibleSUSY`InitialGuessAtSUSYScale,
FlexibleSUSY`InitialGuessAtLowScale,
FlexibleSUSY`InitialGuessAtLowScale],
Constraint`SanityCheck[Join[If[SMTower === True,
FlexibleSUSY`InitialGuessAtSUSYScale,
FlexibleSUSY`InitialGuessAtLowScale],
FlexibleSUSY`InitialGuessAtHighScale],
"initial guess"
];

(* add EWSB constraint to SUSY-scale constraint if not set *)
If[FlexibleSUSY`SMTower,
If[FreeQ[Join[FlexibleSUSY`SUSYScaleInput, FlexibleSUSY`HighScaleInput],
FlexibleSUSY`FSSolveEWSBFor[___]],
AppendTo[FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`FSSolveEWSBFor[FlexibleSUSY`EWSBOutputParameters]
];
];
fixedParameters = Join[ Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`SUSYScaleInput],
Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`HighScaleInput]
];,
If[FreeQ[Join[FlexibleSUSY`LowScaleInput, FlexibleSUSY`SUSYScaleInput, FlexibleSUSY`HighScaleInput],
FlexibleSUSY`FSSolveEWSBFor[___]],
AppendTo[FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`FSSolveEWSBFor[FlexibleSUSY`EWSBOutputParameters]
];
If[FlexibleSUSY`SMTower === True,
If[FreeQ[Join[FlexibleSUSY`SUSYScaleInput, FlexibleSUSY`HighScaleInput],
FlexibleSUSY`FSSolveEWSBFor[___]],
AppendTo[FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`FSSolveEWSBFor[FlexibleSUSY`EWSBOutputParameters]];
];
fixedParameters = Join[Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`SUSYScaleInput],
Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`HighScaleInput]];
,
If[FreeQ[Join[FlexibleSUSY`LowScaleInput, FlexibleSUSY`SUSYScaleInput, FlexibleSUSY`HighScaleInput],
FlexibleSUSY`FSSolveEWSBFor[___]],
AppendTo[FlexibleSUSY`SUSYScaleInput,
FlexibleSUSY`FSSolveEWSBFor[FlexibleSUSY`EWSBOutputParameters]];
];
fixedParameters = Join[Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`LowScaleInput],
Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`SUSYScaleInput],
Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`HighScaleInput]
];
fixedParameters = Join[Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`LowScaleInput],
Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`SUSYScaleInput],
Constraint`FindFixedParametersFromConstraint[FlexibleSUSY`HighScaleInput]];
];

FlexibleSUSY`FSUnfixedParameters = FindUnfixedParameters[allParameters, fixedParameters];
If[FlexibleSUSY`FSUnfixedParameters =!= {} &&
FlexibleSUSY`AutomaticInputAtMSUSY =!= True,
Expand Down
125 changes: 41 additions & 84 deletions model_files/MSSMMuBMu/FlexibleSUSY.m.in
Expand Up @@ -2,6 +2,7 @@
FSModelName = "@CLASSNAME@";
FSEigenstates = SARAH`EWSB;
FSDefaultSARAHModel = MSSM;
OnlyLowEnergyFlexibleSUSY = True;

(* CMSSM input parameters *)

Expand All @@ -22,99 +23,55 @@ SUSYScale = Ms;
SUSYScaleFirstGuess = Ms;

SUSYScaleInput = {
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, ZEROMATRIX[3,3]},
{mu2, ZEROMATRIX[3,3]},
{md2, ZEROMATRIX[3,3]},
{ml2, ZEROMATRIX[3,3]},
{me2, ZEROMATRIX[3,3]},
{mq2[1,1], Sqr[Ms]},
{mu2[1,1], Sqr[Ms]},
{md2[1,1], Sqr[Ms]},
{ml2[1,1], Sqr[Ms]},
{me2[1,1], Sqr[Ms]},
{mq2[2,2], Sqr[Ms]},
{mu2[2,2], Sqr[Ms]},
{md2[2,2], Sqr[Ms]},
{ml2[2,2], Sqr[Ms]},
{me2[2,2], Sqr[Ms]},
{mq2[3,3], Sqr[Ms]},
{mu2[3,3], Sqr[Ms]},
{md2[3,3], Sqr[Ms]},
{ml2[3,3], Sqr[Ms]},
{me2[3,3], Sqr[Ms]},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1/TanBeta)},
{T[Yu], \[Mu]/TanBeta Yu},
{T[Yd], \[Mu] TanBeta Yd},
{T[Ye], \[Mu] TanBeta Ye},
{T[Yu][3,3], (1/TanBeta + Xtt) Yu[3,3] Ms},
{vd, vu / TanBeta}
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, UNITMATRIX[3] Ms^2},
{mu2, UNITMATRIX[3] Ms^2},
{md2, UNITMATRIX[3] Ms^2},
{ml2, UNITMATRIX[3] Ms^2},
{me2, UNITMATRIX[3] Ms^2},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1/TanBeta)},
{T[Yu], \[Mu]/TanBeta Yu},
{T[Yd], \[Mu] TanBeta Yd},
{T[Ye], \[Mu] TanBeta Ye},
{T[Yu][3,3], (1/TanBeta + Xtt) Yu[3,3] Ms},
{vd, vu / TanBeta}
};

InitialGuessAtLowScale = {
{vu, LowEnergyConstant[vev] Sin[ArcTan[TanBeta]]},
{vd, LowEnergyConstant[vev] Cos[ArcTan[TanBeta]]},
{Yu, Automatic},
{Yd, Automatic},
{Ye, Automatic},
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, ZEROMATRIX[3,3]},
{mu2, ZEROMATRIX[3,3]},
{md2, ZEROMATRIX[3,3]},
{ml2, ZEROMATRIX[3,3]},
{me2, ZEROMATRIX[3,3]},
{mq2[1,1], Sqr[Ms]},
{mu2[1,1], Sqr[Ms]},
{md2[1,1], Sqr[Ms]},
{ml2[1,1], Sqr[Ms]},
{me2[1,1], Sqr[Ms]},
{mq2[2,2], Sqr[Ms]},
{mu2[2,2], Sqr[Ms]},
{md2[2,2], Sqr[Ms]},
{ml2[2,2], Sqr[Ms]},
{me2[2,2], Sqr[Ms]},
{mq2[3,3], Sqr[Ms]},
{mu2[3,3], Sqr[Ms]},
{md2[3,3], Sqr[Ms]},
{ml2[3,3], Sqr[Ms]},
{me2[3,3], Sqr[Ms]},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1./TanBeta)},
{T[Yu], MODELPARAMETER[Yu] Ms/TanBeta},
{T[Yd], MODELPARAMETER[Yd] Ms TanBeta},
{T[Ye], MODELPARAMETER[Ye] Ms TanBeta},
{T[Yu][3,3], (1/TanBeta + Xtt) Ms }
};

LowScaleInput = {
{Yu, Automatic},
{Yd, Automatic},
{Ye, Automatic},
{vu, Sqrt[4 Sqr[MZDRbar] / (g2^2 + 3/5 g1^2) - Sqr[vd]]}
};

(* InitialGuessAtLowScale is ignored if SMTower is true *)

SUSYScaleUserMatching = {
{vu, vev Sin[ArcTan[INPUTPARAMETER[TanBeta]]]},
{vd, vev Cos[ArcTan[INPUTPARAMETER[TanBeta]]]}
{vu, LowEnergyConstant[vev] Sin[ArcTan[TanBeta]]},
{vd, LowEnergyConstant[vev] Cos[ArcTan[TanBeta]]},
{Yu, Automatic},
{Yd, Automatic},
{Ye, Automatic},
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, UNITMATRIX[3] Ms^2},
{mu2, UNITMATRIX[3] Ms^2},
{md2, UNITMATRIX[3] Ms^2},
{ml2, UNITMATRIX[3] Ms^2},
{me2, UNITMATRIX[3] Ms^2},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1./TanBeta)},
{T[Yu], MODELPARAMETER[Yu] Ms/TanBeta},
{T[Yd], MODELPARAMETER[Yd] Ms TanBeta},
{T[Ye], MODELPARAMETER[Ye] Ms TanBeta},
{T[Yu][3,3], (1/TanBeta + Xtt) Ms }
};

(* vev is a keyword in SUSYScaleUserMatching, describing SM VEV matched into full theory *)

LowScale = LowEnergyConstant[MZ];

SMTower = False;

OnlyLowEnergyFlexibleSUSY = True;

LowScaleFirstGuess = LowEnergyConstant[MZ];

LowScaleInput = {
{Yu, Automatic},
{Yd, Automatic},
{Ye, Automatic},
{vu, Sqrt[4 MZDRbar^2 / (g2^2 + GUTNormalization[g1]^2 g1^2) - vd^2]}
};

UseHiggs2LoopMSSM = True;
EffectiveMu = \[Mu];
Expand Down
95 changes: 32 additions & 63 deletions model_files/MSSMtower/FlexibleSUSY.m.in
Expand Up @@ -25,78 +25,47 @@ SUSYScale = Ms;
SUSYScaleFirstGuess = Ms;

SUSYScaleInput = {
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, ZEROMATRIX[3,3]},
{mu2, ZEROMATRIX[3,3]},
{md2, ZEROMATRIX[3,3]},
{ml2, ZEROMATRIX[3,3]},
{me2, ZEROMATRIX[3,3]},
{mq2[1,1], Sqr[Ms]},
{mu2[1,1], Sqr[Ms]},
{md2[1,1], Sqr[Ms]},
{ml2[1,1], Sqr[Ms]},
{me2[1,1], Sqr[Ms]},
{mq2[2,2], Sqr[Ms]},
{mu2[2,2], Sqr[Ms]},
{md2[2,2], Sqr[Ms]},
{ml2[2,2], Sqr[Ms]},
{me2[2,2], Sqr[Ms]},
{mq2[3,3], Sqr[Ms]},
{mu2[3,3], Sqr[Ms]},
{md2[3,3], Sqr[Ms]},
{ml2[3,3], Sqr[Ms]},
{me2[3,3], Sqr[Ms]},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1/TanBeta)},
{T[Yu], Ms/TanBeta Yu},
{T[Yd], Ms TanBeta Yd},
{T[Ye], Ms TanBeta Ye},
{T[Yu][3,3], (Ms/TanBeta + Xtt Ms) Yu[3,3]}
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, UNITMATRIX[3] Ms^2},
{mu2, UNITMATRIX[3] Ms^2},
{md2, UNITMATRIX[3] Ms^2},
{ml2, UNITMATRIX[3] Ms^2},
{me2, UNITMATRIX[3] Ms^2},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1/TanBeta)},
{T[Yu], Ms/TanBeta Yu},
{T[Yd], Ms TanBeta Yd},
{T[Ye], Ms TanBeta Ye},
{T[Yu][3,3], (Ms/TanBeta + Xtt Ms) Yu[3,3]}
};

InitialGuessAtSUSYScale = {
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, ZEROMATRIX[3,3]},
{mu2, ZEROMATRIX[3,3]},
{md2, ZEROMATRIX[3,3]},
{ml2, ZEROMATRIX[3,3]},
{me2, ZEROMATRIX[3,3]},
{mq2[1,1], Sqr[Ms]},
{mu2[1,1], Sqr[Ms]},
{md2[1,1], Sqr[Ms]},
{ml2[1,1], Sqr[Ms]},
{me2[1,1], Sqr[Ms]},
{mq2[2,2], Sqr[Ms]},
{mu2[2,2], Sqr[Ms]},
{md2[2,2], Sqr[Ms]},
{ml2[2,2], Sqr[Ms]},
{me2[2,2], Sqr[Ms]},
{mq2[3,3], Sqr[Ms]},
{mu2[3,3], Sqr[Ms]},
{md2[3,3], Sqr[Ms]},
{ml2[3,3], Sqr[Ms]},
{me2[3,3], Sqr[Ms]},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1/TanBeta)},
{T[Yu], Ms/TanBeta Yu},
{T[Yd], Ms TanBeta Yd},
{T[Ye], Ms TanBeta Ye},
{T[Yu][3,3], (Ms/TanBeta + Xtt Ms) Yu[3,3]}
{MassB, Ms},
{MassWB, Ms},
{MassG, Ms},
{mq2, UNITMATRIX[3] Ms^2},
{mu2, UNITMATRIX[3] Ms^2},
{md2, UNITMATRIX[3] Ms^2},
{ml2, UNITMATRIX[3] Ms^2},
{me2, UNITMATRIX[3] Ms^2},
{\[Mu], Ms},
{B[\[Mu]], Sqr[Ms]/(TanBeta + 1/TanBeta)},
{T[Yu], Ms/TanBeta Yu},
{T[Yd], Ms TanBeta Yd},
{T[Ye], Ms TanBeta Ye},
{T[Yu][3,3], (Ms/TanBeta + Xtt Ms) Yu[3,3]}
};

(* InitialGuessAtLowScale is ignored if SMTower is true *)
(* vev is a keyword in SUSYScaleMatching, describing SM-like VEV in the full theory *)

SUSYScaleUserMatching = {
{vu, vev Sin[ArcTan[TanBeta]]},
{vd, vev Cos[ArcTan[TanBeta]]}
SUSYScaleMatching = {
{vu, vev Sin[ArcTan[TanBeta]]},
{vd, vev Cos[ArcTan[TanBeta]]}
};

(* vev is a keyword in SUSYScaleUserMatching, describing SM VEV matched into full theory *)

LowScale = LowEnergyConstant[MZ];

SMTower = True;
Expand Down
2 changes: 1 addition & 1 deletion model_files/SMtower/FlexibleSUSY.m.in
Expand Up @@ -39,7 +39,7 @@ InitialGuessAtLowScale = {
{Ye, Automatic}
};

SUSYScaleUserMatching = {
SUSYScaleMatching = {
{v, vev}
};

Expand Down

0 comments on commit f56fc56

Please sign in to comment.