From be06613c26a98e6c0c796891befc532a7a130b51 Mon Sep 17 00:00:00 2001 From: Maps Date: Fri, 28 Mar 2025 22:46:33 +0100 Subject: [PATCH] Made scurve taking faster mainly by decreasing buffer in DABC --- dabc/EventBuilderFranz.xml | 2 +- dabc/EventBuilderScurve.xml | 172 ++++++++++++++++++++++++++++++++++++ scripts/WORKDIR/M42/curves | 37 -------- scripts/WORKDIR/M42/fpn | 42 --------- scripts/WORKDIR/M42/thn | 42 --------- scripts/cpp/mimosis.cxx | 16 ++-- 6 files changed, 183 insertions(+), 128 deletions(-) create mode 100644 dabc/EventBuilderScurve.xml delete mode 100755 scripts/WORKDIR/M42/curves delete mode 100755 scripts/WORKDIR/M42/fpn delete mode 100755 scripts/WORKDIR/M42/thn diff --git a/dabc/EventBuilderFranz.xml b/dabc/EventBuilderFranz.xml index 8ba7a0f..c2c9f3c 100644 --- a/dabc/EventBuilderFranz.xml +++ b/dabc/EventBuilderFranz.xml @@ -70,7 +70,7 @@ When starting analysis from the go4 gui, one should specify stream server with p - + diff --git a/dabc/EventBuilderScurve.xml b/dabc/EventBuilderScurve.xml new file mode 100644 index 0000000..4f6d0e9 --- /dev/null +++ b/dabc/EventBuilderScurve.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/WORKDIR/M42/curves b/scripts/WORKDIR/M42/curves deleted file mode 100755 index 8a13543..0000000 --- a/scripts/WORKDIR/M42/curves +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env python3 - -import csv -from scipy import special -import matplotlib.pyplot as plt -import numpy as np -import pandas as pd -import sys - -f = sys.argv[1] - -dataset = pd.read_csv(f, delimiter='\t',header=None) -values = list(dataset.columns.values) -meansig = np.array(dataset[values[0:5]], dtype='float32') - -x = np.linspace(0, 255, num=255) - -plt.rcParams.update({ - "text.usetex": True -}) - -for i in range(len(meansig)): - # if meansig[i,2] != 0: - if meansig[i,2] != 0 or meansig[i,4] < 1.0: - continue - # plt.plot(x, 50000*(1 + special.erf((x-meansig[i,3])/(np.sqrt(2)*meansig[i,4]))), color='red') - plt.plot(x, 0.5*(1 + special.erf((x-meansig[i,3])/(np.sqrt(2)*meansig[i,4]))), color='red') - -plt.xlabel('setting') -plt.ylabel(r'$\frac{\textrm{detected pulses}}{\textrm{total pulses}}$') -plt.title('S-curves, Region A, M42') - -# stats = (f'$\\mu$ = {mean:.2f}\n' -# f'$\\sigma$ = {std:.2f}\n') -# plt.text(plt.gca().get_xlim()[1]*0.7, plt.gca().get_ylim()[1]*0.7, stats) - -plt.savefig("curves.png") diff --git a/scripts/WORKDIR/M42/fpn b/scripts/WORKDIR/M42/fpn deleted file mode 100755 index c677b12..0000000 --- a/scripts/WORKDIR/M42/fpn +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 - -import csv -from scipy import special -import matplotlib.pyplot as plt -import numpy as np -import os -import pandas as pd -import sys - -f = sys.argv[1] - -dataset = pd.read_csv(f, delimiter='\t',header=None) -values = list(dataset.columns.values) -meansig = np.array(dataset[values[0:5]], dtype='float32') -x = np.linspace(0, 255, num=255) -hist = np.zeros(255) -count = 0 -count_invalid = 0 - -for i in range(len(meansig)): - if meansig[i,2] != 0: - count_invalid = count_invalid + 1 - continue - count = count + 1 - hist[int(round(meansig[i,3]))] += 1 - -mean = np.mean([meansig[i,3] for i in range(len(meansig)) if meansig[i,2] == 0]) -std = np.std([meansig[i,3] for i in range(len(meansig)) if meansig[i,2] == 0]) -# print(count_invalid) -# print(count) -plt.bar(x,hist,width=1) -plt.xlabel('setting') -plt.ylabel('counts') -plt.title('Fix pattern noise') - -stats = (f'$\\mu$ = {mean:.2f}\n' - f'$\\sigma$ = {std:.2f}\n') -plt.text(plt.gca().get_xlim()[1]*0.7, plt.gca().get_ylim()[1]*0.7, stats) - -plt.savefig("fpn.png") -plt.show() diff --git a/scripts/WORKDIR/M42/thn b/scripts/WORKDIR/M42/thn deleted file mode 100755 index 1fc77e6..0000000 --- a/scripts/WORKDIR/M42/thn +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 - -import csv -from scipy import special -import matplotlib.pyplot as plt -import numpy as np -import os -import pandas as pd -import sys - -f = sys.argv[1] - -dataset = pd.read_csv(f, delimiter='\t',header=None) -values = list(dataset.columns.values) -meansig = np.array(dataset[values[0:5]], dtype='float32') -x = np.linspace(0, 255, num=255) -hist = np.zeros(255) -count = 0 -count_invalid = 0 - -for i in range(len(meansig)): - if meansig[i,2] != 0: - count_invalid = count_invalid + 1 - continue - count = count + 1 - hist[int(round(meansig[i,4]))] += 1 - -mean = np.mean([meansig[i,4] for i in range(len(meansig)) if meansig[i,2] == 0]) -std = np.std([meansig[i,4] for i in range(len(meansig)) if meansig[i,2] == 0]) -# print(count_invalid) -# print(count) -plt.bar(x,hist,width=1) -plt.xlabel('setting') -plt.ylabel('counts') -plt.title('Thermal noise') - -stats = (f'$\\mu$ = {mean:.2f}\n' - f'$\\sigma$ = {std:.2f}\n') -plt.text(plt.gca().get_xlim()[1]*0.7, plt.gca().get_ylim()[1]*0.7, stats) - -plt.savefig("thn.png") -plt.show() diff --git a/scripts/cpp/mimosis.cxx b/scripts/cpp/mimosis.cxx index 4dbefcf..72759ce 100644 --- a/scripts/cpp/mimosis.cxx +++ b/scripts/cpp/mimosis.cxx @@ -402,6 +402,13 @@ loop_vph( yLow,yHig,xLow,xHig,vphSta,vphEnd,vphTra,maxCounts,mod); #endif + + // using namespace std::chrono; + // auto start = high_resolution_clock::now(); + // auto stop = high_resolution_clock::now(); + // auto duration = duration_cast(stop-start); + // std::printf("%lld\n", duration.count()); + int pulse = static_cast(std::pow(2.0,static_cast(exp))); hadaq::ReadoutHandle ref = hadaq::ReadoutHandle::Connect(source); @@ -414,7 +421,9 @@ loop_vph( int arrSize = ySpan*xSpan*256; int* dataArray = new int[arrSize]; +#ifdef DEBUG printf("ARRAY SIZE: %d\n", arrSize); +#endif for(int i = 0; i(stop-start); int mimTra = 0; @@ -445,7 +450,6 @@ loop_vph( hadaq::RawSubevent* sub = nullptr; - // while (((sub = evnt->NextSubevent(sub)) != nullptr) && (sub->GetId() == fpga)) // Does not work!! while ((sub = evnt->NextSubevent(sub)) != nullptr) { if (sub->GetId() == fpga) -- 2.43.0