Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MCP upgrades: semi-automatic scripts and update of the current scripts (1 LST -> 4 LSTs); Torino team #154

Merged
merged 77 commits into from
Oct 29, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
72cdd35
DL0 to DL1 reduction
ranieremenezes Sep 26, 2023
f93a73a
Add files via upload
ranieremenezes Sep 26, 2023
a22c872
Add files via upload
ranieremenezes Sep 26, 2023
d9c69d8
"Merge" with master
Elisa-Visentin Sep 26, 2023
493ad1c
remove duplicate function (io, gadf)
Elisa-Visentin Sep 27, 2023
37027e3
pyflakes
Elisa-Visentin Sep 27, 2023
89cac19
trying to fix tests
Elisa-Visentin Sep 27, 2023
ea94f71
Try to fix tests
Elisa-Visentin Sep 27, 2023
7fb3dc3
tests
Elisa-Visentin Sep 27, 2023
8d8849f
Fix test functions
Elisa-Visentin Sep 27, 2023
14786b9
pyflakes
Elisa-Visentin Sep 27, 2023
c0395e5
readme + bug
Elisa-Visentin Sep 27, 2023
ef7822b
test (gamma combo_types)
Elisa-Visentin Sep 27, 2023
31aa48c
use pre-offset search in automatic script
Elisa-Visentin Sep 27, 2023
19760ac
Fixed tests (now they don't fail, locally)
Elisa-Visentin Sep 27, 2023
f2f634d
Update README.md
ranieremenezes Sep 27, 2023
332500d
Updated README
ranieremenezes Sep 27, 2023
e2c6c31
failed git test
Elisa-Visentin Sep 27, 2023
24cbdf6
Remove commented functions + remove get_stereo()
Elisa-Visentin Sep 28, 2023
93d729a
config.yaml default
Elisa-Visentin Sep 28, 2023
fe69420
LST_version
Elisa-Visentin Sep 28, 2023
517a046
calib module for Calibration functions
Elisa-Visentin Sep 28, 2023
75093a6
Focal length (MCs)
Elisa-Visentin Sep 28, 2023
756782e
Config and scripts paths + setup.py
Elisa-Visentin Sep 28, 2023
cded8f5
partial analysis
Elisa-Visentin Sep 28, 2023
5313599
Bug
Elisa-Visentin Sep 28, 2023
0913458
config file in resources
Elisa-Visentin Sep 28, 2023
c487e0d
readme and resources
Elisa-Visentin Sep 28, 2023
2bdf63b
README + analysis_type + 'with open...'
Elisa-Visentin Oct 2, 2023
10e8849
env name, minor fixes
Elisa-Visentin Oct 2, 2023
85dbbb6
minor fixes
Elisa-Visentin Oct 2, 2023
76fb3fd
f_string
Elisa-Visentin Oct 2, 2023
0911807
f-string
Elisa-Visentin Oct 2, 2023
273690b
Console scripts in bash
Elisa-Visentin Oct 2, 2023
5f96f5b
Calibration docstring
Elisa-Visentin Oct 2, 2023
174e377
Fixed Calibrate_LST (input)
Elisa-Visentin Oct 2, 2023
9923e48
Bug
Elisa-Visentin Oct 2, 2023
972ee8d
one single Calibrate function
Elisa-Visentin Oct 2, 2023
1a486e4
Bug (bash scripts)
Elisa-Visentin Oct 3, 2023
733afad
Writing bash script with writelines()
ranieremenezes Oct 3, 2023
aaaa867
List of functions in alphabetical order
ranieremenezes Oct 3, 2023
06e3f6c
List of functions in alphabetical order
ranieremenezes Oct 3, 2023
5d24322
List of functions in alphabetical order
ranieremenezes Oct 3, 2023
9a56f9e
List of functions in alphabetical order
ranieremenezes Oct 3, 2023
937f025
Standardized inline comments
ranieremenezes Oct 3, 2023
69e7b6f
Moved IT scripts to a different folder
Elisa-Visentin Oct 3, 2023
c5cfff6
Moving tutorial
Elisa-Visentin Oct 3, 2023
da99132
Update README.md
ranieremenezes Oct 3, 2023
cd9b396
Remove IT scripts
Elisa-Visentin Oct 4, 2023
e0756c5
Calibrate (MAGIC & LST)
Elisa-Visentin Oct 4, 2023
ece3300
Minor fixes + calib Docstring
Elisa-Visentin Oct 4, 2023
69ca7c1
calib exception (+ minor fixes)
Elisa-Visentin Oct 4, 2023
ee00aaa
Bug
Elisa-Visentin Oct 4, 2023
8c9a75c
Update ci.yml
Elisa-Visentin Oct 5, 2023
b47ee02
Minor fixes + test tel. combinations
Elisa-Visentin Oct 5, 2023
03d5cbb
removed max_multiplicity in get_stereo
Elisa-Visentin Oct 5, 2023
334ed6d
tests
Elisa-Visentin Oct 6, 2023
bb44aff
minor fixes
Elisa-Visentin Oct 6, 2023
db0f298
bug
Elisa-Visentin Oct 6, 2023
6f8223c
Bug calib function
Elisa-Visentin Oct 6, 2023
d6ab37f
Bug magic-only
Elisa-Visentin Oct 6, 2023
52d6222
fixed test
Elisa-Visentin Oct 6, 2023
03f6e98
updated config files
ranieremenezes Oct 6, 2023
8de7c67
Info on high level analysis in README
ranieremenezes Oct 6, 2023
183da71
Tel. name exception
Elisa-Visentin Oct 6, 2023
7dce9ba
calib: test + bug fix
Elisa-Visentin Oct 6, 2023
15376a5
tel_positions
Elisa-Visentin Oct 7, 2023
ff8ee4a
Check if the input telescope list is fine
ranieremenezes Oct 9, 2023
b604768
New function to check telescope list
ranieremenezes Oct 9, 2023
cf92a25
Just fixing a typo
ranieremenezes Oct 9, 2023
48ae576
Minor fixes
Elisa-Visentin Oct 12, 2023
93c6dd7
Minor fixes+tests (check_list, tel-wise training)
Elisa-Visentin Oct 13, 2023
f4fde0f
Output file name
Elisa-Visentin Oct 13, 2023
4ff0885
Pyflakes error
Elisa-Visentin Oct 13, 2023
fff4a84
calib fixes
Elisa-Visentin Oct 13, 2023
df96e74
Check_input_list test
Elisa-Visentin Oct 16, 2023
ddfdcf3
Merge branch 'master' into Torino
Elisa-Visentin Oct 25, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions environment.yml
aleberti marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# A conda environment with all useful package for ctapipe developers
name: magic-lst1
name: magic-lst
channels:
- default
- conda-forge
dependencies:
- python=3.8
- python
- pip
- black
- nbsphinx
- numpy=1.21
- ctapipe=0.12
- gammapy=0.19.0
- cython
Expand Down
4 changes: 4 additions & 0 deletions magicctapipe/io/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
create_pointing_hdu,
)
from .io import (
telescope_combinations,
format_object,
get_dl2_mean,
get_stereo_events,
Expand All @@ -22,6 +23,7 @@
load_magic_dl1_data_files,
load_mc_dl2_data_file,
load_train_data_files,
load_train_data_files_tel,
save_pandas_data_in_table,
)

Expand All @@ -33,6 +35,7 @@
"create_gh_cuts_hdu",
"create_gti_hdu",
"create_pointing_hdu",
"telescope_combinations",
"format_object",
"get_dl2_mean",
"get_stereo_events",
Expand All @@ -42,5 +45,6 @@
"load_magic_dl1_data_files",
"load_mc_dl2_data_file",
"load_train_data_files",
"load_train_data_files_tel",
"save_pandas_data_in_table",
]
58 changes: 55 additions & 3 deletions magicctapipe/io/gadf.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from astropy.table import QTable
from astropy.time import Time
from magicctapipe import __version__
from magicctapipe.io.io import TEL_COMBINATIONS
from magicctapipe.utils.functions import HEIGHT_ORM, LAT_ORM, LON_ORM
from pyirf.binning import split_bin_lo_hi

Expand All @@ -21,6 +20,7 @@
"create_pointing_hdu",
]


logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.INFO)
Expand All @@ -29,6 +29,55 @@
MJDREF = Time(0, format="unix", scale="utc")


def telescope_combinations(config):
Elisa-Visentin marked this conversation as resolved.
Show resolved Hide resolved
"""
Generates all possible telescope combinations without repetition. E.g.: "LST1_M1", "LST2_LST4_M2", "LST1_LST2_LST3_M1" and so on.

Parameters
----------
config: dict
yaml file with information about the telescope IDs. Typically evoked from "config_general.yaml" in the main scripts.

Returns
-------
TEL_NAMES: dict
Dictionary with telescope IDs and names.
TEL_COMBINATIONS: dict
Dictionary with all telescope combinations with no repetions.
"""


TEL_NAMES = {}
for k, v in config["mc_tel_ids"].items(): #Here we swap the dictionary keys and values just for convenience.
if v > 0:
TEL_NAMES[v] = k

TEL_COMBINATIONS = {}
keys = list(TEL_NAMES.keys())

def recursive_solution(current_tel, current_comb):

if current_tel == len(keys): #The function stops once we reach the last telescope
return

current_comb_name = current_comb[0] + '_' + TEL_NAMES[keys[current_tel]] #Name of the combo (at this point it can even be a single telescope)
current_comb_list = current_comb[1] + [keys[current_tel]] #List of telescopes (including individual telescopes)

if len(current_comb_list) > 1: #We save them in the new dictionary excluding the single-telescope values
TEL_COMBINATIONS[current_comb_name[1:]] = current_comb_list;

current_comb = [current_comb_name, current_comb_list] #We save the current results in this varible to recal the function recursively ("for" loop below)

for i in range(1, len(keys)-current_tel):
recursive_solution(current_tel+i, current_comb)


for key in range(len(keys)):
recursive_solution(key, ['',[]])


return TEL_NAMES, TEL_COMBINATIONS

gabemery marked this conversation as resolved.
Show resolved Hide resolved
@u.quantity_input
def create_gh_cuts_hdu(
gh_cuts, reco_energy_bins: u.TeV, fov_offset_bins: u.deg, **header_cards
Expand Down Expand Up @@ -90,7 +139,7 @@ def create_gh_cuts_hdu(


def create_event_hdu(
event_table, on_time, deadc, source_name, source_ra=None, source_dec=None
event_table, config, on_time, deadc, source_name, source_ra=None, source_dec=None
):
"""
Creates a fits binary table HDU for shower events.
Expand All @@ -99,6 +148,8 @@ def create_event_hdu(
----------
event_table: astropy.table.table.QTable
Table of the DL2 events surviving gammaness cuts
config: dict
yaml file with information about the telescope IDs. Typically called evoked from "config_DL3.yaml" in the main scripts.
on_time: astropy.table.table.QTable
ON time of the input data
deadc: float
Expand All @@ -125,7 +176,8 @@ def create_event_hdu(
If the source name cannot be resolved and also either or both of
source RA/Dec coordinate is set to None
"""

_, TEL_COMBINATIONS = telescope_combinations(config)

mjdreff, mjdrefi = np.modf(MJDREF.mjd)

time_start = Time(event_table["timestamp"][0], format="unix", scale="utc")
Expand Down
Loading
Loading