From 7df896b90d3edf69cacadfea93ed158408d68fa7 Mon Sep 17 00:00:00 2001 From: Johannes Schumann <johannes.schumann@fau.de> Date: Fri, 11 Jun 2021 17:45:01 +0200 Subject: [PATCH] Fix for spherical geometry --- km3buu/geometry.py | 2 +- km3buu/tests/test_geometry.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/km3buu/geometry.py b/km3buu/geometry.py index 3414955..fa2fe44 100644 --- a/km3buu/geometry.py +++ b/km3buu/geometry.py @@ -128,7 +128,7 @@ class SphericalVolume(DetectorVolume): return 4 / 3 * np.pi * np.power(self._radius, 3) def random_pos(self): - r = np.power(self._radius, 1 / 3) + r = self._radius * np.power(np.random.random(), 1 / 3) phi = np.random.uniform(0, np.pi) cosTheta = np.random.uniform(-1, 1) pos_x = r * np.cos(phi) * np.sqrt(1 - np.power(cosTheta, 2)) diff --git a/km3buu/tests/test_geometry.py b/km3buu/tests/test_geometry.py index 9894c47..292cac2 100644 --- a/km3buu/tests/test_geometry.py +++ b/km3buu/tests/test_geometry.py @@ -13,6 +13,7 @@ __status__ = "Development" import unittest from km3buu.geometry import * +import numpy as np class TestGeneralGeometry(unittest.TestCase): @@ -38,6 +39,8 @@ class TestSphere(unittest.TestCase): assert pos[0] < 22.0 assert pos[1] < 22.0 assert pos[2] < 22.0 + radius = np.sqrt(np.sum(np.power((np.array(pos) - 2), 2))) + assert radius <= 20 class TestCan(unittest.TestCase): -- GitLab