Compare commits
2 commits
fb41cfe596
...
5e5dc65fbf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e5dc65fbf | ||
|
|
a8eec195cf |
3 changed files with 123 additions and 78 deletions
123
Halbleiter_BB_Ava.py
Normal file
123
Halbleiter_BB_Ava.py
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
#!/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
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue