def test_tof_range(self): run = CreateSampleWorkspace(Function='Multiple Peaks', NumBanks=6, BankPixelWidth=1, NumEvents=10, XUnit='Energy', XMin=5, XMax=75, BinWidth=0.2) LoadInstrument(run, InstrumentName='MARI', RewriteSpectraMap=True) red = DirectEnergyConversion(run.getInstrument()) red.prop_man.incident_energy = 26.2 red.prop_man.energy_bins = [-20, 0.1, 20] red.prop_man.multirep_tof_specta_list = [4, 5, 6] MoveInstrumentComponent(Workspace='run', ComponentName='Detector', DetectorID=1102, Z=3) MoveInstrumentComponent(Workspace='run', ComponentName='Detector', DetectorID=1103, Z=6) run_tof = ConvertUnits(run, Target='TOF', EMode='Elastic') tof_range = red.find_tof_range_for_multirep(run_tof) self.assertEqual(len(tof_range), 3) x = run_tof.readX(3) xMin = min(x) x = run_tof.readX(5) xMax = max(x) self.assertGreater(tof_range[0], xMin) # self.assertAlmostEqual(tof_range[1],dt) self.assertLess(tof_range[2], xMax) # check another working mode red.prop_man.multirep_tof_specta_list = 4 red.prop_man.incident_energy = 47.505 red.prop_man.energy_bins = [-20, 0.1, 45] tof_range1 = red.find_tof_range_for_multirep(run_tof) self.assertGreater(tof_range1[0], xMin) self.assertLess(tof_range1[2], xMax) self.assertLess(tof_range1[2], tof_range[2]) self.assertLess(tof_range1[0], tof_range[0]) self.assertLess(tof_range1[1], tof_range[1])
def test_tof_range(self): run = CreateSampleWorkspace( Function="Multiple Peaks", NumBanks=6, BankPixelWidth=1, NumEvents=10, XUnit="Energy", XMin=5, XMax=75, BinWidth=0.2, ) LoadInstrument(run, InstrumentName="MARI", RewriteSpectraMap=True) red = DirectEnergyConversion(run.getInstrument()) red.prop_man.incident_energy = 26.2 red.prop_man.energy_bins = [-20, 0.1, 20] red.prop_man.multirep_tof_specta_list = [4, 5, 6] MoveInstrumentComponent(Workspace="run", ComponentName="Detector", DetectorID=1102, Z=3) MoveInstrumentComponent(Workspace="run", ComponentName="Detector", DetectorID=1103, Z=6) run_tof = ConvertUnits(run, Target="TOF", EMode="Elastic") tof_range = red.find_tof_range_for_multirep(run_tof) self.assertEqual(len(tof_range), 3) x = run_tof.readX(3) dx = abs(x[1:] - x[:-1]) xMin = min(x) dt = min(dx) x = run_tof.readX(5) xMax = max(x) self.assertTrue(tof_range[0] > xMin) # self.assertAlmostEqual(tof_range[1],dt) self.assertTrue(tof_range[2] < xMax) # check another working mode red.prop_man.multirep_tof_specta_list = 4 red.prop_man.incident_energy = 47.505 red.prop_man.energy_bins = [-20, 0.1, 45] tof_range1 = red.find_tof_range_for_multirep(run_tof) self.assertTrue(tof_range1[0] > xMin) self.assertTrue(tof_range1[2] < xMax) self.assertTrue(tof_range1[2] < tof_range[2]) self.assertTrue(tof_range1[0] < tof_range[0]) self.assertTrue(tof_range1[1] < tof_range[1])