예제 #1
0
def test_create_irf_point_like_srcdep(
    temp_dir_observed_srcdep_files, simulated_srcdep_dl2_file
):
    """
    Generating point-like source-dependent IRF file from a test DL2 files
    """
    from lstchain.tools.lstchain_create_irf_files import IRFFITSWriter

    irf_file = temp_dir_observed_srcdep_files / "irf.fits.gz"
    
    assert (
        run_tool(
            IRFFITSWriter(),
            argv=[
                f"--input-gamma-dl2={simulated_srcdep_dl2_file}",
                f"--output-irf-file={irf_file}",
                "--point-like",
                "--source-dep",
                "--overwrite",
            ],
            cwd=temp_dir_observed_srcdep_files,
       )
       == 0
    )

    with fits.open(irf_file) as hdul:
        for hdu in hdul[1:]:
            assert 'AL_CUT' in hdu.header
            assert isinstance(hdu.header['AL_CUT'], float)
예제 #2
0
def test_create_irf_full_enclosure_with_config(temp_dir_observed_files, simulated_dl2_file):
    """
    Generating full enclosure IRF file from a test DL2 files, using
    a config file
    """
    from lstchain.tools.lstchain_create_irf_files import IRFFITSWriter

    irf_file = temp_dir_observed_files / "fe_irf.fits.gz"
    config_file = os.path.join(os.getcwd(), "./docs/examples/irf_tool_config.json")

    assert (
        run_tool(
            IRFFITSWriter(),
            argv=[
                f"--input-gamma-dl2={simulated_dl2_file}",
                f"--input-proton-dl2={simulated_dl2_file}",
                f"--input-electron-dl2={simulated_dl2_file}",
                f"--output-irf-file={irf_file}",
                f"--config={config_file}",
                "--overwrite",
            ],
            cwd=temp_dir_observed_files,
        )
        == 0
    )
예제 #3
0
def test_create_irf_point_like(temp_dir_observed_files, simulated_dl2_file):
    """
    Generating point-like IRF file from a test DL2 files
    """
    from lstchain.tools.lstchain_create_irf_files import IRFFITSWriter

    irf_file = temp_dir_observed_files / "pnt_irf.fits.gz"

    assert (
        run_tool(
            IRFFITSWriter(),
            argv=[
                f"--input-gamma-dl2={simulated_dl2_file}",
                f"--input-proton-dl2={simulated_dl2_file}",
                f"--input-electron-dl2={simulated_dl2_file}",
                f"--output-irf-file={irf_file}",
                "--point-like",
                "--overwrite",
            ],
            cwd=temp_dir_observed_files,
        )
        == 0
    )

    with fits.open(irf_file) as hdul:
        for hdu in hdul[1:]:
            assert 'RAD_MAX' in hdu.header
            assert isinstance(hdu.header['RAD_MAX'], float)
예제 #4
0
def test_create_irf_point_like_srcdep_energy_dependent_cuts(
    temp_dir_observed_srcdep_files, simulated_srcdep_dl2_file
):
    """
    Generating point-like source-dependent IRF file from a test DL2 files,
    using energy-dependent cuts
    """
    from lstchain.tools.lstchain_create_irf_files import IRFFITSWriter
    from astropy.table import QTable

    irf_file = temp_dir_observed_srcdep_files / "irf_edep.fits.gz"
    
    assert (
        run_tool(
            IRFFITSWriter(),
            argv=[
                f"--input-gamma-dl2={simulated_srcdep_dl2_file}",
                f"--output-irf-file={irf_file}",
                "--point-like",
                "--source-dep",
                "--energy-dependent-gh",
                "--energy-dependent-alpha",
                "--overwrite",
            ],
            cwd=temp_dir_observed_srcdep_files,
       )
       == 0
    )
    
    gh_cuts = QTable.read(irf_file, hdu="GH_CUTS")
    assert isinstance(gh_cuts.meta["GH_EFF"], float)
    
    al_cuts = QTable.read(irf_file, hdu="AL_CUTS")
    assert isinstance(al_cuts.meta["AL_CONT"], float)
예제 #5
0
def test_create_irf_point_like_energy_dependent_cuts(
    temp_dir_observed_files, simulated_dl2_file
):
    """
    Generating point-like IRF file from a test DL2 files, using
    energy-dependent cuts
    """
    from lstchain.tools.lstchain_create_irf_files import IRFFITSWriter
    from gammapy.irf import RadMax2D

    irf_file = temp_dir_observed_files / "pnt_irf.fits.gz"

    assert (
        run_tool(
            IRFFITSWriter(),
            argv=[
                f"--input-gamma-dl2={simulated_dl2_file}",
                f"--input-proton-dl2={simulated_dl2_file}",
                f"--input-electron-dl2={simulated_dl2_file}",
                f"--output-irf-file={irf_file}",
                "--overwrite",
                "--energy-dependent-gh",
                "--point-like",
                "--energy-dependent-theta",
                "--DL3Cuts.max_theta_cut=1",
                "--DL3Cuts.fill_theta_cut=1"
            ],
            cwd=temp_dir_observed_files,
        )
        == 0
    )

    assert RadMax2D.read(irf_file, hdu="RAD_MAX")
예제 #6
0
def test_create_irf_full_enclosure(temp_dir_observed_files, simulated_dl2_file):
    """
    Generating full enclosure IRF file from a test DL2 files
    """
    from lstchain.tools.lstchain_create_irf_files import IRFFITSWriter

    irf_file = temp_dir_observed_files / "fe_irf.fits.gz"

    assert (
        run_tool(
            IRFFITSWriter(),
            argv=[
                f"--input-gamma-dl2={simulated_dl2_file}",
                f"--input-proton-dl2={simulated_dl2_file}",
                f"--input-electron-dl2={simulated_dl2_file}",
                f"--output-irf-file={irf_file}",
                "--overwrite",
            ],
            cwd=temp_dir_observed_files,
        )
        == 0
    )