Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
astro
astrotools
Commits
341ba908
Commit
341ba908
authored
Oct 09, 2020
by
Marcus Wirtz
Browse files
[simulations] Clarify combined fit minimima default settings. NO PYTHON 2 SUPPORT HERE!
parent
c9967b83
Pipeline
#340894
passed with stages
in 4 minutes and 51 seconds
Changes
2
Pipelines
1
Show whitespace changes
Inline
Side-by-side
astrotools/simulations.py
View file @
341ba908
...
...
@@ -511,15 +511,15 @@ class SourceBound(BaseSimulation):
self
.
charge_weights
=
charges
elif
isinstance
(
charges
,
str
):
if
charges
==
'first_minimum'
:
self
.
energy_setting
[
'gamma'
],
self
.
energy_setting
[
'log10_cut'
]
=
-
0.87
,
18.62
self
.
charge_weights
=
{
'n'
:
0.88
,
'si'
:
0.12
}
elif
charges
==
'first_minimum_SPG'
:
self
.
energy_setting
[
'gamma'
],
self
.
energy_setting
[
'log10_cut'
]
=
-
0.96
,
18.68
self
.
charge_weights
=
{
'he'
:
0.673
,
'n'
:
0.281
,
'si'
:
0.046
}
elif
charges
==
'second_minimum'
:
if
charges
==
'first_minimum_CTG'
:
self
.
energy_setting
[
'gamma'
],
self
.
energy_setting
[
'log10_cut'
]
=
1.03
,
18.21
self
.
charge_weights
=
{
'h'
:
0.6794
,
'he'
:
0.31
,
'n'
:
0.01
,
'si'
:
0.0006
}
elif
charges
==
'second_minimum_CTG'
:
self
.
energy_setting
[
'gamma'
],
self
.
energy_setting
[
'log10_cut'
]
=
-
0.87
,
18.62
self
.
charge_weights
=
{
'n'
:
0.88
,
'si'
:
0.12
}
elif
charges
==
'first_minimum_CTD'
:
self
.
energy_setting
[
'gamma'
],
self
.
energy_setting
[
'log10_cut'
]
=
1.47
,
18.15
self
.
charge_weights
=
{
'h'
:
0.4494
,
'he'
:
0.52
,
'n'
:
0.03
,
'si'
:
0.0006
}
elif
charges
==
'first_minimum_walz'
:
self
.
energy_setting
[
'gamma'
],
self
.
energy_setting
[
'log10_cut'
]
=
-
0.62
,
18.56
self
.
charge_weights
=
{
'h'
:
0.001
,
'he'
:
0.001
,
'n'
:
0.985
,
'fe'
:
0.012
}
...
...
test/test_simulations.py
View file @
341ba908
import
unittest
import
os
import
sys
import
numpy
as
np
import
unittest
from
astrotools
import
coord
,
gamale
,
healpytools
as
hpt
from
astrotools.simulations
import
PATH
,
ObservedBound
,
SourceBound
...
...
@@ -334,6 +335,7 @@ class TestSourceBound(unittest.TestCase):
dmin
=
np
.
min
(
sim
.
universe
.
distances
,
axis
=-
1
)
self
.
assertTrue
((
np
.
median
(
dmin
)
>
20
))
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
test_03_fluxes
(
self
):
sim
=
SourceBound
(
self
.
nsets
,
self
.
ncrs
)
sim
.
set_energy
(
gamma
=-
2
,
log10e_min
=
19.6
,
log10_cut
=
20.5
,
rig_cut
=
False
)
...
...
@@ -402,6 +404,7 @@ class TestSourceBound(unittest.TestCase):
fraction_inside
=
np
.
sum
(
mask_inside_10
)
/
float
(
sim
.
ncrs
*
sim
.
nsets
)
self
.
assertTrue
(
fraction_inside
<
0.2
)
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
test_04a_shuffle
(
self
):
sim
=
SourceBound
(
self
.
nsets
,
self
.
ncrs
)
sim
.
set_energy
(
gamma
=-
2
,
log10e_min
=
19.6
)
...
...
@@ -412,6 +415,7 @@ class TestSourceBound(unittest.TestCase):
src_labels
=
crs
[
'source_labels'
]
self
.
assertTrue
(
np
.
all
(
src_labels
[
sim
.
signal_label
]
!=
-
1
))
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
test_04b_shuffle
(
self
):
sim
=
SourceBound
(
self
.
nsets
,
self
.
ncrs
)
sim
.
set_energy
(
gamma
=-
2
,
log10e_min
=
19.6
)
...
...
@@ -424,12 +428,13 @@ class TestSourceBound(unittest.TestCase):
test2
=
np
.
unique
(
crs
[
'vecs'
]
*
crs
[
'log10e'
])
self
.
assertTrue
(
np
.
all
(
test1
==
test2
))
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
test_05a_first_minimum
(
self
):
sim
=
SourceBound
(
self
.
nsets
,
1000
)
# sim.set_energy(gamma=-0.96, log10e_min=19.6, log10_cut=18.68, rig_cut=True)
# sim.set_charges(charges={'he': 0.673, 'n': 0.281, 'si': 0.046})
sim
.
set_energy
(
log10e_min
=
19.6
)
sim
.
set_charges
(
'first_minimum'
)
sim
.
set_charges
(
'first_minimum
_CTG
'
)
sim
.
set_sources
(
source_density
=
1e-3
)
sim
.
attenuate
()
sim
.
smear_sources
(
np
.
deg2rad
(
3
))
...
...
@@ -437,12 +442,22 @@ class TestSourceBound(unittest.TestCase):
# sim.plot_spectrum()
# sim.plot_distance()
sim
=
SourceBound
(
self
.
nsets
,
1000
)
# sim.set_energy(gamma=-0.96, log10e_min=19.6, log10_cut=18.68, rig_cut=True)
# sim.set_charges(charges={'he': 0.673, 'n': 0.281, 'si': 0.046})
sim
.
set_energy
(
log10e_min
=
19.6
)
sim
.
set_charges
(
'first_minimum_CTD'
)
sim
.
set_sources
(
source_density
=
1e-3
)
sim
.
attenuate
()
sim
.
smear_sources
(
np
.
deg2rad
(
3
))
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
test_05b_second_minimum
(
self
):
sim
=
SourceBound
(
self
.
nsets
,
1000
)
# sim.set_energy(gamma=-2.04, log10e_min=19.6, log10_cut=19.88, rig_cut=True)
# sim.set_charges(charges={'n': 0.798, 'si': 0.202})
sim
.
set_energy
(
log10e_min
=
19.6
)
sim
.
set_charges
(
'second_minimum'
)
sim
.
set_charges
(
'second_minimum
_CTG
'
)
sim
.
set_sources
(
source_density
=
1e-3
)
sim
.
attenuate
()
sim
.
smear_sources
(
np
.
deg2rad
(
3
))
...
...
@@ -453,6 +468,7 @@ class TestSourceBound(unittest.TestCase):
class
TestReweight
(
unittest
.
TestCase
):
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
setUp
(
self
):
self
.
charge
=
{
'h'
:
1
,
'he'
:
2
,
'n'
:
7
,
'si'
:
14
,
'fe'
:
26
}
data
=
np
.
load
(
PATH
+
'/simulation/crpropa3__emin_18.5__emax_21.0__IRB_Gilmore12.npz'
,
allow_pickle
=
True
)
...
...
@@ -460,12 +476,14 @@ class TestReweight(unittest.TestCase):
self
.
log10e_bins
=
data
[
'log10e_bins'
]
self
.
distances
=
data
[
'distances'
]
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
test_01_dimensions
(
self
):
ne
=
self
.
log10e_bins
.
size
-
1
nd
=
self
.
distances
.
size
for
key
in
self
.
charge
:
self
.
assertTrue
(
self
.
fractions
[
key
].
shape
==
(
ne
,
nd
,
5
,
ne
))
@
unittest
.
skipIf
(
sys
.
version_info
<
(
3
,
0
),
"Simulation libraries work only for python 3."
)
def
test_02_no_energy_gain
(
self
):
for
key
in
self
.
charge
:
for
i
,
lge
in
enumerate
(
self
.
log10e_bins
[:
-
1
]):
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment