blob: 9de169e497495de815c79c21c6f99fa9effe490f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# GolemFlavor
[](https://travis-ci.org/ShiveshM/GolemFlavor)

[](https://golemflavor.readthedocs.io/)
[](https://github.com/ShiveshM/GolemFlavor/blob/master/LICENSE)
GolemFlavor is a Python package for running a Bayesian inference analysis
pipeline using Astrophysical Flavor data taken at
[IceCube](https://icecube.wisc.edu/).

## Overview
### What is Astrophysical Flavor data?
This is data of the *flavor* of a neutrino taken at the [IceCube neutrino
observatory](https://icecube.wisc.edu/), which is a cubic kilometer array of
optical sensors embedded in the glacial ice at the South Pole. In particular,
*astrophysical* neutrinos are ones that are very-high-energy and come from
astrophysical origins such as [active galactic
nuclei](https://doi.org/10.1126/science.aat2890).
For more on the physics behind neutrinos see
[here](https://golemflavor.readthedocs.io/en/latest/physics.html).
### What does the GolemFlavor package do?
This package provides utilities for astrophysical neutrino propagation and
Bayesian statistical modeling focused on advanced Markov Chain Monte Carlo
(MCMC) algorithms. It has been used to make constraints on New Physics models
in the Astrophysical Flavor, as motivated by the paper [*New Physics in
Astrophysical Neutrino
Flavor*](https://doi.org/10.1103/PhysRevLett.115.161303).
For more information on the statistical modeling see
[here](https://golemflavor.readthedocs.io/en/latest/statistics.html).
## Features
* **Portable Flavor Functions**: A set of useful functions for calculating
measured flavor compositions given a source composition and a mixing
matrix.
* **MCMC Algorithms**: Affine invariant and nested sampling algorithms provided
by [emcee](https://emcee.readthedocs.io/) and
[MultiNest](https://doi.org/10.1111/j.1365-2966.2009.14548.x).
* **Anarchic Sampling**: Sampling of the neutrino mixing matrix is done
under the [*neutrino mixing
anarchy*](https://doi.org/10.1016/j.physletb.2003.08.045) hypothesis to
ensure an unbiased prior.
* **Distributed and parallel computing**: Scripts included to manage the
workload across a CPU cluster using
[HTCondor](https://research.cs.wisc.edu/htcondor/).
* **Visualization**: Produce ternary plots of the flavor composition using the
[python-ternary](https://zenodo.org/badge/latestdoi/19505/marcharper/python-ternary)
package and joint posterior plots for analyzing MCMC chains using the
[getdist](https://getdist.readthedocs.io/en/latest/) package.
## Examples
You can find examples of how to use GolemFlavor in the
[`GolemFlavor/examples`](examples) directory.
## Documentation
The documentation for GolemFlavor can be found at
[https://golemflavor.readthedocs.io/](https://golemflavor.readthedocs.io/).
## Installation
GolemFlavor can be installed using `pip`
```
pip install git+https://github.com/ShiveshM/GolemFlavor.git
```
This installs GolemFlavor, along with all the necessary dependencies such as
NumPy and SciPy.
GolemFlavor uses the IceCube software [`GolemFit: The HESE
fitter`](https://github.com/IceCubeOpenSource/GolemFit) to fit with IceCube
Astrophysical Flavor data. This software is proprietary and so access is
currently limited to IceCube collaborators. A simple Gaussian likelihood can be
used as a substitute for test purposes if this requirement is not found.
### Dependencies
GolemFlavor has the following dependencies:
* [`Python`](https://www.python.org/) >= 2.7 or >= 3.4
* [`NumPy`](http://www.numpy.org/)
* [`SciPy`](https://www.scipy.org/)
* [`Six`](https://six.readthedocs.io/)
* [`mpmath`](http://mpmath.org/)
* [`emcee`](https://emcee.readthedocs.io/en/stable/)
* [`PyMultiNest`](https://johannesbuchner.github.io/PyMultiNest/)
* [`tqdm`](https://tqdm.github.io/)
* [`Shapely`](https://shapely.readthedocs.io/en/latest/manual.html)
* [`Matplotlib`](https://matplotlib.org/)
* [`python-ternary`](https://github.com/marcharper/python-ternary)
* [`GetDist`](https://getdist.readthedocs.io/en/latest/)
You can use `pip` to install the above automatically. Note that `PyMultiNest`
requires the `MultiNest` Bayesian inference library, see [the `PyMultiNest`
documentation](https://johannesbuchner.github.io/PyMultiNest/install.html#prerequisites-for-building-the-libraries)
for install instructions.
Additional dependencies:
* [`GolemFit`](https://github.com/IceCubeOpenSource/GolemFit)
## License
[MIT License](LICENSE)
Copyright (c) 2020 Shivesh Mandalia https://shivesh.org
|