lstosa 0.10.19__tar.gz → 0.11.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lstosa-0.10.19 → lstosa-0.11.1}/PKG-INFO +4 -5
- lstosa-0.11.1/environment-lstcam.yml +8 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/environment.yml +7 -8
- lstosa-0.11.1/extra/history_files/sequence_LST1_04183.history +2 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/pyproject.toml +3 -4
- {lstosa-0.10.19 → lstosa-0.11.1}/src/lstosa.egg-info/PKG-INFO +4 -5
- {lstosa-0.10.19 → lstosa-0.11.1}/src/lstosa.egg-info/SOURCES.txt +1 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/lstosa.egg-info/requires.txt +3 -4
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/_version.py +2 -2
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/configs/sequencer.cfg +9 -3
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/conftest.py +19 -3
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/high_level/significance.py +2 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/job.py +4 -1
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/extract.py +1 -1
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/tests/test_extract.py +2 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/paths.py +9 -5
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/calibration_pipeline.py +5 -2
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/closer.py +4 -2
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/gain_selection.py +14 -15
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/sequencer.py +17 -10
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/sequencer_catB_tailcuts.py +37 -9
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/show_run_summary.py +2 -2
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/tests/test_osa_scripts.py +7 -6
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/update_source_catalog.py +44 -24
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/test_raw.py +4 -4
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/utils.py +13 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/veto.py +1 -1
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/workflow/tests/test_stages.py +0 -1
- lstosa-0.10.19/extra/history_files/sequence_LST1_04183.history +0 -2
- {lstosa-0.10.19 → lstosa-0.11.1}/.coveragerc +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/.gitignore +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/.mailmap +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/.pre-commit-config.yaml +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/.readthedocs.yml +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/LICENSE +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/MANIFEST.in +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/README.md +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/codemeta.json +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/crontab/crontab.txt +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/dev/mysql.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/Makefile +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/_static/logo_lstosa.png +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/authors.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/components/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/conf.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/configuration.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/contribute.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/documents/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/howto/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/introduction/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/introduction/reduction_steps_lstchain.png +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/jobs.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/make.bat +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/nightsummary.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/provenance.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/references.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/reports.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/scripts/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/troubleshooting/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/utils.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/veto.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/workflow/LSTOSA_flow.png +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/docs/workflow/index.rst +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/extra/example_sequencer.txt +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/extra/history_files/sequence_LST1_04183_failed.history +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/extra/history_files/sequence_LST1_04183_oneline.history +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/extra/history_files/sequence_LST1_04185.0001.history +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/extra/history_files/sequence_LST1_04185.0010.history +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/extra/sacct_output.csv +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/extra/squeue_output.csv +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/setup.cfg +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/lstosa.egg-info/dependency_links.txt +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/lstosa.egg-info/entry_points.txt +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/lstosa.egg-info/top_level.txt +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/configs/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/configs/config.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/configs/datamodel.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/configs/options.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/high_level/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/high_level/selection_cuts.toml +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/high_level/tests/test_significance.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/database.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/nightsummary.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/set_source_coordinates.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/tests/test_database.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/tests/test_nightsummary.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/nightsummary/tests/test_source_coordinates.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/osadb.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/provenance/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/provenance/capture.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/provenance/config/definition.yaml +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/provenance/config/environment.yaml +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/provenance/config/logger.yaml +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/provenance/io.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/provenance/utils.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/raw.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/report.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/autocloser.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/copy_datacheck.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/datasequence.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/gainsel_webmaker.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/provprocess.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/reprocess_longterm.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/reprocessing.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/sequencer_webmaker.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/simulate_processing.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/scripts/tests/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/test_jobs.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/test_osa.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/test_osadb.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/test_paths.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/test_report.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/tests/test_veto.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/cliopts.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/iofile.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/logging.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/mail.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/register.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/tests/test_iofile.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/utils/tests/test_utils.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/version.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/webserver/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/webserver/utils.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/workflow/__init__.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/workflow/dl3.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/workflow/stages.py +0 -0
- {lstosa-0.10.19 → lstosa-0.11.1}/src/osa/workflow/tests/test_dl3.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lstosa
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.1
|
|
4
4
|
Summary: Onsite analysis pipeline for the CTA LST-1
|
|
5
5
|
Author: María Láinez, José Enrique Ruiz, Lab Saha, Andrés Baquero, José Luis Contreras, Maximilian Linhoff
|
|
6
6
|
Author-email: Daniel Morcuende <dmorcuen@ucm.es>
|
|
@@ -18,8 +18,8 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
18
18
|
Requires-Python: >=3.10
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist: astropy
|
|
22
|
-
Requires-Dist: lstchain>=0.
|
|
21
|
+
Requires-Dist: astropy<8,>=6.1
|
|
22
|
+
Requires-Dist: lstchain>=0.11.0
|
|
23
23
|
Requires-Dist: matplotlib
|
|
24
24
|
Requires-Dist: numpy
|
|
25
25
|
Requires-Dist: pandas
|
|
@@ -31,9 +31,8 @@ Requires-Dist: psutil
|
|
|
31
31
|
Requires-Dist: click
|
|
32
32
|
Requires-Dist: toml
|
|
33
33
|
Requires-Dist: pymongo
|
|
34
|
-
Requires-Dist: gammapy~=1.
|
|
34
|
+
Requires-Dist: gammapy~=1.3
|
|
35
35
|
Requires-Dist: tenacity
|
|
36
|
-
Requires-Dist: lstcam_calib
|
|
37
36
|
Provides-Extra: test
|
|
38
37
|
Requires-Dist: pytest; extra == "test"
|
|
39
38
|
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -6,8 +6,8 @@ dependencies:
|
|
|
6
6
|
- python=3.11
|
|
7
7
|
- numpy
|
|
8
8
|
- pip
|
|
9
|
-
- astropy
|
|
10
|
-
- ctapipe
|
|
9
|
+
- astropy>=6.1,<8
|
|
10
|
+
- ctapipe>=0.25.0
|
|
11
11
|
- matplotlib
|
|
12
12
|
- pyparsing
|
|
13
13
|
- prov
|
|
@@ -15,19 +15,18 @@ dependencies:
|
|
|
15
15
|
- pydot
|
|
16
16
|
- pydotplus
|
|
17
17
|
- psutil
|
|
18
|
-
- gammapy=1.
|
|
18
|
+
- gammapy=1.3
|
|
19
19
|
- h5py
|
|
20
20
|
- joblib~=1.2.0
|
|
21
21
|
- click
|
|
22
22
|
- pymongo
|
|
23
|
-
- scikit-learn=1.
|
|
24
|
-
- ctapipe_io_lst
|
|
23
|
+
- scikit-learn=1.6
|
|
24
|
+
- ctapipe_io_lst>=0.26.0,<0.28.0a0
|
|
25
25
|
- ctaplot~=0.6.4
|
|
26
|
-
- pyirf~=0.
|
|
27
|
-
- lstchain>=0.10.15
|
|
26
|
+
- pyirf~=0.12.0
|
|
28
27
|
- tenacity
|
|
29
28
|
- pip:
|
|
30
|
-
-
|
|
29
|
+
- lstchain>=0.11.0
|
|
31
30
|
# dev dependencies
|
|
32
31
|
- pytest
|
|
33
32
|
- pytest-cov
|
|
@@ -32,8 +32,8 @@ classifiers = [
|
|
|
32
32
|
|
|
33
33
|
requires-python = ">=3.10"
|
|
34
34
|
dependencies = [
|
|
35
|
-
"astropy
|
|
36
|
-
"lstchain>=0.
|
|
35
|
+
"astropy>=6.1,<8",
|
|
36
|
+
"lstchain>=0.11.0",
|
|
37
37
|
"matplotlib",
|
|
38
38
|
"numpy",
|
|
39
39
|
"pandas",
|
|
@@ -45,9 +45,8 @@ dependencies = [
|
|
|
45
45
|
"click",
|
|
46
46
|
"toml",
|
|
47
47
|
"pymongo",
|
|
48
|
-
"gammapy~=1.
|
|
48
|
+
"gammapy~=1.3",
|
|
49
49
|
"tenacity",
|
|
50
|
-
"lstcam_calib",
|
|
51
50
|
]
|
|
52
51
|
|
|
53
52
|
dynamic = ["version"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lstosa
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.1
|
|
4
4
|
Summary: Onsite analysis pipeline for the CTA LST-1
|
|
5
5
|
Author: María Láinez, José Enrique Ruiz, Lab Saha, Andrés Baquero, José Luis Contreras, Maximilian Linhoff
|
|
6
6
|
Author-email: Daniel Morcuende <dmorcuen@ucm.es>
|
|
@@ -18,8 +18,8 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
18
18
|
Requires-Python: >=3.10
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist: astropy
|
|
22
|
-
Requires-Dist: lstchain>=0.
|
|
21
|
+
Requires-Dist: astropy<8,>=6.1
|
|
22
|
+
Requires-Dist: lstchain>=0.11.0
|
|
23
23
|
Requires-Dist: matplotlib
|
|
24
24
|
Requires-Dist: numpy
|
|
25
25
|
Requires-Dist: pandas
|
|
@@ -31,9 +31,8 @@ Requires-Dist: psutil
|
|
|
31
31
|
Requires-Dist: click
|
|
32
32
|
Requires-Dist: toml
|
|
33
33
|
Requires-Dist: pymongo
|
|
34
|
-
Requires-Dist: gammapy~=1.
|
|
34
|
+
Requires-Dist: gammapy~=1.3
|
|
35
35
|
Requires-Dist: tenacity
|
|
36
|
-
Requires-Dist: lstcam_calib
|
|
37
36
|
Provides-Extra: test
|
|
38
37
|
Requires-Dist: pytest; extra == "test"
|
|
39
38
|
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
astropy
|
|
2
|
-
lstchain>=0.
|
|
1
|
+
astropy<8,>=6.1
|
|
2
|
+
lstchain>=0.11.0
|
|
3
3
|
matplotlib
|
|
4
4
|
numpy
|
|
5
5
|
pandas
|
|
@@ -11,9 +11,8 @@ psutil
|
|
|
11
11
|
click
|
|
12
12
|
toml
|
|
13
13
|
pymongo
|
|
14
|
-
gammapy~=1.
|
|
14
|
+
gammapy~=1.3
|
|
15
15
|
tenacity
|
|
16
|
-
lstcam_calib
|
|
17
16
|
|
|
18
17
|
[all]
|
|
19
18
|
lstosa[dev,doc,test]
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
BASE: test_osa/test_files0
|
|
10
10
|
# The directories below can be left untouched.
|
|
11
11
|
MONITORING: %(BASE)s/monitoring
|
|
12
|
-
R0_DIR: %(BASE)s/
|
|
12
|
+
R0_DIR: %(BASE)s/R0G
|
|
13
|
+
RAW_R0_DIR: %(BASE)s/R0
|
|
13
14
|
DRIVE_DIR: %(MONITORING)s/DrivePositioning
|
|
14
15
|
RUN_SUMMARY_DIR: %(MONITORING)s/RunSummary
|
|
15
16
|
RUN_CATALOG: %(MONITORING)s/RunCatalog
|
|
@@ -31,9 +32,11 @@ CLOSER_DIR: %(OSA_DIR)s/Closer
|
|
|
31
32
|
HIGH_LEVEL_DIR: %(OSA_DIR)s/HighLevel
|
|
32
33
|
LONGTERM_DIR: %(OSA_DIR)s/DL1DataCheck_LongTerm
|
|
33
34
|
MERGED_SUMMARY: %(OSA_DIR)s/Catalog/merged_RunSummary.ecsv
|
|
35
|
+
SOURCE_CATALOG: %(OSA_DIR)s/Catalog
|
|
34
36
|
SEQUENCER_WEB_DIR: %(OSA_DIR)s/SequencerWeb
|
|
35
37
|
GAIN_SELECTION_FLAG_DIR: %(OSA_DIR)s/GainSel
|
|
36
38
|
GAIN_SELECTION_WEB_DIR: %(OSA_DIR)s/GainSelWeb
|
|
39
|
+
CALIB_ENV: /fefs/aswg/software/conda/envs/lstcam-env
|
|
37
40
|
|
|
38
41
|
# To be set by the user. Using PROD-ID will overcome the automatic
|
|
39
42
|
# fetching of lstchain version. Otherwise leave it empty (and without the colon symbol).
|
|
@@ -47,8 +50,8 @@ DL2_PROD_ID: model2
|
|
|
47
50
|
# Calibration steps in calibration pipeline script
|
|
48
51
|
#drs4_baseline: onsite_create_drs4_pedestal_file
|
|
49
52
|
#charge_calibration: onsite_create_calibration_file
|
|
50
|
-
drs4_baseline:
|
|
51
|
-
charge_calibration:
|
|
53
|
+
drs4_baseline: onsite_create_drs4_pedestal_file
|
|
54
|
+
charge_calibration: onsite_create_calibration_file
|
|
52
55
|
catB_calibration: onsite_create_cat_B_calibration_file
|
|
53
56
|
use_ff_heuristic_id: False
|
|
54
57
|
|
|
@@ -66,11 +69,14 @@ merge_dl1_datacheck: True
|
|
|
66
69
|
apply_catB_calibration: False
|
|
67
70
|
apply_standard_dl1b_config: False
|
|
68
71
|
use_ff_heuristic_gain_selection: False
|
|
72
|
+
create_longterm_symlink: True
|
|
69
73
|
dl1b_config: /software/lstchain/data/lstchain_standard_config.json
|
|
70
74
|
dl2_config: /software/lstchain/data/lstchain_standard_config.json
|
|
71
75
|
mc_prod: 20240918_v0.10.12_allsky_
|
|
72
76
|
dl3_config: /software/lstchain/data/dl3_std_config.json
|
|
73
77
|
max_tries: 3
|
|
78
|
+
use_lstcam_env_for_CatA_calib: False
|
|
79
|
+
use_lstcam_env_for_CatB_calib: False
|
|
74
80
|
|
|
75
81
|
[MC]
|
|
76
82
|
IRF_file: /path/to/irf.fits
|
|
@@ -26,7 +26,6 @@ from osa.nightsummary.nightsummary import run_summary_table
|
|
|
26
26
|
from osa.scripts.tests.test_osa_scripts import run_program
|
|
27
27
|
from osa.utils.utils import date_to_dir
|
|
28
28
|
from datetime import datetime
|
|
29
|
-
import lstchain
|
|
30
29
|
|
|
31
30
|
date = datetime.fromisoformat("2020-01-17")
|
|
32
31
|
nightdir = date_to_dir(date)
|
|
@@ -87,14 +86,14 @@ def drive_log(monitoring_dir):
|
|
|
87
86
|
|
|
88
87
|
@pytest.fixture(scope="session")
|
|
89
88
|
def calibration_dir(calibration_base_dir):
|
|
90
|
-
directory = calibration_base_dir / "calibration" / nightdir /
|
|
89
|
+
directory = calibration_base_dir / "calibration" / nightdir / "v0.1.1"
|
|
91
90
|
directory.mkdir(parents=True, exist_ok=True)
|
|
92
91
|
return directory
|
|
93
92
|
|
|
94
93
|
|
|
95
94
|
@pytest.fixture(scope="session")
|
|
96
95
|
def drs4_baseline_dir(calibration_base_dir):
|
|
97
|
-
directory = calibration_base_dir / "drs4_baseline" / nightdir /
|
|
96
|
+
directory = calibration_base_dir / "drs4_baseline" / nightdir / "v0.1.1"
|
|
98
97
|
directory.mkdir(parents=True, exist_ok=True)
|
|
99
98
|
return directory
|
|
100
99
|
|
|
@@ -146,6 +145,13 @@ def r0_dir(base_test_dir):
|
|
|
146
145
|
return r0_directory
|
|
147
146
|
|
|
148
147
|
|
|
148
|
+
@pytest.fixture(scope="session")
|
|
149
|
+
def r0g_dir(base_test_dir):
|
|
150
|
+
r0_directory = base_test_dir / "R0G" / nightdir
|
|
151
|
+
r0_directory.mkdir(parents=True, exist_ok=True)
|
|
152
|
+
return r0_directory
|
|
153
|
+
|
|
154
|
+
|
|
149
155
|
@pytest.fixture(scope="session")
|
|
150
156
|
def r0_data(r0_dir):
|
|
151
157
|
r0_files = []
|
|
@@ -156,6 +162,16 @@ def r0_data(r0_dir):
|
|
|
156
162
|
return r0_files
|
|
157
163
|
|
|
158
164
|
|
|
165
|
+
@pytest.fixture(scope="session")
|
|
166
|
+
def r0g_data(r0g_dir):
|
|
167
|
+
r0g_files = []
|
|
168
|
+
for i in range(4, 8):
|
|
169
|
+
r0g_file = r0g_dir / f"LST-1.1.Run0180{i}.0000.fits.fz"
|
|
170
|
+
r0g_file.touch()
|
|
171
|
+
r0g_files.append(r0g_file)
|
|
172
|
+
return r0g_files
|
|
173
|
+
|
|
174
|
+
|
|
159
175
|
@pytest.fixture(scope="session")
|
|
160
176
|
def dl1b_subdir(running_analysis_dir):
|
|
161
177
|
dl1ab_directory = running_analysis_dir / dl1_prod_id
|
|
@@ -515,7 +515,10 @@ def calibration_sequence_job_template(sequence):
|
|
|
515
515
|
# Get the job header template.
|
|
516
516
|
job_header = job_header_template(sequence)
|
|
517
517
|
|
|
518
|
-
|
|
518
|
+
if cfg.getboolean("lstchain", "use_lstcam_env_for_CatA_calib"):
|
|
519
|
+
commandargs = ["conda", "run", "-n", "lstcam-env", "calibration_pipeline"]
|
|
520
|
+
else:
|
|
521
|
+
commandargs = ["calibration_pipeline"]
|
|
519
522
|
|
|
520
523
|
if options.verbose:
|
|
521
524
|
commandargs.append("-v")
|
|
@@ -309,7 +309,7 @@ def get_source_list(date: datetime) -> dict:
|
|
|
309
309
|
|
|
310
310
|
# Create a dictionary of sources and their corresponding sequences
|
|
311
311
|
source_dict = {
|
|
312
|
-
sequence.run: sequence.source_name
|
|
312
|
+
int(sequence.run): sequence.source_name
|
|
313
313
|
for sequence in sequence_list
|
|
314
314
|
if sequence.source_name is not None
|
|
315
315
|
}
|
|
@@ -9,7 +9,6 @@ from typing import List
|
|
|
9
9
|
import subprocess
|
|
10
10
|
import time
|
|
11
11
|
import json
|
|
12
|
-
import lstchain
|
|
13
12
|
from astropy.table import Table
|
|
14
13
|
from lstchain.onsite import (find_systematics_correction_file,
|
|
15
14
|
find_time_calibration_file)
|
|
@@ -103,10 +102,12 @@ def get_drs4_pedestal_filename(run_id: int, prod_id: str) -> Path:
|
|
|
103
102
|
return files[-1] # Get the latest production among the major lstchain version
|
|
104
103
|
|
|
105
104
|
date = utils.date_to_dir(get_run_date(run_id))
|
|
105
|
+
lstcam_env = Path(cfg.get("LST1", "CALIB_ENV"))
|
|
106
|
+
lstcam_calib_version = utils.get_lstcam_calib_version(lstcam_env)
|
|
106
107
|
return (
|
|
107
108
|
DRS4_PEDESTAL_BASEDIR
|
|
108
109
|
/ date
|
|
109
|
-
/ f"v{
|
|
110
|
+
/ f"v{lstcam_calib_version}/drs4_pedestal.Run{run_id:05d}.0000.h5"
|
|
110
111
|
).resolve()
|
|
111
112
|
|
|
112
113
|
|
|
@@ -138,10 +139,12 @@ def get_calibration_filename(run_id: int, prod_id: str) -> Path:
|
|
|
138
139
|
date = utils.date_to_dir(get_run_date(run_id))
|
|
139
140
|
options.filters = utils.get_calib_filters(run_id)
|
|
140
141
|
|
|
142
|
+
lstcam_env = Path(cfg.get("LST1", "CALIB_ENV"))
|
|
143
|
+
lstcam_calib_version = utils.get_lstcam_calib_version(lstcam_env)
|
|
141
144
|
return (
|
|
142
145
|
CALIB_BASEDIR
|
|
143
146
|
/ date
|
|
144
|
-
/ f"v{
|
|
147
|
+
/ f"v{lstcam_calib_version}/calibration_filters_{options.filters}.Run{run_id:05d}.0000.h5"
|
|
145
148
|
).resolve()
|
|
146
149
|
|
|
147
150
|
|
|
@@ -263,7 +266,7 @@ def get_datacheck_files(pattern: str, directory: Path) -> list:
|
|
|
263
266
|
def datacheck_directory(data_type: str, date: str) -> Path:
|
|
264
267
|
"""Returns the path to the datacheck directory given the data type."""
|
|
265
268
|
if data_type in {"PEDESTAL", "CALIB"}:
|
|
266
|
-
directory = Path(cfg.get("LST1", f"{data_type}_DIR")) / date / "pro/log"
|
|
269
|
+
directory = Path(cfg.get("LST1", f"CAT_A_{data_type}_DIR")) / date / "pro/log"
|
|
267
270
|
elif data_type == "DL1AB":
|
|
268
271
|
directory = Path(cfg.get("LST1", f"{data_type}_DIR")) / date / options.prod_id
|
|
269
272
|
elif data_type == "LONGTERM":
|
|
@@ -358,7 +361,8 @@ def get_latest_version_file(longterm_files: List[str]) -> Path:
|
|
|
358
361
|
return max(
|
|
359
362
|
longterm_files,
|
|
360
363
|
key=lambda path: int(path.parents[1].name.split(".")[1])
|
|
361
|
-
if path.parents[1].name.startswith("v")
|
|
364
|
+
if path.parents[1].name.startswith("v") and
|
|
365
|
+
re.match(r'^\d+\.\d+(\.\d+)?$', path.parents[1].name[1:])
|
|
362
366
|
else "",
|
|
363
367
|
)
|
|
364
368
|
|
|
@@ -19,6 +19,7 @@ from osa.paths import drs4_pedestal_exists, calibration_file_exists
|
|
|
19
19
|
from osa.provenance.capture import trace
|
|
20
20
|
from osa.utils.cliopts import calibration_pipeline_cliparsing
|
|
21
21
|
from osa.utils.logging import myLogger
|
|
22
|
+
from osa.utils import utils
|
|
22
23
|
from osa.workflow.stages import DRS4PedestalStage, ChargeCalibrationStage
|
|
23
24
|
|
|
24
25
|
__all__ = [
|
|
@@ -37,8 +38,10 @@ def is_calibration_produced(drs4_pedestal_run_id: int, pedcal_run_id: int) -> bo
|
|
|
37
38
|
Check if both daily calibration (DRS4 baseline and
|
|
38
39
|
charge calibration) files are already produced.
|
|
39
40
|
"""
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
lstcam_env = Path(cfg.get("LST1", "CALIB_ENV"))
|
|
42
|
+
lstcam_calib_version = utils.get_lstcam_calib_version(lstcam_env)
|
|
43
|
+
return drs4_pedestal_exists(drs4_pedestal_run_id, f"v{lstcam_calib_version}") \
|
|
44
|
+
and calibration_file_exists(pedcal_run_id, f"v{lstcam_calib_version}")
|
|
42
45
|
|
|
43
46
|
|
|
44
47
|
def drs4_pedestal_command(drs4_pedestal_run_id: int) -> list:
|
|
@@ -160,7 +160,8 @@ def post_process(seq_tuple):
|
|
|
160
160
|
seq_list = seq_tuple[1]
|
|
161
161
|
|
|
162
162
|
if dl1_datacheck_longterm_file_exits() and not options.test:
|
|
163
|
-
create_longterm_symlink
|
|
163
|
+
if cfg.getboolean("lstchain", "create_longterm_symlink"):
|
|
164
|
+
create_longterm_symlink()
|
|
164
165
|
|
|
165
166
|
else:
|
|
166
167
|
# Close the sequences
|
|
@@ -185,7 +186,8 @@ def post_process(seq_tuple):
|
|
|
185
186
|
list_job_id = merge_dl1_datacheck(seq_list)
|
|
186
187
|
longterm_job_id = daily_datacheck(daily_longterm_cmd(list_job_id))
|
|
187
188
|
cherenkov_job_id = cherenkov_transparency(cherenkov_transparency_cmd(longterm_job_id))
|
|
188
|
-
create_longterm_symlink
|
|
189
|
+
if cfg.getboolean("lstchain", "create_longterm_symlink"):
|
|
190
|
+
create_longterm_symlink(cherenkov_job_id)
|
|
189
191
|
|
|
190
192
|
time.sleep(600)
|
|
191
193
|
|
|
@@ -276,11 +276,10 @@ def apply_gain_selection(date: datetime, start: int, end: int, tool: str = None,
|
|
|
276
276
|
data_runs = summary_table[summary_table["run_type"] == "DATA"]
|
|
277
277
|
log.info(f"Found {len(data_runs)} DATA runs to which apply the gain selection")
|
|
278
278
|
|
|
279
|
-
base_dir = Path(cfg.get("LST1", "BASE"))
|
|
280
279
|
date_str = date_to_dir(date)
|
|
281
|
-
r0_dir =
|
|
282
|
-
output_dir =
|
|
283
|
-
log_dir =
|
|
280
|
+
r0_dir = Path(cfg.get("LST1", "RAW_R0_DIR")) / date_str
|
|
281
|
+
output_dir = Path(cfg.get("LST1", "R0_DIR")) / date_str
|
|
282
|
+
log_dir = Path(cfg.get("LST1", "R0_DIR")) / f"log/{date_str}"
|
|
284
283
|
if not simulate:
|
|
285
284
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
286
285
|
log_dir.mkdir(parents=True, exist_ok=True)
|
|
@@ -356,9 +355,10 @@ def update_history_file(run_id: str, subrun: str, log_dir: Path, history_file: P
|
|
|
356
355
|
|
|
357
356
|
def is_run_already_copied(date: datetime, run_id: int) -> bool:
|
|
358
357
|
"""Check if the R0 files of a given run have already been copied to the R0G directory."""
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
358
|
+
r0_dir = Path(cfg.get("LST1", "RAW_R0_DIR"))
|
|
359
|
+
r0g_dir = Path(cfg.get("LST1", "R0_DIR"))
|
|
360
|
+
r0_files = glob.glob(f"{r0_dir}/{date_to_dir(date)}/LST-1.?.Run{run_id:05d}.????.fits.fz")
|
|
361
|
+
r0g_files = glob.glob(f"{r0g_dir}/{date_to_dir(date)}/LST-1.?.Run{run_id:05d}.????.fits.fz")
|
|
362
362
|
return len(r0_files)==len(r0g_files)
|
|
363
363
|
|
|
364
364
|
|
|
@@ -465,9 +465,10 @@ def check_failed_jobs(date: datetime):
|
|
|
465
465
|
missing_runs = []
|
|
466
466
|
|
|
467
467
|
date_str = date_to_dir(date)
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
468
|
+
r0_dir = Path(cfg.get("LST1", "RAW_R0_DIR")) / date_str
|
|
469
|
+
r0g_dir = Path(cfg.get("LST1", "R0_DIR")) / date_str
|
|
470
|
+
r0_files = glob.glob(f"{r0_dir}/LST-1.?.Run?????.????.fits.fz")
|
|
471
|
+
r0g_files = glob.glob(f"{r0g_dir}/LST-1.?.Run?????.????.fits.fz")
|
|
471
472
|
all_r0_runs = [parse_r0_filename(i).run for i in r0_files]
|
|
472
473
|
all_r0g_runs = [parse_r0_filename(i).run for i in r0g_files]
|
|
473
474
|
|
|
@@ -478,17 +479,15 @@ def check_failed_jobs(date: datetime):
|
|
|
478
479
|
|
|
479
480
|
missing_runs.sort()
|
|
480
481
|
if missing_runs:
|
|
481
|
-
output_dir = base_dir / f"R0G/{date_str}/"
|
|
482
482
|
log.info(
|
|
483
483
|
f"Some runs are missing. Copying R0 files of runs {pd.Series(missing_runs).unique()} "
|
|
484
|
-
f"directly to {
|
|
484
|
+
f"directly to {r0g_dir}"
|
|
485
485
|
)
|
|
486
486
|
|
|
487
487
|
for run in missing_runs:
|
|
488
|
-
|
|
489
|
-
files = base_dir.glob(f"R0/{date_str}/LST-1.?.Run{run:05d}.????.fits.fz")
|
|
488
|
+
files = r0_dir.glob(f"LST-1.?.Run{run:05d}.????.fits.fz")
|
|
490
489
|
for file in files:
|
|
491
|
-
sp.run(["cp", file,
|
|
490
|
+
sp.run(["cp", file, r0g_dir])
|
|
492
491
|
|
|
493
492
|
GainSel_dir = Path(cfg.get("LST1", "GAIN_SELECTION_FLAG_DIR"))
|
|
494
493
|
flagfile_dir = GainSel_dir / date_str
|
|
@@ -5,6 +5,7 @@ Orchestrator script that creates and execute the calibration sequence and
|
|
|
5
5
|
prepares a SLURM job array which launches the data sequences for every subrun.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
import warnings
|
|
8
9
|
import logging
|
|
9
10
|
import os
|
|
10
11
|
import sys
|
|
@@ -14,7 +15,15 @@ import datetime
|
|
|
14
15
|
from osa import osadb
|
|
15
16
|
from osa.configs import options
|
|
16
17
|
from osa.configs.config import cfg
|
|
17
|
-
from osa.
|
|
18
|
+
from osa.veto import get_closed_list, get_veto_list
|
|
19
|
+
from osa.utils.logging import myLogger
|
|
20
|
+
|
|
21
|
+
warnings.filterwarnings(
|
|
22
|
+
"ignore",
|
|
23
|
+
message="pkg_resources is deprecated as an API.*",
|
|
24
|
+
category=UserWarning
|
|
25
|
+
)
|
|
26
|
+
from osa.job import ( # noqa: E402
|
|
18
27
|
set_queue_values,
|
|
19
28
|
prepare_jobs,
|
|
20
29
|
submit_jobs,
|
|
@@ -24,19 +33,17 @@ from osa.job import (
|
|
|
24
33
|
run_squeue,
|
|
25
34
|
are_all_jobs_correctly_finished,
|
|
26
35
|
)
|
|
27
|
-
from osa.nightsummary.extract import (
|
|
36
|
+
from osa.nightsummary.extract import ( # noqa: E402
|
|
28
37
|
build_sequences,
|
|
29
38
|
extract_runs,
|
|
30
39
|
extract_sequences
|
|
31
40
|
)
|
|
32
|
-
from osa.nightsummary.nightsummary import run_summary_table
|
|
33
|
-
from osa.paths import analysis_path, destination_dir
|
|
34
|
-
from osa.report import start
|
|
35
|
-
from osa.utils.cliopts import sequencer_cli_parsing
|
|
36
|
-
from osa.utils.
|
|
37
|
-
from osa.
|
|
38
|
-
from osa.veto import get_closed_list, get_veto_list
|
|
39
|
-
from osa.scripts.gain_selection import GainSel_finished
|
|
41
|
+
from osa.nightsummary.nightsummary import run_summary_table # noqa: E402
|
|
42
|
+
from osa.paths import analysis_path, destination_dir # noqa: E402
|
|
43
|
+
from osa.report import start # noqa: E402
|
|
44
|
+
from osa.utils.cliopts import sequencer_cli_parsing # noqa: E402
|
|
45
|
+
from osa.utils.utils import is_day_closed, gettag, date_to_iso # noqa: E402
|
|
46
|
+
from osa.scripts.gain_selection import GainSel_finished # noqa: E402
|
|
40
47
|
|
|
41
48
|
__all__ = [
|
|
42
49
|
"single_process",
|
|
@@ -12,8 +12,13 @@ from osa.nightsummary.extract import get_last_pedcalib
|
|
|
12
12
|
from osa.utils.cliopts import valid_date, set_default_date_if_needed
|
|
13
13
|
from osa.utils.logging import myLogger
|
|
14
14
|
from osa.job import run_sacct, get_sacct_output
|
|
15
|
-
from osa.utils.utils import date_to_dir, get_calib_filters
|
|
16
|
-
from osa.paths import
|
|
15
|
+
from osa.utils.utils import date_to_dir, get_calib_filters, get_lstchain_version
|
|
16
|
+
from osa.paths import (
|
|
17
|
+
catB_closed_file_exists,
|
|
18
|
+
catB_calibration_file_exists,
|
|
19
|
+
analysis_path,
|
|
20
|
+
get_major_version
|
|
21
|
+
)
|
|
17
22
|
|
|
18
23
|
log = myLogger(logging.getLogger())
|
|
19
24
|
|
|
@@ -45,6 +50,12 @@ parser.add_argument(
|
|
|
45
50
|
default=False,
|
|
46
51
|
help="Simulate launching of the sequencer_catB_tailcuts script.",
|
|
47
52
|
)
|
|
53
|
+
parser.add_argument(
|
|
54
|
+
"--overwrite-tailcuts",
|
|
55
|
+
action="store_true",
|
|
56
|
+
default=False,
|
|
57
|
+
help="Overwrite the tailcuts config file if it already exists.",
|
|
58
|
+
)
|
|
48
59
|
parser.add_argument(
|
|
49
60
|
"tel_id",
|
|
50
61
|
choices=["ST", "LST1", "LST2", "all"],
|
|
@@ -122,24 +133,35 @@ def launch_catB_calibration(run_id: int):
|
|
|
122
133
|
return
|
|
123
134
|
|
|
124
135
|
command = cfg.get("lstchain", "catB_calibration")
|
|
136
|
+
if cfg.getboolean("lstchain", "use_lstcam_env_for_CatB_calib"):
|
|
137
|
+
env_command = f"conda run -n lstcam-env {command}"
|
|
138
|
+
else:
|
|
139
|
+
env_command = command
|
|
125
140
|
options.filters = get_calib_filters(run_id)
|
|
126
141
|
base_dir = Path(cfg.get(options.tel_id, "BASE")).resolve()
|
|
127
142
|
r0_dir = Path(cfg.get(options.tel_id, "R0_DIR")).resolve()
|
|
128
|
-
interleaved_dir = Path(options.directory) / "interleaved"
|
|
129
143
|
log_dir = Path(options.directory) / "log"
|
|
130
144
|
catA_calib_run = get_last_pedcalib(options.date)
|
|
131
145
|
slurm_account = cfg.get("SLURM", "ACCOUNT")
|
|
146
|
+
lstchain_version = get_major_version(get_lstchain_version())
|
|
147
|
+
analysis_dir = cfg.get("LST1", "ANALYSIS_DIR")
|
|
132
148
|
cmd = ["sbatch", f"--account={slurm_account}", "--parsable",
|
|
133
149
|
"-o", f"{log_dir}/catB_calibration_{run_id:05d}_%j.out",
|
|
134
150
|
"-e", f"{log_dir}/catB_calibration_{run_id:05d}_%j.err",
|
|
135
|
-
|
|
136
|
-
f"
|
|
151
|
+
env_command,
|
|
152
|
+
f"-r {run_id:05d}",
|
|
137
153
|
f"--catA_calibration_run={catA_calib_run}",
|
|
138
|
-
|
|
154
|
+
"-b", base_dir,
|
|
139
155
|
f"--r0-dir={r0_dir}",
|
|
140
|
-
f"--interleaved-dir={interleaved_dir}",
|
|
141
156
|
f"--filters={options.filters}",
|
|
142
157
|
]
|
|
158
|
+
|
|
159
|
+
if command=="onsite_create_cat_B_calibration_file":
|
|
160
|
+
cmd.append(f"--interleaved-dir={analysis_dir}")
|
|
161
|
+
elif command=="lstcam_calib_onsite_create_cat_B_calibration_file":
|
|
162
|
+
cmd.append(f"--dl1-dir={analysis_dir}")
|
|
163
|
+
cmd.append(f"--lstchain-version={lstchain_version[1:]}")
|
|
164
|
+
|
|
143
165
|
if not options.simulate:
|
|
144
166
|
job = sp.run(cmd, encoding="utf-8", capture_output=True, text=True, check=True)
|
|
145
167
|
job_id = job.stdout.strip()
|
|
@@ -194,6 +216,7 @@ def main():
|
|
|
194
216
|
opts = parser.parse_args()
|
|
195
217
|
options.tel_id = opts.tel_id
|
|
196
218
|
options.simulate = opts.simulate
|
|
219
|
+
options.overwrite_tailcuts = opts.overwrite_tailcuts
|
|
197
220
|
options.date = opts.date
|
|
198
221
|
options.date = set_default_date_if_needed()
|
|
199
222
|
options.configfile = opts.config.resolve()
|
|
@@ -215,8 +238,13 @@ def main():
|
|
|
215
238
|
# launch catB calibration and tailcut finder in parallel
|
|
216
239
|
if cfg.getboolean("lstchain", "apply_catB_calibration") and not catB_closed_file_exists(run_id):
|
|
217
240
|
launch_catB_calibration(run_id)
|
|
218
|
-
if not cfg.getboolean("lstchain", "apply_standard_dl1b_config")
|
|
219
|
-
|
|
241
|
+
if not cfg.getboolean("lstchain", "apply_standard_dl1b_config"):
|
|
242
|
+
if tailcuts_config_file_exists(run_id) and not options.overwrite_tailcuts:
|
|
243
|
+
log.debug(
|
|
244
|
+
f"Tailcuts config file already exists for run {run_id:05d}. Use --overwrite-tailcuts to overwrite it."
|
|
245
|
+
)
|
|
246
|
+
else:
|
|
247
|
+
launch_tailcuts_finder(run_id)
|
|
220
248
|
|
|
221
249
|
|
|
222
250
|
if __name__ == "__main__":
|
|
@@ -26,8 +26,8 @@ parser.add_argument(
|
|
|
26
26
|
parser.add_argument(
|
|
27
27
|
"--r0-path",
|
|
28
28
|
type=Path,
|
|
29
|
-
help="Path to the R0 files. Default is /fefs/
|
|
30
|
-
default=Path("/fefs/
|
|
29
|
+
help="Path to the R0 files. Default is /fefs/onsite/data/R0/LSTN-01/lst-arraydaq/events",
|
|
30
|
+
default=Path("/fefs/onsite/data/R0/LSTN-01/lst-arraydaq/events"),
|
|
31
31
|
)
|
|
32
32
|
|
|
33
33
|
parser.add_argument(
|