Compare commits

..

No commits in common. "5e5dc65fbf0f2fc21fdb4291af98810b6f3e6054" and "fb41cfe5966a5e66b943f743033903b99b579ed8" have entirely different histories.

3 changed files with 78 additions and 123 deletions

View file

@ -1,123 +0,0 @@
import numpy as np
# Elementarkonstanten
c=2.99792458e8 # Lichtgeschwindigkeit (m/s)
Na=6.022140857e23 # Avogadro-Konstante (mol^{-1})
u=1e-3/Na # units in kg: u=1.660538e-27
e=1.6021766208e-19 # Elementarladung (C)
me=9.10938356e-31 # Elektronenmasse (kg)
mp=1.672e-27 # Protonenmasse (kg)
e0=8.854187817e-12 # Elektrische Feldkonstante (A s / V m)
h=6.62607015e-34 # Planckkonstante (Js)
hbar=h/(2*np.pi) # hquer (Js)
a=e*e/(4 *np.pi *e0 *hbar *c) # Feinstrukturkonstante = 1/137
a0=hbar/(me *c *a) # Bohr radius
re=e*e/(4 *np.pi *e0 *me *c *c) # lassical electron radius re=2.8179403227e-15 m
c=2.99792458e8 # Lichtgeschwindigkeit in m/s
Na=6.022140857e23 # Avogadro-Konstante in mol**-1
kB=1.380649e-23 # Boltzmann-Konstante in J/K
u=1e-3/Na # units in kg: u=1.660538e-27
qe=1.6021766208e-19 # Elementarladung in C
me=9.10938356e-31 # Elektronenmasse in kg
mp=1.672e-27 # Protonenmasse in kg
eps0=8.854187817e-12 # Elektrische Feldkonstante in A s / V m
h=6.62607015e-34 # Planckkonstante in Js
hbar=h/(2*np.pi) # hquer in Js
a=qe*qe/(4 *np.pi *eps0 *hbar *c)#Feinstrukturkonstante = 1/137
a0=hbar/(me *c *a) #Bohr radius
re=qe*qe/(4 *np.pi *eps0 *me *c *c)#classical electron radius re=2.8179403227e-15 m
#Alpha-projekttil
mass_alpha=4*u # Masse Alphateilchen (kg)
Z_alpha=2 # Ladung Alphateilchen (e)
#Gold
Z_Au=79
A_Au=196.966569
rho_Au=19.32*1e3
ne_Au=Z_Au*rho_Au/(A_Au*u)
I_Au=790*qe #https://www.physics.nist.gov/cgi-bin/Star/compos.pl?matno=079
IE1_Au=8.15168*qe
#Silizium Si
Z_Si=14
A_Si=28.085
rho_Si=2.329*1e3
ne_Si=Z_Si*rho_Si/(A_Si*u)
I_Si=173*qe #https://www.physics.nist.gov/cgi-bin/Star/compos.pl?matno=014
IE1_Si=8.15168*qe
def beta(v):
return v/c
def gamma(v): #Lorentz gamma
return 1./np.sqrt(1-v*v/c/c)
def velo(Ekin): #invert kinetic energy, E_kin, for speed, v.
b2 = 1.-1./(1.+Ekin/mass_alpha/c/c)**2
return np.sqrt(b2)*c
###aus http://www.ieap.uni-kiel.de/et/people/wimmer/teaching/Phys_IV/bethe-bloch.py
def dEdx(Ekin,ne,EB): #dE/dx Bethe-Bloch
v = velo(Ekin)
b2 = beta(v)**2
C = Z_alpha**2*qe**4/4/np.pi/eps0**2/me
ln_term = np.log(2.*me*v**2/EB)
return C/v**2*ne*(ln_term - np.log(1.-b2) - b2)
def bethebloch(ne, I,dx, E_term=0,x_term=float('inf')):
global E
if(E_term == 0): # falls nichts angegeben:
E_term = kB*273.15 # ~ thermische Energie
if(x_term < float('inf')): # falls Materialdicke angegeben
print("Integrations-Abbruch falls x > %g m"%(x_term))
dx=dx # Eindringstiefenschritt in m
x=0. # Eindringtiefe in m
E_lost=0. # Energieverlust in J
dE=0. # Bremsvermoegen*dx in J/m*dx
arr=[]
E0=mass_alpha*c*c # Ruheenergie
dE_mip=dEdx(3*E0,ne,I)*dx
while(E>E_term): #Integrations-Abbruchbedingung
x=x+dx
if(x>x_term): #Integrations-Abbruchbedingung
print("abbruch, x = %g m "%(x))
break
dE=dEdx(E,ne,I)*dx #Bethe-Bloch-Formel
if(dE<dE_mip): #Integrations-Abbruchbedingung falls
print("abbruch, dE/dx = %g MeV/mm "%(dE/qe/dx/1e9))
break
E_lost+= dE
E-=dE
#print("%g m %g eV %g MeV/mm"%(x,E/qe,dE/qe/dx/1e9), end="\r", flush=True)
arr.append([x,E/qe,dE/qe/dx])
print("\n Eindringtiefe x = %g μm"%(x/1e-6))
print(" Energieverlust E_lost = %g keV"%(E_lost/qe/1e3))
print(" Restenergie Ekin = %g keV"%(E/qe/1e3), flush=True)
return arr # [m,eV,eV/m]
print("\n\n\nohne Goldfolie:")
E=5.5*1e6*e
print("Anfangsenergie E =",E/e/1e6,"MeV)")
arr1=bethebloch(ne_Si, I_Si,1e-9)
#np.savetxt("bb_FP_Alpha_5500keV_Au.txt",arr1)
#
d_Au=40e-5/rho_Au
E=5.5*1e6*e
print("\nEnergieverlust in Goldfolie:")
print("Anfangsenergie in Gold E =",E/e/1e6,"MeV; Golddicke x =",d_Au*1e9,'$\mu$m')
arr2=bethebloch(ne_Au,I_Au,1e-12,x_term=d_Au)
#np.savetxt("bb_FP_Alpha_5500keV_Au.txt",arr1)
print("\n\nmit Goldfolie:")
print("Anfangsenergie E =",E/e/1e6,"MeV)")
arr3=bethebloch(ne_Si, I_Si, 1e-9)

78
Halbleiter_BetheBloch.py Normal file
View file

@ -0,0 +1,78 @@
#!/usr/bin/env python3
import numpy as np
# Elementarkonstanten
c=2.99792458e8 # Lichtgeschwindigkeit (m/s)
Na=6.022140857e23 # Avogadro-Konstante (mol^{-1})
u=1e-3/Na # units in kg: u=1.660538e-27
e=1.6021766208e-19 # Elementarladung (C)
me=9.10938356e-31 # Elektronenmasse (kg)
mp=1.672e-27 # Protonenmasse (kg)
e0=8.854187817e-12 # Elektrische Feldkonstante (A s / V m)
h=6.62607015e-34 # Planckkonstante (Js)
hbar=h/(2*np.pi) # hquer (Js)
a=e*e/(4 *np.pi *e0 *hbar *c) # Feinstrukturkonstante = 1/137
a0=hbar/(me *c *a) # Bohr radius
re=e*e/(4 *np.pi *e0 *me *c *c) # lassical electron radius re=2.8179403227e-15 m
constant=(4 *np.pi) /(me *c**2) *( e**2 /(4 *np.pi *e0) )**2 # Vorfaktor Bethe-Bloch
mass_alpha=4*u # Masse Alphateilchen (kg)
Z_alpha=2 # Ladung Alphateilchen (e)
Z_Au=79 # Au Ordnungszahl
A_Au=196.966569 # Au Massenzahl
rho_Au=19300 # Dichte Au (kg/m3)
n_Au=Z_Au*rho_Au/(A_Au*u) # Elektronendichte Au
I_Au=9*e # Ionisierungsenergie https://www.internetchemie.info/chemie-lexikon/daten/i/ionisierungsenergie.php https://www.internetchemie.info/chemie-lexikon/daten/i/
I_Au=790*e # mittleres Ionisationspotential Gold in J http://pdg.lbl.gov/2018/AtomicNuclearProperties/HTML/gold_Au.html
E=5.5*1e6*e
#--------------------------------------------------------------------------
d_Au=40e-5/rho_Au # Dicke Gold bei uns mit (1e-9kg)/(1e-4m**2)
print("\n Anfangsenergie in Gold E =",E/e/1e6,"MeV; Golddicke x =",d_Au,"m")
dx=0.000000000001 # Eindringtiefenschritt in m
x=0 # Eindringtiefe in m
E_lost=0 # Energieverlust in Goldfolie in J
while(x<=d_Au):
v=np.sqrt(2*E/mass_alpha) # Geschwindigkeit
beta=v/c # Beta
dE = constant *n_Au *Z_alpha**2 /beta**2 *np.log( ((2 *me *c**2 *beta**2) /(I_Au *(1-beta**2)) ) -beta**2 ) *dx
E_lost=E_lost+dE
x=x+dx
print("E_lost =",E_lost/e/1e3,"keV")
Z_si=14 # Ordnungszahl Silizium
A_si=28.085 # Massenzahl Silizium in units
rho_si=2329 # Dichte Silizium in kg/m3
n_si=Z_si*rho_si/(A_si*u) # Elektronendichte Silizium /m3
I_si=173*e ## mittleres Ionisationspotential Silizium in J http://pdg.lbl.gov/2018/AtomicNuclearProperties/HTML/silicon_Si.html
I_si=8.1517*e # Ionisierungsenergie https://www.internetchemie.info/chemie-lexikon/daten/i/ionisierungsenergie.php https://www.internetchemie.info/chemie-lexikon/daten/i/ionisierungsenergie.php
def silizium(E):
print("\n Anfangsenergie in Silizium E =",E/e/1e6,"MeV")
dx=1e-11 # Iterationsschrittweite (m)
i=0 # Zählvariable
arr_x_E=[]
while(E>=2.4e-15): #Abbruchbedingung Integration
i=i+1
v=np.sqrt(2*E/mass_alpha)
beta=v/c
dE = constant *n_si *Z_alpha**2 /beta**2 *np.log( ( (2 *me *c**2 *beta**2) /(I_si *(1-beta**2)) ) -beta**2 ) *dx
E=E-dE
arr_x_E.append([i*dx,E/e,dE/e])
print(" Eindringtiefe x=",i*dx*1000000,"$/mu$ m"," Restenergie =",E/e,"eV")
return arr_x_E
np.savetxt("BB-silizium.txt",silizium(E))
np.savetxt("BB-silizium-gold.txt",silizium(E-E_lost))
# Anfangsenergie in Gold E = 5.5 MeV; Golddicke x = 2.072538860103627e-08 m
# E_lost = 8.959572313561473 keV
# Anfangsenergie in Silizium E = 5.5 MeV
# Eindringtiefe x= 10.636259999999998 $\mu$ m Restenergie = 14978.555400984305 eV
# Anfangsenergie in Silizium E = 5.491040427686439 MeV
# Eindringtiefe x= 10.60493 $\mu$ m Restenergie = 14978.85227328256 eV

View file