def random_scan(): number_of_points_checked = 0 number_of_points = 100 accepted_points = [] higgs_creator = Particle.ParticleCreator(Higgs.Higgs, "configs/higgs.json") scalar_creator = Particle.ParticleCreator(Scalar.Scalar, "configs/scalar.json") fermion_creator = Particle.ParticleCreator(Fermion.Fermion, "configs/fermion.json") neutrino_creator = Particle.ParticleCreator(NeutrinoCouplings.Neutrino, "configs/neutrino_couplings.json") time_start = time.time() time_last_report = 0 time_report_interval = 5 while len(accepted_points) < number_of_points: time_running = time.time() - time_start if time_running > time_last_report + time_report_interval: time_last_report = time_running print("[{:0.1f}]: Checked: {}({:0.2f}/s), Accepted: {}({:0.2f}/s)".format( time_running, number_of_points_checked, number_of_points_checked/time_running, len(accepted_points), len(accepted_points)/time_running) ) model = ModelSPheno.ModelSPheno( higgs_creator.create(), fermion_creator.create(), scalar_creator.create(), neutrino_creator.create(), calculate_branching_ratios=False, calculate_one_loop_masses=True ) number_of_points_checked += 1 try: model.calculate_dependent_variables() except: continue micromegas = MicroMegas(model.spheno_output_file_path) micromegas.calculate() if random.random() < calculate_likelihood(model): accepted_points.append(model) with open("saved_models/{}.json".format(datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S.%f")), "w") as f: f.write( json.dumps(model, default=lambda object: object.__dict__, sort_keys=True, indent=4) )
def pprint(self): print(self.higgs) self.higgs_dependent.pprint() print(self.scalar) self.scalar_dependent.pprint() print(self.fermion) self.fermion_dependent.pprint() print(self.neutrino) self.neutrino_dependent.pprint() if __name__ == "__main__": higgs_creator = Particle.ParticleCreator(Higgs.Higgs, "configs/higgs.json") higgsDummy = higgs_creator.create() scalar_creator = Particle.ParticleCreator(Scalar.Scalar, "configs/scalar.json") scalarDummy = scalar_creator.create() fermion_creator = Particle.ParticleCreator(Fermion.Fermion, "configs/fermion.json") fermionDummy = fermion_creator.create() neutrino_creator = Particle.ParticleCreator(NeutrinoCouplings.Neutrino, "configs/neutrino_couplings.json") neutrinoDummy = neutrino_creator.create() model = ModelT12A(higgsDummy, fermionDummy, scalarDummy, neutrinoDummy) model.calculate_dependent_variables()
import Particle class Scalar(Particle.Particle): parameters = ["mass_singlet", "mass_doublet", "lambda_S", "lambda_D", "lambda_P", "lambda_PP", "A"] if __name__ == "__main__": scalar_creator = Particle.ParticleCreator(Scalar, "configs/scalar.json") for i in range(1000): scalar = scalar_creator.create() print(scalar.to_json())
import Particle class Neutrino(Particle.Particle): parameters = ["g11", "g12", "g13", "g21", "g22", "g23"] if __name__ == "__main__": neutrino_creator = Particle.ParticleCreator( Neutrino, "configs/neutrino_couplings.json") for i in range(1000): neutrino = neutrino_creator.create() print(neutrino.to_json())
import Particle class Fermion(Particle.Particle): parameters = ["mass_singlet", "mass_doublet", "y1", "y2"] if __name__ == "__main__": fermion_creator = Particle.ParticleCreator(Fermion, "configs/fermion.json") for i in range(1000): fermion = fermion_creator.create() print(fermion.to_json())
import Particle class Higgs(Particle.Particle): parameters = ["vev", "lambda_higgs"] if __name__ == "__main__": higgs_creator = Particle.ParticleCreator(Higgs, "configs/higgs.json") for i in range(100000): higgs = higgs_creator.create() print(higgs.to_json())
import Particle class Neutrino(Particle.Particle): parameters = [ "sin_theta12_squared", "sin_theta13_squared", "sin_theta23_squared", "delta_m12_squared_e5", "delta_m23_squared_e4", "cos_casas_ibarra_angle" ] if __name__ == "__main__": neutrino_creator = Particle.ParticleCreator( Neutrino, "configs/neutrino_masses.json") for i in range(1000): neutrino = neutrino_creator.create() print(neutrino.to_json())