def test_rotate_dom_by_yaw(self): det = Detector() det._det_file = EXAMPLE_DETX_RADIAL det._parse_doms() # here, only one PMT is checked dom_id = 1 heading = 23 channel_id = 0 pmt_dir = det.pmts[det.pmts.dom_id == dom_id].dir[channel_id].copy() pmt_dir_rot = qrot_yaw(pmt_dir, heading) det.rotate_dom_by_yaw(dom_id, heading) assert np.allclose( pmt_dir_rot, det.pmts[det.pmts.dom_id == dom_id].dir[channel_id] ) assert np.allclose([0.92050485, 0.39073113, 0], det.pmts[det.pmts.dom_id == dom_id].pos[channel_id])
def test_rotate_dom_by_yaw(self): det = Detector() det._det_file = EXAMPLE_DETX_RADIAL det._parse() # here, only one PMT is checked dom_id = 1 heading = 23 channel_id = 0 pmt_dir = det.pmts[det.pmts.dom_id == dom_id].dir[channel_id].copy() pmt_dir_rot = qrot_yaw(pmt_dir, heading) det.rotate_dom_by_yaw(dom_id, heading) assert np.allclose(pmt_dir_rot, det.pmts[det.pmts.dom_id == dom_id].dir[channel_id]) assert np.allclose( [0.92050485, 0.39073113, 0], det.pmts[det.pmts.dom_id == dom_id].pos[channel_id], )
def test_a_rotation_of_45(self): vec = (1, 0, 0) vec_rot = qrot_yaw(vec, 45) assert np.allclose([0.7071, 0.7071, 0], vec_rot)
def test_a_full_rotation(self): vec = (1, 0, 0) vec_rot = qrot_yaw(vec, 360) assert np.allclose([1, 0, 0], vec_rot)
def test_a_rotation_of_180(self): vec = (1, 0, 0) vec_rot = qrot_yaw(vec, 180) assert np.allclose([-1, 0, 0], vec_rot)
def test_a_rotation_of_90(self): vec = (1, 0, 0) vec_rot = qrot_yaw(vec, 90) assert np.allclose([0, 1, 0], vec_rot)
def test_call_with_list(self): qrot_yaw([1, 2, 3], 1)