Startup
This commit is contained in:
78
script/__Lib/diffcalc/startup/i06.py
Executable file
78
script/__Lib/diffcalc/startup/i06.py
Executable file
@@ -0,0 +1,78 @@
|
||||
from startup._common_imports import * # @UnusedWildImport
|
||||
from diffcalc.gdasupport.minigda.scannable import ScannableMotionWithScannableFieldsBase # @UnusedImport
|
||||
|
||||
from diffcalc.hkl.you.geometry import YouGeometry, YouPosition
|
||||
from diffcalc.hkl.you.constraints import NUNAME
|
||||
from diffcalc.hardware import setrange
|
||||
from diffcalc.hkl.you.calc import SMALL
|
||||
if not GDA:
|
||||
import startup._demo
|
||||
else:
|
||||
# import __main__ # @UnresolvedImport
|
||||
from __main__ import dd2th,ddth,dummychi,energy # @UnresolvedImport
|
||||
LOCAL_MANUAL = "http://confluence.diamond.ac.uk/pages/viewpage.action?pageId=31853413"
|
||||
# Diffcalc i06-1
|
||||
# ======== ===
|
||||
# delta dd2th
|
||||
# eta ddth
|
||||
# chi dummy
|
||||
# phi 0
|
||||
|
||||
class ThreeCircleI06(YouGeometry):
|
||||
"""For a diffractometer with theta two-theta geometry:
|
||||
delta, eta
|
||||
"""
|
||||
def __init__(self, beamline_axes_transform=None):
|
||||
YouGeometry.__init__(self, 'threec', {'mu': 0, NUNAME: 0, 'phi': 0}, beamline_axes_transform)
|
||||
|
||||
def physical_angles_to_internal_position(self, physical_angle_tuple):
|
||||
# mu, delta, nu, eta, chi, phi
|
||||
delta_phys, eta_phys, chi_phys = physical_angle_tuple
|
||||
return YouPosition(0, delta_phys, 0, eta_phys, chi_phys, 0, 'DEG')
|
||||
|
||||
def internal_position_to_physical_angles(self, internal_position):
|
||||
clone_position = internal_position.clone()
|
||||
clone_position.changeToDegrees()
|
||||
_, delta_phys, _, eta_phys, chi_phys, _ = clone_position.totuple()
|
||||
return delta_phys, eta_phys, chi_phys
|
||||
|
||||
|
||||
### Create dummy scannables ###
|
||||
if GDA:
|
||||
print "!!! Starting LIVE diffcalc with delta(dd2th), eta(ddth), chi(dummy) and denergy."
|
||||
_threec = ScannableGroup('_threec', (dd2th, ddth, dummychi))
|
||||
delta = _threec.dd2th
|
||||
eta = _threec.ddth
|
||||
en=energy
|
||||
if float(en.getPosition()) == 0: # no energy value - dummy mode
|
||||
en(800)
|
||||
|
||||
else:
|
||||
delta = Dummy('delta')
|
||||
eta = Dummy('eta')
|
||||
chi = Dummy('chi')
|
||||
_threec = ScannableGroup('_threec', (delta, eta, chi))
|
||||
en = Dummy('en')
|
||||
en(800)
|
||||
|
||||
en.level = 3
|
||||
|
||||
### Configure and import diffcalc objects ###
|
||||
ESMTGKeV = 0.001
|
||||
settings.hardware = ScannableHardwareAdapter(_threec, en, ESMTGKeV)
|
||||
settings.geometry = ThreeCircleI06() # @UndefinedVariable
|
||||
settings.energy_scannable = en
|
||||
settings.axes_scannable_group= _threec
|
||||
settings.energy_scannable_multiplier_to_get_KeV = ESMTGKeV
|
||||
|
||||
if not GDA:
|
||||
setrange('chi', 90 - SMALL, 90 + SMALL)
|
||||
|
||||
from diffcalc.gdasupport.you import * # @UnusedWildImport
|
||||
|
||||
if GDA:
|
||||
print "Running in GDA --- aliasing commands"
|
||||
alias_commands(globals())
|
||||
|
||||
# Load the last ub calculation used
|
||||
lastub()
|
||||
Reference in New Issue
Block a user