Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
km3io
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
km3py
km3io
Merge requests
!26
Gseagen dataformat
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Gseagen dataformat
gseagen-dataformat
into
master
Overview
2
Commits
5
Pipelines
3
Changes
4
Merged
Johannes Schumann
requested to merge
gseagen-dataformat
into
master
5 years ago
Overview
2
Commits
5
Pipelines
3
Changes
1
Expand
Reader for the gSeaGen ROOT output data format
0
0
Merge request reports
Compare
version 2
version 2
c2218913
5 years ago
version 1
6ffe4cda
5 years ago
master (base)
and
latest version
latest version
5b893ea3
5 commits,
5 years ago
version 2
c2218913
4 commits,
5 years ago
version 1
6ffe4cda
3 commits,
5 years ago
Show latest version
1 file
+
0
−
384
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
tests/test_gseagen.py
0 → 100644
+
149
−
0
Options
import
os
import
re
import
unittest
from
km3io.gseagen
import
GSGReader
SAMPLES_DIR
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
"
samples
"
)
GSG_FILE
=
os
.
path
.
join
(
SAMPLES_DIR
,
"
gseagen.root
"
)
GSG_READER
=
GSGReader
(
GSG_FILE
)
class
TestGSGHeader
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
header
=
GSG_READER
.
header
def
test_str_byte_type
(
self
):
assert
isinstance
(
self
.
header
[
'
gSeaGenVer
'
],
str
)
assert
isinstance
(
self
.
header
[
'
GenieVer
'
],
str
)
assert
isinstance
(
self
.
header
[
'
gSeaGenVer
'
],
str
)
assert
isinstance
(
self
.
header
[
'
InpXSecFile
'
],
str
)
assert
isinstance
(
self
.
header
[
'
Flux1
'
],
str
)
assert
isinstance
(
self
.
header
[
'
Flux2
'
],
str
)
def
test_values
(
self
):
assert
self
.
header
[
"
RunNu
"
]
==
1
assert
self
.
header
[
"
RanSeed
"
]
==
3662074
self
.
assertAlmostEqual
(
self
.
header
[
"
NTot
"
],
1000.
)
self
.
assertAlmostEqual
(
self
.
header
[
"
EvMin
"
],
5.
)
self
.
assertAlmostEqual
(
self
.
header
[
"
EvMax
"
],
50.
)
self
.
assertAlmostEqual
(
self
.
header
[
"
CtMin
"
],
-
1.
)
self
.
assertAlmostEqual
(
self
.
header
[
"
CtMax
"
],
1.
)
self
.
assertAlmostEqual
(
self
.
header
[
"
Alpha
"
],
1.4
)
assert
self
.
header
[
"
NBin
"
]
==
1
self
.
assertAlmostEqual
(
self
.
header
[
"
Can1
"
],
0.0
)
self
.
assertAlmostEqual
(
self
.
header
[
"
Can2
"
],
476.5
)
self
.
assertAlmostEqual
(
self
.
header
[
"
Can3
"
],
403.4
)
self
.
assertAlmostEqual
(
self
.
header
[
"
OriginX
"
],
0.0
)
self
.
assertAlmostEqual
(
self
.
header
[
"
OriginY
"
],
0.0
)
self
.
assertAlmostEqual
(
self
.
header
[
"
OriginZ
"
],
0.0
)
self
.
assertAlmostEqual
(
self
.
header
[
"
HRock
"
],
93.03036681
)
self
.
assertAlmostEqual
(
self
.
header
[
"
HSeaWater
"
],
684.39143353
)
self
.
assertAlmostEqual
(
self
.
header
[
"
RVol
"
],
611.29143353
)
self
.
assertAlmostEqual
(
self
.
header
[
"
HBedRock
"
],
0.0
)
self
.
assertAlmostEqual
(
self
.
header
[
"
NAbsLength
"
],
3.0
)
self
.
assertAlmostEqual
(
self
.
header
[
"
AbsLength
"
],
93.33
)
self
.
assertAlmostEqual
(
self
.
header
[
"
SiteDepth
"
],
2425.0
)
self
.
assertAlmostEqual
(
self
.
header
[
"
SiteLatitude
"
],
0.747
)
self
.
assertAlmostEqual
(
self
.
header
[
"
SiteLongitude
"
],
0.10763
)
self
.
assertAlmostEqual
(
self
.
header
[
"
SeaBottomRadius
"
],
6368000.
)
assert
round
(
self
.
header
[
"
GlobalGenWeight
"
]
-
6.26910765e+08
,
0
)
==
0
self
.
assertAlmostEqual
(
self
.
header
[
"
RhoSW
"
],
1.03975
)
self
.
assertAlmostEqual
(
self
.
header
[
"
RhoSR
"
],
2.65
)
self
.
assertAlmostEqual
(
self
.
header
[
"
TGen
"
],
31556926.
)
assert
not
self
.
header
[
"
PropMode
"
]
assert
self
.
header
[
"
NNu
"
]
==
2
self
.
assertListEqual
(
self
.
header
[
"
NuList
"
].
tolist
(),
[
-
14
,
14
])
class
TestGSGEvents
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
events
=
GSG_READER
.
events
def
test_event_single_values
(
self
):
event
=
self
.
events
[
0
]
assert
1
==
event
.
iEvt
self
.
assertAlmostEqual
(
event
.
PScale
,
1.0
)
assert
event
.
TargetA
==
28
assert
event
.
TargetZ
==
14
assert
event
.
InterId
==
2
assert
event
.
ScattId
==
3
self
.
assertAlmostEqual
(
event
.
Bx
,
0.21398980096236023
)
self
.
assertAlmostEqual
(
event
.
By
,
0.7736389792036026
)
assert
event
.
VerInCan
==
0
self
.
assertAlmostEqual
(
event
.
WaterXSec
,
9.814545541159586e-42
)
self
.
assertAlmostEqual
(
event
.
WaterIntLen
,
169191612204.44382
)
self
.
assertAlmostEqual
(
event
.
PEarth
,
0.9998206835107583
)
self
.
assertAlmostEqual
(
event
.
ColumnDepth
,
31352421806833.758
)
self
.
assertAlmostEqual
(
event
.
XSecMean
,
9.49810757204515e-42
)
self
.
assertAlmostEqual
(
event
.
Agen
,
934842.6115446005
)
self
.
assertAlmostEqual
(
event
.
WGen
,
480360599.4207591
)
self
.
assertAlmostEqual
(
event
.
WEvt
,
5.629637364719835
)
self
.
assertAlmostEqual
(
event
.
E_nu
,
29.210801854810974
)
assert
event
.
Pdg_nu
==
-
14
self
.
assertAlmostEqual
(
event
.
Vx_nu
,
202.86806811399845
)
self
.
assertAlmostEqual
(
event
.
Vy_nu
,
226.64032038584787
)
self
.
assertAlmostEqual
(
event
.
Vz_nu
,
-
0.5526929982180058
)
self
.
assertAlmostEqual
(
event
.
Dx_nu
,
-
0.7554430076659393
)
self
.
assertAlmostEqual
(
event
.
Dy_nu
,
0.3034298552575011
)
self
.
assertAlmostEqual
(
event
.
Dz_nu
,
0.5807204018346965
)
self
.
assertAlmostEqual
(
event
.
T_nu
,
0.0
)
self
.
assertAlmostEqual
(
event
.
E_pl
,
6.648776215872709
)
assert
event
.
Pdg_pl
==
-
13
self
.
assertAlmostEqual
(
event
.
Vx_pl
,
202.86806811399845
)
self
.
assertAlmostEqual
(
event
.
Vy_pl
,
226.64032038584787
)
self
.
assertAlmostEqual
(
event
.
Vz_pl
,
-
0.5526929982180058
)
self
.
assertAlmostEqual
(
event
.
Dx_pl
,
-
0.8781745795144783
)
self
.
assertAlmostEqual
(
event
.
Dy_pl
,
0.2818890466120743
)
self
.
assertAlmostEqual
(
event
.
Dz_pl
,
0.3864556550171106
)
self
.
assertAlmostEqual
(
event
.
T_pl
,
0.0
)
assert
event
.
NTracks
==
1
def
test_event_list_values
(
self
):
event
=
self
.
events
[
1
]
self
.
assertListEqual
(
event
.
Id_tr
.
tolist
(),
[
4
,
5
,
10
,
11
,
12
])
self
.
assertListEqual
(
event
.
Pdg_tr
.
tolist
(),
[
22
,
-
13
,
2112
,
-
211
,
111
])
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
E_tr
,
[
0.00618
,
4.88912206
,
2.33667201
,
1.0022909
,
1.17186997
])
]
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
Vx_tr
,
[
-
337.67895799
,
-
337.67895799
,
-
337.67895799
,
-
337.67895799
,
-
337.67895799
])
]
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
Vy_tr
,
[
-
203.90999969
,
-
203.90999969
,
-
203.90999969
,
-
203.90999969
,
-
203.90999969
])
]
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
Vz_tr
,
[
416.08845294
,
416.08845294
,
416.08845294
,
416.08845294
,
416.08845294
])
]
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
Dx_tr
,
[
0.06766196
,
-
0.63563065
,
-
0.70627586
,
-
0.76364544
,
-
0.80562216
])
]
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
Dy_tr
,
[
0.33938809
,
-
0.4846643
,
0.50569058
,
-
0.04136113
,
0.10913917
])
]
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
Dz_tr
,
[
-
0.93820978
,
-
0.6008945
,
-
0.49543056
,
-
0.64430963
,
-
0.58228994
])
]
[
self
.
assertAlmostEqual
(
x
,
y
)
for
x
,
y
in
zip
(
event
.
T_tr
,
5
*
[
0.
])]
Loading