Merge pull request #7 from nqrduck/settings-update

Settings update
This commit is contained in:
Julia P 2024-04-12 13:16:15 +02:00 committed by GitHub
commit 231699e664
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -70,6 +70,8 @@ class SimulatorModel(BaseSpectrometerModel):
self.NUMBER_POINTS, self.NUMBER_POINTS,
8192, 8192,
"Number of points used for the simulation. This influences the dwell time in combination with the total event simulation given by the pulse sequence.", "Number of points used for the simulation. This influences the dwell time in combination with the total event simulation given by the pulse sequence.",
min_value=0,
spin_box=(True, False),
) )
self.add_setting( self.add_setting(
number_of_points_setting, number_of_points_setting,
@ -80,6 +82,9 @@ class SimulatorModel(BaseSpectrometerModel):
self.NUMBER_ISOCHROMATS, self.NUMBER_ISOCHROMATS,
1000, 1000,
"Number of isochromats used for the simulation. This influences the computation time.", "Number of isochromats used for the simulation. This influences the computation time.",
min_value=0,
max_value=10000,
spin_box=(True, False),
) )
self.add_setting(number_of_isochromats_setting, self.SIMULATION) self.add_setting(number_of_isochromats_setting, self.SIMULATION)
@ -87,6 +92,8 @@ class SimulatorModel(BaseSpectrometerModel):
self.INITIAL_MAGNETIZATION, self.INITIAL_MAGNETIZATION,
1, 1,
"Initial magnetization", "Initial magnetization",
min_value=0,
spin_box=(True, False),
) )
self.add_setting(initial_magnetization_setting, self.SIMULATION) self.add_setting(initial_magnetization_setting, self.SIMULATION)
@ -95,13 +102,17 @@ class SimulatorModel(BaseSpectrometerModel):
self.GRADIENT, self.GRADIENT,
1, 1,
"Gradient", "Gradient",
spin_box=(True, False),
) )
self.add_setting(gradient_setting, self.SIMULATION) self.add_setting(gradient_setting, self.SIMULATION)
noise_setting = FloatSetting( noise_setting = FloatSetting(
self.NOISE, self.NOISE,
2, 2,
"Noise", "Adds a specified level of random noise to the simulation to mimic real-world signal variations.",
min_value=0,
max_value=100,
spin_box=(True, False),
) )
self.add_setting(noise_setting, self.SIMULATION) self.add_setting(noise_setting, self.SIMULATION)
@ -109,42 +120,48 @@ class SimulatorModel(BaseSpectrometerModel):
coil_length_setting = FloatSetting( coil_length_setting = FloatSetting(
self.LENGTH_COIL, self.LENGTH_COIL,
30e-3, 30e-3,
"Length coil", "The length of the sample coil within the hardware setup.",
min_value=1e-3,
) )
self.add_setting(coil_length_setting, self.HARDWARE) self.add_setting(coil_length_setting, self.HARDWARE)
coil_diameter_setting = FloatSetting( coil_diameter_setting = FloatSetting(
self.DIAMETER_COIL, self.DIAMETER_COIL,
8e-3, 8e-3,
"Diameter coil", "The diameter of the sample coil.",
min_value=1e-3,
) )
self.add_setting(coil_diameter_setting, self.HARDWARE) self.add_setting(coil_diameter_setting, self.HARDWARE)
number_turns_setting = FloatSetting( number_turns_setting = FloatSetting(
self.NUMBER_TURNS, self.NUMBER_TURNS,
8, 8,
"Number turns", "The total number of turns of the sample coil.",
min_value=1,
) )
self.add_setting(number_turns_setting, self.HARDWARE) self.add_setting(number_turns_setting, self.HARDWARE)
q_factor_transmit_setting = FloatSetting( q_factor_transmit_setting = FloatSetting(
self.Q_FACTOR_TRANSMIT, self.Q_FACTOR_TRANSMIT,
80, 80,
"Q factor Transmit", "The quality factor of the transmit path, which has an effect on the field strength for excitation.",
min_value=1,
) )
self.add_setting(q_factor_transmit_setting, self.HARDWARE) self.add_setting(q_factor_transmit_setting, self.HARDWARE)
q_factor_receive_setting = FloatSetting( q_factor_receive_setting = FloatSetting(
self.Q_FACTOR_RECEIVE, self.Q_FACTOR_RECEIVE,
80, 80,
"Q factor Receive", "The quality factor of the receive path, which has an effect on the final SNR.",
min_value=1,
) )
self.add_setting(q_factor_receive_setting, self.HARDWARE) self.add_setting(q_factor_receive_setting, self.HARDWARE)
power_amplifier_power_setting = FloatSetting( power_amplifier_power_setting = FloatSetting(
self.POWER_AMPLIFIER_POWER, self.POWER_AMPLIFIER_POWER,
110, 110,
"Power amplifier power", "The power output capability of the power amplifier, determines the strength of pulses that can be generated.",
min_value=0.1,
) )
self.add_setting( self.add_setting(
power_amplifier_power_setting, self.HARDWARE power_amplifier_power_setting, self.HARDWARE
@ -153,7 +170,8 @@ class SimulatorModel(BaseSpectrometerModel):
gain_setting = FloatSetting( gain_setting = FloatSetting(
self.GAIN, self.GAIN,
6000, 6000,
"Gain of the complete measurement chain", "The amplification factor of the receiver chain, impacting the final measured signal amplitude.",
min_value=0.1,
) )
self.add_setting( self.add_setting(
gain_setting, self.HARDWARE gain_setting, self.HARDWARE
@ -162,21 +180,30 @@ class SimulatorModel(BaseSpectrometerModel):
temperature_setting = FloatSetting( temperature_setting = FloatSetting(
self.TEMPERATURE, self.TEMPERATURE,
300, 300,
"Temperature", "The absolute temperature during the experiment. This influences the SNR of the measurement.",
min_value=0.1,
max_value=400,
spin_box=(True, True),
) )
self.add_setting(temperature_setting, self.EXPERIMENTAL_Setup) self.add_setting(temperature_setting, self.EXPERIMENTAL_Setup)
loss_tx_setting = FloatSetting( loss_tx_setting = FloatSetting(
self.LOSS_TX, self.LOSS_TX,
25, 25,
"Loss TX in dB", "The signal loss occurring in the transmission path, affecting the effective RF pulse power.",
min_value=0.1,
max_value=60,
spin_box=(True, True),
) )
self.add_setting(loss_tx_setting, self.EXPERIMENTAL_Setup) self.add_setting(loss_tx_setting, self.EXPERIMENTAL_Setup)
loss_rx_setting = FloatSetting( loss_rx_setting = FloatSetting(
self.LOSS_RX, self.LOSS_RX,
25, 25,
"Loss RX in dB", "The signal loss in the reception path, which can reduce the signal that is ultimately detected.",
min_value=0.1,
max_value=60,
spin_box=(True, True),
) )
self.add_setting(loss_rx_setting, self.EXPERIMENTAL_Setup) self.add_setting(loss_rx_setting, self.EXPERIMENTAL_Setup)
@ -194,28 +221,31 @@ class SimulatorModel(BaseSpectrometerModel):
sample_name_setting = StringSetting( sample_name_setting = StringSetting(
self.NAME, self.NAME,
"BiPh3", "BiPh3",
"Name", "The name of the sample.",
) )
self.add_setting(sample_name_setting, self.SAMPLE) self.add_setting(sample_name_setting, self.SAMPLE)
density_setting = FloatSetting( density_setting = FloatSetting(
self.DENSITY, self.DENSITY,
1.585e6, 1.585e6,
"Density", "The density of the sample. This is used to calculate the number of spins in the sample volume.",
min_value=0.1,
) )
self.add_setting(density_setting, self.SAMPLE) self.add_setting(density_setting, self.SAMPLE)
molar_mass_setting = FloatSetting( molar_mass_setting = FloatSetting(
self.MOLAR_MASS, self.MOLAR_MASS,
440.3, 440.3,
"Molar mass", "The molar mass of the sample. This is used to calculate the number of spins in the sample volume.",
min_value=0.1,
) )
self.add_setting(molar_mass_setting, self.SAMPLE) self.add_setting(molar_mass_setting, self.SAMPLE)
resonant_frequency_setting = FloatSetting( resonant_frequency_setting = FloatSetting(
self.RESONANT_FREQUENCY, self.RESONANT_FREQUENCY,
83.56e6, 83.56e6,
"Resonant frequency", "The resonant frequency of the observed transition.",
min_value=1e5,
) )
self.add_setting( self.add_setting(
resonant_frequency_setting, self.SAMPLE resonant_frequency_setting, self.SAMPLE
@ -224,56 +254,70 @@ class SimulatorModel(BaseSpectrometerModel):
gamma_setting = FloatSetting( gamma_setting = FloatSetting(
self.GAMMA, self.GAMMA,
4.342e7, 4.342e7,
"Gamma", "The gyromagnetic ratio of the samples nuclei.",
min_value=0,
) )
self.add_setting(gamma_setting, self.SAMPLE) self.add_setting(gamma_setting, self.SAMPLE)
# This could be updated to a selection setting
nuclear_spin_setting = FloatSetting( nuclear_spin_setting = FloatSetting(
self.NUCLEAR_SPIN, self.NUCLEAR_SPIN,
9 / 2, 9 / 2,
"Nuclear spin", "The nuclear spin of the samples nuclei.",
min_value=0,
) )
self.add_setting(nuclear_spin_setting, self.SAMPLE) self.add_setting(nuclear_spin_setting, self.SAMPLE)
spin_factor_setting = FloatSetting( spin_factor_setting = FloatSetting(
self.SPIN_FACTOR, self.SPIN_FACTOR,
2, 2,
"Spin factor", "The spin factor represents the scaling coefficient for observable nuclear spin transitions along the x-axis, derived from the Pauli I x 0 -matrix elements.",
min_value=0,
) )
self.add_setting(spin_factor_setting, self.SAMPLE) self.add_setting(spin_factor_setting, self.SAMPLE)
powder_factor_setting = FloatSetting( powder_factor_setting = FloatSetting(
self.POWDER_FACTOR, self.POWDER_FACTOR,
0.75, 0.75,
"Powder factor", "A factor representing the crystallinity of the solid sample. A value of 0.75 corresponds to a powder sample.",
min_value=0,
max_value=1,
spin_box=(True, False),
) )
self.add_setting(powder_factor_setting, self.SAMPLE) self.add_setting(powder_factor_setting, self.SAMPLE)
filling_factor_setting = FloatSetting( filling_factor_setting = FloatSetting(
self.FILLING_FACTOR, self.FILLING_FACTOR,
0.7, 0.7,
"Filling factor", "The ratio of the sample volume that occupies the coils sensitive volume.",
min_value=0,
max_value=1,
spin_box=(True, False),
) )
self.add_setting(filling_factor_setting, self.SAMPLE) self.add_setting(filling_factor_setting, self.SAMPLE)
t1_setting = FloatSetting( t1_setting = FloatSetting(
self.T1, self.T1,
83.5e-5, 83.5e-5,
"T1", "The longitudinal or spin-lattice relaxation time of the sample, influencing signal recovery between pulses.",
min_value=1e-6,
) )
self.add_setting(t1_setting, self.SAMPLE) self.add_setting(t1_setting, self.SAMPLE)
t2_setting = FloatSetting( t2_setting = FloatSetting(
self.T2, self.T2,
396e-6, 396e-6,
"T2", "The transverse or spin-spin relaxation time, determining the rate at which spins dephase and the signal decays in the xy plane",
min_value=1e-6,
) )
self.add_setting(t2_setting, self.SAMPLE) self.add_setting(t2_setting, self.SAMPLE)
t2_star_setting = FloatSetting( t2_star_setting = FloatSetting(
self.T2_STAR, self.T2_STAR,
50e-6, 50e-6,
"T2*", "The effective transverse relaxation time, incorporating effects of EFG inhomogeneities and other dephasing factors.",
min_value=1e-6,
) )
self.add_setting(t2_star_setting, self.SAMPLE) self.add_setting(t2_star_setting, self.SAMPLE)