This is the source code for the paper “First Order Electroweak Phase Transition and Baryogenesis from a Naturally Light Scalar”. Most of the plots in this paper are run by the Main Mathematica file unless specified.
This section talks about some fundamental features of this new model. The problems talked here are related to new physics at zero temperature.
The scalar mass spectrum are calculated in Mathematica code mass_spectrum.nb. Masses for other relevant particles such as gauge bosons and fermions are trivial, and did not included in any code.
We need to transfer from the bare parameters to observable physical parameters. At tree-level, this process is performed by Mathematica in the same code. The 1-loop level parametrization is performed for discussing the vacuum stability, in Mathematica code.
Vacuum stability is discussed at 1-loop level. Potential setup, renormalization and parametrization is performed in Mathematica.
Tunneling rate is computed with the help of SimpleBounce.
The code BP1.cc
to BP4.cc
are trials for tunneling at the 4 corners of the final combined plot left panel. The result are recorded in the same mathematica file. The code BPeg.cc is for the benchmark point to generate the tunneling path plot. The BPeg_2.cc is repeatedly used for every data point to generate Figure 8.
The phase transition is calculated both semi-analytically using the high-temperature expansion and in full numerical analysis. The Mathematica file tried the SM case which confirmed that the high-T agrees with the lattice best. In this model it is very similar. This is tried by jupyter notebook but deleted later. For this reason, the high-T expansion is applied in the final result. The jupyter notebook is used for testing. It’s quite a mess right now.
The high-temperature expansion of the scalar effective potential offers a convenient way to perform analytical computation. The analytical calculation of high-T effective potential are calculated in Mathematica code. Plots can also be find in the same Mathematica code.
Near the boundary where the critical temperature is ill-defined, the critical temperature quickly diverges up and plots suffer from numerical fluctuation.
The data for Fig 1 is generated by kinetic_profile.py. Plots are made by mathematica code.
Fig 2 is scanned by betaH_curve.py.
Fig 3 is scanned by betaH_curve_sameTc.py.
The code scan2d.py scanned the nucleation temperature,
The model is implemented in 2 files, based on CosmoTransitions. The light_scalar.py implements the model with my personal algorithm to find the nucleation temperature.
This runs pretty well at GeV mass range. At smaller masses, the numerical issue becomes more serious, and I use light_scalar_interpolation.py.
This code is based on the previous one, with the solution for nucleation temperature is based on interpolation with tracing bounce action with temperature. (The previous one does not use interpolation). The function to find truevev, tunneling at T, finding nucleation temperature, the CosmoTransitions
sometimes fails to trace the minimum and thus cannot find phase transition.
All experimental signals are implemented in the main code, while the data can be found in the folder probe. Specifically, the GW signal is finished by GW.nb, showing that it fails.