void _getPose()
 {
     lock (thisLock)
     {
         while (!workFinished)
         {
             TrackedDevicePose_t[]
             allPoses = new TrackedDevicePose_t[OpenVR.k_unMaxTrackedDeviceCount];
             vrSystem.GetDeviceToAbsoluteTrackingPose(ETrackingUniverseOrigin.TrackingUniverseStanding, 0, allPoses);
             var pose = allPoses[0];
             if (pose.bPoseIsValid)
             {
                 var absTracking = pose.mDeviceToAbsoluteTracking;
                 var mat         = new SteamVR_Utils.RigidTransform(absTracking);
                 Debug.Log("Position: " + mat.pos + " Rotation: " + mat.rot.eulerAngles);
                 dataManager.AddHeadPos(0.0f, mat.pos, mat.rot.eulerAngles);
             }
         }
         if (workFinished)
         {
             dataManager.WriteHeadPosData();
         }
     }
 }
 /**
  * Gets the position of the Vive headset at a predefined interval and adds that data point to the
  * head position data file for the current trial.
  */
 void Tracking()
 {
     dataManager.AddHeadPos(Time.time, headPos.position, headPos.eulerAngles);
     dataManager.AddControllerPos(Time.time, controllerPos.position, controllerPos.eulerAngles);
 }