added injector2
This commit is contained in:
267
readdatafileInjector.py
Normal file
267
readdatafileInjector.py
Normal file
@@ -0,0 +1,267 @@
|
|||||||
|
import h5py as hdf
|
||||||
|
import math
|
||||||
|
import numpy as np
|
||||||
|
from scipy import signal
|
||||||
|
from scipy.signal import hilbert
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
import matplotlib
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
file = open('/hipa/bd/data/measurements/tina/C1--333--00000 1ms 800uA.dat','r')
|
||||||
|
|
||||||
|
content = file.readlines()
|
||||||
|
#print(content)
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
|
||||||
|
t = []
|
||||||
|
y1 = []
|
||||||
|
y2 = []
|
||||||
|
yall1 = []
|
||||||
|
yall2 = []
|
||||||
|
idxall = []
|
||||||
|
#t_stepsize = 0.0000000004*50
|
||||||
|
t_stepsize = 1/(50.6328*10**6)/50 # 0.00000002
|
||||||
|
print(t_stepsize)
|
||||||
|
print(1/(2.5*10**9))
|
||||||
|
#t_stepsize = 1/(2.5*10**9)
|
||||||
|
t_offset = 2500002/2
|
||||||
|
t_inc = 0
|
||||||
|
|
||||||
|
for count, entry in enumerate(content[0:]):
|
||||||
|
entry=entry.replace('\n','')
|
||||||
|
|
||||||
|
val=entry.split(' ')
|
||||||
|
|
||||||
|
if count < 50:
|
||||||
|
print(count, val[0], val[1])
|
||||||
|
t_inc += t_stepsize
|
||||||
|
t.append(val[0])
|
||||||
|
|
||||||
|
|
||||||
|
yall1.append(float(val[1])*(-1))
|
||||||
|
#yall2.append(float(val[2]))
|
||||||
|
idxall.append(t_inc) #count
|
||||||
|
#if count < 200:
|
||||||
|
# break
|
||||||
|
# print(val[1], val[2], count, t_inc )
|
||||||
|
#if count > 300:
|
||||||
|
# sys.exit(0)
|
||||||
|
|
||||||
|
sys.exit()
|
||||||
|
start=12
|
||||||
|
stop=2500002
|
||||||
|
_y1 = []
|
||||||
|
_y2 = []
|
||||||
|
count = 0
|
||||||
|
t_inc = 0
|
||||||
|
idx = []
|
||||||
|
for val in range(start,stop,50):
|
||||||
|
_test1_array = yall1[val : val+50]
|
||||||
|
_test2_array = yall2[val : val+50]
|
||||||
|
_y1.append(np.array(_test1_array).max())
|
||||||
|
_y2.append(np.array(_test2_array).max())
|
||||||
|
count += 1
|
||||||
|
t_inc += t_stepsize
|
||||||
|
idx.append(t_inc)
|
||||||
|
|
||||||
|
idx = np.array(idx) - t_offset*t_stepsize
|
||||||
|
|
||||||
|
|
||||||
|
y1 = _y1
|
||||||
|
y2 = _y2
|
||||||
|
print(y1[0:50], y2[0:50] )
|
||||||
|
|
||||||
|
f1 = hdf.File('/hipa/bd/data/measurements/Tina_2024-09-13_15:57:07.h5','a')
|
||||||
|
#f1 = hdf.File('/hipa/bd/data/measurements/Tina_2024-07-03_15:44:14.h5','a') #5Tina_2024-08-07_10:41:04.h5','a')
|
||||||
|
grp = f1.require_group('Raw_data')
|
||||||
|
if 't' in grp:
|
||||||
|
del grp['t']
|
||||||
|
if 'y1' in grp:
|
||||||
|
del grp['y1']
|
||||||
|
if 't_idx' in grp:
|
||||||
|
del grp['t_idx']
|
||||||
|
if 'y2' in grp:
|
||||||
|
del grp['y2']
|
||||||
|
if 'yall1' in grp:
|
||||||
|
del grp['yall1']
|
||||||
|
if 'yall2' in grp:
|
||||||
|
del grp['yall2']
|
||||||
|
dset_yall1 = grp.create_dataset('yall1', data=yall1)
|
||||||
|
dset_yall2 = grp.create_dataset('yall2', data=yall2)
|
||||||
|
dset_t = grp.create_dataset("t", data=t)
|
||||||
|
dset_y1 = grp.create_dataset('y1', data=y1)
|
||||||
|
dset_y2 = grp.create_dataset('y2', data=y2)
|
||||||
|
dset_t_idx = grp.create_dataset("t_idx", data=idx)
|
||||||
|
print(dset_y1.name)
|
||||||
|
f1.close()
|
||||||
|
|
||||||
|
|
||||||
|
analytic_signal_1 = y1 #hilbert(y1)
|
||||||
|
amplitude_envelope_1 = np.abs(analytic_signal_1) #analytic_signal_1 #
|
||||||
|
analytic_signal_2 = y2 #hilbert(y2)
|
||||||
|
amplitude_envelope_2 = np.abs(analytic_signal_2) #analytic_signal_2 #
|
||||||
|
|
||||||
|
#amplitude_envelope_1, peaks1 = signal.find_peaks(y1, height=0.012)
|
||||||
|
#amplitude_envelope_2, peaks2 = signal.find_peaks(y2, height=0.015)
|
||||||
|
|
||||||
|
|
||||||
|
mean_amplitude_envelope_1 = np.mean(amplitude_envelope_1, keepdims=True)
|
||||||
|
mean_amplitude_envelope_2 = np.mean(amplitude_envelope_2, keepdims=True)
|
||||||
|
|
||||||
|
mean_amplitude_envelope_1 = np.mean(analytic_signal_1, keepdims=True)
|
||||||
|
mean_amplitude_envelope_2 = np.mean(analytic_signal_2, keepdims=True)
|
||||||
|
|
||||||
|
print(mean_amplitude_envelope_1, mean_amplitude_envelope_2)
|
||||||
|
|
||||||
|
normalized_amplitude_envelope_1 = (analytic_signal_1 - mean_amplitude_envelope_1) #/ (np.std(amplitude_envelope_1)) # * len(amplitude_envelope_1))
|
||||||
|
normalized_amplitude_envelope_2 = (analytic_signal_2 - mean_amplitude_envelope_2) #/ (np.std(amplitude_envelope_2))
|
||||||
|
|
||||||
|
#normalized_amplitude_envelope_1 = (amplitude_envelope_1 - mean_amplitude_envelope_1) #/ (np.std(amplitude_envelope_1)) # * len(amplitude_envelope_1))
|
||||||
|
#normalized_amplitude_envelope_2 = (amplitude_envelope_2 - mean_amplitude_envelope_2) #/ (np.std(amplitude_envelope_2))
|
||||||
|
#rms_amplitude_envelope_1 = np.sqrt(np.mean(normalized_amplitude_envelope_1**2))
|
||||||
|
#rms_amplitude_envelope_2 = np.sqrt(np.mean(normalized_amplitude_envelope_2**2))
|
||||||
|
#print(rms_amplitude_envelope_1, rms_amplitude_envelope_2)
|
||||||
|
|
||||||
|
|
||||||
|
#norm_1 = np.linalg.norm(amplitude_envelope_1)
|
||||||
|
#normalized_amplitude_envelope_1 = amplitude_envelope_1/norm_1
|
||||||
|
#norm_2 = np.linalg.norm(amplitude_envelope_2)
|
||||||
|
#normalized_amplitude_envelope_2 = amplitude_envelope_2/norm_2
|
||||||
|
|
||||||
|
print (normalized_amplitude_envelope_1[0:10])
|
||||||
|
print (amplitude_envelope_1[0:10])
|
||||||
|
|
||||||
|
'''
|
||||||
|
y2_peaks = signal.find_peaks(normalized_amplitude_envelope_2, height=0.005)
|
||||||
|
y1_peaks = signal.find_peaks(normalized_amplitude_envelope_1, height=0.002)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print(y2_peaks)
|
||||||
|
print(y1_peaks)
|
||||||
|
print(y1_peaks[0])
|
||||||
|
print(y1_peaks[1]['peak_heights'])
|
||||||
|
print("length y1 peaks", len(y1_peaks[0]))
|
||||||
|
print(y2_peaks[0])
|
||||||
|
print(y2_peaks[1]['peak_heights'])
|
||||||
|
print("length y2 peaks", len(y2_peaks[0]))
|
||||||
|
#sys.exit(1)
|
||||||
|
normalized_amplitude_envelope_1_p = y1_peaks[1]['peak_heights']
|
||||||
|
normalized_amplitude_envelope_2_p = y2_peaks[1]['peak_heights']
|
||||||
|
#normalized_amplitude_envelope_1_p = y1
|
||||||
|
#normalized_amplitude_envelope_2_p = y2
|
||||||
|
#sys.exit(0)
|
||||||
|
'''
|
||||||
|
|
||||||
|
y1_array = []
|
||||||
|
y2_array = []
|
||||||
|
|
||||||
|
'''
|
||||||
|
for i, val in enumerate(y1):
|
||||||
|
if (i in y1_peaks[0]):
|
||||||
|
_idx = np.where(y1_peaks[0] == i)[0][0]
|
||||||
|
y1_array.append(y1_peaks[1]['peak_heights'][_idx])
|
||||||
|
else:
|
||||||
|
y1_array.append(0)
|
||||||
|
|
||||||
|
for i, val in enumerate(y2):
|
||||||
|
if i in y2_peaks[0]:
|
||||||
|
_idx = np.where(y2_peaks[0] == i)[0][0]
|
||||||
|
y2_array.append(y2_peaks[1]['peak_heights'][_idx])
|
||||||
|
else:
|
||||||
|
y2_array.append(0)
|
||||||
|
'''
|
||||||
|
#print(len(y1_array))
|
||||||
|
#print(len(y2_array))
|
||||||
|
|
||||||
|
#sys.exit(0)
|
||||||
|
#normalized_amplitude_envelope_1_p = y1_array
|
||||||
|
#normalized_amplitude_envelope_2_p = y2_array
|
||||||
|
|
||||||
|
idx2 = []
|
||||||
|
idx_neg = []
|
||||||
|
#for val in reversed(idx[1:]):
|
||||||
|
# idx_neg.append(val * (-1))
|
||||||
|
#idx2 = idx + idx_neg
|
||||||
|
mid_time = idx[-1]/2
|
||||||
|
|
||||||
|
for val in idx:
|
||||||
|
idx_neg.append(val-mid_time)
|
||||||
|
|
||||||
|
#print(normalized_amplitude_envelope_1_p)
|
||||||
|
#print(normalized_amplitude_envelope_2_p)
|
||||||
|
#normalized_amplitude_envelope_1_p = y1
|
||||||
|
#normalized_amplitude_envelope_2_p = y2
|
||||||
|
|
||||||
|
corr = signal.correlate(normalized_amplitude_envelope_2, normalized_amplitude_envelope_1, mode='same', method='auto')/len(amplitude_envelope_1)
|
||||||
|
corr_full = signal.correlate(normalized_amplitude_envelope_2, normalized_amplitude_envelope_1, mode='full', method='auto') #/len(amplitude_envelope_1)
|
||||||
|
#corr_valid = signal.correlate(normalized_amplitude_envelope_1, normalized_amplitude_envelope_2, mode='valid', method='auto')
|
||||||
|
lags = signal.correlation_lags(len(normalized_amplitude_envelope_2), len(normalized_amplitude_envelope_1), mode='same')
|
||||||
|
lags_full = signal.correlation_lags(len(normalized_amplitude_envelope_2), len(normalized_amplitude_envelope_1), mode='full')
|
||||||
|
|
||||||
|
lags_full = lags_full #* t_stepsize
|
||||||
|
lags = lags #* t_stepsize
|
||||||
|
|
||||||
|
#lags_valid = signal.correlation_lags(len(normalized_amplitude_envelope_2), len(normalized_amplitude_envelope_1), mode='valid')
|
||||||
|
lag_full = lags_full[np.argmax(corr_full)]
|
||||||
|
lag = lags[np.argmax(corr)]
|
||||||
|
#lag_valid = lags_valid[np.argmax(corr_valid)]
|
||||||
|
#corr = corr/rms_amplitude_envelope_1/rms_amplitude_envelope_2
|
||||||
|
print("lag same/full", lag, lag_full)
|
||||||
|
print("lag same/full", lag * t_stepsize, lag_full * t_stepsize)
|
||||||
|
print("length lags", len(lags))
|
||||||
|
|
||||||
|
print("VALID", signal.correlate(normalized_amplitude_envelope_1, normalized_amplitude_envelope_2, mode='valid'))
|
||||||
|
|
||||||
|
#lags = signal.correlation_lags(len(amplitude_envelope_2), len(amplitude_envelope_1))
|
||||||
|
#corr4 = signal.correlate(analytic_signal_1, analytic_signal_2, mode='full')
|
||||||
|
print(len(y2))
|
||||||
|
print(len(amplitude_envelope_2))
|
||||||
|
print("max correlation", np.max(corr))
|
||||||
|
print("arg of max corrrelation", np.argmax(corr))
|
||||||
|
print("time index", idx[np.argmax(corr)])
|
||||||
|
#print(y1)
|
||||||
|
|
||||||
|
#y1 = [0.000231, -0.000273, 0.000206, 0.000408,
|
||||||
|
#0.000609, 0.000231, 0.000508, 0.000760,
|
||||||
|
#0.000433, 0.000206, 0.000231, 0.000130]
|
||||||
|
|
||||||
|
subplots = 4
|
||||||
|
ln=500
|
||||||
|
ln2=1239770
|
||||||
|
ln3=1260230
|
||||||
|
|
||||||
|
|
||||||
|
if subplots == 4:
|
||||||
|
fig, (ax) = plt.subplots(nrows=2, ncols=2, figsize=(18,9))
|
||||||
|
|
||||||
|
#ax1.yticks(np.arange(min(y1), max(y1), 1))
|
||||||
|
ax[0,0].ticklabel_format(useOffset=False, style='plain')
|
||||||
|
#ax[0,0].plot(idx[0:ln], amplitude_envelope_1[0:ln], 'b')
|
||||||
|
#y1
|
||||||
|
ax[0,0].plot(idxall[0:ln], yall1[0:ln], 'ro')
|
||||||
|
###ax[0,0].plot(idx[0:ln2], normalized_amplitude_envelope_1[0:ln2], 'ro')
|
||||||
|
#ax1.set_ylim([-0.05, 0.05])
|
||||||
|
#y2
|
||||||
|
###ax[1,0].plot(idx[0:ln2], normalized_amplitude_envelope_2[0:ln2], 'ro')
|
||||||
|
ax[1,0].plot(idxall[0:ln], yall2[0:ln], 'ro')
|
||||||
|
#ax[1,0].plot(idx[0:ln], amplitude_envelope_2[0:ln], 'g')
|
||||||
|
#else:
|
||||||
|
# fig, (ax3, ax4) = plt.subplots(2, figsize=(20,12))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ax[0,1].plot(lags[:], corr[:])
|
||||||
|
#ax3.plot(corr)
|
||||||
|
ax[1,1].plot(lags_full[:], corr_full[:], 'yo')
|
||||||
|
#start, end = ax1.get_ylim()
|
||||||
|
#start2, end2 = ax2.get_ylim()
|
||||||
|
#print(start, end)
|
||||||
|
#print(start2, end2)
|
||||||
|
#ax1.yaxis.set_ticks(np.arange(start, end, 10))
|
||||||
|
#ax2.yaxis.set_ticks(np.arange(start2, end2, 10))
|
||||||
|
|
||||||
|
|
||||||
|
plt.show()
|
||||||
253
src/analysis.py
253
src/analysis.py
@@ -96,14 +96,15 @@ class AnalysisProcedure(QObject):
|
|||||||
self.t_interval = math.ceil(self.pulse_stepsize / self.t_stepsize)
|
self.t_interval = math.ceil(self.pulse_stepsize / self.t_stepsize)
|
||||||
|
|
||||||
self.correlation_peak_diff = 0.0
|
self.correlation_peak_diff = 0.0
|
||||||
self.signal_min_peak_height = 4 # 50
|
self.signal_min_peak_height = 0 # 50
|
||||||
self.signal_min_peak_distance = 10
|
self.signal_min_peak_height_exit = 0
|
||||||
|
self.signal_min_peak_distance = 20
|
||||||
self.correlation_min_peak_diff = 0.01
|
self.correlation_min_peak_diff = 0.01
|
||||||
|
|
||||||
self.dt_cable = 44 # ns
|
self.dt_cable = 44 # ns
|
||||||
self.dn_pickup = -1
|
self.dn_pickup = -1
|
||||||
self.mod_freq = 500 # GHz
|
####self.mod_freq = 500 # GHz
|
||||||
self.duty_cycle = 1 # percentage
|
###self.duty_cycle = 1 # percentage
|
||||||
|
|
||||||
self.delay = 0
|
self.delay = 0
|
||||||
self.lag_full = 0
|
self.lag_full = 0
|
||||||
@@ -143,10 +144,6 @@ class AnalysisProcedure(QObject):
|
|||||||
self.input_data = input_data
|
self.input_data = input_data
|
||||||
self.all_data['Input data'] = self.input_data
|
self.all_data['Input data'] = self.input_data
|
||||||
|
|
||||||
idx = self.accelerator_list.index(self.accelerator)
|
|
||||||
self.parent.gui_frame.line_sender_dict['accelerator'].setCurrentIndex(
|
|
||||||
idx)
|
|
||||||
|
|
||||||
print(f'init input parameters {self.input_data}', flush=True)
|
print(f'init input parameters {self.input_data}', flush=True)
|
||||||
if reanalysis:
|
if reanalysis:
|
||||||
self.loglevel = self.input_parameters['loggingLevel']
|
self.loglevel = self.input_parameters['loggingLevel']
|
||||||
@@ -164,18 +161,22 @@ class AnalysisProcedure(QObject):
|
|||||||
self.simulation = bool(self.input_data['simulation'])
|
self.simulation = bool(self.input_data['simulation'])
|
||||||
self.rf_freq = float(self.input_data['freqrf'])
|
self.rf_freq = float(self.input_data['freqrf'])
|
||||||
|
|
||||||
|
|
||||||
# 2.5 MHz if oscilloscpe
|
# 2.5 MHz if oscilloscpe
|
||||||
if self.simulation:
|
|
||||||
|
if self.simulation and 'Cyclotron' in self.accelerator:
|
||||||
self.rf_sample = 2.5
|
self.rf_sample = 2.5
|
||||||
mess = 'Sampling rate changed to 2.5 MHz for oscilloscope data'
|
mess = 'Sampling rate changed to 2.5 MHz for oscilloscope data'
|
||||||
self.parent.trigger_log_message.emit(
|
self.parent.trigger_log_message.emit(
|
||||||
MsgSeverity.INFO.name, _pymodule, utils.line_no(), mess, {})
|
MsgSeverity.INFO.name, _pymodule, utils.line_no(), mess, {})
|
||||||
|
|
||||||
# else:
|
# else:
|
||||||
# self.rf_sample = float(self.input_data['freqsampling'])
|
# self.rf_sample = float(self.input_data['freqsampling'])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.accelerator = self.input_data['accelerator']
|
self.accelerator = self.input_data['accelerator']
|
||||||
print(f'Accelerator: {self.accelerator}', flush=True)
|
print(f'Accelerator: {self.accelerator}', flush=True)
|
||||||
|
self.accelerator_peak_search = ' ' + self.accelerator + ' '
|
||||||
|
|
||||||
self.harmonic_no = float(
|
self.harmonic_no = float(
|
||||||
self.input_data[self.accelerator]['harmonic'])
|
self.input_data[self.accelerator]['harmonic'])
|
||||||
@@ -192,12 +193,14 @@ class AnalysisProcedure(QObject):
|
|||||||
self.reverse_input_signal = bool(
|
self.reverse_input_signal = bool(
|
||||||
self.input_data[self.accelerator_peak_search]['reverseInput'])
|
self.input_data[self.accelerator_peak_search]['reverseInput'])
|
||||||
|
|
||||||
|
'''
|
||||||
if self.injector_2 in self.accelerator:
|
if self.injector_2 in self.accelerator:
|
||||||
self.mod_freq = float(
|
self.mod_freq = float(
|
||||||
self.input_data[self.accelerator]['freqmod']) # * 10**9 GHz
|
self.input_data[self.accelerator]['freqmod']) # * 10**9 GHz
|
||||||
self.duty_cycle = float(
|
self.duty_cycle = float(
|
||||||
self.input_data[self.accelerator]['dutycycle']) # * 0.01
|
self.input_data[self.accelerator]['dutycycle']) # * 0.01
|
||||||
|
'''
|
||||||
|
|
||||||
self.logger.info('INPUT PARAMETERS')
|
self.logger.info('INPUT PARAMETERS')
|
||||||
|
|
||||||
self.logger.info(f'Accelerator: {self.accelerator}')
|
self.logger.info(f'Accelerator: {self.accelerator}')
|
||||||
@@ -230,6 +233,15 @@ class AnalysisProcedure(QObject):
|
|||||||
except ValueError as ex:
|
except ValueError as ex:
|
||||||
self.logger.error(f'ValueError {ex}')
|
self.logger.error(f'ValueError {ex}')
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.signal_min_peak_height_exit = int(
|
||||||
|
self.input_data[self.accelerator_peak_search]['peakHeightExit'])
|
||||||
|
except KeyError as ex:
|
||||||
|
self.logger.error(f'KeyError {ex}')
|
||||||
|
except ValueError as ex:
|
||||||
|
self.logger.error(f'ValueError {ex}')
|
||||||
|
|
||||||
|
|
||||||
# Overide peak search parameters with those given in gui
|
# Overide peak search parameters with those given in gui
|
||||||
if reanalysis:
|
if reanalysis:
|
||||||
self.correlation_min_peak_diff = float(self.input_parameters[
|
self.correlation_min_peak_diff = float(self.input_parameters[
|
||||||
@@ -248,16 +260,37 @@ class AnalysisProcedure(QObject):
|
|||||||
self.input_parameters[self.accelerator_peak_search][
|
self.input_parameters[self.accelerator_peak_search][
|
||||||
'reverseInput'])
|
'reverseInput'])
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.signal_min_peak_height_exit = int(
|
||||||
|
self.input_parameters[self.accelerator_peak_search][
|
||||||
|
'peakHeightExit'])
|
||||||
|
except KeyError as ex:
|
||||||
|
self.logger.error(f'KeyError {ex}')
|
||||||
|
#backward compatibility
|
||||||
|
self.signal_min_peak_height_exit = self.signal_min_peak_height
|
||||||
|
except ValueError as ex:
|
||||||
|
self.logger.error(f'ValueError {ex}')
|
||||||
|
#backward compatibility
|
||||||
|
self.signal_min_peak_height_exit = self.signal_min_peak_height
|
||||||
|
|
||||||
print(f'self.input_parameters={self.input_parameters}')
|
print(f'self.input_parameters={self.input_parameters}')
|
||||||
print(('Reanalysis: self.correlation_min_peak_diff= ' +
|
print(('Reanalysis: self.correlation_min_peak_diff= ' +
|
||||||
f'{self.correlation_min_peak_diff}'))
|
f'{self.correlation_min_peak_diff}'))
|
||||||
|
|
||||||
self.logger.info(
|
self.logger.info(
|
||||||
f'Corr Min Peak Diff {self.correlation_min_peak_diff}')
|
f'Corr Min Peak Diff {self.correlation_min_peak_diff}')
|
||||||
self.logger.info(f'Min Peak Height {self.signal_min_peak_height}')
|
self.logger.info(f'Min Peak Height Entry {self.signal_min_peak_height}')
|
||||||
|
self.logger.info(
|
||||||
|
f'Min Peak Height Exit {self.signal_min_peak_height_exit}')
|
||||||
self.logger.info(f'Min Peak Distance {self.signal_min_peak_distance}')
|
self.logger.info(f'Min Peak Distance {self.signal_min_peak_distance}')
|
||||||
|
|
||||||
|
|
||||||
|
idx = self.accelerator_list.index(self.accelerator)
|
||||||
|
print('accelerator/idx', self.accelerator, idx)
|
||||||
|
self.parent.gui_frame.line_sender_dict['accelerator'].setCurrentIndex(
|
||||||
|
idx)
|
||||||
|
|
||||||
|
|
||||||
def measure_and_analyze(self, input_data=None):
|
def measure_and_analyze(self, input_data=None):
|
||||||
'''This method is initiated by the START button in Procedure panel
|
'''This method is initiated by the START button in Procedure panel
|
||||||
'''
|
'''
|
||||||
@@ -271,7 +304,8 @@ class AnalysisProcedure(QObject):
|
|||||||
self.initialize_input_parameters(input_data)
|
self.initialize_input_parameters(input_data)
|
||||||
self.logger.info(
|
self.logger.info(
|
||||||
f'Corr Min Peak Diff {self.correlation_min_peak_diff}')
|
f'Corr Min Peak Diff {self.correlation_min_peak_diff}')
|
||||||
self.logger.info(f'Min Peak Height {self.signal_min_peak_height}')
|
self.logger.info(f'Min Peak Height Entry {self.signal_min_peak_height}')
|
||||||
|
self.logger.info(f'Min Peak Height Exit {self.signal_min_peak_height_exit}')
|
||||||
self.logger.info(
|
self.logger.info(
|
||||||
f'Min Peak Distance {self.signal_min_peak_distance}')
|
f'Min Peak Distance {self.signal_min_peak_distance}')
|
||||||
|
|
||||||
@@ -314,6 +348,9 @@ class AnalysisProcedure(QObject):
|
|||||||
def reanalyze(self, all_data):
|
def reanalyze(self, all_data):
|
||||||
'''Reanalysis
|
'''Reanalysis
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print('Reanalyze', flush=True)
|
print('Reanalyze', flush=True)
|
||||||
print(all_data, flush=True)
|
print(all_data, flush=True)
|
||||||
|
|
||||||
@@ -480,36 +517,61 @@ class AnalysisProcedure(QObject):
|
|||||||
height = 0.005
|
height = 0.005
|
||||||
|
|
||||||
print(f'self.signal_min_peak_height = {height}')
|
print(f'self.signal_min_peak_height = {height}')
|
||||||
|
|
||||||
|
#if 'Injector' in self.accelerator:
|
||||||
|
# height = -470 #530 #350
|
||||||
|
# y1_height = height
|
||||||
|
|
||||||
# returns indices of peaks, and dictionary of properties
|
# returns indices of peaks, and dictionary of properties
|
||||||
y1_peaks_pre = signal.find_peaks(self.y1_sample, height=height,
|
y1_peaks_pre = signal.find_peaks(self.y1_sample, height=height,
|
||||||
distance=self.signal_min_peak_distance)
|
distance=self.signal_min_peak_distance)
|
||||||
|
|
||||||
print(
|
print(
|
||||||
'peak length==>', len(
|
'y1 peak length==>', len(
|
||||||
y1_peaks_pre[1]['peak_heights']), flush=True)
|
y1_peaks_pre[1]['peak_heights']), flush=True)
|
||||||
if len(y1_peaks_pre[1]['peak_heights']) < 2:
|
if len(y1_peaks_pre[1]['peak_heights']) < 2:
|
||||||
return False
|
return False
|
||||||
print('peak length=============>', len(
|
print('y1 peak length=============>', len(
|
||||||
y1_peaks_pre[1]['peak_heights']), flush=True)
|
y1_peaks_pre[1]['peak_heights']), flush=True)
|
||||||
##y1_peaks_avg = np.average(y1_peaks_pre[1]['peak_heights'])
|
|
||||||
min_y1_p = np.min(y1_peaks_pre[1]['peak_heights'])
|
try:
|
||||||
max_y1_p = np.max(y1_peaks_pre[1]['peak_heights'])
|
##y1_peaks_avg = np.average(y1_peaks_pre[1]['peak_heights'])
|
||||||
print(f'min and max value of peak {min_y1_p}, {max_y1_p}')
|
min_y1_p = np.min(y1_peaks_pre[1]['peak_heights'])
|
||||||
y1_height = min_y1_p * 0.9 # y1_peaks_avg * 0.726667
|
max_y1_p = np.max(y1_peaks_pre[1]['peak_heights'])
|
||||||
|
print(f'min and max value of peak y1 {min_y1_p}, {max_y1_p}')
|
||||||
|
if max_y1_p < 0:
|
||||||
|
y1_height = max_y1_p * 1.3 # Injector
|
||||||
|
else:
|
||||||
|
y1_height = min_y1_p * 0.9 # Cyclotron y1_peaks_avg * 0.726667
|
||||||
|
except ValueError:
|
||||||
|
y1_height = height
|
||||||
|
|
||||||
|
if not self.simulation:
|
||||||
|
height = self.signal_min_peak_height_exit
|
||||||
|
|
||||||
y2_peaks_pre = signal.find_peaks(self.y2_sample, height=height,
|
print(f"y2 Height = {height} dist = {self.signal_min_peak_distance}")
|
||||||
distance=self.signal_min_peak_distance)
|
|
||||||
|
y2_peaks_pre = signal.find_peaks(
|
||||||
|
self.y2_sample, height=height,
|
||||||
|
distance=self.signal_min_peak_distance)
|
||||||
##y2_peaks_avg = np.average(y2_peaks_pre[1]['peak_heights'])
|
##y2_peaks_avg = np.average(y2_peaks_pre[1]['peak_heights'])
|
||||||
|
|
||||||
min_y2_p = np.min(y2_peaks_pre[1]['peak_heights'])
|
try:
|
||||||
max_y2_p = np.max(y2_peaks_pre[1]['peak_heights'])
|
min_y2_p = np.min(y2_peaks_pre[1]['peak_heights'])
|
||||||
print(f'min and max value of peak {min_y2_p}, {max_y2_p}')
|
max_y2_p = np.max(y2_peaks_pre[1]['peak_heights'])
|
||||||
|
print(f'min and max value of peak y2 {min_y2_p}, {max_y2_p}')
|
||||||
|
|
||||||
y2_height = min_y2_p * 0.9 # y2_peaks_avg * 0.566667
|
y2_height = min_y2_p * 0.9 # y2_peaks_avg * 0.566667
|
||||||
|
except ValueError:
|
||||||
|
y2_height = height
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print(f'AVG = {y1_height}, {y2_height}', flush=True)
|
print(f'AVG = {y1_height}, {y2_height}', flush=True)
|
||||||
|
if 'Injector' in self.accelerator and self.simulation:
|
||||||
|
y1_height = 0.02
|
||||||
|
y2_height = 0.05
|
||||||
|
|
||||||
y1_peaks = signal.find_peaks(
|
y1_peaks = signal.find_peaks(
|
||||||
self.y1_sample, height=y1_height,
|
self.y1_sample, height=y1_height,
|
||||||
distance=self.signal_min_peak_distance)
|
distance=self.signal_min_peak_distance)
|
||||||
@@ -554,6 +616,40 @@ class AnalysisProcedure(QObject):
|
|||||||
self.y2_pulse = []
|
self.y2_pulse = []
|
||||||
self.t_pulse = []
|
self.t_pulse = []
|
||||||
|
|
||||||
|
def extract_raw_data_injector(idx=0):
|
||||||
|
'''Oscilloscope data
|
||||||
|
'''
|
||||||
|
#t_inc = 0
|
||||||
|
for entry in self.content[0:]:
|
||||||
|
entry = entry.replace('\n', '')
|
||||||
|
val = entry.split(' ')
|
||||||
|
#self.t_sample.append(float(t_inc))
|
||||||
|
if idx == 0:
|
||||||
|
self.y1_sample.append(float(val[1]))
|
||||||
|
self.y1_sample_raw.append(float(val[1]))
|
||||||
|
#t_inc += self.t_stepsize
|
||||||
|
else:
|
||||||
|
self.y2_sample.append(float(val[1]))
|
||||||
|
self.y2_sample_raw.append(float(val[1]))
|
||||||
|
#self.y1_sample = self.y1_sample[::-1]
|
||||||
|
#self.y2_sample = self.y2_sample[::-1]
|
||||||
|
|
||||||
|
#self.y1_sample = (hilbert(self.y1_sample_raw))
|
||||||
|
#print("hilbert y1 done")
|
||||||
|
#self.y2_sample = (hilbert(self.y2_sample_raw))
|
||||||
|
#self.y2_sample = self.y2_sample[::-1]
|
||||||
|
#print('length y1_sample ==', len(self.y1_sample))
|
||||||
|
|
||||||
|
#self.y1_sample = np.abs(self.y1_sample)
|
||||||
|
#self.y2_sample = np.abs(self.y2_sample)
|
||||||
|
|
||||||
|
self.t_sample = [None] * len(self.y1_sample)
|
||||||
|
self.t_sample[0] = 0
|
||||||
|
t_inc = 0
|
||||||
|
for i in range(1, len(self.y1_sample)):
|
||||||
|
t_inc += self.t_stepsize
|
||||||
|
self.t_sample[i] = t_inc
|
||||||
|
|
||||||
def extract_raw_data():
|
def extract_raw_data():
|
||||||
'''Oscilloscope data
|
'''Oscilloscope data
|
||||||
'''
|
'''
|
||||||
@@ -664,6 +760,8 @@ class AnalysisProcedure(QObject):
|
|||||||
print(f'y1 sample length = {len(self.y1_sample_raw)}')
|
print(f'y1 sample length = {len(self.y1_sample_raw)}')
|
||||||
print(f'y2 sample length = {len(self.y2_sample_raw)}', flush=True)
|
print(f'y2 sample length = {len(self.y2_sample_raw)}', flush=True)
|
||||||
|
|
||||||
|
#print("raw y2 data after unpack", self.y2_sample_raw)
|
||||||
|
|
||||||
self.y1_sample = [None] * len(self.y1_sample_raw)
|
self.y1_sample = [None] * len(self.y1_sample_raw)
|
||||||
self.y2_sample = [None] * len(self.y2_sample_raw)
|
self.y2_sample = [None] * len(self.y2_sample_raw)
|
||||||
|
|
||||||
@@ -682,14 +780,21 @@ class AnalysisProcedure(QObject):
|
|||||||
#series = pd.Series(self.y1_sample)
|
#series = pd.Series(self.y1_sample)
|
||||||
#self.y1_sample = (series * (-1)).tolist()
|
#self.y1_sample = (series * (-1)).tolist()
|
||||||
#self.y1_sample = (series).tolist()
|
#self.y1_sample = (series).tolist()
|
||||||
|
|
||||||
self.y1_sample = (hilbert(self.y1_sample_raw))
|
self.y1_sample = (hilbert(self.y1_sample_raw))
|
||||||
self.y2_sample = (hilbert(self.y2_sample_raw))
|
self.y2_sample = (hilbert(self.y2_sample_raw))
|
||||||
|
|
||||||
print('length y1_sample', len(self.y1_sample))
|
|
||||||
|
|
||||||
self.y1_sample = np.abs(self.y1_sample)
|
|
||||||
self.y2_sample = np.abs(self.y2_sample)
|
self.y2_sample = np.abs(self.y2_sample)
|
||||||
|
|
||||||
|
print('length y1_sample ==', len(self.y1_sample))
|
||||||
|
|
||||||
|
if 'Injector' in self.accelerator:
|
||||||
|
self.y1_sample = -np.abs(self.y1_sample)
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.y1_sample = np.abs(self.y1_sample)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
self.t_sample = [None] * len(self.y1_sample)
|
self.t_sample = [None] * len(self.y1_sample)
|
||||||
self.t_sample[0] = 0
|
self.t_sample[0] = 0
|
||||||
@@ -701,8 +806,27 @@ class AnalysisProcedure(QObject):
|
|||||||
else:
|
else:
|
||||||
self.trigger_progressbar.emit(30)
|
self.trigger_progressbar.emit(30)
|
||||||
with open(
|
with open(
|
||||||
'/hipa/bd/data/measurements/tina/20240710-223007_2000.txt',
|
'/hipa/bd/data/measurements/tina/C1--333--00000 1ms 800uA.dat',
|
||||||
|
'r', encoding='utf-8') as file:
|
||||||
|
#with open(
|
||||||
|
# '/hipa/bd/data/measurements/tina/20240710-223007_2000.txt',
|
||||||
|
# 'r', encoding='utf-8') as file:
|
||||||
|
self.content = file.readlines()
|
||||||
|
|
||||||
|
if self.abort:
|
||||||
|
self.aborting(utils.line_no())
|
||||||
|
return None
|
||||||
|
|
||||||
|
#self.trigger_progressbar.emit(60)
|
||||||
|
#extract_raw_data()
|
||||||
|
extract_raw_data_injector(0)
|
||||||
|
|
||||||
|
with open(
|
||||||
|
'/hipa/bd/data/measurements/tina/C2--333--00000 1ms 800uA.dat',
|
||||||
'r', encoding='utf-8') as file:
|
'r', encoding='utf-8') as file:
|
||||||
|
#with open(
|
||||||
|
# '/hipa/bd/data/measurements/tina/20240710-223007_2000.txt',
|
||||||
|
# 'r', encoding='utf-8') as file:
|
||||||
self.content = file.readlines()
|
self.content = file.readlines()
|
||||||
|
|
||||||
if self.abort:
|
if self.abort:
|
||||||
@@ -710,8 +834,9 @@ class AnalysisProcedure(QObject):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
self.trigger_progressbar.emit(60)
|
self.trigger_progressbar.emit(60)
|
||||||
extract_raw_data()
|
#extract_raw_data()
|
||||||
|
extract_raw_data_injector(1)
|
||||||
|
|
||||||
if self.abort:
|
if self.abort:
|
||||||
self.aborting(utils.line_no())
|
self.aborting(utils.line_no())
|
||||||
return None
|
return None
|
||||||
@@ -719,14 +844,15 @@ class AnalysisProcedure(QObject):
|
|||||||
self.trigger_progressbar.emit(70)
|
self.trigger_progressbar.emit(70)
|
||||||
# Fill Raw data here
|
# Fill Raw data here
|
||||||
|
|
||||||
|
|
||||||
rawdata = {
|
rawdata = {
|
||||||
'y1': list(self.y1_sample_raw),
|
'y1': list(self.y1_sample_raw),
|
||||||
'y2': list(self.y2_sample_raw),
|
'y2': list(self.y2_sample_raw),
|
||||||
't': list(self.t_sample),
|
't': list(self.t_sample),
|
||||||
}
|
}
|
||||||
print(len(self.y1_sample), type(self.y1_sample), flush=True)
|
print("length y1", len(self.y1_sample), type(self.y1_sample), flush=True)
|
||||||
print(len(self.y2_sample), type(self.y2_sample), flush=True)
|
print("length y2", len(self.y2_sample), type(self.y2_sample), flush=True)
|
||||||
print(len(self.t_sample), type(self.t_sample), flush=True)
|
print("length t", len(self.t_sample), type(self.t_sample), flush=True)
|
||||||
|
|
||||||
return rawdata
|
return rawdata
|
||||||
|
|
||||||
@@ -741,27 +867,10 @@ class AnalysisProcedure(QObject):
|
|||||||
print('length raw data', len(self.raw_data['y1']))
|
print('length raw data', len(self.raw_data['y1']))
|
||||||
self.y1_sample_raw = self.raw_data['y1']
|
self.y1_sample_raw = self.raw_data['y1']
|
||||||
self.y2_sample_raw = self.raw_data['y2']
|
self.y2_sample_raw = self.raw_data['y2']
|
||||||
if self.reverse_input_signal:
|
|
||||||
for i in range(0, len(self.y1_sample_raw)):
|
|
||||||
self.y1_sample_raw[i] = self.y1_sample_raw[i] * (-1)
|
|
||||||
print('y1 pulse has polarity reversed')
|
|
||||||
|
|
||||||
if self.reverse_output_signal:
|
|
||||||
for i in range(0, len(self.y2_sample_raw)):
|
|
||||||
self.y2_sample_raw[i] = self.y2_sample_raw[i] * (-1)
|
|
||||||
print('y2 pulse has polarity reversed')
|
|
||||||
|
|
||||||
self.y1_sample = (hilbert(self.raw_data['y1']))
|
|
||||||
self.y2_sample = (hilbert(self.raw_data['y2']))
|
|
||||||
|
|
||||||
print('length y1_sample', len(self.y1_sample))
|
|
||||||
|
|
||||||
self.y1_sample = np.abs(self.y1_sample)
|
|
||||||
self.y2_sample = np.abs(self.y2_sample)
|
|
||||||
self.t_sample = self.raw_data['t']
|
self.t_sample = self.raw_data['t']
|
||||||
# self.extract_peak_data()
|
|
||||||
#self.y1_pulse = (self.y1_sample)
|
|
||||||
#self.y2_pulse = (self.y2_sample)
|
|
||||||
print('unpack hdf_data', flush=True)
|
print('unpack hdf_data', flush=True)
|
||||||
|
|
||||||
def process(self, from_hdf5=False):
|
def process(self, from_hdf5=False):
|
||||||
@@ -783,8 +892,7 @@ class AnalysisProcedure(QObject):
|
|||||||
'No measurement made.')
|
'No measurement made.')
|
||||||
self.parent.trigger_log_message.emit(
|
self.parent.trigger_log_message.emit(
|
||||||
MsgSeverity.ERROR.name, _pymodule, utils.line_no(), mess, {})
|
MsgSeverity.ERROR.name, _pymodule, utils.line_no(), mess, {})
|
||||||
|
|
||||||
|
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
self.mean_amplitude_y1 = np.mean(self.y1_pulse, keepdims=True)
|
self.mean_amplitude_y1 = np.mean(self.y1_pulse, keepdims=True)
|
||||||
@@ -807,8 +915,19 @@ class AnalysisProcedure(QObject):
|
|||||||
len(self.normalized_amplitude_envelope_2),
|
len(self.normalized_amplitude_envelope_2),
|
||||||
len(self.normalized_amplitude_envelope_1), mode='full')
|
len(self.normalized_amplitude_envelope_1), mode='full')
|
||||||
|
|
||||||
|
#print("length ", len(self.corr_full))
|
||||||
|
#print("max idx ",np.argmax(self.corr_full))
|
||||||
|
#startpt = int(len(self.corr_full)/2)+1
|
||||||
|
#endpt = startpt + 1000
|
||||||
|
#print(self.corr_full[startpt:endpt])
|
||||||
|
#print("arg max ", np.argmax(self.corr_full[startpt:endpt]))
|
||||||
|
#if 'Injector' in self.accelerator:
|
||||||
|
# self.lag_full = int(
|
||||||
|
# self.lags_full_array[np.argmax(self.corr_full[startpt:endpt])+startpt])
|
||||||
|
#else:
|
||||||
self.lag_full = int(
|
self.lag_full = int(
|
||||||
self.lags_full_array[np.argmax(self.corr_full)])
|
self.lags_full_array[np.argmax(self.corr_full)])
|
||||||
|
|
||||||
#self.delay = self.lag_full * self.t_stepsize*self.t_interval
|
#self.delay = self.lag_full * self.t_stepsize*self.t_interval
|
||||||
self.delay = float(self.lag_full * self.pulse_stepsize)
|
self.delay = float(self.lag_full * self.pulse_stepsize)
|
||||||
|
|
||||||
@@ -826,13 +945,20 @@ class AnalysisProcedure(QObject):
|
|||||||
print('harmonic', self.harmonic_no, flush=True)
|
print('harmonic', self.harmonic_no, flush=True)
|
||||||
print('dN pickup', self.dn_pickup, flush=True)
|
print('dN pickup', self.dn_pickup, flush=True)
|
||||||
print(f'Correlation Peak Diff {self.correlation_peak_diff}')
|
print(f'Correlation Peak Diff {self.correlation_peak_diff}')
|
||||||
print(f'Min Peak Height {self.signal_min_peak_height}')
|
print(f'Min Peak Height Entry {self.signal_min_peak_height}')
|
||||||
|
print(f'Min Peak Height Exit {self.signal_min_peak_height_exit}')
|
||||||
print(f'Min Peak Distance {self.signal_min_peak_distance}')
|
print(f'Min Peak Distance {self.signal_min_peak_distance}')
|
||||||
|
|
||||||
self.n_turns = (
|
self.n_turns = (
|
||||||
((self.delay - self.dt_cable * 10**(-9)) * self.rf_freq * 10**6)
|
((self.delay - self.dt_cable * 10**(-9)) * self.rf_freq * 10**6)
|
||||||
/ self.harmonic_no) + self.dn_pickup
|
/ self.harmonic_no) + self.dn_pickup
|
||||||
|
|
||||||
|
d = ((54 - self.dn_pickup) * self.harmonic_no) + ((self.dt_cable * 10**(-9)) * self.rf_freq * 10**6)
|
||||||
|
print ("D54", d)
|
||||||
|
d = ((74 - self.dn_pickup) * self.harmonic_no) + ((self.dt_cable * 10**(-9)) * self.rf_freq * 10**6)
|
||||||
|
print ("D74", d/self.pulse_stepsize)
|
||||||
|
|
||||||
|
|
||||||
print((f'lag = {self.lag_full}, ' +
|
print((f'lag = {self.lag_full}, ' +
|
||||||
f'delay = {self.delay*10**6:.3f} \u00B5s ' +
|
f'delay = {self.delay*10**6:.3f} \u00B5s ' +
|
||||||
f'nturns = {self.n_turns:.4f}'))
|
f'nturns = {self.n_turns:.4f}'))
|
||||||
@@ -867,6 +993,7 @@ class AnalysisProcedure(QObject):
|
|||||||
'correlation_peak_diff': self.correlation_peak_diff,
|
'correlation_peak_diff': self.correlation_peak_diff,
|
||||||
'correlation_min_peak_diff': self.correlation_min_peak_diff,
|
'correlation_min_peak_diff': self.correlation_min_peak_diff,
|
||||||
'min_peak_height': self.signal_min_peak_height,
|
'min_peak_height': self.signal_min_peak_height,
|
||||||
|
'min_peak_height_exit': self.signal_min_peak_height_exit,
|
||||||
'min_peak_distance': self.signal_min_peak_distance
|
'min_peak_distance': self.signal_min_peak_distance
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -974,6 +1101,12 @@ class AnalysisProcedure(QObject):
|
|||||||
line_end = ymax # self.corr_full.max()
|
line_end = ymax # self.corr_full.max()
|
||||||
ax2.plot([self.lag_full, self.lag_full], [line_start, line_end],
|
ax2.plot([self.lag_full, self.lag_full], [line_start, line_end],
|
||||||
':', color='r')
|
':', color='r')
|
||||||
|
|
||||||
|
#ax2.plot([500, 500], [line_start, line_end],
|
||||||
|
# ':', color='r')
|
||||||
|
#ax2.plot([700, 700], [line_start, line_end],
|
||||||
|
# ':', color='r')
|
||||||
|
|
||||||
ax2.set_ylim(line_start, line_end)
|
ax2.set_ylim(line_start, line_end)
|
||||||
|
|
||||||
text = f'No of Turns = {self.n_turns:0.0f}'
|
text = f'No of Turns = {self.n_turns:0.0f}'
|
||||||
|
|||||||
109
src/gui.py
109
src/gui.py
@@ -47,30 +47,38 @@ class AppGui(QWidget):
|
|||||||
self.gui_frame.measurement_tab_wgt.setFixedHeight(580)
|
self.gui_frame.measurement_tab_wgt.setFixedHeight(580)
|
||||||
self.gui_frame.operator_wgt.setFixedHeight(640)
|
self.gui_frame.operator_wgt.setFixedHeight(640)
|
||||||
# self.gui_frame.expert_wgt.setFixedHeight(240)
|
# self.gui_frame.expert_wgt.setFixedHeight(240)
|
||||||
self.gui_frame.expert_wgt.layout().addWidget(
|
# self.gui_frame.expert_wgt.layout().addWidget(
|
||||||
self.low_level_display(), 2, 0, 1, 1)
|
# self.low_level_ring_display(), 2, 0, 1, 1)
|
||||||
|
# self.gui_frame.expert_parameters_group.layout().addWidget(
|
||||||
|
# self.low_level_ring_display()) #, 12, 0, 1, 1)
|
||||||
self.gui_frame.expert_wgt.layout().setVerticalSpacing(30)
|
self.gui_frame.expert_wgt.layout().setVerticalSpacing(30)
|
||||||
self.gui_frame.measurement_tab_wgt.setCurrentIndex(1)
|
self.gui_frame.measurement_tab_wgt.setCurrentIndex(0)
|
||||||
self.gui_frame.measurement_tab_wgt.setTabText(0, 'Accelerator')
|
self.gui_frame.measurement_tab_wgt.setTabText(0, 'Accelerator')
|
||||||
|
|
||||||
# DAQ
|
# DAQ
|
||||||
self.daq_wgt = self.daq_group_qtabwidget(widget_type='QStackedWidget')
|
self.daq_wgt = self.daq_group_qtabwidget(widget_type='QStackedWidget')
|
||||||
self.gui_frame.measurement_layout.addWidget(
|
self.gui_frame.measurement_layout.addWidget(
|
||||||
self.daq_wgt, 0, 1, 1, 1, alignment=Qt.AlignTop)
|
self.daq_wgt, 0, 1, 1, 1, alignment=Qt.AlignTop | Qt.AlignLeft)
|
||||||
|
|
||||||
self.daq_wgt.setCurrentIndex(self.parent.default_idx)
|
self.daq_wgt.setCurrentIndex(self.parent.default_idx)
|
||||||
self.daq_wgt.currentChanged.emit(self.parent.default_idx)
|
self.daq_wgt.currentChanged.emit(self.parent.default_idx)
|
||||||
|
|
||||||
|
self.gui_frame.measurement_layout.setVerticalSpacing(0)
|
||||||
# Accelerator Current
|
# Accelerator Current
|
||||||
self.current_wgt = self.accelerator_current_group_qtabwidget(
|
self.current_wgt = self.accelerator_current_group_qtabwidget(
|
||||||
widget_type='QStackedWidget')
|
widget_type='QStackedWidget')
|
||||||
self.gui_frame.measurement_layout.addWidget(
|
self.gui_frame.measurement_layout.addWidget(
|
||||||
self.current_wgt, 1, 1, 1, 1,
|
self.current_wgt, 1, 1, 1, 1,
|
||||||
alignment=Qt.AlignTop | Qt.AlignCenter)
|
alignment=Qt.AlignTop | Qt.AlignLeft)
|
||||||
|
self.low_level_wgt = self.low_level_display_group_qtabwidget()
|
||||||
|
self.gui_frame.measurement_layout.addWidget(
|
||||||
|
self.low_level_wgt, 2, 1, 1, 1,
|
||||||
|
alignment=Qt.AlignTop | Qt.AlignLeft)
|
||||||
|
|
||||||
self.current_wgt.setCurrentIndex(self.parent.default_idx)
|
self.current_wgt.setCurrentIndex(self.parent.default_idx)
|
||||||
self.current_wgt.currentChanged.emit(self.parent.default_idx)
|
self.current_wgt.currentChanged.emit(self.parent.default_idx)
|
||||||
|
self.low_level_wgt.setCurrentIndex(self.parent.default_idx)
|
||||||
|
self.low_level_wgt.currentChanged.emit(self.parent.default_idx)
|
||||||
choice_wgt = self.gui_frame.line_sender_dict['signalPeakSearch']
|
choice_wgt = self.gui_frame.line_sender_dict['signalPeakSearch']
|
||||||
choice_wgt.name = 'Expert'
|
choice_wgt.name = 'Expert'
|
||||||
self.gui_frame.line_sender_dict['signalSearch'] = choice_wgt
|
self.gui_frame.line_sender_dict['signalSearch'] = choice_wgt
|
||||||
@@ -87,27 +95,10 @@ class AppGui(QWidget):
|
|||||||
def cb_accelerator(self, idx):
|
def cb_accelerator(self, idx):
|
||||||
self.daq_wgt.setCurrentIndex(idx)
|
self.daq_wgt.setCurrentIndex(idx)
|
||||||
self.current_wgt.setCurrentIndex(idx)
|
self.current_wgt.setCurrentIndex(idx)
|
||||||
#is_sender = self.sender().name
|
self.low_level_wgt.setCurrentIndex(idx)
|
||||||
#print(_sender, flush=True)
|
|
||||||
self.gui_frame.line_sender_dict[
|
self.gui_frame.line_sender_dict[
|
||||||
'signalPeakSearch'].setCurrentIndex(idx)
|
'signalPeakSearch'].setCurrentIndex(idx)
|
||||||
|
|
||||||
'''
|
|
||||||
if "Expert" in is_sender:
|
|
||||||
self.gui_frame.line_sender_dict[
|
|
||||||
'signalPeakSearch'].blockSignals(True)
|
|
||||||
self.gui_frame.line_sender_dict['accelerator'].setCurrentIndex(idx)
|
|
||||||
self.gui_frame.line_sender_dict[
|
|
||||||
'signalPeakSearch'].blockSignals(False)
|
|
||||||
else:
|
|
||||||
self.gui_frame.line_sender_dict[
|
|
||||||
'accelerator'].blockSignals(True)
|
|
||||||
self.gui_frame.line_sender_dict[
|
|
||||||
'signalPeakSearch'].setCurrentIndex(idx)
|
|
||||||
self.gui_frame.line_sender_dict[
|
|
||||||
'accelerator'].blockSignals(False)
|
|
||||||
'''
|
|
||||||
|
|
||||||
def daq_group_qtabwidget(self, widget_type='QStackedWidget'):
|
def daq_group_qtabwidget(self, widget_type='QStackedWidget'):
|
||||||
accel_wgt_dict = {}
|
accel_wgt_dict = {}
|
||||||
|
|
||||||
@@ -132,7 +123,7 @@ class AppGui(QWidget):
|
|||||||
accel_wgt_dict[accel] = self.daq_group(accel)
|
accel_wgt_dict[accel] = self.daq_group(accel)
|
||||||
accel_tab_widget.addWidget(accel_wgt_dict[accel])
|
accel_tab_widget.addWidget(accel_wgt_dict[accel])
|
||||||
|
|
||||||
accel_tab_widget.setFixedWidth(380)
|
accel_tab_widget.setFixedWidth(320)
|
||||||
# accel_tab_widget.setFixedHeight(160)
|
# accel_tab_widget.setFixedHeight(160)
|
||||||
return accel_tab_widget
|
return accel_tab_widget
|
||||||
|
|
||||||
@@ -170,10 +161,39 @@ class AppGui(QWidget):
|
|||||||
|
|
||||||
vbox.setContentsMargins(9, 19, 9, 9)
|
vbox.setContentsMargins(9, 19, 9, 9)
|
||||||
vbox.setSpacing(5)
|
vbox.setSpacing(5)
|
||||||
vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
|
vbox.setAlignment((Qt.AlignTop | Qt.AlignHCenter))
|
||||||
group_box.setFixedWidth(260)
|
group_box.setFixedWidth(260)
|
||||||
group_box.setFixedHeight(240)
|
group_box.setFixedHeight(240)
|
||||||
group_box.setFont(self.font_gui)
|
group_box.setFont(self.font_gui)
|
||||||
|
group_box.setAlignment(int(Qt.AlignTop | Qt.AlignLeft))
|
||||||
|
group_box.setLayout(vbox)
|
||||||
|
|
||||||
|
qw = QWidget()
|
||||||
|
grid = QGridLayout()
|
||||||
|
grid.setSpacing(0)
|
||||||
|
grid.addWidget(group_box, 0, 0)
|
||||||
|
qw.setLayout(grid)
|
||||||
|
|
||||||
|
return qw
|
||||||
|
|
||||||
|
def accelerator_low_level_group(self, accel):
|
||||||
|
group_box = QGroupBox(f'{accel} IOC')
|
||||||
|
obj_name = 'CYCLOTRON' if self.parent.ring_cyclotron in accel else \
|
||||||
|
'INJECTOR'
|
||||||
|
group_box.setObjectName(obj_name)
|
||||||
|
vbox = QGridLayout()
|
||||||
|
|
||||||
|
if self.parent.ring_cyclotron in accel:
|
||||||
|
vbox.addWidget(self.low_level_ring_display(), 0, 0)
|
||||||
|
else:
|
||||||
|
vbox.addWidget(self.low_level_inj2_display(), 0, 0)
|
||||||
|
|
||||||
|
vbox.setContentsMargins(9, 19, 9, 9)
|
||||||
|
vbox.setSpacing(5)
|
||||||
|
vbox.setAlignment((Qt.AlignTop | Qt.AlignHCenter))
|
||||||
|
group_box.setFixedWidth(260)
|
||||||
|
group_box.setFixedHeight(100)
|
||||||
|
group_box.setFont(self.font_gui)
|
||||||
group_box.setAlignment(int(Qt.AlignTop | Qt.AlignHCenter))
|
group_box.setAlignment(int(Qt.AlignTop | Qt.AlignHCenter))
|
||||||
group_box.setLayout(vbox)
|
group_box.setLayout(vbox)
|
||||||
|
|
||||||
@@ -181,9 +201,18 @@ class AppGui(QWidget):
|
|||||||
grid = QGridLayout()
|
grid = QGridLayout()
|
||||||
grid.addWidget(group_box, 0, 0)
|
grid.addWidget(group_box, 0, 0)
|
||||||
qw.setLayout(grid)
|
qw.setLayout(grid)
|
||||||
|
|
||||||
return qw
|
return qw
|
||||||
|
|
||||||
|
def low_level_display_group_qtabwidget(self):
|
||||||
|
accel_tab_widget = QStackedWidget()
|
||||||
|
accel_wgt_dict = {}
|
||||||
|
for accel in (self.accelerator_list):
|
||||||
|
accel_wgt_dict[accel] = self.accelerator_low_level_group(accel)
|
||||||
|
accel_tab_widget.addWidget(accel_wgt_dict[accel])
|
||||||
|
accel_tab_widget.setFixedWidth(320)
|
||||||
|
accel_tab_widget.setFixedHeight(180)
|
||||||
|
return accel_tab_widget
|
||||||
|
|
||||||
def accelerator_current_group_qtabwidget(
|
def accelerator_current_group_qtabwidget(
|
||||||
self, widget_type='QStackedWidget'):
|
self, widget_type='QStackedWidget'):
|
||||||
accel_wgt_dict = {}
|
accel_wgt_dict = {}
|
||||||
@@ -238,7 +267,7 @@ class AppGui(QWidget):
|
|||||||
|
|
||||||
vbox.setContentsMargins(9, 19, 9, 9)
|
vbox.setContentsMargins(9, 19, 9, 9)
|
||||||
vbox.setSpacing(5)
|
vbox.setSpacing(5)
|
||||||
vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
|
vbox.setAlignment((Qt.AlignTop | Qt.AlignHCenter))
|
||||||
group_box.setFixedWidth(260)
|
group_box.setFixedWidth(260)
|
||||||
group_box.setFixedHeight(100)
|
group_box.setFixedHeight(100)
|
||||||
group_box.setFont(self.font_gui)
|
group_box.setFont(self.font_gui)
|
||||||
@@ -252,18 +281,34 @@ class AppGui(QWidget):
|
|||||||
|
|
||||||
return qw
|
return qw
|
||||||
|
|
||||||
def low_level_display(self):
|
def low_level_ring_display(self):
|
||||||
|
|
||||||
#command = "caqtdm -macro 'DEVICE=ZWSGA-CECL-TCRING' Z_DI_TURN_COUNT.ui"
|
#command = "caqtdm -macro 'DEVICE=ZWSGA-CECL-TCRING' Z_DI_TURN_COUNT.ui"
|
||||||
|
|
||||||
def low_level_macro():
|
def low_level_ring_macro():
|
||||||
subprocess.run(['caqtdm', '-macro', 'DEVICE=ZWSGA-CECL-TCRING',
|
subprocess.run(['caqtdm', '-macro', 'DEVICE=ZWSGA-CECL-TCRING',
|
||||||
'Z_DI_TURN_COUNT.ui'])
|
'Z_DI_TURN_COUNT.ui'])
|
||||||
|
|
||||||
qpb = QPushButton(' Low-level Display ')
|
qpb = QPushButton(' Low-level Display ')
|
||||||
qpb.setObjectName('related')
|
qpb.setObjectName('related')
|
||||||
qpb.setToolTip('Execute caqtdm Turn Counter Display')
|
qpb.setToolTip('Execute caqtdm Turn Counter Display for Cyclotron')
|
||||||
qpb.clicked.connect(lambda: low_level_macro())
|
qpb.clicked.connect(lambda: low_level_ring_macro())
|
||||||
|
qpb.setFixedHeight(40)
|
||||||
|
qpb.setFixedWidth(180)
|
||||||
|
return qpb
|
||||||
|
|
||||||
|
def low_level_inj2_display(self):
|
||||||
|
|
||||||
|
#command = "caqtdm -macro 'DEVICE=ZWSGA-CECL-TCRING' Z_DI_TURN_COUNT.ui"
|
||||||
|
|
||||||
|
def low_level_inj2_macro():
|
||||||
|
subprocess.run(['caqtdm', '-macro', 'DEVICE=ZWIHA-CECL-TCINJ2',
|
||||||
|
'Z_DI_TURN_COUNT.ui'])
|
||||||
|
|
||||||
|
qpb = QPushButton(' Low-level Display ')
|
||||||
|
qpb.setObjectName('related')
|
||||||
|
qpb.setToolTip('Execute caqtdm Turn Counter Display for Injector 2')
|
||||||
|
qpb.clicked.connect(lambda: low_level_inj2_macro())
|
||||||
qpb.setFixedHeight(40)
|
qpb.setFixedHeight(40)
|
||||||
qpb.setFixedWidth(180)
|
qpb.setFixedWidth(180)
|
||||||
return qpb
|
return qpb
|
||||||
|
|||||||
51
tina.json
51
tina.json
@@ -14,17 +14,17 @@
|
|||||||
"addDateToDir" : 0
|
"addDateToDir" : 0
|
||||||
},
|
},
|
||||||
"header" : ["SHIFT", "INJ2", "IP2", "IW2", "PK1", "PK2", "SINQ", "UCN"],
|
"header" : ["SHIFT", "INJ2", "IP2", "IW2", "PK1", "PK2", "SINQ", "UCN"],
|
||||||
"PV" : {"Injector": {"nturns": "ZWSGA-CECL-TCINJ:TURN-COUNT",
|
"PV" : {"Injector": {"nturns": "ZWIHA-CECL-TCINJ2:TURN-COUNT",
|
||||||
"daqTrigger": "ZWSGA-CECL-TCINJ:TRG-SINGLE:PROC",
|
"daqTrigger": "ZWIHA-CECL-TCINJ2:TRG-SINGLE.PROC",
|
||||||
"daqReady": "ZWSGA-CECL-TCINJ:SCOPE-ACQ-CNT",
|
"daqReady": "ZWIHA-CECL-TCINJ2:SCOPE-ACQ-CNT",
|
||||||
"daqErrorCount": "ZWSGA-CECL-TCINJ:ERR-CNT",
|
"daqErrorCount": "ZWIHA-CECL-TCINJ2:ERR-CNT",
|
||||||
"samplingFreq": "ZWSGA-CECL-TCINJ:SCOPE-SMP-FREQ",
|
"samplingFreq": "ZWIHA-CECL-TCINJ2:SCOPE-SMP-FREQ",
|
||||||
"samplingNum": "ZWSGA-CECL-TCINJ:SCOPE-SMP-NUM",
|
"samplingNum": "ZWIHA-CECL-TCINJ2:SCOPE-SMP-NUM",
|
||||||
"daqWindow": "ZWSGA-CECL-TCINJ:SCOPE-ACQ-WINDOW",
|
"daqWindow": "ZWIHA-CECL-TCINJ2:SCOPE-ACQ-WINDOW",
|
||||||
"wfEntry": "ZWSGA-CECL-TCINJ:SCOPE-CH0",
|
"wfEntry": "ZWIHA-CECL-TCINJ2:SCOPE-CH0",
|
||||||
"wfExit": "ZWSGA-CECL-TCINJ:SCOPE-CH1",
|
"wfExit": "ZWIHA-CECL-TCINJ2:SCOPE-CH1",
|
||||||
"IEntry": "ENTRY:IST:1",
|
"IEntry": "MWC2:IST:2",
|
||||||
"IExit": "EXIT:IST:1"
|
"IExit": "MXC1:IST:2"
|
||||||
},
|
},
|
||||||
"Cyclotron": {"nturns": "ZWSGA-CECL-TCRING:TURN-COUNT",
|
"Cyclotron": {"nturns": "ZWSGA-CECL-TCRING:TURN-COUNT",
|
||||||
"daqTrigger": "ZWSGA-CECL-TCRING:TRG-SINGLE.PROC",
|
"daqTrigger": "ZWSGA-CECL-TCRING:TRG-SINGLE.PROC",
|
||||||
@@ -39,12 +39,12 @@
|
|||||||
"IExit": "MHC1:IST:2"
|
"IExit": "MHC1:IST:2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Init": {"Injector": {"ZWSGA-CECL-TCINJ:TRG-SINGLE.PROC": 1,
|
"Init": {"Injector": {"ZWIHA-CECL-TCINJ2:TRG-SINGLE.PROC": 1,
|
||||||
"ZWSGA-CECL-TCINJ:TRG-SOURCE": "Auto",
|
"ZWIHA-CECL-TCINJ2:TRG-SOURCE": "Auto",
|
||||||
"ZWSGA-CECL-TCINJ:SCOPE-PRE-TRIGGER": 0,
|
"ZWIHA-CECL-TCINJ2:SCOPE-PRE-TRIGGER": 0,
|
||||||
"ZWSGA-CECL-TCINJ:TRG-AUTO-PERIOD": 4000,
|
"ZWIHA-CECL-TCINJ2:TRG-AUTO-PERIOD": 4000,
|
||||||
"ZWSGA-CECL-TCINJ:TRG-SW-INHIBIT-ENA": 1,
|
"ZWIHA-CECL-TCINJ2:TRG-SW-INHIBIT-ENA": 1,
|
||||||
"ZWSGA-CECL-TCINJ:ADC-CH-OFFSET": 4
|
"ZWIHA-CECL-TCINJ2:ADC-CH-OFFSET": 4
|
||||||
},
|
},
|
||||||
"Cyclotron": {"ZWSGA-CECL-TCRING:TRG-SINGLE.PROC": 1,
|
"Cyclotron": {"ZWSGA-CECL-TCRING:TRG-SINGLE.PROC": 1,
|
||||||
"ZWSGA-CECL-TCRING:TRG-SOURCE": 0,
|
"ZWSGA-CECL-TCRING:TRG-SOURCE": 0,
|
||||||
@@ -59,11 +59,8 @@
|
|||||||
"QTabAccelerator":{
|
"QTabAccelerator":{
|
||||||
"Injector": {
|
"Injector": {
|
||||||
"harmonic" : {"data":{ "widget": "QLineRead", "text" :"Harmonic No: ", "value": 10}},
|
"harmonic" : {"data":{ "widget": "QLineRead", "text" :"Harmonic No: ", "value": 10}},
|
||||||
"deltaTcable" : {"data":{ "widget": "QLineRead", "text" : "dT Cable (ns):", "value": 6.9 }},
|
"deltaTcable" : {"data":{ "widget": "QLineEdit", "text" : "dT Cable (ns):", "value": 0 }},
|
||||||
"deltaNpickup" : {"data":{ "widget": "QLineEdit", "text" : "dN Pickup:", "value": 4 }},
|
"deltaNpickup" : {"data":{ "widget": "QLineEdit", "text" : "dN Pickup:", "value": 0 }}
|
||||||
"freqmod" : {"data":{ "widget": "QLineRead", "text" :"Mod. Freq (GHz):", "value" : 500}},
|
|
||||||
"dutycycle" : {"data":{ "widget": "QLineRead", "text" :"Duty Cycle (%):", "value" : 1}}
|
|
||||||
|
|
||||||
},
|
},
|
||||||
"Cyclotron": {
|
"Cyclotron": {
|
||||||
"harmonic" : {"data":{ "widget": "QLineRead", "text" :"Harmonic No: ", "value" : 6}},
|
"harmonic" : {"data":{ "widget": "QLineRead", "text" :"Harmonic No: ", "value" : 6}},
|
||||||
@@ -74,15 +71,17 @@
|
|||||||
},
|
},
|
||||||
"QTabSignalPeakSearch":{
|
"QTabSignalPeakSearch":{
|
||||||
" Injector ": {
|
" Injector ": {
|
||||||
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height:", "value" : 50 }},
|
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (entry):", "value" : -600 }},
|
||||||
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }},
|
"peakHeightExit": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (exit):", "value" : 320 }},
|
||||||
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01}},
|
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 20 }},
|
||||||
|
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.005}},
|
||||||
"minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "0.100"}},
|
"minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "0.100"}},
|
||||||
"reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 1, "orientation":"RightToLeft"}},
|
"reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 1, "orientation":"RightToLeft"}},
|
||||||
"reverseOutput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Output Polarity: ", "value" : 1, "orientation":"RightToLeft"}}
|
"reverseOutput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Output Polarity: ", "value" : 1, "orientation":"RightToLeft"}}
|
||||||
},
|
},
|
||||||
" Cyclotron ": {
|
" Cyclotron ": {
|
||||||
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height:", "value" : 100 }},
|
"peakHeight": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (entry):", "value" : 50 }},
|
||||||
|
"peakHeightExit": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak height (entry):", "value" : 50 }},
|
||||||
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }},
|
"peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }},
|
||||||
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01 }},
|
"correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01 }},
|
||||||
"minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "1.0"}},
|
"minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "1.0"}},
|
||||||
|
|||||||
4
tina.py
4
tina.py
@@ -202,13 +202,15 @@ class StartMain(BaseWindow):
|
|||||||
|
|
||||||
accelerator = self.input_parameters['accelerator']
|
accelerator = self.input_parameters['accelerator']
|
||||||
|
|
||||||
|
'''
|
||||||
if self.injector_2 in accelerator:
|
if self.injector_2 in accelerator:
|
||||||
mess = ('Measurement procedure for Injector 2 \n' +
|
mess = ('Measurement procedure for Injector 2 \n' +
|
||||||
'has not yet been implementented.')
|
'has not yet been implemented.')
|
||||||
QMessageBox.information(self, 'Injector 2', mess, QMessageBox.Ok)
|
QMessageBox.information(self, 'Injector 2', mess, QMessageBox.Ok)
|
||||||
|
|
||||||
QApplication.processEvents()
|
QApplication.processEvents()
|
||||||
return False
|
return False
|
||||||
|
'''
|
||||||
|
|
||||||
if self.input_parameters['simulation']:
|
if self.input_parameters['simulation']:
|
||||||
return True
|
return True
|
||||||
|
|||||||
12
tina.sh
12
tina.sh
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd /hipa/bd/applications/tina/1.4.0
|
cd /hipa/bd/applications/tina/1.5.0
|
||||||
|
|
||||||
# For use if script is sourced rather than executed
|
# For use if script is sourced rather than executed
|
||||||
appNameDefault="tina.sh"
|
appNameDefault="tina.sh"
|
||||||
@@ -19,12 +19,12 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||||
_EPICS_BASE=base-7.0.8
|
_EPICS_BASE=base-7.0.9
|
||||||
|
|
||||||
# Select Python Version here. Currently one of 3.5, 3.7, 3.8 and 3.10
|
# Select Python Version here. Currently one of 3.5, 3.7, 3.8 and 3.10
|
||||||
PYTHON_VERSION=3.10
|
PYTHON_VERSION=3.10
|
||||||
#cafe-1.20.0-gcc-7.5.0
|
#cafe-1.20.0-gcc-7.5.0
|
||||||
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.13.0
|
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.22.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.15.0
|
||||||
|
|
||||||
if [ "$1" ]; then
|
if [ "$1" ]; then
|
||||||
|
|
||||||
@@ -33,21 +33,21 @@ if [ "$1" ]; then
|
|||||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||||
PYTHON_VERSION=3.7
|
PYTHON_VERSION=3.7
|
||||||
#cafe-1.20.0-gcc-7.3.0
|
#cafe-1.20.0-gcc-7.3.0
|
||||||
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.12.0
|
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.13.0
|
||||||
#module unload gcc
|
#module unload gcc
|
||||||
#module load gcc/10.4.0
|
#module load gcc/10.4.0
|
||||||
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
||||||
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
elif [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||||
PYTHON_VERSION=3.8
|
PYTHON_VERSION=3.8
|
||||||
#cafe-1.19.3
|
#cafe-1.19.3
|
||||||
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.12.0
|
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.13.0
|
||||||
#module unload gcc
|
#module unload gcc
|
||||||
#module load gcc/7.5.0
|
#module load gcc/7.5.0
|
||||||
|
|
||||||
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
elif [ "$1" == "3.10" -o "$1" == "310" ]; then
|
||||||
PYTHON_VERSION=3.10
|
PYTHON_VERSION=3.10
|
||||||
#cafe-1.20.0-gcc-7.5.0
|
#cafe-1.20.0-gcc-7.5.0
|
||||||
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.21.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.12.0
|
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.22.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.13.0
|
||||||
#module unload gcc
|
#module unload gcc
|
||||||
#module load gcc/7.5.0
|
#module load gcc/7.5.0
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user