summaryrefslogtreecommitdiff
path: root/tests/test_propagation.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_propagation.py')
-rw-r--r--tests/test_propagation.py58
1 files changed, 0 insertions, 58 deletions
diff --git a/tests/test_propagation.py b/tests/test_propagation.py
deleted file mode 100644
index 43ecb9b..0000000
--- a/tests/test_propagation.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import unittest
-import numpy as np
-
-from chroma.geometry import Solid, Geometry
-from chroma.make import box
-from chroma.sim import Simulation
-from chroma.optics import vacuum
-from chroma.event import Photons
-
-class TestPropagation(unittest.TestCase):
- def testAbort(self):
- '''Photons that hit a triangle at normal incidence should not abort.
-
- Photons that hit a triangle at exactly normal incidence can sometimes
- produce a dot product that is outside the range allowed by acos().
- Trigger these with axis aligned photons in a box.
- '''
-
- # Setup geometry
- cube = Geometry(vacuum)
- cube.add_solid(Solid(box(100,100,100), vacuum, vacuum))
- cube.pmtids = [0]
- cube.build(use_cache=False)
- sim = Simulation(cube, geant4_processes=0)
-
- # Create initial photons
- nphotons = 10000
- pos = np.tile([0,0,0], (nphotons,1)).astype(np.float32)
- dir = np.tile([0,0,1], (nphotons,1)).astype(np.float32)
- pol = np.zeros_like(pos)
- phi = np.random.uniform(0, 2*np.pi, nphotons).astype(np.float32)
- pol[:,0] = np.cos(phi)
- pol[:,1] = np.sin(phi)
- t = np.zeros(nphotons, dtype=np.float32)
- wavelengths = np.empty(nphotons, np.float32)
- wavelengths.fill(400.0)
-
- photons = Photons(pos=pos, dir=dir, pol=pol, t=t,
- wavelengths=wavelengths)
-
- # First make one step to check for strangeness
- photons_end = sim.simulate([photons], keep_photons_end=True,
- max_steps=1).next().photons_end
-
- self.assertFalse(np.isnan(photons_end.pos).any())
- self.assertFalse(np.isnan(photons_end.dir).any())
- self.assertFalse(np.isnan(photons_end.pol).any())
- self.assertFalse(np.isnan(photons_end.t).any())
- self.assertFalse(np.isnan(photons_end.wavelengths).any())
-
- # Now let it run the usual ten steps
- photons_end = sim.simulate([photons], keep_photons_end=True,
- max_steps=10).next().photons_end
- aborted = (photons_end.flags & (1 << 31)) > 0
- print 'aborted photons: %1.1f' % \
- (float(np.count_nonzero(aborted)) / nphotons)
- self.assertFalse(aborted.any())
-