\subsection{Omega 2Theta} This is an example for a simple virtual motor. It uses two motors and runs the second one to exactly the double value of the first one. It can be used to implement omega--two--theta (o2t) scans at reflectometers of four circle diffractometers using the normal scan command. The o2t module uses the following data structure: \begin{verbatim} typedef struct __SicsO2T { pObjectDescriptor pDes; pIDrivable pDrivInt; pMotor pOmega; pMotor pTheta; } SicsO2T; \end{verbatim} The fields: \begin{description} \item[pDes] A pointer to the usual SICS object descriptor. \item[pDrivInt] A pointer to the drivable interface implemented by this variable. \item[pOmega] A pointer to the first motor to use. \item[pTheta] A pointer to the motor data structure of the second (double) motor to use. \end{description} Most of this modules action lives in the drivable interface. The rest is achieved through the following functions: \begin{description} \item[pSicsO2T MakeO2T(char *omega, char *theta, SicsInterp *pSics)] creates a new o2t object from motors omega and theta. Returns NULL on failure and a pointer to an o2t data structure on success. \item[void DeleteO2T(void *pData)] deletes an o2t object. \item[int CreateO2T(SConnection *pCon, SicsInterp *pSics, void *pData,\\ int argc, char *argv[])] The object factory function for o2t objects. \end{description} Please note, that o2t is just a helper variable and can not be manipualted from the SICS interpreter.