109 lines
3.3 KiB
Python
109 lines
3.3 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
# -*- coding: utf-8 -*-
|
||
|
|
"""
|
||
|
|
Overview MPVs plot for BigBGO (AHBGOC) - adapted for DesignAnalysis folder
|
||
|
|
Created on Thu May 2 13:21:02 2024
|
||
|
|
@author: ava
|
||
|
|
"""
|
||
|
|
|
||
|
|
import matplotlib.pyplot as plt
|
||
|
|
import sys
|
||
|
|
import numpy as np
|
||
|
|
import pandas as pd
|
||
|
|
from pathlib import Path
|
||
|
|
sys.path.append(str(Path(__file__).resolve().parents[1]))
|
||
|
|
import plotstyle
|
||
|
|
|
||
|
|
MODE = "slides" # "paper" oder "slides"
|
||
|
|
MODE = "paper"
|
||
|
|
plotstyle.set_style(MODE)
|
||
|
|
|
||
|
|
# Fixed filenumbers without argparse
|
||
|
|
filenumbers = [14, 16, 18, 20, 5, 7]
|
||
|
|
|
||
|
|
files = []
|
||
|
|
descr = []
|
||
|
|
factors = []
|
||
|
|
|
||
|
|
for num in filenumbers:
|
||
|
|
if num == 14:
|
||
|
|
files.append("2023-12-21-AHBGOC-14-langzeit")
|
||
|
|
descr.append("two large diodes")
|
||
|
|
factors.append(1.0)
|
||
|
|
elif num == 16:
|
||
|
|
files.append("2024-01-19-AHBGOC-rau-16_2weeks")
|
||
|
|
descr.append("two large diodes, side roughened")
|
||
|
|
factors.append(1.0)
|
||
|
|
elif num == 18:
|
||
|
|
files.append("2024-03-27-AHBGOC-six-18")
|
||
|
|
descr.append("six small diodes, two preamps")
|
||
|
|
factors.append(1.0)
|
||
|
|
elif num == 20:
|
||
|
|
files.append("2024-04-11-AHBGOC-six-20")
|
||
|
|
descr.append("six small diodes, six preamps")
|
||
|
|
factors.append(1.0)
|
||
|
|
elif num == 22:
|
||
|
|
files.append("2024-04-25-AHBGOC-six-vac-22")
|
||
|
|
descr.append("six small diodes, six preamps, vacuum")
|
||
|
|
factors.append(1.0)
|
||
|
|
elif num == 5:
|
||
|
|
files.append("2026-03-10-ahbgoa-test-5")
|
||
|
|
descr.append("six small diodes, six preamps, dorn readout")
|
||
|
|
factors.append(1/0.7)
|
||
|
|
elif num == 7:
|
||
|
|
files.append("2026-04-13-ahbgoa-test-7")
|
||
|
|
descr.append("six small diodes, six preamps, dorn readout")
|
||
|
|
factors.append(1/0.7)
|
||
|
|
|
||
|
|
colors = ['tab:blue','tab:orange','tab:green','tab:red','tab:purple','tab:brown', 'tab:pink']
|
||
|
|
|
||
|
|
energy = 'keV'
|
||
|
|
f = 1.0
|
||
|
|
energystr = energy + '$_{Si}$'
|
||
|
|
|
||
|
|
plt.figure()
|
||
|
|
|
||
|
|
ypos=[138,148,162,175,107,100]
|
||
|
|
|
||
|
|
for i in range(len(files)):
|
||
|
|
filename = "/home/asterix/ava/BGO/"+"fitparameters/" + files[i] + '_mpv_sums'
|
||
|
|
data = pd.read_csv(filename+'.txt', sep='\s+')
|
||
|
|
|
||
|
|
plt.errorbar(data['P'],data['mpv']*factors[i], data['err_mpv']*factors[i],
|
||
|
|
fmt='o',capsize=5,ms=7,barsabove=True,color=colors[i], label=descr[i])
|
||
|
|
|
||
|
|
values = data['mpv'] * factors[i]
|
||
|
|
ma = max(values)
|
||
|
|
mi = min(values)
|
||
|
|
std = np.std(values)
|
||
|
|
mean = np.mean(values)
|
||
|
|
cv_percent = (std / mean) * 100 # Variationskoeffizient in Prozent
|
||
|
|
plt.hlines(ma,1,16.5+i/4,ls=':', color=colors[i])
|
||
|
|
plt.hlines(mi,1,16.5+i/4,ls=':', color=colors[i])
|
||
|
|
plt.errorbar(16.5+i/4, ma-(ma-mi)/2,(ma-mi)/2,capsize=10,linewidth=2,color=colors[i])
|
||
|
|
plt.fill_between([1,16.5+i/4], ma,mi,alpha = 0.1,color=colors[i])
|
||
|
|
|
||
|
|
kw = dict(color=colors[i])
|
||
|
|
#plt.text(17.5,ma-(ma-mi)/2-2/(2*i+1), "$\Delta$" + str(np.round(ma-mi,2)),kw)
|
||
|
|
#plt.text(18,ypos[i], "$\Delta$" + str(np.round(ma-mi,2)),kw)
|
||
|
|
plt.text(18, ypos[i], f"CV {cv_percent:.1f}\\%", kw, fontsize=24)
|
||
|
|
|
||
|
|
# Title
|
||
|
|
numberstr = ','.join(map(str, filenumbers))
|
||
|
|
tit = f"Overview MPVs at different trigger positions"
|
||
|
|
ylab = 'MPV [' + energystr + ']'
|
||
|
|
xlab = 'Triggerposition'
|
||
|
|
plt.legend(loc='upper right')
|
||
|
|
plt.xticks([1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15, 16, 17])
|
||
|
|
#plt.title(tit)
|
||
|
|
plt.ylabel(ylab)
|
||
|
|
plt.xlabel(xlab)
|
||
|
|
|
||
|
|
plt.ylim(100, 270)
|
||
|
|
plt.xlim(0.8, 20)
|
||
|
|
|
||
|
|
#plt.grid(True, which="both", ls="--", lw=0.5)
|
||
|
|
|
||
|
|
# Save plot
|
||
|
|
plotstyle.savefig("overview_position_dep", category="BGO")
|
||
|
|
plt.show()
|