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