Skip to content

Commit b0eabba

Browse files
committed
Merge remote-tracking branch 'origin/master' into var_bin
2 parents f7a53ad + 3d2c212 commit b0eabba

25 files changed

+1083
-390
lines changed

.github/workflows/pythonpackage.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ jobs:
1818
python-version: ['3.8', '3.10']
1919

2020
steps:
21-
- uses: actions/checkout@v2
21+
- uses: actions/checkout@v4
2222
- name: Set up Python ${{ matrix.python-version }}
23-
uses: actions/setup-python@v1
23+
uses: actions/setup-python@v5
2424
with:
2525
python-version: ${{ matrix.python-version }}
2626
- name: Install dependencies

EXTERNAL_ATTRIBUTION.md

+185-17
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,182 @@
22

33
PISA is distributed with some software and data obtained from outside the IceCube Collaboration.
44
The authors and any pertinent copyrights are listed below.
5-
If you identify any mistakes in the below or find any other such components being distributed with PISA that are not listed here, please [email](jll1062+pisa@phys.psu.edu) or [file an issue](http://github.com/icecubeopensource/pisa).
5+
If you identify any mistakes in the below or find any other such components being distributed with PISA that are not listed here,
6+
please [email](mailto:analysis@icecube.wisc.edu?subject=[GitHub]%20PISA%20source) or [file an issue](https://github.com/icecube/pisa/issues).
67

7-
Unless noted below or in the contents of an individual file, all files distributed with PISA are Copyright (c) 2014-2017, The IceCube Collaboration, and are licensed under the Apache 2.0 license.
8+
Unless noted below or in the contents of an individual file, all files distributed with PISA are Copyright (c) 2014-2025, The IceCube Collaboration, and are licensed under the Apache 2.0 license.
89
See the LICENSE file for details.
910

11+
12+
## daemonflux
13+
14+
The service [`flux.daemon_flux`](/pisa/stages/flux/daemon_flux.py) does not reproduce but calls upon the daemonflux software
15+
> https://github.com/mceq-project/daemonflux
16+
17+
based on the paper
18+
> J. P. Yanez, A. Fedynitch, Phys.Rev. D 107, 123037 (2023)
19+
20+
The software is subject to the following copyright:
21+
```
22+
BSD 3-Clause License
23+
24+
Copyright (c) 2023, Anatoli Fedynitch
25+
26+
Redistribution and use in source and binary forms, with or without
27+
modification, are permitted provided that the following conditions are met:
28+
29+
1. Redistributions of source code must retain the above copyright notice, this
30+
list of conditions and the following disclaimer.
31+
32+
2. Redistributions in binary form must reproduce the above copyright notice,
33+
this list of conditions and the following disclaimer in the documentation
34+
and/or other materials provided with the distribution.
35+
36+
3. Neither the name of the copyright holder nor the names of its
37+
contributors may be used to endorse or promote products derived from
38+
this software without specific prior written permission.
39+
40+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
41+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
44+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
46+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
47+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
48+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
49+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
50+
```
51+
1052
## MCEq
1153

12-
The service `flux.mceq` does not reproduce but does call upon the MCEq software.
13-
> https://github.com/afedynitch/MCEq
54+
Files in the directory [`pisa_examples/resources/flux`](/pisa_examples/resources/flux) containing the name *MCEq*
55+
have been produced with the MCEq software
56+
> https://github.com/mceq-project/MCEq
57+
58+
The authors of that software / the paper that it is based upon
59+
> A. Fedynitch, R. Engel, T. K. Gaisser, F. Riehn, T. Stanev, EPJ Web Conf. 99 (2015) 08001, arXiv:1503.00544
60+
61+
request that anyone who uses their work to produce results cite their work. Please do so if you make use of either of the
62+
[`flux.mceq_barr`](/pisa/stages/flux/mceq_barr.py) or [`flux.mceq_barr_red`](/pisa/stages/flux/mceq_barr_red.py) services or of
63+
the script [`create_barr_sys_tables_mceq.py`](/pisa/scripts/create_barr_sys_tables_mceq.py) which calls upon MCEq.
1464

15-
The authors of that software / the paper that it is based upon (A. Fedynitch, R. Engel, T. K. Gaisser, F. Riehn, T. Stanev) request that anyone who uses their work to produce results cite their work, so please do so if you make use the `flux.mceq` service.
1665
The form of the citation that they request is found in their documentation at
1766
> http://mceq.readthedocs.io/en/latest/citations.html
1867
19-
## prob3numba
68+
The software is subject to the following copyright:
69+
```
70+
BSD 3-Clause License
2071
21-
Files in the directory `pisa/pisa/stages/osc/prob3numba` were adapted from the CUDA re-implementation of Prob3++ called prob3GPU
22-
> https://github.com/rcalland/probGPU
72+
Copyright (c) 2019, Anatoli Fedynitch
73+
All rights reserved.
2374
24-
which is cited by the paper
25-
> R. G. Calland, A. C. Kaboth, and D. Payne, Journal of Instrumentation 9, P04016 (2014).
75+
Redistribution and use in source and binary forms, with or without
76+
modification, are permitted provided that the following conditions are met:
77+
78+
* Redistributions of source code must retain the above copyright notice, this
79+
list of conditions and the following disclaimer.
80+
81+
* Redistributions in binary form must reproduce the above copyright notice,
82+
this list of conditions and the following disclaimer in the documentation
83+
and/or other materials provided with the distribution.
84+
85+
* Neither the name of the copyright holder nor the names of its
86+
contributors may be used to endorse or promote products derived from
87+
this software without specific prior written permission.
88+
89+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
90+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
91+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
92+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
93+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
94+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
95+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
96+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
97+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
98+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
99+
```
26100

27101
## Honda et al. flux models
28102

29-
Files in the directory `example_resources/flux` containing the name *honda* are from
103+
Files in the directory [`pisa_examples/resources/flux`](/pisa_examples/resources/flux) containing the name *honda* are from
30104
> http://www.icrr.u-tokyo.ac.jp/~mhonda
31105
32106
with associated paper
33107
> M. Honda, M. S. Athar, T. Kajita, K. Kasahara, and S. Midorikawa, Phys. Rev. D 92, 023004 (2015).
34108
35109
## Barr et al. flux models
36110

37-
Files in the directory `example_resources/flux` containing the name *bartol* are modified slightly (to have similar format to the work by Honda et al. cited above) from
111+
Files in the directory [`pisa_examples/resources/flux`](/pisa_examples/resources/flux) containing the name *bartol* are
112+
modified slightly (to have similar format to the work by Honda et al. cited above) from
38113
> http://www-pnp.physics.ox.ac.uk/~barr/fluxfiles
39114
40115
with associated paper
41116
> G. D. Barr, T. K. Gaisser, P. Lipari, S. Robbins, and T. Stanev, Phys. Rev. D 70, 023006 (2004).
42117
118+
## GLoBES
119+
120+
The service [`osc.globes`](/pisa/stages/osc/globes.py) does not reproduce but calls upon the GLoBES software
121+
> https://www.mpi-hd.mpg.de/personalhomes/globes/index.html
122+
123+
The authors of that software request that anyone who uses their work to produce results cite their work.
124+
Please do so if you make use of the above service. The form of the citation that they request
125+
is found in their documentation at
126+
> https://www.mpi-hd.mpg.de/personalhomes/globes/documentation.html
127+
128+
## nuSQuIDS
129+
130+
The service [`osc.nusquids`](/pisa/stages/osc/nusquids.py) does not reproduce but calls upon the nuSQuIDS software
131+
> https://github.com/arguelles/nuSQuIDS
132+
133+
which is subject to the LGPL-3.0 license.
134+
135+
## prob3numba
136+
137+
Files in [`pisa/stages/osc/prob3numba`](/pisa/stages/osc/prob3numba) were adapted from the CUDA re-implementation of Prob3++ called prob3GPU
138+
> https://github.com/rcalland/probGPU
139+
140+
which is cited by the paper
141+
> R. G. Calland, A. C. Kaboth, and D. Payne, Journal of Instrumentation 9, P04016 (2014).
142+
43143
## PREM
44144

45-
The preliminary reference Earth model data in the `example_resources/osc` directory (named `PREM*`) come from the paper
145+
The preliminary reference Earth model data in [`pisa_examples/resources/osc`](/pisa_examples/resources/osc) (named `PREM*`) come from the paper
46146
> A. M. Dziewonski and D. L. Anderson, Physics of the Earth and Planetary Interiors 25, 297 (1981)
47147
148+
## emcee
149+
150+
The files [`llh_client.py`](/pisa/utils/llh_client.py) and [`analysis.py`](/pisa/analysis/analysis.py) call upon the emcee software
151+
> https://github.com/dfm/emcee
152+
153+
which is subject to the following copyright:
154+
```
155+
The MIT License (MIT)
156+
157+
Copyright (c) 2010-2021 Daniel Foreman-Mackey & contributors.
158+
159+
Permission is hereby granted, free of charge, to any person obtaining a copy
160+
of this software and associated documentation files (the "Software"), to deal
161+
in the Software without restriction, including without limitation the rights
162+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
163+
copies of the Software, and to permit persons to whom the Software is
164+
furnished to do so, subject to the following conditions:
165+
166+
The above copyright notice and this permission notice shall be included in all
167+
copies or substantial portions of the Software.
168+
169+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
170+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
171+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
172+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
173+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
174+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
175+
SOFTWARE.
176+
```
177+
48178
## KDE
49179

50-
The file `pisa/pisa/utils/vbwkde.py` contains an implementation of (part of) the paper
180+
The file [`vbwkde.py`](/pisa/utils/vbwkde.py) contains an implementation of (part of) the paper
51181
> Z. I. Botev, J. F. Grotowski, and D. P. Kroese, Ann. Statist. 38, 2916 (2010).
52182
53183
The functions `isj_bandwidth` and `fixed_point` therein are adapted directly from the Matlab implementation by Zdravko Botev at
@@ -82,9 +212,47 @@ and are therefore subject to the following copyright:
82212
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
83213
```
84214

215+
## scikit-learn
216+
217+
The service [`utils.kfold`](/pisa/stages/utils/kfold.py) does not reproduce but calls upon the scikit-learn software
218+
> https://github.com/scikit-learn/scikit-learn
219+
220+
The software is subject to the following copyright:
221+
```
222+
BSD 3-Clause License
223+
224+
Copyright (c) 2007-2024 The scikit-learn developers.
225+
All rights reserved.
226+
227+
Redistribution and use in source and binary forms, with or without
228+
modification, are permitted provided that the following conditions are met:
229+
230+
* Redistributions of source code must retain the above copyright notice, this
231+
list of conditions and the following disclaimer.
232+
233+
* Redistributions in binary form must reproduce the above copyright notice,
234+
this list of conditions and the following disclaimer in the documentation
235+
and/or other materials provided with the distribution.
236+
237+
* Neither the name of the copyright holder nor the names of its
238+
contributors may be used to endorse or promote products derived from
239+
this software without specific prior written permission.
240+
241+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
242+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
243+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
244+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
245+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
246+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
247+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
248+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
249+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
250+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
251+
```
252+
85253
## Versioneer
86254

87-
Automatic versioning is provided by public-domain sofware The Versioneer, written by Brian Warner (files `versioneer.py` and `pisa/_version.py`).
88-
This project can be found at
89-
> https://github.com/warner/python-versioneer
255+
Automatic versioning is provided by public-domain sofware The Versioneer, written by Brian Warner
256+
(files [`versioneer.py`](versioneer.py) and [`_version.py`](/pisa/_version.py)). This project can be found at
257+
> https://github.com/python-versioneer/python-versioneer
90258

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright (c) 2014-2017 The IceCube Collaboration
189+
Copyright (c) 2014-2025 The IceCube Collaboration
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

docs/source/conf.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -62,24 +62,24 @@
6262

6363
# General information about the project.
6464
project = u'PISA'
65-
copyright = u'2021, The IceCube/PINGU Collaboration'
65+
copyright = u'2025, The IceCube/PINGU Collaboration'
6666
author = u'The IceCube/PINGU Collaboration'
6767

6868
# The version info for the project you're documenting, acts as replacement for
6969
# |version| and |release|, also used in various other places throughout the
7070
# built documents.
7171
#
7272
# The short X.Y version.
73-
version = u'4.0'
73+
version = u'4.1'
7474
# The full version, including alpha/beta/rc tags.
75-
release = u'4.0'
75+
release = u'4.1'
7676

7777
# The language for content autogenerated by Sphinx. Refer to documentation
7878
# for a list of supported languages.
7979
#
8080
# This is also used if you do content translation via gettext catalogs.
8181
# Usually you set "language" from the command line for these cases.
82-
language = None
82+
#language = 'en'
8383

8484
# There are two options for replacing |today|: either, you set today to some
8585
# non-false value, then it is used:

pisa/README.md

+1-34
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,4 @@
1-
## About PISA
1+
# About PISA
22

33
PISA implements a modular architecture wherein users can combine one or more analysis pipelines into distribution makers to make "data" and—separately—template distributions.
44
Within each pipeline, users can choose among several implementations for each of the stages they choose to include.
5-
6-
Finally, multiple types of analysis can be performed using the generated distributions to ultimately characterize the ability of the detector to make a measurement.
7-
8-
### Analysis types
9-
10-
PISA implements both what we call ***parameterized-Monte Carlo (MC) stages*** and ***reweighted-MC stages***.
11-
In the former, distributions (and not individual event weights) are modified to reflect the effects of each analysis stage.
12-
In the latter, the individual events' weights and properties (such as reconstructed energy) are modified directly to reflect the effects of the detector, and only in the end are the events histogrammed to characterize their distribution.
13-
14-
See the analysis guide for more explanaton of the difference between the two.
15-
16-
### How an analysis is structured
17-
18-
All of the analyses possible utilize a "data" distribution.
19-
This can come from an actual measurement or by *injecting* a set of assumed-true values for the various parameters into the analysis pipeline(s) and producing what is called ***Asimov data***—the expected distribution given those parameter values—or ***pseudo data***, which is Asimov data but with random (Poisson) fluctuations applied.
20-
A minimizer attempts to match the "data" distribution with a template by varying the parameters used to generate the template.
21-
The "closeness" of match between the generated template and the "data" distribution is measured by a criterion such as chi-squared or log likelihood.
22-
23-
An important question is the significance of the experiment to measure one or more of the above parameters (the *measured parameters*).
24-
To do this, the measured parameters are fixed successively to a range of values and, at each value, the matching process above is repeated with all other parameters—the *nuissance parameters*—allowed to vary.
25-
This shows sensitivity of the criterion to the measured parameters, and hence the ability for the experiment to measure those parameters.
26-
Put another way: The more the closeness creiterion varies with a change in the measurement parameters (after the nuissance parameters have done their best to try to make the templates all look like the data), the better able the experiment is to distinguish between values of the measured parameters.
27-
28-
### An example parameterized-MC analysis pipeline
29-
30-
![Parameterized-MC analysis pipeline](images/PINGUSimulationChain.png)
31-
32-
The original drawing is [here](https://docs.google.com/drawings/edit?id=1RxQj8rPndwFygxw3BUf4bx5B35GAMk0Gsos_BiJIN34).
33-
34-
### More information about analysis
35-
36-
An excellent (and far more detailed) description of the analysis process is maintained by Elim Cheung with particular application to IceCube/DeepCore atmospheric neutrino measurements [here](http://umdgrb.umd.edu/~elims/Fitter/Basics).
37-
She wrote her own fitter to perform these tasks. You can evaluate her ezFit analysis software as an alternative to (or as a complementary tool for comparing results with) PISA [here](http://code.icecube.wisc.edu/projects/icecube/browser/IceCube/sandbox/elims/ezfit).

0 commit comments

Comments
 (0)