Users guide
All information for users can be found in the user guide webpages applicable for all beamlines.
Useful programs for data processing
Powder diffraction data can be integrated using DIOPTAS.
Integration of single-crystal data can be performed with CrysAlisPro.
Useful commands on the beamline
GENERAL COMMANDS
# open bliss session to collect data / make scans in a terminal
exp
# position for X-ray beam measurements
beam()
# position for ruby system
ruby()
# open the shutter
shopen()
# close the shutter
shclose()
# generate a new folder
newsample("sample1")
PRESSURE DRIVER
# Increase membrane pressure relative / absolute
pace2.setpoint = 2
umv(pace2_axis,3)
umvr(pace2_axis,0.4) / umv(pace1_axis,32)
pace2_axis.sync_hard()
# If pressure controller does not respond or tells that "is running"
pace1_axis.sync_hard
MOTORS
# motors for sample:
dacz - vertical sample position
ceny - horizontal sample position perpendicular to beam
cenx - sample position along beam direction
dacrot - omega rotation of sample stage
# motors for prl
prltx
prlty
prltz
# motors for undulator gap
IVU20c
# check position of a motor
wm(motor)
# check positions of all motors
wa()
# move a motor to an absolute position
umv(motor, position)
# move a motor (ceny, dacz, prltz etcc.. by a relative value
umv(motor, ± step)
step: relative step size in mm
# scan a motor
dscan(motor, -n, n, step, expt)
Motor examples: ceny for the horizontal pos// dacz vertical one // dacrot omega angle
-n, n: starting and final position. In mm
step: number of points taken for the scan. Usually 40
expt: exposure time in seconds. Use 0.1
# Go to the centre or peak of the scan
goto_cen()
goto_peak()
# move to XRD position, take a measurement and then move to the ruby position
beam();oscillation(-3,3,1,1);ruby()
# tweak one motor
twc(motor,step)
motor = motor name (ceny, dacz, prltz, prlty, prltx, etc,...)
step= step size in mm
example twc(cenz,0.005)
# tweak two motors
twc(motor1,step1, motor2, step2)
twc(cenz,0.005,dacz,0.005)
# tweak three motors
twc3d(motor1,step1, motor2, step2, motor3, step3)
twc3d(prly,0.01,prlz,0.01,prlx,0.01)
twc3d(ceny,0.01,dacz,0.01,cenx,0.01)
# save the actual positions of ceny and dacz
POS1.update()
# go to POS1
POS1.go()
#see saved values for a saved position
POS1.go()
ALINGING
# align pinhole
dscan(cleanh,-0.05,0.05,40,.1);goto_cen();dscan(cleanv,-0.05,0.05,40,.1);goto_cen()
#align sample/DAC
dscan(ceny,-0.1,0.1,40,0.1)
goto_cen() goto_click()
dscan(dacz,-0.1,0.1,40,0.1)
goto_cen() goto_click()
# Center DAC on goniometer rotation axis (start with small angle ($ =1, increase up to 30)
This macro performs two dscans in ceny at a certain angle of the rotation axis:
cendac($,n,exp, automatic=False)
$ = angle of goniometer rotation axis (dacrot) in degrees
n= range of dscan in y axis (cenY0 see above)
expt: exposure time in seconds. Use 0.1
automatic = False you have to prove the center of the scan by clicking twice in the Flint window
automatic = True Bliss finds the center of the scan automatically - still good to verify in Flint what it is doing!
# Align goniometer rotation center to X ray beam by turning the DAC 180 degrees
ONLY FOR DAC WITHOUT SAMPLE ENVIRONEMENT!!! NOT FOR HPCRYOSTAT OR RHDACS!!!
This macro performs two dscans in ceny at two angles of the the rotation axis and ($0 and $0+ 180) to correct y position of sample relative to rotation axis of goniometer.
in addition two more dscans at +$ and -$ are performed to correct x position of sample relative to rotation axis of goniometer
centerxy180(n,$,$0,expt, automatic=False)
n= range of dscan in y axis (cenY0 see above)
$ = angle of goniometer rotation axis (dacrot) in degrees
$0 = starting angle of goniometer rotation axis (dacrot) in degrees
expt: exposure time in seconds. Use 0.1
automatic = False you have to prove the center of the scan by clicking twice in the Flint window
automatic = True Bliss finds the center of the scan automatically - still good to verify in Flint what it is doing!
example: centerxy180(0.25,30,0,0.1, automatic=False)
# ALIGNMENT USING FRIEDEL PAIR REFLECTIONS
Find more info here: Friedel pair alignment
1. Define your ROI using a reflection found on Crysalis (xCrysalis, yCrysalis, OmegaCrysalis, size of ROI box)
2. Run macro that creats 'frini" ROI where your reflection is
PixelcrysalisToEiger(2306,1863,1,20)
3. Optimize ceny, dacz and dacrot positions
dscan(ceny,-.01,.01,20,.1,eiger.roi_counters.counters.frini_avg)
goto_click()
4. Start the Friedel center macro:
friedel_center(.01,20,0.2,'frini',automatic=False)
COLLECTING
# Collect diffraction
oscillation(start_angle,stop_angle,angular_step_size, exposure time per step)
start_angle: more negative value in degree
stop_angle: more positive value in degree
angular_step_size: for single-crystal data this is usually 0.5 or 0.25 degrees
for powder diffraction data this corresponds to the angular degree range
exposurer_time_per_step: in seconds
example powder diffraction data: oscillation(-5,5,10,1)
example powder diffraction data: oscillation(-5,5,0.5,0.2)
# recall the previous used oscillation macro
oscillation.run()
# take one XRD image over an angular range (3 degrees with 1 second exposure) - (panoramic XRD data)
oscillation.one(-1.5, 1.5, 1)
# taking a diffraction map (2D)
oscillation.dmesh(ceny, -0.1, +0.1, 2, dacz, -0.1, +0.1, 2)
In this way the 9 measures will be collected accordingly to the following grid
NB looking at the camera ceny is increasing from the right to the left; dacz from the bottom to the top;
the point N5 will be in the centre (ceny=0, dacz=0)
|
|
|
|
|
|
|
|
|
Please note that there is little sense to create a grid with step lower than the size of the beam



