updates calculation of offset calibrated field magnitude Babs
This commit is contained in:
@@ -41,7 +41,7 @@ Mod('B',
|
||||
)
|
||||
|
||||
Mod('Bx',
|
||||
'frappy_psi.cryoltd.ComponentField',
|
||||
'frappy_psi.cryoltd.CorrectedField',
|
||||
'magnetic field x component',
|
||||
channel='VMX',
|
||||
main='main',
|
||||
@@ -55,10 +55,11 @@ Mod('Bx',
|
||||
max=23.0,
|
||||
),
|
||||
tolerance=1.0,
|
||||
offset=0.0,
|
||||
)
|
||||
|
||||
Mod('By',
|
||||
'frappy_psi.cryoltd.ComponentField',
|
||||
'frappy_psi.cryoltd.CorrectedField',
|
||||
'magnetic field y component',
|
||||
channel='VMY',
|
||||
main='main',
|
||||
@@ -72,10 +73,11 @@ Mod('By',
|
||||
max=22.9,
|
||||
),
|
||||
tolerance=1.0,
|
||||
offset=0.0,
|
||||
)
|
||||
|
||||
Mod('Bz',
|
||||
'frappy_psi.cryoltd.ComponentField',
|
||||
'frappy_psi.cryoltd.CorrectedField',
|
||||
'magnetic field z component',
|
||||
channel='VMZ',
|
||||
main='main',
|
||||
@@ -89,6 +91,7 @@ Mod('Bz',
|
||||
max=33.6,
|
||||
),
|
||||
tolerance=1.0,
|
||||
offset=0.0,
|
||||
)
|
||||
|
||||
Mod('compressorA',
|
||||
@@ -225,13 +228,10 @@ Mod('T_main_switch',
|
||||
main='main',
|
||||
)
|
||||
|
||||
Mod('Calib',
|
||||
'frappy_psi.cryoltd.Absfield', '',
|
||||
Mod('Babs',
|
||||
'frappy_psi.cryoltd.AbsField', '',
|
||||
main='B',
|
||||
bx='Bx',
|
||||
by='By',
|
||||
bz='Bz',
|
||||
bx_offset=0.0,
|
||||
by_offset=0.0,
|
||||
bz_offset=0.0,
|
||||
)
|
||||
|
||||
+23
-17
@@ -604,7 +604,26 @@ class Compressor(Channel, Drivable):
|
||||
self.sendcmd('Set:Compressor:Reset <CH>')
|
||||
self._error_text = ''
|
||||
|
||||
class Absfield(Readable):
|
||||
class CorrectedField(ComponentField):
|
||||
"""
|
||||
A component field, that keeps track of a calibration offset
|
||||
"""
|
||||
offset = Parameter('hysteresis offset=raw value - corrected value', FloatRange(unit='G'),
|
||||
readonly=False, default=0.0)
|
||||
corrected = Parameter('corrected value', FloatRange(unit='G'),
|
||||
default=0.0)
|
||||
|
||||
|
||||
# def read_value(self):
|
||||
# value = super().read_value()
|
||||
# self.corrected = value - self.offset
|
||||
# return value
|
||||
|
||||
def read_corrected(self):
|
||||
return self.value- self.offset
|
||||
|
||||
|
||||
class AbsField(Readable):
|
||||
"""
|
||||
Keep track of the magnet hysteresis and provide corrected readbacks
|
||||
"""
|
||||
@@ -613,22 +632,9 @@ class Absfield(Readable):
|
||||
by = Attached()
|
||||
bz = Attached()
|
||||
|
||||
bx_offset = Parameter('Hysteresis offset for Bx', FloatRange(unit='G'),
|
||||
readonly=False, default=0.0)
|
||||
by_offset = Parameter('Hysteresis offset for By', FloatRange(unit='G'),
|
||||
readonly=False, default=0.0)
|
||||
bz_offset = Parameter('Hysteresis offset for Bz', FloatRange(unit='G'),
|
||||
readonly=False, default=0.0)
|
||||
|
||||
|
||||
calib_bx = Parameter('hysteresis-corrected Bx', FloatRange(unit='G'))
|
||||
calib_by = Parameter('hysteresis-corrected By', FloatRange(unit='G'))
|
||||
calib_bz = Parameter('hysteresis-corrected Bz+B', FloatRange(unit='G'))
|
||||
Blong = Parameter('hysteresis-corrected Bz+B', FloatRange(unit='G'))
|
||||
value = Parameter('hysteresis-corrected total magnitude of the field', FloatRange(unit='G'))
|
||||
|
||||
def read_value(self):
|
||||
self.calib_bx = self.bx.value - self.bx_offset
|
||||
self.calib_by = self.by.value - self.by_offset
|
||||
self.calib_bz = self.bz.value+self.main.value - self.bz_offset
|
||||
|
||||
return sqrt(self.calib_bz ** 2 + self.calib_by** 2 + self.calib_bx** 2)
|
||||
self.Blong = self.bz.corrected+self.main.value
|
||||
return sqrt(self.Blong ** 2 + self.by.corrected** 2 + self.bx.corrected** 2)
|
||||
|
||||
Reference in New Issue
Block a user