Compare commits
2 commits
3b30eb1d47
...
5656d084b0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5656d084b0 | ||
|
|
6d83db4691 |
1 changed files with 120 additions and 0 deletions
120
testimpulse.py
Normal file
120
testimpulse.py
Normal file
|
|
@ -0,0 +1,120 @@
|
||||||
|
import numpy as np
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
import scipy
|
||||||
|
|
||||||
|
plt.rcParams["figure.figsize"] = (15,8)
|
||||||
|
plt.rcParams['xtick.labelsize'] = 15
|
||||||
|
plt.rcParams['ytick.labelsize'] = 15
|
||||||
|
plt.rcParams['axes.labelsize'] = 20
|
||||||
|
plt.rcParams['axes.titlesize']=25
|
||||||
|
plt.rcParams['legend.fontsize']=20
|
||||||
|
plt.rcParams['savefig.bbox']='tight'
|
||||||
|
|
||||||
|
def gauss(x, *p):
|
||||||
|
A, mu, sigma = p
|
||||||
|
return A*np.exp(-(x-mu)**2/(2.*sigma**2))
|
||||||
|
|
||||||
|
|
||||||
|
def fwhm(a):
|
||||||
|
p,cov=scipy.optimize.curve_fit(gauss,xdata=np.arange(len(a)),ydata=a,p0=[150,3880,20])
|
||||||
|
#plt.plot(gauss(np.arange(len(a)),*p))
|
||||||
|
return abs(2*np.sqrt(2*np.log(2))*p[2])
|
||||||
|
|
||||||
|
'''
|
||||||
|
def fwhm(a):
|
||||||
|
h=max(a)/2
|
||||||
|
u=False
|
||||||
|
k=0
|
||||||
|
for i in a:
|
||||||
|
if not u:
|
||||||
|
if i<=h:
|
||||||
|
k+=1
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
u=k
|
||||||
|
k+=1
|
||||||
|
else:
|
||||||
|
if i>=h:
|
||||||
|
k+=1
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
o=k
|
||||||
|
break
|
||||||
|
return o-u
|
||||||
|
'''
|
||||||
|
c0=np.loadtxt('data/c0.TKA')
|
||||||
|
c20=np.loadtxt('data/c20.TKA')
|
||||||
|
c95=np.loadtxt('data/c95.TKA')
|
||||||
|
c245=np.loadtxt('data/c245.TKA')
|
||||||
|
c320=np.loadtxt('data/c320.TKA')
|
||||||
|
c1020=np.loadtxt('data/c1020.TKA')
|
||||||
|
c1770=np.loadtxt('data/c1770.TKA')
|
||||||
|
|
||||||
|
cv0=np.loadtxt('data/cv0.TKA')
|
||||||
|
cv1=np.loadtxt('data/cv1.TKA')
|
||||||
|
cv2=np.loadtxt('data/cv2.TKA')
|
||||||
|
cv3=np.loadtxt('data/cv3.TKA')
|
||||||
|
cv4=np.loadtxt('data/cv4.TKA')
|
||||||
|
cv5=np.loadtxt('data/cv5.TKA')
|
||||||
|
cv10=np.loadtxt('data/cv10.TKA')
|
||||||
|
cv40=np.loadtxt('data/cv40.TKA')
|
||||||
|
|
||||||
|
halbC=[]
|
||||||
|
for c in [c0,c20,c95,c245,c320,c1020,c1770]:
|
||||||
|
halbC.append(fwhm(c))
|
||||||
|
#plt.plot(c,'b')
|
||||||
|
#plt.show()
|
||||||
|
|
||||||
|
halbV=[]
|
||||||
|
for v in [cv0,cv1,cv2,cv3,cv4,cv5,cv10,cv40]:
|
||||||
|
halbV.append(fwhm(v))
|
||||||
|
#plt.plot(v,'r')
|
||||||
|
#plt.show()
|
||||||
|
|
||||||
|
halbC=np.array(halbC)
|
||||||
|
halbV=np.array(halbV)
|
||||||
|
fig,axs=plt.subplots()
|
||||||
|
axs.plot(halbC,[0,20,95,245,320,1020,1770],'b',label='Detektor mit verschiedenen Spannungen')
|
||||||
|
axs.plot(halbC,[0,20,95,245,320,1020,1770],'r',label='Kapazitive Lasten')
|
||||||
|
axs.legend(loc=1)
|
||||||
|
axs2=axs.twinx()
|
||||||
|
axs2.plot(halbV,[0,1,2,3,4,5,10,40],'b')
|
||||||
|
axs2.set_ylabel('In Sperrichtung angelegte Spannung [V]')
|
||||||
|
axs.set_ylabel('Kapazitive Last [pF]')
|
||||||
|
axs.set_xlabel('Halbwertsbreite [bins]')
|
||||||
|
axs.axvline(halbV[-1],c='black',linestyle='--')
|
||||||
|
axs.axhline(277.35,xmax=0.313,c='black',linestyle='--')
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
lin10=np.loadtxt('data/linear10.TKA')
|
||||||
|
lin15=np.loadtxt('data/linear15.TKA')
|
||||||
|
lin20=np.loadtxt('data/linear20.TKA')
|
||||||
|
lin25=np.loadtxt('data/linear25.TKA')
|
||||||
|
lin30=np.loadtxt('data/linear30.TKA')
|
||||||
|
lin35=np.loadtxt('data/linear35.TKA')
|
||||||
|
lin40=np.loadtxt('data/linear40.TKA')
|
||||||
|
lin45=np.loadtxt('data/linear45.TKA')
|
||||||
|
lin50=np.loadtxt('data/linear50.TKA')
|
||||||
|
lin55=np.loadtxt('data/linear55.TKA')
|
||||||
|
linmax=[]
|
||||||
|
for l in [lin10,lin15,lin20,lin25,lin30,lin35,lin40,lin45,lin50,lin55]:
|
||||||
|
plt.plot(l)
|
||||||
|
linmax.append(np.argmax(l))
|
||||||
|
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def lin(x,a,b):
|
||||||
|
return a*x+b
|
||||||
|
|
||||||
|
linmax=np.array(linmax)
|
||||||
|
A=np.array([1,1.5,2,2.5,3,3.5,4,4.5,5,5.5])
|
||||||
|
p,cov=scipy.optimize.curve_fit(lin,A,linmax)
|
||||||
|
|
||||||
|
plt.scatter(A,linmax,c='r')
|
||||||
|
plt.plot(A,lin(A,p[0],p[1]),label=r'Fit pixel(E)=678$\frac{1}{MeV}\cdot$E[MeV]+163',c='b')
|
||||||
|
plt.legend()
|
||||||
|
plt.show()
|
||||||
|
print(p,cov)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue