Defines rotations and translations to be applied to binnings and lattices
See also EVENTBIN, ROTPRBIN, USRBIN, and LATTICE (in Chap. 8)
WHAT(1) : assigns a transformation index and the corresponding
rotation axis
=< 0.0 : the card is ignored
> 0.0 : interpreted as i + j * 100
where i = index of the rotation
j = 1 rotation with respect to x axis
= 2 rotation with respect to y axis
= 3 rotation with respect to z axis
Default = 0.0 (no transformation defined)
WHAT(2) = Polar angle of the rotation (Theta, 0...180 degrees)
Default = no default
WHAT(3) = Azimuthal angle of the rotation (Phi, -180...180 degrees)
Default = no default
WHAT(4) = X_offset for the translation
Default = no default
WHAT(5) = Y_offset for the translation
Default = no default
WHAT(6) = Z_offset for the translation
Default = no default
SDUM : not used
Default (option ROT-DEFIni not given): no transformation is defined
Note: FLUKA binnings (spatial meshes independent of the problem geometry,
designed to score average or event-by-event quantities) are generally
defined as Cartesian structures parallel to the coordinate axes, or
as cylindrical structures parallel to the z-axis. However, it is
possible to define binnings with any arbitrary position and direction
in space, by means of transformations described by commands
ROT-DEFIni and ROTPRBIN.
Command ROT-DEFIni defines rotations/translations to be applied
to binnings (requested by the user by means of EVENTBIN or USRBIN).
Each transformation defined by ROT-DEFIni is assigned a number
WHAT(1) which can be applied to one or more binnings. The
correspondence between transformation index and binning number
is assigned via option ROTPRBIN.
Command ROT-DEFIni can be used also to define roto-translations
to be applied to lattice cells. Command LATTICE (see description
in Chap. 8, Combinatorial Geometry) sets the correspondence between
transformation index and lattice cell.
The transformation matrices are:
(cth = cos(Theta), sth = sin(Theta), cph = cos(Phi), sph = sin(Phi))
j = 1 :
| X_new | | cth sth 0 | | 1 0 0 | | X_old+X_offset |
| Y_new | = | -sth cth 0 | | 0 cph sph | | Y_old+Y_offset |
| Z_new | | 0 0 1 | | 0 -sph cph | | Z_old+Z_offset |
j = 2 :
| X_new | | 1 0 0 | | cph 0 -sph | | X_old+X_offset |
| Y_new | = | 0 cth sth | | 0 1 0 | | Y_old+Y_offset |
| Z_new | | 0 -sth cth | | sph 0 cph | | Z_old+Z_offset |
j = 3 :
| X_new | | cth 0 -sth | | cph sph 0 | | X_old+X_offset |
| Y_new | = | 0 1 0 | | -sph cph 0 | | Y_old+Y_offset |
| Z_new | | sth 0 cth | | 0 0 1 | | Z_old+Z_offset |
Rij = Tik Pkj
| X_new | | cph cth sph cth -sth | | X_old+X_offset |
| Y_new | = | -sph cph 0 | | Y_old+Y_offset |
| Z_new | | cph sth sph sth cth | | Z_old+Z_offset |
and the inverse R(^-1)ij = P(^-1)ik T(^-1)kj
| X_old | | cph -sph 0 | | cth 0 sth | |X_new| |X_offset|
| Y_old | = | sph cph 0 | | 0 1 0 | |Y_new|-|Y_offset|
| Z_old | | 0 0 1 | | -sth 0 cth | |Z_new| |Z_offset|
| X_old | | cph cth -sph cph sth | | X_new | | X_offset |
| Y_old | = | sph cth cph sph sth | | Y_new |-| Y_offset |
| Z_old | | -sth 0 cth | | Z_new | | Z_offset |
For example:
(assume zero offset and [x,y,z] = old frame, [x',y',z'] = new frame)
Theta = pi/2, Phi = 0 :
j = 1: x' = -y j = 2: x' = x j = 3: x' = z
y' = x y' = -z y' = y
z' = z z' = y z' = -x
Theta = 0, Phi = pi/2:
j = 1: x' = x j = 2: x' = -z j = 3: x' = y
y' = z y' = y y' = -x
z' = -y z' = x z' = z
That is, the vector which has position angles Theta and Phi
with respect to the j_th axis in the original system, will
become the j_th axis in the rotated system. For the special
case Theta=0 this implies a rotation of Phi in the original
frame. In practice it is more convenient to think about the
inverse rotation, the one which takes the j_th versor into
the versor with Theta and Phi
Note that a transformation can be defined recursively,
for example with two cards pointing to the same transformation.
If Pij is the rotation corresponding to the first card and
Tij the one corresponding to the second card, the overall
rotation will be Rij = Tik Pkj
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ROT-DEFI 201.0 0.0 90.0 -100.0 80.0 -500.0
USRBIN 11.0 201.0 70.0 30.0 0.0 1000.0tot-dose
USRBIN 0.0 0.0 0.0 10.0 1.0 6.0&
ROTPRBIN -1.0 1.0 0.0 1.0 1.0 1.0
* Here the transformation is applied to a cylindrical binning.
* Track-lengths are scored in the binning with its axis
* parallel to the x-axis of the coordinate frame:
* Xmin = 100.0, Xmax = 1100.0
* Rmin = 0.0, Rmax = 30.0
* ( Y , Z ) coordinate of the binning axis = ( -80.0 , 500.0 )