Let's look at the physical information of 'dcm' from P08.
haspp08% nxsconfig geometry -s haspp08mono:10000/p08/nxsconfigserver/haspp08 dcm
Component: 'dcm'
nexus_path source_name units trans_type trans_vector trans_offset depends_on
------------------------------------------------------ ----------- ----- ----------- ------------ ------------ -------------------------------
scan/instrument/dcm/crystal1/usage
scan/instrument/dcm/crystal1/type
scan/instrument/dcm/crystal1/reflection
scan/instrument/dcm/crystal1/depends_on [transformations/dcm_lat]
scan/instrument/dcm/crystal1/transformations/dcm_lat goni_lat mm translation 1 0 0 dcm_yaw
scan/instrument/dcm/crystal1/transformations/dcm_yaw goni_yaw mm rotation 0 1 0 ../../transformations/dcm_bragg
scan/instrument/dcm/crystal2/usage
scan/instrument/dcm/crystal2/type
scan/instrument/dcm/crystal2/reflection
scan/instrument/dcm/crystal2/depends_on [transformations/dcm_roll2]
scan/instrument/dcm/crystal2/transformations/dcm_roll2 c2_roll deg rotation 0 0 1 dcm_pitch
scan/instrument/dcm/crystal2/transformations/dcm_pitch c2_pitch deg rotation -1 0 0 dcm_perp
scan/instrument/dcm/crystal2/transformations/dcm_perp c2_perp mm translation 0 1 0 dcm_para
scan/instrument/dcm/crystal2/transformations/dcm_para c2_para mm translation 0 0 1 ../../transformations/dcm_bragg
scan/instrument/dcm/transformations/dcm_bragg dcm_bragg deg rotation -1 0 0 dcm_z1
scan/instrument/dcm/transformations/dcm_z1 jack_1 mm translation 0 1 0
scan/instrument/dcm/transformations/dcm_z2 jack_2 mm translation 0 1 0
scan/instrument/dcm/transformations/dcm_z3 jack_3 mm translation 0 1 0
scan/instrument/dcm/energy energyfmb eV
According to NeXus standard to read the order of transformations we start from a 'depends_on' field, i.e. the most top motor, and we go down reading the next motors from 'depends_on' attributes, i.e in the depends_on column.
E.g. for 'dcm' we can start from
scan/instrument/dcm/crystal1/depends_on
which points the following chain
transformations/dcm_lat
dcm_yaw
../../transformations/dcm_bragg
dcm_z1
Moreover, each motor corresponds to a transformation, i.e. a translation or rotation from the trans_type column, in the direction of trans_vector in the NeXus coordinate frame. The transformations are performed from bottom. Firstly, we move our coordinate system up (according to 'dcm_z1'), next on our coordinate system we perform the 'dcm_bragg' rotation, then the 'dcm_yaw' rotation and finally the 'dcm_lat' translation. Additionally, before each transformation we can perform a offset translation given by trans_offset.1.3