def test_muon_reconstruction(tmpdir): from ctapipe.tools.muon_reconstruction import MuonAnalysis with tempfile.NamedTemporaryFile(suffix=".hdf5") as f: assert (run_tool( MuonAnalysis(), argv=[f"--input={LST_MUONS}", f"--output={f.name}", "--overwrite"], ) == 0) with tables.open_file(f.name) as t: table = t.root.dl1.event.telescope.parameters.muons[:] assert len(table) > 20 assert np.count_nonzero(np.isnan(table["muonring_radius"])) == 0 assert run_tool(MuonAnalysis(), ["--help-all"]) == 0
def test_muon_reconstruction(tmpdir, dl1_muon_file): from ctapipe.tools.muon_reconstruction import MuonAnalysis muon_simtel_output_file = tmp_dir.name + "/muon_reco_on_simtel.h5" assert ( run_tool( MuonAnalysis(), argv=[ f"--input={LST_MUONS}", f"--output={muon_simtel_output_file}", "--overwrite", ], cwd=tmpdir, ) == 0 ) with tables.open_file(muon_simtel_output_file) as t: table = t.root.dl1.event.telescope.parameters.muons[:] assert len(table) > 20 assert np.count_nonzero(np.isnan(table["muonring_radius"])) == 0 muon_dl1_output_file = tmp_dir.name + "/muon_reco_on_dl1a.h5" assert ( run_tool( MuonAnalysis(), argv=[ f"--input={dl1_muon_file}", f"--output={muon_dl1_output_file}", "--overwrite", ], cwd=tmpdir, ) == 0 ) with tables.open_file(muon_dl1_output_file) as t: table = t.root.dl1.event.telescope.parameters.muons[:] assert len(table) > 20 assert np.count_nonzero(np.isnan(table["muonring_radius"])) == 0 assert run_tool(MuonAnalysis(), ["--help-all"]) == 0
def test_muon_reconstruction_simtel(tmp_path): from ctapipe.tools.muon_reconstruction import MuonAnalysis muon_simtel_output_file = tmp_path / "muon_reco_on_simtel.h5" assert (run_tool( MuonAnalysis(), argv=[ f"--input={LST_MUONS}", f"--output={muon_simtel_output_file}", "--SimTelEventSource.focal_length_choice=nominal", "--overwrite", ], cwd=tmp_path, ) == 0) with tables.open_file(muon_simtel_output_file) as t: table = t.root.dl1.event.telescope.parameters.muons[:] assert len(table) > 20 assert np.count_nonzero(np.isnan(table["muonring_radius"])) == 0