Files
sics/doc/user/tasub.htm
Ferdi Franceschini 3168325921 PSI update
r1464 | ffr | 2007-02-12 12:20:21 +1100 (Mon, 12 Feb 2007) | 2 lines
2012-11-15 12:58:05 +11:00

189 lines
8.1 KiB
HTML

<HTML>
<HEAD>
<TITLE>TASUB: The Triple Axis Calculation Module</TITLE>
</HEAD>
<BODY>
<H1>TASUB: The Triple Axis Calculation Module</H1>
<P>
On a triple axis instrument the parameters incoming energy, Q-position in 3D and
analyzed energy have to be changed frequently. These calculations are the task of
the TASUB module. This module uses the calculus described by M. Lumsden, J. L.
Roberston and M. Yethiraj in J. Appl. Cryst. (2005), 38, 405-411. The special feauture of
this algorithm is that the tilt cradles of the sample table are used to help during
alignment and in order to drive out of plane (within the limits of the tilt cradles).
For alignment, two reflections must be located and their angles and Q-E parameters
entered into the module. Then a UB matrix can be calculated. With a UB matrix, the
Q-E variables ei, ki, ef, kf, en, qh, qk and ql can be driven as virtual motors in
SICS.
</P>
<H2>Commands understood by Tasub</H2>
<p>
<h3>Monochromator and Analyzer Parameters</h3>
<p>
Incident and scattered energies are defined by monochromator crystals. In order for the
calculations to work, some parameters need to be configured. Monochromator and analyzer
parameters can be accessed with the prefixes:
<ul>
<li>tasub mono
<li>tasub ana
</ul>
The parameter syntax used is as usual: giving only the parameter name queries the value,
giving the parameter plus a value sets the parameter to the new value. The following
parameters are supported:
<dl>
<dt>dd
<dd>The d-spacing of the reflection used
<dt>ss
<dd>The scattering sense, 1 or -1 are possible.
<dt>hb1
<dd>First parameter for the calculation of the horizontal curvature
<dt>hb2
<dd>Second parameter for the calculation of the horizontal curvature
<dt>vb1
<dd>First parameter for the calculation of the vertical curvature
<dt>vb2
<dd>Second parameter for the calculation of the vertical curvature
</dl>
An example:
<dl>
<dt>tasub mono dd
<dd>will print the current d-spacing of the monochromator
<dt>tasub mono dd 4.3
<dd>Will set the d-spacing of the monochromator to 4.3
</dl>
</p>
<h3>Cell Parameters</h3>
<p>
In order for the UB matrix calculation to work, the cell constants must be known:
<dl>
<dt>tasub cell
<dd>This command prints the current cell parameters.
<dt>tasub cell a b c alpha beta gamma
<dd>This command sets the new cell parameters. All six values must be given.
</dl>
</p>
<h3>Reflection Management</h3>
<p>
In order to calculate a UB matrix a list of reflections must be maintained. This is done
with the commands in this section:
<dl>
<dt>tasub clear
<dd>Clears the reflection list
<dt>tasub listref
<dd>Prints a list of all known reflections.
<dt>tasub del num
<dd>Delete the reflection number num from the list
<dt>tasub addref qh qk ql
<dd>Adds a reflection to the list. The indices of the reflections are given. The angles
and energy values are read from the motors. Use this command only when the instrument is
positioned right on a reflection.
<dt>tasub addref qh qk ql a3 a4 sgu sgl ei ef
<dd>Add a new reflection to the list. Besides the indices all angles are given:
a3, the sample rotation, a4, sample two theta, sgu, upper tilt cradle, sgl, lower tilt
cradle and incoming energey ei and outgoing energy ef.
<dt>tasub addauxref qh qk ql
<dd>Adds an auxiliary reflection with indices qh, qk, ql to the list. A4 is
calculated from cell constants. A3 is either left alone or is calculated to
have the correct angular difference to a previous reflection. This is a help
for setting up the instrument or running powder mode. When a UB has been
generated from auxiliary reflections, a3, sgu and sgl angles will be incorrect.
<dt>tasub repref id qh qk ql a3 a4 sgu sgl ei ef
<dd>Modifies the reflection with id id to have the values given.
</dl>
</p>
<h3>Calculations</h3>
<p>
This section covers the parameters and commands to use to make the module do calculations
for you.
<dl>
<dt>tasbub const ki | kf | elastic
<dd>Sets a parameter to determine if KI or KF is fixed when the energy transfer en is
being driven. Allowed values: ki, kf, elastic. In elastic mode the analyzer is
disregarded. This is useful for two circle diffractometers.
<dt>tasub const
<dd>Prints if ki or kf is fixed.
<dt>tasub ss
<dd>Prints the sample scattering sense.
<dt>tasub ss 1 | -1
<dd>Sets the sample scattering sense. Allowed values are either 1 or -1.
<dt>tasub silent 0 | 1
<dd>Prints or sets the silent flag. If this is 0, the messages Driving motor ..
from .. to .. are suppressed.</dd>
<dt>tasub outofplane 0 | 1
<dd>Prints or sets the outofplane flag. If this flag is 0, the instrument will stay
in the scattering plane and not move out of it. This is here in order to protect those
bloody magnets which cannot be tilted.</dd>
<dt>tasub makeub r1 r2
<dd>Calculate a new UB matrix from the current cell constants and the entries r1 and r2 in
the reflection list. r1 and r2 are integer numbers. This command will not only print the
new UB matrix but also the results of various back and forth calculations performed with
the new UB matrix. This can be inspected in order to check the new UB. WARNING: The calculation
will go wrong if the scattering sense at the sample has changed since the reflections used
for the UB matrix determination have been entered.
<dt>tasub listub
<dd>prints the current UB matrix.
<dt>tasub calcang qh qk ql ei ef
<dd>Will calculate new angles for the Q-E position specified. The angles will be
printed in the order: monochromator two theta, sample rotation, sample two theta,
lower tilt cradle, upper tilt cradle and analyzer two theta.
<dt>tasub calcqe a2 a3 a4 sgu sgl a6
<dd>Calculates and prints the Q-E position from the angles given: a2 = monochromator
two theta, a3 = sample rotation, a4 = sample tow theta, sgu = upper tilt cradle, sgl =
lower tilt cradle and a6 = analyzer two theta. The Q-E position is printed in the sequence:
qh, qk, ql, ei, ef.
</dl>
</p>
<h3>Virtual Motors</h3>
<p>
The tasub module also installs the following virtual motors into SICS: ei, ki, qh, qk, ql,
en, ef, kf and qm. All these motors can be used in SICS drive, run or scan commands like real
motors. Driving them triggers a recalculation of angles and the drives the real motors to
appropriate values. The virtual motors have a very limited command set
(shown at the example of qh):
<dl>
<dt>qh
<dd>The name of the motor alone will print its current position.
<dt>qh target
<dd>This will print the last requested target position for this virtual motor.
</dl>
</p>
<p>
The virtual motor qm implements <b>powder mode</b>. In this mode, only the sample two theta
and energy motors will be driven, sample rotation and tilt cradles will be left at their
respective positions. THis is commonly used to analyze the energy transfer of powder samples.
</p>
<p>
There are other important command:
<dl>
<dt>tasub update
<dd>This command will force a recalculation of the current Q-E position for the virtual
motors from angles. Normally tasub will take care of this. However, if any of the angle
motors are moved directly or manualy, this command might be required. The SICS dr
wrapper command, however, even takes care of this.
</dl>
<dt>tasub updatetargets
<dd>This command makes the QE targets macth the current position. This is
useful after initialization in the instrument.tcl file.</dd>
</p>
<h3>Internal Commands</h3>
<p>
The tasub module supports some more commands which are used by SICS in order to restore
the tasub configuration between instantiations of SICS. These commands are documented here
for the sake of completeness:
<dl>
<dt>tasub setub ub11 ub12 ub13 ub21 ub22 ub23 ub31 ub32 ub33
<dd>Sets the UB matrix. Nine values are required.
<dt>tasub setnormal n1 n2 n3
<dd>This command sets the plane normal which is required in calculations. Normally this
plane normal is automatically generated during the calculation of the UB matrix.
<dt>tasub settarget qh qk ql qm ki kf
<dd>Sets the Q-E target.
<dt>tasub r1 qh qk ql a3 a4 sgu sgl ki kf
<dt>tasub r2 qh qkl ql a3 a4 sgu sgl ki kf
<dd>These commands set the values for the two reflections used for generating the UB
matrix.
</dl>
</p>
</BODY>
</HTML>