GitLab will be upgraded on June 23rd evening. During the upgrade the service will be unavailable, sorry for the inconvenience.

Commit 6849eb0f authored by bliss administrator's avatar bliss administrator

Restructured the directories for mono development

parent 7ff1b616
#
# Diode configuration
#
- name: Diode
plugin: bliss
class: BboxDiode
package: id19.mono.bboxdiode
# Positioning
motors: [$ymon, $zmon]
in_pos: [0, 50]
out_pos: [70, 197]
name: beamstop
plugin: bliss
class: MultiplePositions
move_simultaneous: true
positions:
- label: IN
description: Beam Stop IN beam position
target:
- axis: $bstop
destination: 0.0
tolerance: 0.01
- label: OUT
description: Beam Stop OUT of the beam position
target:
- axis: $bstop
destination: -45.0
tolerance: 0.01
name: diode
plugin: bliss
class: MultiplePositions
move_simultaneous: true
positions:
- label: IN
description: Diode IN beam position
target:
- axis: $ymon
destination: 0.0
tolerance: 0.01
- axis: $zmon
destination: 50.0
tolerance: 0.01
- label: OUT
description: Diode OUT of the beam position
target:
- axis: $ymon
destination: 170.0
tolerance: 0.01
- axis: $zmon
destination: 50.0
tolerance: 0.01
......@@ -3,14 +3,13 @@
# Triple monochromator with three crytal pairs
#
name: TripleMono
- name: TripleMono
plugin: bliss
class: Id19Mono
package: id19.mono.id19mono
xtals:
- xtal_name: Si111
- xtal_name: Si333
# motors
X2: $vmx2
......@@ -20,7 +19,6 @@
Z2: $vmz2
THY1: $thy1
THY2: $thy2
beam_stop: $bstop
slits_vgap: $ssvg
laue_THY2_offset: -0.245
......@@ -28,21 +26,27 @@
X2_safe_position: 400
beam_stop_in_pos: 0
beam_stop_out_pos: -45
xtal_size: 300
#xtal_size: 300
xtal_size: 330
stabilization_time: 3 #sec
beam_stop: $beamstop
diode_pos: $diode
diode_cnt: $diode_cnt
beam_shutter: $exp_shutter
# mode parameters
bragg_mode:
- description: 'Crystal1: Bragg - Crystal2: Bragg (E: 10-99 offset: 50 mm)'
min_energy: 10
- description: 'Crystal1: Bragg - Crystal2: Bragg (E: 17-99 offset: 50 mm)'
#min_energy: 10
min_energy: 17
max_energy: 99
beam_offset: 50
Y1_pos: 0
Y2_pos: 0
Y1_pos: 6.0
Y2_pos: 6.0
laue_mode_50:
- description: 'Crystal1: Laue - Crystal2: Laue (E: 25-99 offset: 50 mm)'
......@@ -70,8 +74,16 @@
white_beam:
- description: 'Monochromator removed, parked in safe position'
Y1_pos: 0
Y2_pos: 0
#Z1_pos: -29
Z1_pos: -2.9
Y1_pos: 6.0
Y2_pos: 6.0
Z1_pos: -29
Z2_pos: 50
#
# Measurement group for mono tuning
# diode counter from keithley
#
#- name: mono_counters
#class: MeasurementGroup
#plugin: session
#counters: [diode_cnt]
plugin: keithley
keithleys:
- name: k486
model: 487
gpib:
url: tango_gpib_device_server://id19/gpib_2/0
pad: 15
auto_zero: False
display: False
zero_check: False
zero_correct: False
sensors:
- name: diode_cnt
address: 1
nplc: 0.1
auto_range: False
This diff is collapsed.
def set_ml_data() '{
global ML_DATA[] ML_DIST[]
ML_DATA["nr_band"] = 1
# ML_DATA[1]["name"] = "Ru/B4C-4nm"
# ML_DATA[1]["period"] = 39.15 # in angstrom !!
# ML_DATA[1]["rho"] = 5.00 # average density in g/cm^3
# ML_DATA[1]["ypos"] = -4.4
# ML_DATA[1]["ypos_tol"] = 15
ML_DATA[1]["name"] = "W/B4C-2.5nm"
ML_DATA[1]["period"] = 25.16 # in angstrom !!
ML_DATA[1]["rho"] = 9.275 # average density in g/cm^3
# yml motor has to be in the range of ypos and ypos_tol for the band!
ML_DATA[1]["ypos"] = 0
ML_DATA[1]["ypos_tol"] = 10
ML_DATA["alpha"] = 1.3e-6
ML_DATA["length"] = 300
# distances are in mm
ML_DIST["third_shut"] = 530 # to verify!
ML_DIST["fast_shut"] = 1075
ML_DIST["bbox_slits"] = 1390
ML_DIST["beam_stop"] = 1390 # to verify!
#ML_DIST["hr_tomo"] = 1717
ML_DIST["hr_tomo"] = 2455.5
#print("!!! With new distance ml/HRTOMO 2013!!!")
# Done by EB 29/09/2013
ML_DIST["laser"] = 478
}'
# multilayer activate????? Seems to go to fixed positions??????
# positions of motors yml and zml
# what are the motors thml, zml and yml good for?????????
def get_ml_theta_from_energy(ml_band, en_val) '{
local ml_period ml_rho ml_theta lam delta
set_ml_data()
ml_period = ML_DATA[ml_band]["period"]
ml_rho = ML_DATA[ml_band]["rho"]
lam = get_lambda_from_energy(en_val)
delta = ML_DATA["alpha"] * lam * lam * ml_rho
ml_theta = get_theta_from_energy(en_val, ml_period)
ml_theta += delta / ml_theta
return ml_theta
}'
def get_ml_energy_from_theta(ml_band, ml_theta) '{
local ml_period ml_rho delta alpha
set_ml_data()
ml_period = ML_DATA[ml_band]["period"]
ml_rho = ML_DATA[ml_band]["rho"]
alpha = ML_DATA["alpha"]
ml_theta /= 1 + 4 * alpha * ml_rho * ml_period * ml_period
return get_energy_from_theta(ml_theta, ml_period)
}'
def get_lambda_from_energy(en_val) '{
return hc_over_e / en_val
}'
def get_energy_from_lambda(lambda_val) '{
return hc_over_e / lambda_val
}'
def get_theta_from_energy(en_val, lat_d) '{
return asin(get_lambda_from_energy(en_val) / (2 * lat_d))
}'
def get_energy_from_theta(theta_val, lat_d) '{
return get_energy_from_lambda(2 * lat_d * sin(theta_val))
}'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment