class TestEventSelection: def setup_class(self): table = Table() table["RA"] = [0.0, 0.0, 0.0, 10.0] * u.deg table["DEC"] = [0.0, 0.9, 10.0, 10.0] * u.deg table["ENERGY"] = [1.0, 1.5, 1.5, 10.0] * u.TeV table["OFFSET"] = [0.1, 0.5, 1.0, 1.5] * u.deg self.events = EventList(table) center1 = SkyCoord(0.0, 0.0, frame="icrs", unit="deg") on_region1 = CircleSkyRegion(center1, radius=1.0 * u.deg) center2 = SkyCoord(0.0, 10.0, frame="icrs", unit="deg") on_region2 = RectangleSkyRegion(center2, width=0.5 * u.deg, height=0.3 * u.deg) self.on_regions = [on_region1, on_region2] def test_region_select(self): geom = WcsGeom.create(skydir=(0, 0), binsz=0.2, width=4.0 * u.deg, proj="TAN") new_list = self.events.select_region(self.on_regions[0], geom.wcs) assert len(new_list.table) == 2 union_region = self.on_regions[0].union(self.on_regions[1]) new_list = self.events.select_region(union_region, geom.wcs) assert len(new_list.table) == 3 region_string = "fk5;box(0,10, 0.25, 0.15)" new_list = self.events.select_region(region_string, geom.wcs) assert len(new_list.table) == 1 def test_map_select(self): axis = MapAxis.from_edges((0.5, 2.0), unit="TeV", name="ENERGY") geom = WcsGeom.create(skydir=(0, 0), binsz=0.2, width=4.0 * u.deg, proj="TAN", axes=[axis]) mask = geom.region_mask(regions=[self.on_regions[0]]) new_list = self.events.select_mask(mask) assert len(new_list.table) == 2 def test_select_energy(self): energy_range = u.Quantity([1, 10], "TeV") new_list = self.events.select_energy(energy_range) assert len(new_list.table) == 3