Alignment laser added
This commit is contained in:
39
alignment_laser.py
Normal file
39
alignment_laser.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
from slic.core.adjustable import PVAdjustable
|
||||||
|
from slic.utils import typename
|
||||||
|
|
||||||
|
|
||||||
|
class AlignmentLaser:
|
||||||
|
"""Class for the alignment laser"""
|
||||||
|
def __init__(self, ID,name="Cristallina alignment laser"):
|
||||||
|
self.ID = ID
|
||||||
|
self.name = name or ID
|
||||||
|
pvname_setvalue = ID
|
||||||
|
pvname_readback = ID
|
||||||
|
self._adj = PVAdjustable(pvname_setvalue, pvname_readback, accuracy=0, internal=True)
|
||||||
|
|
||||||
|
def set_in(self):
|
||||||
|
self._adj.set_target_value(-19).wait()
|
||||||
|
|
||||||
|
def set_out(self):
|
||||||
|
self._adj.set_target_value(-1).wait()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def status(self):
|
||||||
|
state = self._adj.get_current_value()
|
||||||
|
if state is None:
|
||||||
|
return "not connected"
|
||||||
|
elif state < -18:
|
||||||
|
return "In"
|
||||||
|
elif state >-6:
|
||||||
|
return "Out"
|
||||||
|
else:
|
||||||
|
return "in an undefined position"
|
||||||
|
|
||||||
|
#TODO: Save the status downstream of the beamline when laser is out before bringing it back in
|
||||||
|
def get_downstream_status(self):
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
tn = typename(self)
|
||||||
|
return f"{tn} \"{self.name}\" is {self.status}"
|
@ -16,7 +16,7 @@ os.chdir('/sf/cristallina/applications/slic/cristallina')
|
|||||||
# from tqdm import trange
|
# from tqdm import trange
|
||||||
from epics import PV
|
from epics import PV
|
||||||
|
|
||||||
|
from alignment_laser import AlignmentLaser
|
||||||
from slic.gui import GUI
|
from slic.gui import GUI
|
||||||
from slic.core.adjustable import Adjustable, PVAdjustable, DummyAdjustable
|
from slic.core.adjustable import Adjustable, PVAdjustable, DummyAdjustable
|
||||||
from slic.core.acquisition import SFAcquisition, PVAcquisition
|
from slic.core.acquisition import SFAcquisition, PVAcquisition
|
||||||
@ -58,16 +58,16 @@ cta = CTASequencer("SAR-CCTA-ESC")
|
|||||||
|
|
||||||
pbps113 = IntensityMonitorPBPS(
|
pbps113 = IntensityMonitorPBPS(
|
||||||
"SAROP31-PBPS113",
|
"SAROP31-PBPS113",
|
||||||
# VME_crate="SAROP11-CVME-PBPS2", # please check this!
|
# vme_crate="SAROP31-CVME-PBPS1", # please check this!
|
||||||
# link=9,
|
# link=9,
|
||||||
description="Intensity/position monitor in the optics hutch (after first aperture))"
|
description="Intensity/position monitor in the optics hutch",
|
||||||
)
|
)
|
||||||
|
|
||||||
pbps149 = IntensityMonitorPBPS(
|
pbps149 = IntensityMonitorPBPS(
|
||||||
"SAROP31-PBPS149",
|
"SAROP31-PBPS149",
|
||||||
# VME_crate="SAROP11-CVME-PBPS2", # please check this!
|
# vme_crate="SAROP31-CVME-PBPS2", # please check this!
|
||||||
# link=9,
|
# link=9,
|
||||||
description="Intensity/position monitor in the optics hutch (after first aperture))"
|
description="Intensity/position monitor in the experimental hutch"
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_attenuator():
|
def test_attenuator():
|
||||||
@ -87,6 +87,9 @@ undulators = undulator.Undulators()
|
|||||||
shutter = PP_Shutter("SARES30-LTIM01-EVR0:RearUniv0-Ena-SP",name="Cristallina pulse picker shutter") # Shutter buttton when using the pulse picker
|
shutter = PP_Shutter("SARES30-LTIM01-EVR0:RearUniv0-Ena-SP",name="Cristallina pulse picker shutter") # Shutter buttton when using the pulse picker
|
||||||
pulsepicker = PulsePicker("SAROP31-OPPI151","SARES30-LTIM01-EVR0:Pul3", name="Cristallina X-ray pulse picker OPPI151")
|
pulsepicker = PulsePicker("SAROP31-OPPI151","SARES30-LTIM01-EVR0:Pul3", name="Cristallina X-ray pulse picker OPPI151")
|
||||||
|
|
||||||
|
# Alignmnet laser
|
||||||
|
alaser = AlignmentLaser("SAROP31-OLAS147:MOTOR_1",name="Cristallina alignment laser OLAS147")
|
||||||
|
|
||||||
## Slits
|
## Slits
|
||||||
from slic.devices.xoptics import slits
|
from slic.devices.xoptics import slits
|
||||||
|
|
||||||
@ -96,6 +99,7 @@ from attocube_device_def import attocube
|
|||||||
|
|
||||||
# KBs
|
# KBs
|
||||||
from slic.devices.xoptics.kb import KBBase,KBHor,KBVer
|
from slic.devices.xoptics.kb import KBBase,KBHor,KBVer
|
||||||
|
|
||||||
kbHor = KBHor(
|
kbHor = KBHor(
|
||||||
"SAROP31-OKBH154",
|
"SAROP31-OKBH154",
|
||||||
description="Cristallina horizontal KB mirror"
|
description="Cristallina horizontal KB mirror"
|
||||||
|
Reference in New Issue
Block a user