Sample alignment scans with photodiode (for goniometer mount)

25 views
Skip to first unread message

Soham Banerjee

unread,
Oct 26, 2017, 2:16:17 PM10/26/17
to xpd-users
While we were using the cryostat 3-sample-rack there was a nice scan that tracked the photodiode current as a function of sample-stage-2 position in (x, y) and output matplotlib windows. This was a really convenient way to align the sample(s) so they were optimally positioned vs. beam center (from minima in the photodiode current). Does anyone have some simple instructions for how to do this with the goniometer mount?

In the future, could we try and automate this?

Ghose, Sanjit

unread,
Oct 26, 2017, 4:20:13 PM10/26/17
to Soham Banarjee, xpd-users
One can do this scan and get the plots using Bluesky Plan. Now the plotting and progress of the scans are way better done in BS. Just let me know what exactly you need to do? Do a scan using photodiode and those positions recorded? Or just plot on the window.


From: xpd-...@googlegroups.com [xpd-...@googlegroups.com] on behalf of Soham Banerjee [sbane...@gmail.com]
Sent: Thursday, October 26, 2017 2:16 PM
To: xpd-users
Subject: [xpd-users] Sample alignment scans with photodiode (for goniometer mount)

While we were using the cryostat 3-sample-rack there was a nice scan that tracked the photodiode current as a function of sample-stage-2 position in (x, y) and output matplotlib windows. This was a really convenient way to align the sample(s) so they were optimally positioned vs. beam center (from minima in the photodiode current). Does anyone have some simple instructions for how to do this with the goniometer mount?

In the future, could we try and automate this?

--
You received this message because you are subscribed to the Google Groups "xpd-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xpd-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/xpd-users/cfe4eec6-a8df-4db2-aabf-0d7587263d88%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Simon Billinge

unread,
Oct 30, 2017, 6:47:42 AM10/30/17
to Ghose, Sanjit, Soham Banarjee, xpd-users
I am guessing that this was resolved, but there is no resolution recorded on xpd-users.  It would certainly be useful to have it here if there is, or if it still needs to be resolved, let's put an issue up on xpdAcq.

S

Soham Banerjee

unread,
Nov 2, 2017, 9:00:18 AM11/2/17
to xpd-users
This is an example of the bluesky scan used, generally useful for scans over one variable (1D detectors) in evenly spaced steps.

RE(bp.scan([em], diff_y, 36, 38, 20))

- em is an epics scaler defined for a few channels where channel 21 is for the photodiode current. Sanjit, if you could, please let us know what channels 20-23 correspond to.
- diff_y is the goniometer motor in y, 36 is the absolute goniometer-y position start value, 38 the final position, and the scan moves this motor (2mm in this case) in 20 steps.
- This was used to scan the capillary in y, and find a minimum value in the channel 21 readback, corresponding to the minimum photodiode current = maximum sample absorption/scattering.

Would be nice if we could get something similar to track integrated Bragg intensity over a specified q-range as a function of motor position. 

Signature: bp.scan(detectors, motor, start, stop, num, *, per_step=None, md=None)
Docstring:
Scan over one variable in equally spaced steps.

Parameters
----------
detectors
: list
    list of
'readable' objects
motor
: object
    any
'setable' object (motor, temp controller, etc.)
start
: float
    starting position of motor
stop
: float
    ending position of motor
num
: int
    number of steps
per_step
: callable, optional
    hook
for cutomizing action of inner loop (messages per step)
   
Expected signature: ``f(detectors, motor, step)``
md
: dict, optional
    metadata

Chia-Hao Liu

unread,
Nov 2, 2017, 11:54:55 AM11/2/17
to xpd-users
Just a side note, a scan relative to current position might be useful in this context

# moving diff_y from -1mm to +1mm in 20 steps relative to current diff_y position.
RE
(bp.relative_scan([em], diff_y, -1, 1, 20))

Reply all
Reply to author
Forward
0 new messages