Skip to content
Snippets Groups Projects
Commit ed64be2b authored by Johannes Schumann's avatar Johannes Schumann
Browse files

Merge branch 'visible-energy' into 'master'

Visible energy

See merge request !25
parents 9a8cb57f e9bb6be8
No related branches found
No related tags found
1 merge request!25Visible energy
Pipeline #24877 passed with warnings
......@@ -27,6 +27,7 @@ from scipy.optimize import curve_fit
import mendeleev
from datetime import datetime
from .physics import visible_energy_fraction
from .jobcard import Jobcard, read_jobcard, PDGID_LOOKUP
from .geometry import DetectorVolume, CanVolume
from .config import Config, read_default_media_compositions
......@@ -561,10 +562,14 @@ class GiBUUOutput:
zip(GIBUU_FIELDNAMES,
len(GIBUU_FIELDNAMES) * [float]))))
# Calculate additional information
counts = ak.num(retval.E)
retval["xsec"] = self._event_xsec(retval)
retval["Bx"] = GiBUUOutput.bjorken_x(retval)
retval["By"] = GiBUUOutput.bjorken_y(retval)
retval["Q2"] = GiBUUOutput.Qsquared(retval)
visEfrac = visible_energy_fraction(ak.flatten(retval.E),
ak.flatten(retval.barcode))
retval["visEfrac"] = ak.unflatten(visEfrac, counts)
return retval
@property
......
# Filename: physics.py
"""
Additional physics functionality
Visible energy:
* Implementation applied from JPP
* Theory by M. Dentler https://inspirehep.net/literature/1321036
"""
__author__ = "Johannes Schumann"
__copyright__ = "Copyright 2021, Johannes Schumann and the KM3NeT collaboration."
__credits__ = []
__license__ = "MIT"
__maintainer__ = "Johannes Schumann"
__email__ = "jschumann@km3net.de"
__status__ = "Development"
import numpy as np
import awkward as ak
from particle import Particle
from .config import read_default_media_compositions
DENSITY_SEA_WATER = read_default_media_compositions()["SeaWater"]["density"]
MUON_SHOWER_E_PER_TRACK_LENGTH = 4.7 #dx/dE [m/GeV]
ELEC_PARAMS = {
"ELECa": 1.33356e5,
"ELECb": 1.66113e2,
"ELECc": 16.4949,
"ELECd": 1.5385e5,
"ELECe": 6.04871e5,
}
PION_PARAMS = {
"PIa": 0.538346,
"PIb": 1.32041,
"PIc": 0.737415,
"PId": -0.813861,
"PIe": -2.22444,
"PIf": -2.15795,
"PIg": -6.47242,
"PIh": -2.7567,
"PIx": 8.83498,
}
KAON_PARAMS = {
"Ka": 12.7537,
"Kb": -1.052,
"Kc": 3.49559,
"Kd": 16.7914,
"Ke": -0.355066,
"Kf": 2.77116,
}
KSHORT_PARAMS = {
"K0sa": 0.351242,
"K0sb": 0.613076,
"K0sc": 6.24682,
"K0sd": 2.8858,
}
KLONG_PARAMS = {
"K0la": 2.18152,
"K0lb": -0.632798,
"K0lc": 0.999514,
"K0ld": 1.36052,
"K0le": 4.22484,
"K0lf": -0.307859,
}
PROTON_PARAMS = {
"Pa": 12.1281,
"Pb": -17.1528,
"Pc": 0.573158,
"Pd": 34.1436,
"Pe": -0.28944,
"Pf": -13.2619,
"Pg": 24.1357,
}
NEUTRON_PARAMS = {
"Na": 1.24605,
"Nb": 0.63819,
"Nc": -0.802822,
"Nd": -0.935327,
"Ne": -6.1126,
"Nf": -1.96894,
"Ng": 0.716954,
"Nh": 2.68246,
"Ni": -9.39464,
"Nj": 15.0737,
}
HE_PARAMS = {
"Ma": 72.425,
"Mb": -49.417,
"Mc": 5.858,
"Md": 207.252,
"Me": 132.784,
"Mf": -10.277,
"Mg": -19.441,
"Mh": 58.598,
"Mi": 53.161,
"Mkref": 2.698,
}
def _get_particle_rest_mass(pdgid):
@np.vectorize
def vfunc(x):
mass = Particle.from_pdgid(x).mass
if mass is None:
return 0
return mass / 1e3
pdgids, invmap = np.unique(ak.to_numpy(pdgid), return_inverse=True)
masses = vfunc(pdgids)
return masses[invmap]
def get_kinetic_energy(energy, pdgid):
"""
Returns the kinetic energy
Parameters
----------
energy: float [GeV]
Total energy of the given particle
pdgid: int
PDGID of the given particle
"""
mass = np.array(_get_particle_rest_mass(pdgid))
return np.sqrt(ak.to_numpy(energy)**2 - mass**2)
def visible_energy(energy, pdgid):
"""
Returns the visible energy in the one particle approximation (OPA)
how it is used in JSirene (i.e. JPythia.hh)
Parameters
----------
energy: float [GeV]
Total energy of the given particle
pdgid: int
PDGID of the given particle
"""
return get_kinetic_energy(energy, pdgid) * visible_energy_fraction(
energy, pdgid)
def visible_energy_fraction(energy, pdgid):
"""
Returns the visible energy fraction in the one particle approximation (OPA)
how it is used in JSirene (i.e. JPythia.hh)
Parameters
----------
energy: float [GeV]
Total energy of the given particle
pdgid: int
PDGID of the given particle
"""
pdgid = ak.to_numpy(pdgid)
retval = np.zeros_like(pdgid, dtype=np.float64)
mask = np.isin(pdgid, [11, -11, 22, 111, 221])
retval[mask] = 1.0
mask = np.isin(pdgid, [-211, 211])
ekin = get_kinetic_energy(energy[mask], pdgid[mask])
retval[mask] = high_energy_weight(ekin)
mask = np.isin(pdgid, [13])
if np.any(mask):
mass = Particle.from_pdgid(13).mass / 1e3
ekin = np.sqrt(ak.to_numpy(energy)[mask]**2 - mass**2)
retval[mask] = muon_range_seawater(ekin, mass) / 4.7
return retval
@np.vectorize
def km3_opa_fraction(energy, pdgid):
"""
Returns the visible energy fraction in the one particle approximation (OPA)
how it is used in KM3
Parameters
----------
energy: float [GeV]
Kinetic energy of the given particle
pdgid: int
PDGID of the given particle
"""
# Cover trivial cases, i.e. 'non-visible' particles and ultra-high energy
if pdgid in [11, -11, 22, 111, 221]:
return 1.0
elif energy > 1e7:
return high_energy_weight(energy)
tmp = energy if energy < 40. else 40.
weight = 0.0
if abs(pdgid) == 211:
weight = pion_weight(tmp)
elif pdgid == 130:
weight = klong_weight(tmp)
elif pdgid == 310:
weight = kshort_weight(tmp)
elif abs(pdgid) == 321:
weight = kaon_weight(tmp)
elif pdgid == 2112:
weight = neutron_weight(tmp)
elif pdgid == 2122:
weight = proton_weight(tmp)
elif pdgid in [12, -12, 14, -14, 16, -16, -13, 13, 15, -15]:
weight = 0.0
else:
weight = proton_weight(tmp)
if energy < 40.:
return weight
else:
he_weight = high_energy_weight(energy)
he40GeV_weight = high_energy_weight(40.)
return he_weight - (he40GeV_weight -
weight) * (7. - np.log10(energy)) / 5.398
def number_photons_per_electron(energy):
"""Expected number of photons for electrons as function of energy"""
exp_coeff = np.exp(-energy / ELEC_PARAMS["ELECc"])
n = (ELEC_PARAMS["ELECa"] * energy + ELEC_PARAMS["ELECb"]) * exp_coeff + (
ELEC_PARAMS["ELECd"] * energy + ELEC_PARAMS["ELECe"]) * (1 - exp_coeff)
return n
def pion_weight(energy):
norm = number_photons_per_electron(energy)
if energy < 6e-2:
return 1e4 * PION_PARAMS["PIa"] / norm
elif energy < 1.5e-1:
return 1e4 * PION_PARAMS["PIx"] * energy / norm
else:
logE = np.log(energy)
return (1e5 * PION_PARAMS["PIb"] * energy +
(energy**(1. - 1. / PION_PARAMS["PIc"])) *
(PION_PARAMS["PId"] * 1e4 + 1e4 * PION_PARAMS["PIe"] * logE +
1e4 * PION_PARAMS["PIf"] * logE**2 + 1e3 * PION_PARAMS["PIg"]
* logE**3 + 1e2 * PION_PARAMS["PIh"] * logE**4)) / norm
def kaon_weight(energy):
norm = number_photons_per_electron(energy)
if energy > 0.26:
exp_coeff = np.exp(-energy / KAON_PARAMS["Kc"])
return (1e4 * KAON_PARAMS["Ka"] * (energy + KAON_PARAMS["Kb"]) *
(1. - exp_coeff) + 1e4 *
(KAON_PARAMS["Kd"] * energy + KAON_PARAMS["Ke"]) *
exp_coeff) / norm
else:
return KAON_PARAMS["Kf"] * 1e4 / norm
def kshort_weight(energy):
norm = number_photons_per_electron(energy)
return (KSHORT_PARAMS["K0sa"] * 1e5 + KSHORT_PARAMS["K0sb"] * 1e5 * energy
+ energy * KSHORT_PARAMS["K0sc"] * 1e4 *
np.log(KSHORT_PARAMS["K0sd"] + 1. / energy)) / norm
def klong_weight(energy):
norm = number_photons_per_electron(energy)
if energy < 1.5:
return (1e4 * KLONG_PARAMS["K0la"] +
energy * 1e5 * KLONG_PARAMS["K0lb"] * np.log(energy) +
1e5 * KLONG_PARAMS["K0lc"] * energy**1.5) / norm
else:
return (energy * KLONG_PARAMS["K0ld"] * 1e5 +
energy**(1. - 1. / KLONG_PARAMS["K0le"]) *
KLONG_PARAMS["K0lf"] * 1e5) / norm
def proton_weight(energy):
exp_coeff = np.exp(-energy / PROTON_PARAMS["Pc"])
norm = number_photons_per_electron(energy)
weight = 1e4 * (PROTON_PARAMS["Pa"] * energy + PROTON_PARAMS["Pb"]) * (
1 - exp_coeff) + 1e4 * (PROTON_PARAMS["Pd"] * energy +
PROTON_PARAMS["Pe"] +
PROTON_PARAMS["Pf"] * energy**2 +
PROTON_PARAMS["Pg"] * energy**3) * exp_coeff
return weight / norm
def neutron_weight(energy):
norm = number_photons_per_electron(energy)
if energy > 0.5:
logE = np.log(energy)
return (NEUTRON_PARAMS["Na"] * 1e5 * energy +
1e3 * energy**(1. - 1. / NEUTRON_PARAMS["Nb"]) *
(100 * NEUTRON_PARAMS["Nc"] + 100 * NEUTRON_PARAMS["Nd"] * logE
+ 10 * NEUTRON_PARAMS["Ne"] * logE**2 +
11 * NEUTRON_PARAMS["Nf"] * logE**3)) / norm
else:
return (1e3 * NEUTRON_PARAMS["Ng"] + 1e4 * NEUTRON_PARAMS["Nh"] *
energy + 1e4 * NEUTRON_PARAMS["Ni"] * energy**2 +
1e4 * NEUTRON_PARAMS["Nj"] * energy**3) / norm
@np.vectorize
def high_energy_weight(energy):
"""
High energy weight (valid above 40 GeV)
Parameters
----------
energy: float
Kinetic energy of the given particle
"""
if energy < 0.2:
return 0.292
logE = np.log10(energy)
mlc = (HE_PARAMS["Ma"] - HE_PARAMS["Mf"]) / HE_PARAMS["Mkref"]
denom = HE_PARAMS["Mi"] + HE_PARAMS["Mh"] * logE + HE_PARAMS[
"Mg"] * logE**2 + HE_PARAMS["Mf"] * logE**3 + mlc * logE**4
if denom <= 0:
return 0
num = HE_PARAMS[
"Me"] + HE_PARAMS["Md"] * logE + HE_PARAMS["Mc"] * logE**2 + HE_PARAMS[
"Mb"] * logE**3 + HE_PARAMS["Ma"] * logE**4 + mlc * logE**5
lognp = num / denom
Ee = 10.**(lognp - HE_PARAMS["Mkref"])
return Ee / energy
@np.vectorize
def muon_range_seawater(start_energy, stop_energy):
"""
Get distance muon propagates in seawater
Parameters
----------
start_energy: float [GeV]
Start energy of the muon track
stop_energy: float [GeV]
Stop energy of the muon track
Return
------
track_length: float [m]
"""
muon_mass = Particle.from_string("mu").mass / 1e3
if start_energy <= muon_mass:
return 0
elif start_energy < stop_energy:
raise ValueError("Final energy must be smaller than initial energy.")
etmp = start_energy
dx = 0.0
params = np.array([
(35.3e3, -6.5e-1 * DENSITY_SEA_WATER, 3.66e-4 * DENSITY_SEA_WATER),
(30., 2.67e-1 * DENSITY_SEA_WATER, 3.4e-4 * DENSITY_SEA_WATER),
(0., 2.3e-1 * DENSITY_SEA_WATER, 15.5e-4 * DENSITY_SEA_WATER),
],
dtype=[("energy", "f8"), ("a", "f8"), ("b", "f8")])
mask_stages = (params["energy"] < start_energy) & (np.append(
np.inf, params["energy"][:-1]) > stop_energy)
energy_steps = np.append(start_energy, params["energy"][mask_stages])
energy_steps[-1] = stop_energy
for i, stage in enumerate(np.where(mask_stages)[0]):
dx += muon_range(energy_steps[i], energy_steps[i + 1],
params["a"][stage], params["b"][stage])
return dx
def muon_range(start_energy, stop_energy, a, b):
"""
Get distance muon propagates
Parameters
----------
start_energy: float [GeV]
Start energy of the muon track
stop_energy: float [GeV]
Stop energy of the muon track
a: float [GeV/m]
Ionisation loss
b: float [m^-1]
Pair-Production and Bremsstrahlung
Return
------
track_length: float [m]
"""
return -np.log((a + b * stop_energy) / (a + b * start_energy)) / b
# Start Energy [GeV] Stop Energy [GeV] Muon Range [m]
1 0.01 4.13272
1 0.0107647 4.12952
1 0.0115878 4.12607
1 0.0124738 4.12236
1 0.0134277 4.11836
1 0.0144544 4.11406
1 0.0155597 4.10944
1 0.0167494 4.10445
1 0.0180302 4.09909
1 0.0194089 4.09331
1 0.020893 4.0871
1 0.0224905 4.08041
1 0.0242103 4.07321
1 0.0260615 4.06545
1 0.0280543 4.05711
1 0.0301995 4.04812
1 0.0325087 4.03845
1 0.0349945 4.02804
1 0.0376704 4.01684
1 0.0405509 4.00478
1 0.0436516 3.99179
1 0.0469894 3.97781
1 0.0505825 3.96277
1 0.0544503 3.94657
1 0.0586138 3.92914
1 0.0630957 3.91038
1 0.0679204 3.89018
1 0.0731139 3.86843
1 0.0787046 3.84503
1 0.0847227 3.81983
1 0.0912011 3.79271
1 0.0981748 3.76352
1 0.105682 3.7321
1 0.113763 3.69828
1 0.122462 3.66187
1 0.131826 3.62268
1 0.141906 3.5805
1 0.152757 3.53509
1 0.164437 3.48622
1 0.177011 3.43361
1 0.190546 3.37699
1 0.205116 3.31604
1 0.2208 3.25044
1 0.237684 3.17983
1 0.255859 3.10383
1 0.275423 3.02202
1 0.296483 2.93398
1 0.319154 2.83922
1 0.343558 2.73722
1 0.369828 2.62745
1 0.398107 2.5093
1 0.428549 2.38215
1 0.461318 2.2453
1 0.496592 2.09802
1 0.534564 1.93952
1 0.57544 1.76895
1 0.619441 1.58538
1 0.666807 1.38784
1 0.717794 1.17526
1 0.772681 0.94651
1 0.831764 0.700361
1 0.895365 0.4355
1 0.963829 0.150512
1.03753 1 0.156122
1.11686 1 0.486033
1.20226 1 0.840976
1.2942 1 1.22283
1.39316 1 1.63363
1.49968 1 2.07553
1.61436 1 2.55087
1.7378 1 3.06215
1.87068 1 3.61206
2.01372 1 4.20347
2.1677 1 4.83948
2.33346 1 5.5234
2.51189 1 6.25876
2.70396 1 7.04939
2.91072 1 7.89935
3.13329 1 8.81301
3.37287 1 9.79503
3.63078 1 10.8504
3.90841 1 11.9845
4.20727 1 13.203
4.52898 1 14.512
4.87529 1 15.918
5.24808 1 17.428
5.64937 1 19.0493
6.08135 1 20.7899
6.54636 1 22.6582
7.04693 1 24.6631
7.58578 1 26.8141
8.16582 1 29.1213
8.79023 1 31.5953
9.46237 1 34.2476
10.1859 1 37.0901
10.9648 1 40.1354
11.8032 1 43.3971
12.7057 1 46.8891
13.6773 1 50.6264
14.7231 1 54.6244
15.8489 1 58.8997
17.0608 1 63.4692
18.3654 1 68.3508
19.7697 1 73.5633
21.2814 1 79.1258
22.9087 1 85.0586
24.6604 1 91.3824
26.5461 1 98.1186
28.5759 1 105.289
30.761 1 112.914
33.1131 1 121.07
35.6451 1 129.823
38.3707 1 139.215
41.3048 1 149.29
44.4631 1 160.096
47.863 1 171.682
51.5229 1 184.102
55.4626 1 197.411
59.7035 1 211.668
64.2688 1 226.935
69.1831 1 243.278
74.4732 1 260.766
80.1678 1 279.472
86.2979 1 299.471
92.8967 1 320.843
100 1 343.669
107.647 1 368.038
115.878 1 394.038
124.738 1 421.762
134.277 1 451.306
144.544 1 482.768
155.597 1 516.25
167.494 1 551.855
180.302 1 589.69
194.089 1 629.861
208.93 1 672.476
224.905 1 717.644
242.103 1 765.476
260.615 1 816.077
280.543 1 869.557
301.995 1 926.02
325.087 1 985.568
349.945 1 1048.3
376.704 1 1114.31
405.509 1 1183.7
436.516 1 1256.54
469.894 1 1332.9
505.825 1 1412.88
544.503 1 1496.51
586.138 1 1583.87
630.957 1 1674.99
679.204 1 1769.91
731.139 1 1868.65
787.046 1 1971.23
847.227 1 2077.66
912.011 1 2187.93
981.748 1 2302.02
1056.82 1 2419.91
1137.63 1 2541.56
1224.62 1 2666.93
1318.26 1 2795.96
1419.06 1 2928.59
1527.57 1 3064.74
1644.37 1 3204.34
1770.11 1 3347.31
1905.46 1 3493.55
2051.16 1 3642.98
2208.01 1 3795.48
2376.84 1 3950.95
2558.59 1 4109.3
2754.23 1 4270.42
2964.83 1 4434.18
3191.54 1 4600.5
3435.58 1 4769.25
3698.28 1 4940.34
3981.07 1 5113.64
4285.48 1 5289.07
4613.18 1 5466.5
4965.92 1 5645.85
5345.64 1 5827.02
5754.4 1 6009.9
6194.41 1 6194.41
6668.07 1 6380.45
7177.94 1 6567.94
7726.81 1 6756.81
8317.64 1 6946.96
8953.65 1 7138.32
9638.29 1 7330.82
10375.3 1 7524.4
11168.6 1 7718.98
12022.6 1 7914.51
12942 1 8110.92
13931.6 1 8308.16
14996.9 1 8506.18
16143.6 1 8704.93
17378 1 8904.36
18706.8 1 9104.42
20137.2 1 9305.08
21677 1 9506.3
23334.6 1 9708.03
25118.9 1 9910.25
27039.6 1 10112.9
29107.2 1 10316
31332.8 1 10519.5
33728.7 1 10723.4
36307.8 1 10927.5
39084.1 1 11131
42072.7 1 11333.9
45289.8 1 11536
48752.9 1 11737.6
52480.7 1 11938.6
56493.7 1 12139.1
60813.5 1 12339.1
65463.6 1 12538.7
70469.3 1 12737.8
75857.8 1 12936.6
81658.3 1 13135
87902.2 1 13333.1
94623.7 1 13530.9
101859 1 13728.5
109648 1 13925.7
118032 1 14122.8
127057 1 14319.6
136773 1 14516.2
147231 1 14712.6
158489 1 14908.8
170608 1 15104.9
183654 1 15300.8
197697 1 15496.6
212814 1 15692.2
229087 1 15887.7
246604 1 16083.1
265460 1 16278.4
285759 1 16473.6
307610 1 16668.8
331131 1 16863.8
356451 1 17058.7
383707 1 17253.6
413048 1 17448.5
444631 1 17643.2
478630 1 17837.9
515229 1 18032.5
554626 1 18227.1
597035 1 18421.7
642688 1 18616.2
691831 1 18810.7
744732 1 19005.1
801678 1 19199.5
862978 1 19393.9
928966 1 19588.2
15 0.01 59.8113
15 0.0107647 59.8081
15 0.0115878 59.8047
15 0.0124738 59.801
15 0.0134277 59.797
15 0.0144544 59.7927
15 0.0155597 59.788
15 0.0167494 59.7831
15 0.0180302 59.7777
15 0.0194089 59.7719
15 0.020893 59.7657
15 0.0224905 59.759
15 0.0242103 59.7518
15 0.0260615 59.7441
15 0.0280543 59.7357
15 0.0301995 59.7267
15 0.0325087 59.7171
15 0.0349945 59.7067
15 0.0376704 59.6954
15 0.0405509 59.6834
15 0.0436516 59.6704
15 0.0469894 59.6564
15 0.0505825 59.6414
15 0.0544503 59.6252
15 0.0586138 59.6077
15 0.0630957 59.589
15 0.0679204 59.5688
15 0.0731139 59.547
15 0.0787046 59.5236
15 0.0847227 59.4984
15 0.0912011 59.4713
15 0.0981748 59.4421
15 0.105682 59.4107
15 0.113763 59.3769
15 0.122462 59.3405
15 0.131826 59.3013
15 0.141906 59.2591
15 0.152757 59.2137
15 0.164437 59.1648
15 0.177011 59.1122
15 0.190546 59.0556
15 0.205116 58.9946
15 0.2208 58.929
15 0.237684 58.8584
15 0.255859 58.7824
15 0.275423 58.7006
15 0.296483 58.6126
15 0.319154 58.5178
15 0.343558 58.4158
15 0.369828 58.3061
15 0.398107 58.1879
15 0.428549 58.0608
15 0.461318 57.9239
15 0.496592 57.7766
15 0.534564 57.6181
15 0.57544 57.4476
15 0.619441 57.264
15 0.666807 57.0664
15 0.717794 56.8539
15 0.772681 56.6251
15 0.831764 56.379
15 0.895365 56.1141
15 0.963829 55.8291
15 1.03753 55.5225
15 1.11686 55.1926
15 1.20226 54.8376
15 1.2942 54.4558
15 1.39316 54.045
15 1.49968 53.6031
15 1.61436 53.1277
15 1.7378 52.6165
15 1.87068 52.0665
15 2.01372 51.4751
15 2.1677 50.8391
15 2.33346 50.1552
15 2.51189 49.4198
15 2.70396 48.6292
15 2.91072 47.7793
15 3.13329 46.8656
15 3.37287 45.8836
15 3.63078 44.8282
15 3.90841 43.6941
15 4.20727 42.4756
15 4.52898 41.1666
15 4.87529 39.7606
15 5.24808 38.2506
15 5.64937 36.6293
15 6.08135 34.8887
15 6.54636 33.0204
15 7.04693 31.0155
15 7.58578 28.8645
15 8.16582 26.5573
15 8.79023 24.0833
15 9.46237 21.431
15 10.1859 18.5885
15 10.9648 15.5432
15 11.8032 12.2815
15 12.7057 8.78948
15 13.6773 5.05222
15 14.7231 1.05416
15.8489 15 3.22108
17.0608 15 7.79057
18.3654 15 12.6722
19.7697 15 17.8847
21.2814 15 23.4472
22.9087 15 29.38
24.6604 15 35.7038
26.5461 15 42.44
28.5759 15 49.6106
30.761 15 57.2359
33.1131 15 65.3912
35.6451 15 74.144
38.3707 15 83.536
41.3048 15 93.6115
44.4631 15 104.417
47.863 15 116.004
51.5229 15 128.423
55.4626 15 141.732
59.7035 15 155.989
64.2688 15 171.256
69.1831 15 187.6
74.4732 15 205.088
80.1678 15 223.794
86.2979 15 243.792
92.8967 15 265.164
100 15 287.991
107.647 15 312.36
115.878 15 338.359
124.738 15 366.083
134.277 15 395.627
144.544 15 427.089
155.597 15 460.571
167.494 15 496.177
180.302 15 534.011
194.089 15 574.182
208.93 15 616.797
224.905 15 661.966
242.103 15 709.797
260.615 15 760.399
280.543 15 813.878
301.995 15 870.341
325.087 15 929.89
349.945 15 992.623
376.704 15 1058.64
405.509 15 1128.02
436.516 15 1200.86
469.894 15 1277.23
505.825 15 1357.2
544.503 15 1440.83
586.138 15 1528.19
630.957 15 1619.31
679.204 15 1714.23
731.139 15 1812.97
787.046 15 1915.56
847.227 15 2021.98
912.011 15 2132.25
981.748 15 2246.35
1056.82 15 2364.23
1137.63 15 2485.89
1224.62 15 2611.25
1318.26 15 2740.28
1419.06 15 2872.91
1527.57 15 3009.06
1644.37 15 3148.67
1770.11 15 3291.63
1905.46 15 3437.87
2051.16 15 3587.3
2208.01 15 3739.8
2376.84 15 3895.27
2558.59 15 4053.62
2754.23 15 4214.74
2964.83 15 4378.51
3191.54 15 4544.82
3435.58 15 4713.58
3698.28 15 4884.66
3981.07 15 5057.97
4285.48 15 5233.39
4613.18 15 5410.83
4965.92 15 5590.18
5345.64 15 5771.34
5754.4 15 5954.22
6194.41 15 6138.73
6668.07 15 6324.77
7177.94 15 6512.26
7726.81 15 6701.13
8317.64 15 6891.28
8953.65 15 7082.64
9638.29 15 7275.14
10375.3 15 7468.72
11168.6 15 7663.3
12022.6 15 7858.83
12942 15 8055.24
13931.6 15 8252.49
14996.9 15 8450.51
16143.6 15 8649.25
17378 15 8848.68
18706.8 15 9048.74
20137.2 15 9249.4
21677 15 9450.62
23334.6 15 9652.36
25118.9 15 9854.58
27039.6 15 10057.2
29107.2 15 10260.3
31332.8 15 10463.8
33728.7 15 10667.7
36307.8 15 10871.8
39084.1 15 11075.3
42072.7 15 11278.2
45289.8 15 11480.4
48752.9 15 11681.9
52480.7 15 11882.9
56493.7 15 12083.4
60813.5 15 12283.4
65463.6 15 12483
70469.3 15 12682.2
75857.8 15 12880.9
81658.3 15 13079.4
87902.2 15 13277.5
94623.7 15 13475.3
101859 15 13672.8
109648 15 13870.1
118032 15 14067.1
127057 15 14263.9
136773 15 14460.5
147231 15 14656.9
158489 15 14853.1
170608 15 15049.2
183654 15 15245.1
197697 15 15440.9
212814 15 15636.5
229087 15 15832
246604 15 16027.4
265460 15 16222.8
285759 15 16418
307610 15 16613.1
331131 15 16808.1
356451 15 17003.1
383707 15 17198
413048 15 17392.8
444631 15 17587.5
478630 15 17782.2
515229 15 17976.9
554626 15 18171.5
597035 15 18366
642688 15 18560.5
691831 15 18755
744732 15 18949.4
801678 15 19143.8
862978 15 19338.2
928966 15 19532.5
45 0.01 166.061
45 0.0107647 166.058
45 0.0115878 166.055
45 0.0124738 166.051
45 0.0134277 166.047
45 0.0144544 166.043
45 0.0155597 166.038
45 0.0167494 166.033
45 0.0180302 166.028
45 0.0194089 166.022
45 0.020893 166.016
45 0.0224905 166.009
45 0.0242103 166.002
45 0.0260615 165.994
45 0.0280543 165.986
45 0.0301995 165.977
45 0.0325087 165.967
45 0.0349945 165.957
45 0.0376704 165.946
45 0.0405509 165.934
45 0.0436516 165.921
45 0.0469894 165.907
45 0.0505825 165.892
45 0.0544503 165.875
45 0.0586138 165.858
45 0.0630957 165.839
45 0.0679204 165.819
45 0.0731139 165.797
45 0.0787046 165.774
45 0.0847227 165.749
45 0.0912011 165.721
45 0.0981748 165.692
45 0.105682 165.661
45 0.113763 165.627
45 0.122462 165.591
45 0.131826 165.551
45 0.141906 165.509
45 0.152757 165.464
45 0.164437 165.415
45 0.177011 165.362
45 0.190546 165.306
45 0.205116 165.245
45 0.2208 165.179
45 0.237684 165.109
45 0.255859 165.033
45 0.275423 164.951
45 0.296483 164.863
45 0.319154 164.768
45 0.343558 164.666
45 0.369828 164.556
45 0.398107 164.438
45 0.428549 164.311
45 0.461318 164.174
45 0.496592 164.027
45 0.534564 163.868
45 0.57544 163.698
45 0.619441 163.514
45 0.666807 163.317
45 0.717794 163.104
45 0.772681 162.875
45 0.831764 162.629
45 0.895365 162.364
45 0.963829 162.079
45 1.03753 161.773
45 1.11686 161.443
45 1.20226 161.088
45 1.2942 160.706
45 1.39316 160.295
45 1.49968 159.853
45 1.61436 159.378
45 1.7378 158.867
45 1.87068 158.317
45 2.01372 157.725
45 2.1677 157.089
45 2.33346 156.405
45 2.51189 155.67
45 2.70396 154.879
45 2.91072 154.029
45 3.13329 153.116
45 3.37287 152.134
45 3.63078 151.078
45 3.90841 149.944
45 4.20727 148.726
45 4.52898 147.417
45 4.87529 146.011
45 5.24808 144.501
45 5.64937 142.879
45 6.08135 141.139
45 6.54636 139.271
45 7.04693 137.266
45 7.58578 135.115
45 8.16582 132.808
45 8.79023 130.333
45 9.46237 127.681
45 10.1859 124.839
45 10.9648 121.793
45 11.8032 118.532
45 12.7057 115.04
45 13.6773 111.302
45 14.7231 107.304
45 15.8489 103.029
45 17.0608 98.4596
45 18.3654 93.5779
45 19.7697 88.3655
45 21.2814 82.803
45 22.9087 76.8701
45 24.6604 70.5464
45 26.5461 63.8102
45 28.5759 56.6396
45 30.761 49.0143
45 33.1131 40.859
45 35.6451 32.1061
45 38.3707 22.7142
45 41.3048 12.6387
45 44.4631 1.83275
47.863 45 9.75362
51.5229 45 22.1733
55.4626 45 35.482
59.7035 45 49.7389
64.2688 45 65.0061
69.1831 45 81.3495
74.4732 45 98.8377
80.1678 45 117.543
86.2979 45 137.542
92.8967 45 158.914
100 45 181.741
107.647 45 206.109
115.878 45 232.109
124.738 45 259.833
134.277 45 289.377
144.544 45 320.839
155.597 45 354.321
167.494 45 389.926
180.302 45 427.761
194.089 45 467.932
208.93 45 510.547
224.905 45 555.716
242.103 45 603.547
260.615 45 654.148
280.543 45 707.628
301.995 45 764.091
325.087 45 823.64
349.945 45 886.373
376.704 45 952.386
405.509 45 1021.77
436.516 45 1094.61
469.894 45 1170.98
505.825 45 1250.95
544.503 45 1334.58
586.138 45 1421.94
630.957 45 1513.06
679.204 45 1607.98
731.139 45 1706.72
787.046 45 1809.31
847.227 45 1915.73
912.011 45 2026
981.748 45 2140.1
1056.82 45 2257.98
1137.63 45 2379.64
1224.62 45 2505
1318.26 45 2634.03
1419.06 45 2766.66
1527.57 45 2902.81
1644.37 45 3042.42
1770.11 45 3185.38
1905.46 45 3331.62
2051.16 45 3481.05
2208.01 45 3633.55
2376.84 45 3789.02
2558.59 45 3947.37
2754.23 45 4108.49
2964.83 45 4272.26
3191.54 45 4438.57
3435.58 45 4607.33
3698.28 45 4778.41
3981.07 45 4951.71
4285.48 45 5127.14
4613.18 45 5304.58
4965.92 45 5483.93
5345.64 45 5665.09
5754.4 45 5847.97
6194.41 45 6032.48
6668.07 45 6218.52
7177.94 45 6406.01
7726.81 45 6594.88
8317.64 45 6785.03
8953.65 45 6976.39
9638.29 45 7168.89
10375.3 45 7362.47
11168.6 45 7557.05
12022.6 45 7752.58
12942 45 7948.99
13931.6 45 8146.24
14996.9 45 8344.26
16143.6 45 8543
17378 45 8742.43
18706.8 45 8942.49
20137.2 45 9143.15
21677 45 9344.37
23334.6 45 9546.11
25118.9 45 9748.33
27039.6 45 9951
29107.2 45 10154.1
31332.8 45 10357.6
33728.7 45 10561.4
36307.8 45 10765.5
39084.1 45 10969.1
42072.7 45 11171.9
45289.8 45 11374.1
48752.9 45 11575.7
52480.7 45 11776.7
56493.7 45 11977.2
60813.5 45 12177.2
65463.6 45 12376.7
70469.3 45 12575.9
75857.8 45 12774.7
81658.3 45 12973.1
87902.2 45 13171.2
94623.7 45 13369
101859 45 13566.5
109648 45 13763.8
118032 45 13960.8
127057 45 14157.6
136773 45 14354.2
147231 45 14550.6
158489 45 14746.9
170608 45 14942.9
183654 45 15138.8
197697 45 15334.6
212814 45 15530.3
229087 45 15725.8
246604 45 15921.2
265460 45 16116.5
285759 45 16311.7
307610 45 16506.8
331131 45 16701.9
356451 45 16896.8
383707 45 17091.7
413048 45 17286.5
444631 45 17481.3
478630 45 17676
515229 45 17870.6
554626 45 18065.2
597035 45 18259.8
642688 45 18454.3
691831 45 18648.7
744732 45 18843.2
801678 45 19037.6
862978 45 19231.9
928966 45 19426.3
300 0.01 924.948
300 0.0107647 924.945
300 0.0115878 924.942
300 0.0124738 924.938
300 0.0134277 924.934
300 0.0144544 924.93
300 0.0155597 924.925
300 0.0167494 924.92
300 0.0180302 924.915
300 0.0194089 924.909
300 0.020893 924.903
300 0.0224905 924.896
300 0.0242103 924.889
300 0.0260615 924.881
300 0.0280543 924.873
300 0.0301995 924.864
300 0.0325087 924.854
300 0.0349945 924.844
300 0.0376704 924.832
300 0.0405509 924.82
300 0.0436516 924.807
300 0.0469894 924.793
300 0.0505825 924.778
300 0.0544503 924.762
300 0.0586138 924.745
300 0.0630957 924.726
300 0.0679204 924.706
300 0.0731139 924.684
300 0.0787046 924.661
300 0.0847227 924.635
300 0.0912011 924.608
300 0.0981748 924.579
300 0.105682 924.548
300 0.113763 924.514
300 0.122462 924.477
300 0.131826 924.438
300 0.141906 924.396
300 0.152757 924.351
300 0.164437 924.302
300 0.177011 924.249
300 0.190546 924.193
300 0.205116 924.132
300 0.2208 924.066
300 0.237684 923.995
300 0.255859 923.919
300 0.275423 923.838
300 0.296483 923.749
300 0.319154 923.655
300 0.343558 923.553
300 0.369828 923.443
300 0.398107 923.325
300 0.428549 923.198
300 0.461318 923.061
300 0.496592 922.914
300 0.534564 922.755
300 0.57544 922.584
300 0.619441 922.401
300 0.666807 922.203
300 0.717794 921.991
300 0.772681 921.762
300 0.831764 921.516
300 0.895365 921.251
300 0.963829 920.966
300 1.03753 920.659
300 1.11686 920.329
300 1.20226 919.975
300 1.2942 919.593
300 1.39316 919.182
300 1.49968 918.74
300 1.61436 918.265
300 1.7378 917.753
300 1.87068 917.203
300 2.01372 916.612
300 2.1677 915.976
300 2.33346 915.292
300 2.51189 914.557
300 2.70396 913.766
300 2.91072 912.916
300 3.13329 912.003
300 3.37287 911.02
300 3.63078 909.965
300 3.90841 908.831
300 4.20727 907.613
300 4.52898 906.304
300 4.87529 904.898
300 5.24808 903.388
300 5.64937 901.766
300 6.08135 900.026
300 6.54636 898.157
300 7.04693 896.152
300 7.58578 894.001
300 8.16582 891.694
300 8.79023 889.22
300 9.46237 886.568
300 10.1859 883.725
300 10.9648 880.68
300 11.8032 877.418
300 12.7057 873.926
300 13.6773 870.189
300 14.7231 866.191
300 15.8489 861.916
300 17.0608 857.346
300 18.3654 852.465
300 19.7697 847.252
300 21.2814 841.69
300 22.9087 835.757
300 24.6604 829.433
300 26.5461 822.697
300 28.5759 815.526
300 30.761 807.901
300 33.1131 799.746
300 35.6451 790.993
300 38.3707 781.601
300 41.3048 771.525
300 44.4631 760.719
300 47.863 749.133
300 51.5229 736.713
300 55.4626 723.405
300 59.7035 709.148
300 64.2688 693.881
300 69.1831 677.537
300 74.4732 660.049
300 80.1678 641.343
300 86.2979 621.345
300 92.8967 599.973
300 100 577.146
300 107.647 552.777
300 115.878 526.778
300 124.738 499.054
300 134.277 469.51
300 144.544 438.048
300 155.597 404.566
300 167.494 368.96
300 180.302 331.126
300 194.089 290.955
300 208.93 248.34
300 224.905 203.171
300 242.103 155.34
300 260.615 104.738
300 280.543 51.2586
301.995 300 5.20426
325.087 300 64.753
349.945 300 127.486
376.704 300 193.499
405.509 300 262.883
436.516 300 335.72
469.894 300 412.089
505.825 300 492.061
544.503 300 575.698
586.138 300 663.053
630.957 300 754.172
679.204 300 849.091
731.139 300 947.835
787.046 300 1050.42
847.227 300 1156.85
912.011 300 1267.12
981.748 300 1381.21
1056.82 300 1499.1
1137.63 300 1620.75
1224.62 300 1746.12
1318.26 300 1875.14
1419.06 300 2007.77
1527.57 300 2143.92
1644.37 300 2283.53
1770.11 300 2426.5
1905.46 300 2572.74
2051.16 300 2722.16
2208.01 300 2874.66
2376.84 300 3030.14
2558.59 300 3188.49
2754.23 300 3349.6
2964.83 300 3513.37
3191.54 300 3679.68
3435.58 300 3848.44
3698.28 300 4019.52
3981.07 300 4192.83
4285.48 300 4368.25
4613.18 300 4545.69
4965.92 300 4725.04
5345.64 300 4906.2
5754.4 300 5089.08
6194.41 300 5273.59
6668.07 300 5459.63
7177.94 300 5647.13
7726.81 300 5835.99
8317.64 300 6026.14
8953.65 300 6217.5
9638.29 300 6410.01
10375.3 300 6603.58
11168.6 300 6798.17
12022.6 300 6993.69
12942 300 7190.11
13931.6 300 7387.35
14996.9 300 7585.37
16143.6 300 7784.12
17378 300 7983.54
18706.8 300 8183.61
20137.2 300 8384.27
21677 300 8585.48
23334.6 300 8787.22
25118.9 300 8989.44
27039.6 300 9192.11
29107.2 300 9395.21
31332.8 300 9598.69
33728.7 300 9802.55
36307.8 300 10006.7
39084.1 300 10210.2
42072.7 300 10413
45289.8 300 10615.2
48752.9 300 10816.8
52480.7 300 11017.8
56493.7 300 11218.3
60813.5 300 11418.3
65463.6 300 11617.9
70469.3 300 11817
75857.8 300 12015.8
81658.3 300 12214.2
87902.2 300 12412.3
94623.7 300 12610.1
101859 300 12807.6
109648 300 13004.9
118032 300 13201.9
127057 300 13398.7
136773 300 13595.3
147231 300 13791.8
158489 300 13988
170608 300 14184
183654 300 14380
197697 300 14575.7
212814 300 14771.4
229087 300 14966.9
246604 300 15162.3
265460 300 15357.6
285759 300 15552.8
307610 300 15747.9
331131 300 15943
356451 300 16137.9
383707 300 16332.8
413048 300 16527.6
444631 300 16722.4
478630 300 16917.1
515229 300 17111.7
554626 300 17306.3
597035 300 17500.9
642688 300 17695.4
691831 300 17889.9
744732 300 18084.3
801678 300 18278.7
862978 300 18473
928966 300 18667.4
This diff is collapsed.
# Energy [GeV] ngamma_elec pion kaon kshort klong proton neutron opa_weight_high_e
0.010 1866.285 2.885 14.849 20.700 13.304 -1.311 0.523 0.292
0.011 1996.281 2.697 13.882 19.462 12.530 -1.210 0.498 0.292
0.012 2136.240 2.520 12.972 18.296 11.800 -1.115 0.475 0.292
0.012 2286.903 2.354 12.118 17.199 11.113 -1.025 0.454 0.292
0.013 2449.057 2.198 11.315 16.167 10.467 -0.941 0.433 0.292
0.014 2623.608 2.052 10.562 15.198 9.858 -0.863 0.414 0.292
0.016 2811.555 1.915 9.856 14.286 9.286 -0.790 0.396 0.292
0.017 3013.806 1.786 9.195 13.431 8.748 -0.721 0.378 0.292
0.018 3231.585 1.666 8.575 12.628 8.243 -0.657 0.362 0.292
0.019 3465.965 1.553 7.995 11.875 7.769 -0.598 0.347 0.292
0.021 3718.307 1.448 7.453 11.169 7.324 -0.542 0.333 0.292
0.022 3989.938 1.349 6.945 10.507 6.906 -0.490 0.319 0.292
0.024 4282.343 1.257 6.471 9.887 6.513 -0.442 0.307 0.292
0.026 4597.096 1.171 6.028 9.305 6.145 -0.398 0.295 0.292
0.028 4935.896 1.091 5.614 8.761 5.800 -0.357 0.283 0.292
0.030 5300.626 1.016 5.228 8.251 5.476 -0.318 0.273 0.292
0.033 5693.274 0.946 4.867 7.774 5.173 -0.283 0.263 0.292
0.035 6115.915 0.880 4.531 7.327 4.888 -0.251 0.253 0.292
0.038 6570.854 0.819 4.217 6.908 4.621 -0.221 0.244 0.292
0.041 7060.618 0.762 3.925 6.516 4.370 -0.193 0.235 0.292
0.044 7587.833 0.709 3.652 6.150 4.135 -0.168 0.227 0.292
0.047 8155.371 0.660 3.398 5.806 3.915 -0.145 0.219 0.292
0.051 8766.266 0.614 3.161 5.485 3.708 -0.124 0.211 0.292
0.054 9423.925 0.571 2.941 5.185 3.514 -0.106 0.204 0.292
0.059 10131.846 0.531 2.735 4.903 3.332 -0.088 0.197 0.292
0.063 10893.919 0.512 2.544 4.640 3.161 -0.073 0.190 0.292
0.068 11714.276 0.512 2.366 4.393 3.000 -0.059 0.184 0.292
0.073 12597.360 0.513 2.200 4.162 2.849 -0.047 0.177 0.292
0.079 13547.968 0.513 2.045 3.946 2.708 -0.037 0.171 0.292
0.085 14571.281 0.514 1.902 3.743 2.574 -0.027 0.165 0.292
0.091 15672.846 0.514 1.768 3.553 2.449 -0.019 0.159 0.292
0.098 16858.678 0.514 1.644 3.376 2.332 -0.012 0.153 0.292
0.106 18135.162 0.515 1.528 3.209 2.221 -0.007 0.148 0.292
0.114 19509.295 0.515 1.420 3.053 2.117 -0.002 0.142 0.292
0.122 20988.486 0.515 1.320 2.907 2.019 0.002 0.137 0.292
0.132 22580.863 0.516 1.227 2.770 1.927 0.005 0.131 0.292
0.142 24294.961 0.516 1.141 2.642 1.840 0.007 0.126 0.292
0.153 26140.211 0.545 1.060 2.521 1.758 0.009 0.121 0.292
0.164 28126.574 0.558 0.985 2.408 1.680 0.010 0.116 0.292
0.177 30264.850 0.577 0.916 2.303 1.608 0.010 0.111 0.292
0.191 32566.664 0.597 0.851 2.203 1.539 0.011 0.106 0.292
0.205 35044.562 0.619 0.791 2.110 1.474 0.011 0.102 0.298
0.221 37711.977 0.641 0.735 2.023 1.413 0.011 0.098 0.314
0.238 40583.449 0.662 0.683 1.941 1.355 0.011 0.094 0.334
0.256 43674.539 0.682 0.635 1.865 1.301 0.011 0.091 0.354
0.275 47002.074 0.699 0.680 1.793 1.250 0.012 0.088 0.376
0.296 50584.176 0.714 0.685 1.725 1.201 0.013 0.086 0.398
0.319 54440.273 0.727 0.689 1.662 1.155 0.015 0.085 0.420
0.344 58591.371 0.738 0.693 1.603 1.112 0.018 0.085 0.441
0.370 63060.027 0.746 0.697 1.547 1.072 0.022 0.086 0.461
0.398 67870.602 0.752 0.700 1.495 1.033 0.027 0.089 0.480
0.429 73049.188 0.756 0.703 1.446 0.997 0.033 0.093 0.498
0.461 78623.992 0.759 0.705 1.400 0.963 0.041 0.100 0.515
0.497 84625.312 0.760 0.708 1.357 0.931 0.050 0.110 0.530
0.535 91085.875 0.760 0.710 1.317 0.901 0.061 0.099 0.545
0.575 98040.750 0.758 0.711 1.280 0.873 0.074 0.123 0.559
0.619 105527.875 0.756 0.713 1.244 0.846 0.088 0.146 0.571
0.667 113587.922 0.752 0.714 1.211 0.822 0.104 0.167 0.582
0.718 122264.773 0.748 0.714 1.180 0.799 0.122 0.187 0.593
0.773 131605.719 0.744 0.715 1.151 0.777 0.141 0.205 0.603
0.832 141661.578 0.740 0.715 1.124 0.758 0.161 0.222 0.612
0.895 152487.078 0.735 0.716 1.099 0.739 0.182 0.238 0.620
0.964 164141.188 0.730 0.715 1.075 0.723 0.204 0.253 0.627
1.038 176687.359 0.725 0.715 1.053 0.708 0.226 0.267 0.634
1.117 190193.969 0.720 0.715 1.033 0.694 0.249 0.280 0.640
1.202 204734.484 0.716 0.714 1.013 0.682 0.271 0.293 0.646
1.294 220388.172 0.712 0.713 0.995 0.671 0.292 0.305 0.651
1.393 237240.266 0.707 0.712 0.978 0.662 0.312 0.317 0.655
1.500 255382.531 0.704 0.711 0.963 0.654 0.331 0.328 0.659
1.614 274913.750 0.700 0.710 0.948 0.638 0.348 0.339 0.663
1.738 295940.375 0.697 0.708 0.934 0.640 0.364 0.351 0.666
1.871 318576.781 0.695 0.707 0.921 0.643 0.377 0.362 0.669
2.014 342946.188 0.692 0.705 0.909 0.646 0.390 0.373 0.672
2.168 369181.250 0.690 0.703 0.898 0.648 0.401 0.384 0.674
2.333 397424.750 0.689 0.701 0.888 0.651 0.410 0.394 0.676
2.512 427830.062 0.687 0.700 0.878 0.653 0.419 0.405 0.678
2.704 460562.656 0.686 0.698 0.869 0.656 0.428 0.416 0.679
2.911 495800.125 0.686 0.696 0.861 0.658 0.437 0.427 0.681
3.133 533733.812 0.686 0.694 0.853 0.661 0.446 0.438 0.682
3.373 574569.250 0.686 0.692 0.846 0.663 0.455 0.449 0.683
3.631 618527.625 0.686 0.690 0.839 0.665 0.465 0.460 0.684
3.908 665846.625 0.686 0.689 0.832 0.668 0.476 0.471 0.685
4.207 716781.562 0.687 0.687 0.826 0.670 0.488 0.481 0.686
4.529 771607.125 0.688 0.686 0.821 0.672 0.500 0.492 0.687
4.875 830617.875 0.689 0.685 0.816 0.674 0.512 0.502 0.688
5.248 894130.500 0.691 0.684 0.811 0.677 0.524 0.512 0.689
5.649 962484.375 0.692 0.683 0.807 0.679 0.536 0.522 0.690
6.081 1036044.125 0.694 0.683 0.803 0.681 0.548 0.532 0.691
6.546 1115200.250 0.696 0.683 0.799 0.683 0.559 0.541 0.692
7.047 1200371.500 0.698 0.683 0.795 0.685 0.569 0.551 0.694
7.586 1292006.500 0.700 0.684 0.792 0.687 0.579 0.560 0.696
8.166 1390584.750 0.702 0.684 0.789 0.689 0.589 0.568 0.698
8.790 1496619.750 0.704 0.686 0.787 0.691 0.598 0.577 0.700
9.462 1610660.625 0.707 0.687 0.784 0.693 0.606 0.585 0.702
10.186 1733293.250 0.709 0.689 0.782 0.695 0.614 0.593 0.705
10.965 1865143.250 0.712 0.691 0.780 0.697 0.621 0.601 0.707
11.803 2006879.375 0.714 0.694 0.778 0.699 0.628 0.609 0.710
12.706 2159211.500 0.717 0.696 0.776 0.701 0.634 0.616 0.714
13.677 2322899.750 0.719 0.699 0.775 0.703 0.640 0.623 0.717
14.723 2498750.250 0.722 0.702 0.774 0.706 0.646 0.630 0.721
15.849 2687623.750 0.725 0.705 0.773 0.708 0.651 0.637 0.725
17.061 2890434.250 0.728 0.709 0.772 0.710 0.657 0.643 0.729
18.365 3108156.750 0.731 0.712 0.772 0.713 0.661 0.649 0.733
19.770 3341827.000 0.734 0.715 0.771 0.715 0.666 0.656 0.738
21.281 3592549.750 0.737 0.719 0.771 0.718 0.671 0.662 0.742
22.909 3861503.000 0.740 0.722 0.771 0.720 0.675 0.667 0.747
24.660 4149942.500 0.743 0.726 0.771 0.723 0.679 0.673 0.752
26.546 4459214.000 0.746 0.729 0.772 0.726 0.684 0.679 0.757
28.576 4790752.500 0.749 0.733 0.772 0.728 0.688 0.684 0.762
30.761 5146107.500 0.753 0.736 0.773 0.731 0.692 0.689 0.767
33.113 5526937.000 0.756 0.740 0.774 0.735 0.696 0.695 0.772
35.645 5935039.000 0.760 0.743 0.775 0.738 0.699 0.700 0.777
38.371 6372348.500 0.763 0.747 0.777 0.741 0.703 0.705 0.782
41.305 6840972.000 0.767 0.750 0.778 0.744 0.707 0.710 0.787
44.463 7343191.000 0.771 0.754 0.780 0.748 0.711 0.715 0.792
47.863 7881495.500 0.775 0.757 0.782 0.751 0.715 0.720 0.797
51.523 8458597.000 0.778 0.761 0.783 0.755 0.718 0.725 0.801
55.463 9077446.000 0.782 0.764 0.785 0.759 0.722 0.729 0.806
59.704 9741270.000 0.786 0.768 0.787 0.762 0.726 0.734 0.811
64.269 10453575.000 0.790 0.771 0.789 0.766 0.729 0.738 0.815
69.183 11218188.000 0.793 0.775 0.791 0.769 0.733 0.742 0.820
74.473 12039248.000 0.797 0.778 0.793 0.773 0.736 0.747 0.824
80.168 12921273.000 0.800 0.781 0.796 0.776 0.739 0.751 0.828
86.298 13869112.000 0.804 0.784 0.798 0.780 0.742 0.754 0.833
92.897 14888035.000 0.807 0.787 0.799 0.783 0.745 0.758 0.837
100.000 15983690.000 0.810 0.790 0.801 0.786 0.748 0.762 0.840
107.647 17162176.000 0.813 0.792 0.803 0.790 0.751 0.765 0.844
115.878 18430006.000 0.816 0.795 0.805 0.793 0.753 0.768 0.848
124.738 19794222.000 0.819 0.797 0.806 0.795 0.756 0.771 0.852
134.277 21262334.000 0.821 0.799 0.808 0.798 0.758 0.774 0.855
144.544 22842412.000 0.823 0.801 0.809 0.801 0.760 0.776 0.858
155.597 24543092.000 0.826 0.803 0.811 0.803 0.762 0.779 0.862
167.494 26373708.000 0.828 0.805 0.812 0.806 0.764 0.781 0.865
180.302 28344224.000 0.830 0.807 0.813 0.808 0.765 0.783 0.868
194.089 30465372.000 0.832 0.808 0.814 0.810 0.767 0.785 0.871
208.930 32748672.000 0.833 0.810 0.815 0.813 0.769 0.787 0.874
224.905 35206572.000 0.835 0.811 0.816 0.815 0.770 0.788 0.876
242.103 37852404.000 0.837 0.812 0.817 0.816 0.771 0.790 0.879
260.615 40700536.000 0.838 0.813 0.818 0.818 0.772 0.791 0.882
280.543 43766460.000 0.839 0.814 0.819 0.820 0.773 0.793 0.884
301.995 47066832.000 0.841 0.815 0.819 0.822 0.775 0.794 0.886
325.087 50619564.000 0.842 0.816 0.820 0.823 0.775 0.795 0.889
349.945 54443924.000 0.843 0.817 0.821 0.825 0.776 0.796 0.891
376.704 58560748.000 0.844 0.818 0.821 0.827 0.777 0.797 0.893
405.509 62992368.000 0.845 0.819 0.822 0.828 0.778 0.798 0.895
436.516 67762848.000 0.846 0.820 0.822 0.829 0.779 0.799 0.897
469.894 72898072.000 0.847 0.820 0.823 0.831 0.779 0.800 0.899
505.825 78425992.000 0.848 0.821 0.823 0.832 0.780 0.801 0.901
544.503 84376616.000 0.848 0.821 0.824 0.833 0.781 0.801 0.903
586.138 90782200.000 0.849 0.822 0.824 0.834 0.781 0.802 0.905
630.957 97677648.000 0.850 0.822 0.824 0.836 0.782 0.803 0.906
679.204 105100360.000 0.850 0.823 0.825 0.837 0.782 0.803 0.908
731.139 113090640.000 0.851 0.823 0.825 0.838 0.783 0.804 0.910
787.046 121691848.000 0.851 0.824 0.825 0.839 0.783 0.804 0.911
847.227 130950800.000 0.852 0.824 0.825 0.840 0.783 0.804 0.913
912.011 140917744.000 0.852 0.824 0.826 0.841 0.784 0.805 0.914
981.748 151646816.000 0.853 0.825 0.826 0.842 0.784 0.805 0.916
1056.817 163196224.000 0.853 0.825 0.826 0.843 0.784 0.806 0.917
1137.627 175628832.000 0.853 0.825 0.826 0.844 0.785 0.806 0.918
1224.616 189012080.000 0.854 0.826 0.826 0.844 0.785 0.806 0.920
1318.256 203418608.000 0.854 0.826 0.827 0.845 0.785 0.807 0.921
1419.057 218926848.000 0.854 0.826 0.827 0.846 0.785 0.807 0.922
1527.566 235620912.000 0.855 0.826 0.827 0.847 0.786 0.807 0.923
1644.372 253591504.000 0.855 0.826 0.827 0.848 0.786 0.807 0.925
1770.109 272936064.000 0.855 0.827 0.827 0.848 0.786 0.807 0.926
1905.461 293759968.000 0.855 0.827 0.827 0.849 0.786 0.808 0.927
2051.162 316176192.000 0.856 0.827 0.827 0.850 0.786 0.808 0.928
2208.005 340306464.000 0.856 0.827 0.827 0.850 0.786 0.808 0.929
2376.840 366281664.000 0.856 0.827 0.828 0.851 0.787 0.808 0.930
2558.586 394243296.000 0.856 0.827 0.828 0.852 0.787 0.808 0.931
2754.229 424343008.000 0.856 0.827 0.828 0.852 0.787 0.808 0.932
2964.831 456744032.000 0.856 0.828 0.828 0.853 0.787 0.808 0.933
3191.538 491622912.000 0.856 0.828 0.828 0.854 0.787 0.809 0.934
3435.580 529168768.000 0.857 0.828 0.828 0.854 0.787 0.809 0.935
3698.282 569585600.000 0.857 0.828 0.828 0.855 0.787 0.809 0.936
3981.071 613092608.000 0.857 0.828 0.828 0.855 0.787 0.809 0.936
4285.485 659926720.000 0.857 0.828 0.828 0.856 0.787 0.809 0.937
4613.176 710342016.000 0.857 0.828 0.828 0.856 0.787 0.809 0.938
4965.924 764612352.000 0.857 0.828 0.828 0.857 0.787 0.809 0.939
5345.643 823032000.000 0.857 0.828 0.828 0.857 0.788 0.809 0.939
5754.399 885919232.000 0.857 0.828 0.828 0.858 0.788 0.809 0.940
6194.412 953615104.000 0.857 0.828 0.828 0.858 0.788 0.809 0.941
6668.066 1026486784.000 0.857 0.828 0.828 0.859 0.788 0.809 0.942
7177.942 1104931328.000 0.857 0.828 0.828 0.859 0.788 0.809 0.942
7726.806 1189374080.000 0.858 0.828 0.828 0.860 0.788 0.809 0.943
8317.640 1280273792.000 0.858 0.828 0.828 0.860 0.788 0.809 0.944
8953.646 1378123264.000 0.858 0.829 0.828 0.861 0.788 0.809 0.944
9638.289 1483455744.000 0.858 0.829 0.829 0.861 0.788 0.809 0.945
10375.279 1596841600.000 0.858 0.829 0.829 0.862 0.788 0.810 0.946
11168.629 1718898432.000 0.858 0.829 0.829 0.862 0.788 0.810 0.946
12022.643 1850288512.000 0.858 0.829 0.829 0.862 0.788 0.810 0.947
12941.958 1991725184.000 0.858 0.829 0.829 0.863 0.788 0.810 0.947
13931.569 2143976832.000 0.858 0.829 0.829 0.863 0.788 0.810 0.948
14996.853 2307870720.000 0.858 0.829 0.829 0.864 0.788 0.810 0.948
16143.593 2484296704.000 0.858 0.829 0.829 0.864 0.788 0.810 0.949
17378.000 2674210304.000 0.858 0.829 0.829 0.864 0.788 0.810 0.950
18706.814 2878648320.000 0.858 0.829 0.829 0.865 0.788 0.810 0.950
20137.238 3098718976.000 0.858 0.829 0.829 0.865 0.788 0.810 0.951
21677.039 3335617280.000 0.858 0.829 0.829 0.865 0.788 0.810 0.951
23334.582 3590630400.000 0.858 0.829 0.829 0.866 0.788 0.810 0.952
25118.869 3865143040.000 0.858 0.829 0.829 0.866 0.788 0.810 0.952
27039.594 4160646400.000 0.858 0.829 0.829 0.866 0.788 0.810 0.952
29107.186 4478745088.000 0.858 0.829 0.829 0.867 0.788 0.810 0.953
31332.844 4821162496.000 0.858 0.829 0.829 0.867 0.788 0.810 0.953
33728.723 5189768704.000 0.858 0.829 0.829 0.867 0.788 0.810 0.954
36307.801 5586560000.000 0.858 0.829 0.829 0.868 0.788 0.810 0.954
39084.090 6013691904.000 0.858 0.829 0.829 0.868 0.788 0.810 0.955
42072.668 6473484800.000 0.858 0.829 0.829 0.868 0.788 0.810 0.955
45289.773 6968436224.000 0.858 0.829 0.829 0.868 0.788 0.810 0.955
48752.871 7501233664.000 0.858 0.829 0.829 0.869 0.788 0.810 0.956
52480.719 8074763264.000 0.858 0.829 0.829 0.869 0.788 0.810 0.956
56493.680 8692157440.000 0.858 0.829 0.829 0.869 0.788 0.810 0.957
60813.488 9356760064.000 0.858 0.829 0.829 0.870 0.788 0.810 0.957
65463.613 10072181760.000 0.858 0.829 0.829 0.870 0.788 0.810 0.957
70469.312 10842308608.000 0.858 0.829 0.829 0.870 0.788 0.810 0.958
75857.781 11671324672.000 0.858 0.829 0.829 0.870 0.788 0.810 0.958
81658.273 12563730432.000 0.858 0.829 0.829 0.871 0.788 0.810 0.958
87902.203 13524359168.000 0.858 0.829 0.829 0.871 0.788 0.810 0.959
94623.680 14558457856.000 0.858 0.829 0.829 0.871 0.788 0.810 0.959
101859.117 15671630848.000 0.858 0.829 0.829 0.871 0.788 0.810 0.960
109647.812 16869920768.000 0.858 0.829 0.829 0.871 0.788 0.810 0.960
118032.070 18159837184.000 0.858 0.829 0.829 0.872 0.788 0.810 0.960
127057.438 19548391424.000 0.858 0.829 0.829 0.872 0.788 0.810 0.960
136772.938 21043120128.000 0.858 0.829 0.829 0.872 0.788 0.810 0.961
147231.328 22652143616.000 0.858 0.829 0.829 0.872 0.788 0.810 0.961
158489.250 24384176128.000 0.858 0.829 0.829 0.873 0.788 0.810 0.961
170608.188 26248673280.000 0.858 0.829 0.829 0.873 0.788 0.810 0.962
183653.812 28255744000.000 0.858 0.829 0.829 0.873 0.788 0.810 0.962
197696.969 30416283648.000 0.858 0.829 0.829 0.873 0.788 0.810 0.962
212813.938 32742029312.000 0.858 0.829 0.829 0.873 0.788 0.810 0.963
229086.828 35245613056.000 0.858 0.829 0.829 0.874 0.788 0.810 0.963
246604.047 37940637696.000 0.858 0.829 0.829 0.874 0.788 0.810 0.963
265460.438 40841695232.000 0.858 0.829 0.829 0.874 0.788 0.810 0.963
285758.969 43964624896.000 0.858 0.829 0.829 0.874 0.788 0.810 0.964
307609.625 47326347264.000 0.858 0.829 0.829 0.874 0.788 0.810 0.964
331131.094 50945126400.000 0.858 0.829 0.829 0.874 0.788 0.810 0.964
356451.156 54840614912.000 0.858 0.829 0.829 0.875 0.788 0.810 0.964
383707.344 59033980928.000 0.858 0.829 0.829 0.875 0.788 0.810 0.965
413047.656 63547990016.000 0.858 0.829 0.829 0.875 0.788 0.810 0.965
444631.031 68407091200.000 0.858 0.829 0.829 0.875 0.788 0.810 0.965
478629.906 73637814272.000 0.858 0.829 0.829 0.875 0.788 0.810 0.965
515228.531 79268511744.000 0.858 0.829 0.829 0.875 0.788 0.810 0.966
554625.688 85329764352.000 0.858 0.829 0.829 0.876 0.788 0.810 0.966
597035.312 91854487552.000 0.858 0.829 0.829 0.876 0.788 0.810 0.966
642687.875 98878136320.000 0.858 0.829 0.829 0.876 0.788 0.810 0.966
691831.188 106438836224.000 0.858 0.829 0.829 0.876 0.788 0.810 0.967
744732.375 114577678336.000 0.858 0.829 0.829 0.876 0.788 0.810 0.967
801677.688 123338719232.000 0.858 0.829 0.829 0.876 0.788 0.810 0.967
862978.312 132769816576.000 0.858 0.829 0.829 0.876 0.788 0.810 0.967
928966.250 142922055680.000 0.858 0.829 0.829 0.877 0.788 0.810 0.967
#!/usr/bin/env python
# coding=utf-8
# Filename: test_physics.py
__author__ = "Johannes Schumann"
__copyright__ = "Copyright 2021, Johannes Schumann and the KM3NeT collaboration."
__credits__ = []
__license__ = "MIT"
__maintainer__ = "Johannes Schumann"
__email__ = "jschumann@km3net.de"
__status__ = "Development"
import unittest
from unittest.mock import patch
import re
import numpy as np
import pytest
from os.path import abspath, join, dirname
from particle import Particle
from km3buu.physics import *
FUNCTIONS_TESTFILE = join(dirname(__file__),
"data/visible_energy_weight_functions.txt")
PARTICLE_TESTFILE = join(dirname(__file__),
"data/visible_energy_particle_frac.txt")
MUON_TESTFILE = join(dirname(__file__), "data/muon_range_seawater.txt")
class TestMuonRangeSeaWater(unittest.TestCase):
def setUp(self):
self.ref_values = np.loadtxt(MUON_TESTFILE).T
def test_particles(self):
assert np.allclose(muon_range_seawater(self.ref_values[0, :],
self.ref_values[1, :]),
self.ref_values[2, :],
rtol=0.01)
class TestVisEnergyParticle(unittest.TestCase):
def setUp(self):
with open(PARTICLE_TESTFILE, "r") as f:
tmp = f.readline()
self.particles = [
int(p[2:-1]) for p in re.findall(r'\s\(-?\d+\)', tmp)
]
self.ref_values = np.loadtxt(PARTICLE_TESTFILE).T
def test_particles(self):
for i, pdgid in enumerate(self.particles):
val = km3_opa_fraction(self.ref_values[0, :], pdgid)
assert np.allclose(self.ref_values[i + 1, :],
val,
rtol=0.05,
atol=0.01)
class TestVisEnergyWeightFunctions(unittest.TestCase):
def setUp(self):
self.ref_values = np.loadtxt(FUNCTIONS_TESTFILE).T
def test_ngamma_elec(self):
vfunc = np.vectorize(number_photons_per_electron)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[1, :], val, rtol=0.05)
def test_pion_weight(self):
vfunc = np.vectorize(pion_weight)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[2, :], val, rtol=0.05)
def test_kaon_weight(self):
vfunc = np.vectorize(kaon_weight)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[3, :], val, rtol=0.05)
def test_kshort_weight(self):
vfunc = np.vectorize(kshort_weight)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[4, :], val, rtol=0.05)
def test_klong_weight(self):
vfunc = np.vectorize(klong_weight)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[5, :], val, rtol=0.05)
def test_proton_weight(self):
vfunc = np.vectorize(proton_weight)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[6, :], val, atol=0.05)
def test_neutron_weight(self):
vfunc = np.vectorize(neutron_weight)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[7, :], val, rtol=0.05)
def test_high_ene_weights(self):
vfunc = np.vectorize(high_energy_weight)
val = vfunc(self.ref_values[0, :])
assert np.allclose(self.ref_values[8, :], val, rtol=0.05)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment