code: def alignVec_quat(vec):
      
      alpha = np.arctan2(vec[1], vec[0])
      beta = np.arccos(vec[2])
      gamma = -alpha*vec[2]
      cb = np.cos(0.5*beta)
      sb = np.sin(0.5*beta)
      return np.array([cb*np.cos(0.5*(alpha + gamma)),
                       sb*np.sin(0.5*(gamma - alpha)),
                       sb*np.cos(0.5*(gamma - alpha)),
                       cb*np.sin(0.5*(alpha + gamma))])
docs: Returns a unit quaternion that will align vec with the z-axis