From d11d7528e591336e3cb5a3f8c47312c4f6d22a25 Mon Sep 17 00:00:00 2001 From: shivesh Date: Wed, 28 Feb 2018 12:13:24 -0600 Subject: Initial Commit --- plot_llh/PhysConst.py | 390 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 plot_llh/PhysConst.py (limited to 'plot_llh/PhysConst.py') diff --git a/plot_llh/PhysConst.py b/plot_llh/PhysConst.py new file mode 100644 index 0000000..89a0be0 --- /dev/null +++ b/plot_llh/PhysConst.py @@ -0,0 +1,390 @@ +""" +Author : C.A. Arguelles +Date : 10/MAY/2011 + +Contains Physics constants and global variables. + +Log : +- Modified on 23/ABR/2012 by C.Arguelles + + Changed the definition of PhysicsConstants to + include an __init__ to separate the class global + properties from its instances. +""" + +# python standard modules +import numpy as np + +class PhysicsConstants(object): + + def __init__(self): + ## PHYSICS CONSTANTS + #=========================================================================== + # NAME + #=========================================================================== + + self.name = "STD" # Default values + self.linestyle = "solid" # Default linestyle in plots + self.markerstyle = "*" # Default marker style + self.colorstyle = "red" # Default color style + self.savefilename = "output.dat" # Default color style + + #=============================================================================== + # ## MATH + #=============================================================================== + self.PI=3.14159265 # Pi + self.PIby2=1.5707963268 # Pi/2 + self.sqr2=1.4142135624 # Sqrt[2] + self.ln2 = np.log(2.0) + + #=============================================================================== + # ## EARTH + #=============================================================================== + self.EARTHRADIUS = 6371.0 # [km] Earth radius + #=============================================================================== + # ## SUN + #=============================================================================== + self.SUNRADIUS = 109*self.EARTHRADIUS # [km] Sun radius + + #=============================================================================== + # # PHYSICAL CONSTANTS + #=============================================================================== + self.GF = 1.16639e-23 # [eV^-2] Fermi Constant + self.Na = 6.0221415e+23 # [mol cm^-3] Avogadro Number + self.sw_sq = 0.2312 # [dimensionless] sin(th_weinberg) ^2 + self.G = 6.67300e-11 # [m^3 kg^-1 s^-2] + self.alpha = 1.0/137.0 # [dimensionless] fine-structure constant + + #=============================================================================== + # ## UNIT CONVERSION FACTORS + #=============================================================================== + # Energy + self.TeV = 1.0e12 # [eV/TeV] + self.GeV = 1.0e9 # [eV/GeV] + self.MeV = 1.0e6 # [eV/MeV] + self.keV = 1.0e3 # [eV/keV] + self.Joule = 1/1.60225e-19 # [eV/J] + # Mass + self.kg = 5.62e35 # [eV/kg] + self.gr = 1e-3*self.kg # [eV/g] + # Time + self.sec = 1.523e15 # [eV^-1/s] + self.hour = 3600.0*self.sec # [eV^-1/h] + self.day = 24.0*self.hour # [eV^-1/d] + self.year = 365.0*self.day # [eV^-1/yr] + self.yearstosec = self.sec/self.year # [s/yr] + # Distance + self.meter = 5.076e6 # [eV^-1/m] + self.cm = 1.0e-2*self.meter # [eV^-1/cm] + self.km = 1.0e3*self.meter # [eV^-1/km] + self.fermi = 1.0e-15*self.meter # [eV^-1/fm] + self.angstrom = 1.0e-10*self.meter # [eV^-1/A] + self.AU = 149.60e9*self.meter # [eV^-1/AU] + self.parsec = 3.08568025e16*self.meter# [eV^-1/parsec] + # Integrated Luminocity # review + self.picobarn = 1.0e-36*self.cm**2 # [eV^-2/pb] + self.femtobarn = 1.0e-39*self.cm**2 # [eV^-2/fb] + # Presure + self.Pascal = self.Joule/self.meter**3 # [eV^4/Pa] + self.hPascal = 100.0*self.Pascal # [eV^4/hPa] + self.atm = 101325.0*self.Pascal # [eV^4/atm] + self.psi = 6893.0*self.Pascal # [eV^4/psi] + # Temperature + self.kelvin = 1/1.1604505e4 # [eV/K] + # Angle + self.degree = self.PI/180.0 # [rad/degree] + # magnetic field + self.T = 0.000692445 # [eV^2/T] + + # old notation + self.cm3toev3 = 7.68351405e-15 # cm^3-> ev^3 + self.KmtoEv =5.0677288532e+9 # km -> eV + self.yearstosec = 31536.0e3 # years -> sec + + #=============================================================================== + # ## NEUTRINO OSCILLATION PARAMETERS ## + #=============================================================================== + + self.numneu = 3 # number of neutrinos + self.numneumax = 6 # maximum neutrino number + self.neutype = 'neutrino' + #neutype = 'antineutrino' + + # values updated according to 1209.3023 Table 1 FreeFluxes + RSBL + + # MIXING ANGLES + + self.th12 = 0.579639 + self.th13 = 0.150098 + self.th23 = self.PIby2/2.0 + self.th14 = 0.0 + self.th24 = 0.0 + self.th34 = 0.0 + self.th15 = 0.0 + self.th25 = 0.0 + self.th35 = 0.0 + self.th45 = 0.0 + self.th16 = 0.0 + self.th26 = 0.0 + self.th36 = 0.0 + self.th46 = 0.0 + self.th56 = 0.0 + + # mixing angles matrix array + self.th = np.zeros([self.numneumax+1,self.numneumax+1],float) + self.th[1,2] = self.th12 + self.th[1,3] = self.th13 + self.th[2,3] = self.th23 + self.th[1,4] = self.th14 + self.th[2,4] = self.th24 + self.th[3,4] = self.th34 + self.th[1,5] = self.th15 + self.th[2,5] = self.th25 + self.th[3,5] = self.th35 + self.th[4,5] = self.th45 + self.th[1,6] = self.th16 + self.th[2,6] = self.th26 + self.th[3,6] = self.th36 + self.th[4,6] = self.th46 + self.th[5,6] = self.th56 + + self.s12 = np.sin(self.th12) + self.c12 = np.cos(self.th12) + self.s13 = np.sin(self.th13) + self.c13 = np.cos(self.th13) + self.s23 = np.sin(self.th23) + self.c23 = np.cos(self.th23) + self.s14 = np.sin(self.th14) + self.c14 = np.cos(self.th14) + self.s24 = np.sin(self.th24) + self.c24 = np.cos(self.th24) + self.s34 = np.sin(self.th34) + self.c34 = np.cos(self.th34) + self.s15 = np.sin(self.th15) + self.c15 = np.cos(self.th15) + self.s25 = np.sin(self.th25) + self.c25 = np.cos(self.th25) + self.s35 = np.sin(self.th35) + self.c35 = np.cos(self.th35) + self.s45 = np.sin(self.th45) + self.c45 = np.cos(self.th45) + self.s16 = np.sin(self.th16) + self.c16 = np.cos(self.th16) + self.s26 = np.sin(self.th26) + self.c26 = np.cos(self.th26) + self.s36 = np.sin(self.th36) + self.c36 = np.cos(self.th36) + self.s46 = np.sin(self.th46) + self.c46 = np.cos(self.th46) + self.s56 = np.sin(self.th56) + self.c56 = np.cos(self.th56) + + # cos(th_ij) matrix array + self.c = np.zeros([self.numneumax+1,self.numneumax+1],float) + self.c[1,2] = self.c12 + self.c[1,3] = self.c13 + self.c[1,4] = self.c14 + self.c[2,3] = self.c23 + self.c[2,4] = self.c24 + self.c[3,4] = self.c34 + self.c[1,5] = self.c15 + self.c[2,5] = self.c25 + self.c[3,5] = self.c35 + self.c[4,5] = self.c45 + self.c[1,6] = self.c16 + self.c[2,6] = self.c26 + self.c[3,6] = self.c36 + self.c[4,6] = self.c46 + self.c[5,6] = self.c56 + + # sin(th_ij) matrix array + self.s = np.zeros([self.numneumax+1,self.numneumax+1],float) + self.s[1,2] = self.s12 + self.s[1,3] = self.s13 + self.s[1,4] = self.s14 + self.s[2,3] = self.s23 + self.s[2,4] = self.s24 + self.s[3,4] = self.s34 + self.s[1,5] = self.s15 + self.s[2,5] = self.s25 + self.s[3,5] = self.s35 + self.s[4,5] = self.s45 + self.s[1,6] = self.s16 + self.s[2,6] = self.s26 + self.s[3,6] = self.s36 + self.s[4,6] = self.s46 + self.s[5,6] = self.s56 + + # CP PHASES + #self.delta21=3.3e-5 + #self.delta32=3.1e-3 + #self.delta31=self.delta32+self.delta21 + #self.deltaCP=self.PIby2 + + # CP Phases + self.deltaCP = 5.235987 + self.delta1 = self.deltaCP + self.delta2 = 0.0 + self.delta3 = 0.0 + + # d-CP phases + self.dcp = np.zeros([self.numneumax-2+1],complex) + self.dcp[0] = 1.0 + self.dcp[1] = self.delta1 + self.dcp[2] = self.delta2 + self.dcp[3] = self.delta3 + + # SQUARED MASS DIFFERENCE + self.dm21sq = 7.50e-5 # [eV^2] + self.dm31sq = 2.47e-3 # [eV^2] + self.dm32sq = -2.43e-3 # [eV^2] + # STERILE + self.dm41sq = 0.0 # [eV^2] + self.dm51sq = 0.0 # [eV^2] + self.dm61sq = 0.0 # [eV^2] + # SQUARED MASS DIFFERENCE MATRIX + self.dmsq = np.zeros([self.numneumax+2],float) + self.dmsq[2] = self.dm21sq + self.dmsq[3] = self.dm31sq + self.dmsq[4] = self.dm41sq + self.dmsq[5] = self.dm51sq + self.dmsq[6] = self.dm61sq + + self.dm2 = np.zeros([self.numneumax+1,self.numneumax+1],float) + self.dm2[1,2] = self.dm21sq + self.dm2[1,3] = self.dm31sq + self.dm2[2,3] = self.dm32sq + self.dm2[1,4] = self.dm41sq + self.dm2[1,5] = self.dm51sq + self.dm2[1,6] = self.dm61sq + + # MIXING MATRIX + self.U = None + + #=============================================================================== + # # PARTICLE MASSES + #=============================================================================== + self.muon_mass = 0.10565 # [GeV] + self.neutron_mass = 0.939565 # [GeV] + self.proton_mass = 0.938272 # [GeV] + self.electron_mass = 0.510998910e-3 # [GeV] + + self.atomic_mass_unit = 1.660538e-24 # [g] + + ## names + self.electron = 0 + self.muon = 1 + self.tau = 2 + self.sterile1 = 3 + self.sterile2 = 4 + self.sterile3 = 5 + + #=============================================================================== + # REFRESH + #=============================================================================== + + def Refresh(self): + # Refresh angles + self.s12 = np.sin(self.th12) + self.c12 = np.cos(self.th12) + self.s13 = np.sin(self.th13) + self.c13 = np.cos(self.th13) + self.s23 = np.sin(self.th23) + self.c23 = np.cos(self.th23) + self.s14 = np.sin(self.th14) + self.c14 = np.cos(self.th14) + self.s24 = np.sin(self.th24) + self.c24 = np.cos(self.th24) + self.s34 = np.sin(self.th34) + self.c34 = np.cos(self.th34) + self.s15 = np.sin(self.th15) + self.c15 = np.cos(self.th15) + self.s25 = np.sin(self.th25) + self.c25 = np.cos(self.th25) + self.s35 = np.sin(self.th35) + self.c35 = np.cos(self.th35) + self.s45 = np.sin(self.th45) + self.c45 = np.cos(self.th45) + self.s16 = np.sin(self.th16) + self.c16 = np.cos(self.th16) + self.s26 = np.sin(self.th26) + self.c26 = np.cos(self.th26) + self.s36 = np.sin(self.th36) + self.c36 = np.cos(self.th36) + self.s46 = np.sin(self.th46) + self.c46 = np.cos(self.th46) + self.s56 = np.sin(self.th56) + self.c56 = np.cos(self.th56) + + th = self.th + th[1,2] = self.th12 + th[1,3] = self.th13 + th[2,3] = self.th23 + th[1,4] = self.th14 + th[2,4] = self.th24 + th[3,4] = self.th34 + th[1,5] = self.th15 + th[2,5] = self.th25 + th[3,5] = self.th35 + th[4,5] = self.th45 + th[1,6] = self.th16 + th[2,6] = self.th26 + th[3,6] = self.th36 + th[4,6] = self.th46 + th[5,6] = self.th56 + # Refresh cos(th_ij) + c = self.c + c[1,2] = self.c12 + c[1,3] = self.c13 + c[1,4] = self.c14 + c[2,3] = self.c23 + c[2,4] = self.c24 + c[3,4] = self.c34 + c[1,5] = self.c15 + c[2,5] = self.c25 + c[3,5] = self.c35 + c[4,5] = self.c45 + c[1,6] = self.c16 + c[2,6] = self.c26 + c[3,6] = self.c36 + c[4,6] = self.c46 + c[5,6] = self.c56 + # Refresh sin(th_ij) + s = self.s + self.s[1,2] = self.s12 + self.s[1,3] = self.s13 + self.s[1,4] = self.s14 + self.s[2,3] = self.s23 + self.s[2,4] = self.s24 + self.s[3,4] = self.s34 + self.s[1,5] = self.s15 + self.s[2,5] = self.s25 + self.s[3,5] = self.s35 + self.s[4,5] = self.s45 + self.s[1,6] = self.s16 + self.s[2,6] = self.s26 + self.s[3,6] = self.s36 + self.s[4,6] = self.s46 + self.s[5,6] = self.s56 + # Refresh CP-Phases + dcp = self.dcp + dcp[0] = 1.0 + dcp[1] = self.delta1 + dcp[2] = self.delta2 + dcp[3] = self.delta3 + #dcp[4] = self.delta2 + # Refresh Square mass differences + dmsq = self.dmsq + dmsq[2] = self.dm21sq + dmsq[3] = self.dm31sq + dmsq[4] = self.dm41sq + dmsq[5] = self.dm51sq + dmsq[6] = self.dm61sq + + dm2 = self.dm2 + dm2[1,2] = self.dm21sq + dm2[1,3] = self.dm31sq + dm2[2,3] = self.dm32sq + dm2[1,4] = self.dm41sq + dm2[1,5] = self.dm51sq + dm2[1,6] = self.dm61sq + -- cgit v1.2.3