Coverage for src/km3pipe/tests/test_mc.py: 100%
36 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-03-29 03:15 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2024-03-29 03:15 +0000
1# Filename: test_mc.py
2# pylint: disable=locally-disabled,C0111,R0904,C0103
3import numpy as np
5from km3pipe import Table, Blob
6from km3pipe.testing import TestCase
7from km3pipe.mc import geant2pdg, pdg2name, convert_mc_times_to_jte_times
9__author__ = "Tamas Gal"
10__copyright__ = "Copyright 2016, Tamas Gal and the KM3NeT collaboration."
11__credits__ = []
12__license__ = "MIT"
13__maintainer__ = "Tamas Gal"
14__email__ = "tgal@km3net.de"
15__status__ = "Development"
18class TestMc(TestCase):
19 def test_geant2pdg(self):
20 self.assertEqual(22, geant2pdg(1))
21 self.assertEqual(-13, geant2pdg(5))
23 def test_geant2pdg_returns_0_for_unknown_particle_id(self):
24 self.assertEqual(0, geant2pdg(-999))
26 def test_pdg2name(self):
27 self.assertEqual("mu-", pdg2name(13))
28 self.assertEqual("nu(tau)~", pdg2name(-16))
30 def test_pdg2name_returns_NA_for_unknown_particle(self):
31 self.assertEqual("N/A", pdg2name(0))
34class TestMCConvert(TestCase):
35 def setUp(self):
36 self.event_info = Table(
37 {
38 "timestamp": 1,
39 "nanoseconds": 700000000,
40 "mc_time": 1.74999978e9,
41 }
42 )
44 self.mc_tracks = Table(
45 {
46 "time": 1,
47 }
48 )
50 self.mc_hits = Table(
51 {
52 "time": 30.79,
53 }
54 )
56 self.blob = Blob(
57 {
58 "event_info": self.event_info,
59 "mc_hits": self.mc_hits,
60 "mc_tracks": self.mc_tracks,
61 }
62 )
64 def test_convert_mc_times_to_jte_times(self):
65 times_mc_tracks = convert_mc_times_to_jte_times(
66 self.mc_tracks.time,
67 self.event_info.timestamp * 1e9 + self.event_info.nanoseconds,
68 self.event_info.mc_time,
69 )
70 times_mc_hits = convert_mc_times_to_jte_times(
71 self.mc_hits.time,
72 self.event_info.timestamp * 1e9 + self.event_info.nanoseconds,
73 self.event_info.mc_time,
74 )
76 assert times_mc_tracks is not None
77 assert times_mc_hits is not None
78 print(times_mc_tracks, times_mc_hits)
79 assert np.allclose(times_mc_tracks, 49999781)
80 assert np.allclose(times_mc_hits, 49999810.79)