[Nexus] Suggestions for NeXus from CIF
Mark Koennecke
Mark.Koennecke at psi.ch
Mon Apr 12 07:24:16 BST 2010
Pete,
Pete R. Jemian wrote:
> Two comments on the axis suggestions.
>
> On 4/6/2010 3:02 AM, Mark Koennecke wrote:
>> Axis Suggestions for NeXus ---------------------------
>> 1) NeXus stays with the McStas coordinate system.
>
> McStas is not very restrictive.
> It only defines the coordinate axes.
> It does not describe rotations.
>
> For those that want to see the McStas definition,
> refer to the components manual, page 11,
> http://mcstas.risoe.dk/documentation/manual/mcstas-1.12a-components.pdf
>
> "All mentioning of component geometry refer to the local coordinate
> system of the individual component. The axis convention is so that the
> z axis is along the neutron propagation axis, the y axis is vertical
> up, and the x axis points left when looking along the z-axis,
> completing a right-handed coordinate system. Most components
> ’position’ (as specified in the instrument description with the AT
> keyword) corresponds to their input side at the nominal beam position.
> However, a few components are radial and thus positioned in their
> centre."
>
>
> Similar information is provided in the user and programmers manual,
> page 70
> http://mcstas.risoe.dk/documentation/manual/mcstas-1.12a-manual.pdf
>
> "The instrument is given a global, absolute coordinate system. In
> addition, every component in the instrument has its own local
> coordinate system that can be given any desired position and
> orientation (though the position and orientation must remain fixed for
> the duration of a single simulation). By convention, the z axis points
> in the direction of the beam, the x axis is perpendicular to the beam
> in the horizontal plane pointing left as seen from the source, and the
> y axis points upwards."
>
>
Do you mean that McStas is not well enough defined?
>>
>> 2) NeXus uses the vector and offset scheme to document existing NeXus
>> axis. The base of all operations is always the component, if not
>> specified by an offset vector. Rotations are in degree, translations in
>> milimetre.
>> - rotation_angle has a vector 0 1 0, rotation around Y
>> - azimuthal_angle is a rotation around Z, vector = 0 0 1
>> - polar_angle is also a rotation around Y, vector 0 1 0, but as the
>> rotation axis is with the previous component upstream, we have an
>> offset of 0 0 -distance
>
> *Now* I know why I have a problem with this. There is *no*
> description for a rotation about the X axis. Synchrotron instruments
> (with a few exceptions of course) use a rotation angle that rotates
> about the X axis (in the vertical plane) because the polarization of
> the synchrotron X-ray beam is in the horizontal plane. Scanning
> around the Y axis would produce a very low intensity beam for
> scattering in the X direction! Some lab X-ray instruments also scan in
> the vertical plane but this is not because of polarization but perhaps
> for a liquid scattering instrument. Most neutron instruments don't
> have this polarization constraint on their design. They can use a
> rotation angle about the Y axis for the very practical matter that the
> detectors would not have to be raised and lowered.
I realized that there is no rotation around the X axis in NeXus and
suggestion 6 is there to fix this.
>
> To me, this definition of rotation_angle has much room for improvement.
> One possible backwards-compatible improvement would be to say the
> default rotation_angle has vector "0 1 0" and then specify with an
> optional attribute a different vector.
>
Mark
> Pete
>
>
More information about the NeXus
mailing list