DesignAnalysis/overview_position_dep.py

109 lines
3.3 KiB
Python
Raw Permalink Normal View History

2026-04-29 14:57:59 +02:00
#!/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()