summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--__init__.py4
-rw-r--r--detectors/__init__.py1
-rw-r--r--detectors/lbne.py40
-rw-r--r--models/sphere.stl870
-rw-r--r--test.py14
-rw-r--r--transform.py10
6 files changed, 934 insertions, 5 deletions
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..2d61de9
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,4 @@
+import geometry
+import materials
+import transform
+import stl
diff --git a/detectors/__init__.py b/detectors/__init__.py
new file mode 100644
index 0000000..a4fef35
--- /dev/null
+++ b/detectors/__init__.py
@@ -0,0 +1 @@
+from lbne import *
diff --git a/detectors/lbne.py b/detectors/lbne.py
new file mode 100644
index 0000000..7940f43
--- /dev/null
+++ b/detectors/lbne.py
@@ -0,0 +1,40 @@
+import os
+import numpy as np
+import pickle
+from chroma import *
+
+models_directory = os.path.split(os.path.realpath(__file__))[0] + '/../models'
+
+strings = 100
+pmts_per_string = 100
+radius = 50.0
+height = 100.0
+
+def build_lbne(bits=4):
+ lbne = geometry.Geometry()
+
+ sphere_mesh = stl.read_stl(models_directory + '/sphere.stl')
+
+ solids = []
+ for i in range(pmts_per_string):
+ for j in range(strings):
+ sphere = np.copy(sphere_mesh)
+ sphere += (radius,0,i*(height/pmts_per_string))
+ sphere = transform.rotate(sphere, j*2*np.pi/strings, (0,0,1))
+ lbne.add_solid(geometry.Solid(sphere, materials.vacuum, materials.h2o))
+
+ lbne.build(bits)
+
+ return lbne
+
+def cache_lbne(filename):
+ lbne = build_lbne(bits=8)
+ f = open(filename, 'wb')
+ pickle.dump(lbne, f)
+ f.close()
+
+def load_lbne(filename):
+ f = open(filename, 'rb')
+ lbne = pickle.load(filename)
+ f.close()
+ return lbne
diff --git a/models/sphere.stl b/models/sphere.stl
new file mode 100644
index 0000000..f97ebab
--- /dev/null
+++ b/models/sphere.stl
@@ -0,0 +1,870 @@
+solid OpenSCAD_Model
+ facet normal 0.377964 -0.156572 0.912485
+ outer loop
+ vertex 0.020968 -0.020968 0.149079
+ vertex 0.084447 0.000000 0.126383
+ vertex 0.029654 0.000000 0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 0.000000 1.000000
+ outer loop
+ vertex -0.029654 0.000000 0.149079
+ vertex -0.020968 -0.020968 0.149079
+ vertex 0.000000 -0.029654 0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 0.000000 1.000000
+ outer loop
+ vertex 0.029654 0.000000 0.149079
+ vertex -0.029654 0.000000 0.149079
+ vertex 0.020968 -0.020968 0.149079
+ endloop
+ endfacet
+ facet normal -0.000000 0.000000 1.000000
+ outer loop
+ vertex 0.020968 -0.020968 0.149079
+ vertex -0.029654 0.000000 0.149079
+ vertex 0.000000 -0.029654 0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 -0.000000 1.000000
+ outer loop
+ vertex 0.020968 0.020968 0.149079
+ vertex -0.029654 0.000000 0.149079
+ vertex 0.029654 0.000000 0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 -0.000000 1.000000
+ outer loop
+ vertex 0.000000 0.029654 0.149079
+ vertex -0.029654 0.000000 0.149079
+ vertex 0.020968 0.020968 0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 -0.000000 1.000000
+ outer loop
+ vertex -0.020968 0.020968 0.149079
+ vertex -0.029654 0.000000 0.149079
+ vertex 0.000000 0.029654 0.149079
+ endloop
+ endfacet
+ facet normal 0.377951 0.156566 0.912491
+ outer loop
+ vertex 0.020968 0.020968 0.149079
+ vertex 0.029654 0.000000 0.149079
+ vertex 0.059713 0.059713 0.126383
+ endloop
+ endfacet
+ facet normal 0.377964 0.156558 0.912487
+ outer loop
+ vertex 0.029654 0.000000 0.149079
+ vertex 0.084447 0.000000 0.126383
+ vertex 0.059713 0.059713 0.126383
+ endloop
+ endfacet
+ facet normal 0.377960 -0.156557 0.912489
+ outer loop
+ vertex 0.020968 -0.020968 0.149079
+ vertex 0.059713 -0.059713 0.126383
+ vertex 0.084447 0.000000 0.126383
+ endloop
+ endfacet
+ facet normal 0.156566 -0.377951 0.912491
+ outer loop
+ vertex 0.000000 -0.029654 0.149079
+ vertex 0.059713 -0.059713 0.126383
+ vertex 0.020968 -0.020968 0.149079
+ endloop
+ endfacet
+ facet normal 0.678598 -0.281085 0.678598
+ outer loop
+ vertex 0.059713 -0.059713 0.126383
+ vertex 0.126383 0.000000 0.084447
+ vertex 0.084447 0.000000 0.126383
+ endloop
+ endfacet
+ facet normal 0.678590 0.281082 0.678608
+ outer loop
+ vertex 0.059713 0.059713 0.126383
+ vertex 0.084447 0.000000 0.126383
+ vertex 0.089367 0.089367 0.084447
+ endloop
+ endfacet
+ facet normal 0.678600 0.281077 0.678600
+ outer loop
+ vertex 0.084447 0.000000 0.126383
+ vertex 0.126383 0.000000 0.084447
+ vertex 0.089367 0.089367 0.084447
+ endloop
+ endfacet
+ facet normal -0.377951 -0.156566 0.912491
+ outer loop
+ vertex -0.059713 -0.059713 0.126383
+ vertex -0.020968 -0.020968 0.149079
+ vertex -0.029654 0.000000 0.149079
+ endloop
+ endfacet
+ facet normal -0.377964 -0.156558 0.912487
+ outer loop
+ vertex -0.084447 0.000000 0.126383
+ vertex -0.059713 -0.059713 0.126383
+ vertex -0.029654 0.000000 0.149079
+ endloop
+ endfacet
+ facet normal -0.377964 0.156572 0.912485
+ outer loop
+ vertex -0.084447 0.000000 0.126383
+ vertex -0.029654 0.000000 0.149079
+ vertex -0.020968 0.020968 0.149079
+ endloop
+ endfacet
+ facet normal -0.377960 0.156557 0.912489
+ outer loop
+ vertex -0.084447 0.000000 0.126383
+ vertex -0.020968 0.020968 0.149079
+ vertex -0.059713 0.059713 0.126383
+ endloop
+ endfacet
+ facet normal -0.156566 0.377951 0.912491
+ outer loop
+ vertex -0.059713 0.059713 0.126383
+ vertex -0.020968 0.020968 0.149079
+ vertex 0.000000 0.029654 0.149079
+ endloop
+ endfacet
+ facet normal -0.156558 0.377964 0.912487
+ outer loop
+ vertex -0.059713 0.059713 0.126383
+ vertex 0.000000 0.029654 0.149079
+ vertex 0.000000 0.084447 0.126383
+ endloop
+ endfacet
+ facet normal 0.156572 0.377964 0.912485
+ outer loop
+ vertex 0.000000 0.029654 0.149079
+ vertex 0.020968 0.020968 0.149079
+ vertex 0.000000 0.084447 0.126383
+ endloop
+ endfacet
+ facet normal 0.156557 0.377960 0.912489
+ outer loop
+ vertex 0.000000 0.084447 0.126383
+ vertex 0.020968 0.020968 0.149079
+ vertex 0.059713 0.059713 0.126383
+ endloop
+ endfacet
+ facet normal 0.156558 -0.377964 0.912487
+ outer loop
+ vertex 0.000000 -0.084447 0.126383
+ vertex 0.059713 -0.059713 0.126383
+ vertex 0.000000 -0.029654 0.149079
+ endloop
+ endfacet
+ facet normal -0.156572 -0.377964 0.912485
+ outer loop
+ vertex -0.020968 -0.020968 0.149079
+ vertex 0.000000 -0.084447 0.126383
+ vertex 0.000000 -0.029654 0.149079
+ endloop
+ endfacet
+ facet normal -0.156557 -0.377960 0.912489
+ outer loop
+ vertex -0.059713 -0.059713 0.126383
+ vertex 0.000000 -0.084447 0.126383
+ vertex -0.020968 -0.020968 0.149079
+ endloop
+ endfacet
+ facet normal 0.281085 0.678598 0.678598
+ outer loop
+ vertex 0.000000 0.084447 0.126383
+ vertex 0.059713 0.059713 0.126383
+ vertex 0.000000 0.126383 0.084447
+ endloop
+ endfacet
+ facet normal 0.281075 0.678594 0.678606
+ outer loop
+ vertex 0.000000 0.126383 0.084447
+ vertex 0.059713 0.059713 0.126383
+ vertex 0.089367 0.089367 0.084447
+ endloop
+ endfacet
+ facet normal 0.678594 -0.281075 0.678606
+ outer loop
+ vertex 0.059713 -0.059713 0.126383
+ vertex 0.089367 -0.089367 0.084447
+ vertex 0.126383 0.000000 0.084447
+ endloop
+ endfacet
+ facet normal 0.281082 -0.678590 0.678608
+ outer loop
+ vertex 0.000000 -0.084447 0.126383
+ vertex 0.089367 -0.089367 0.084447
+ vertex 0.059713 -0.059713 0.126383
+ endloop
+ endfacet
+ facet normal 0.862859 -0.357398 0.357408
+ outer loop
+ vertex 0.089367 -0.089367 0.084447
+ vertex 0.149079 0.000000 0.029654
+ vertex 0.126383 0.000000 0.084447
+ endloop
+ endfacet
+ facet normal 0.862864 0.357400 0.357396
+ outer loop
+ vertex 0.089367 0.089367 0.084447
+ vertex 0.126383 0.000000 0.084447
+ vertex 0.105415 0.105415 0.029654
+ endloop
+ endfacet
+ facet normal 0.862857 0.357404 0.357407
+ outer loop
+ vertex 0.105415 0.105415 0.029654
+ vertex 0.126383 0.000000 0.084447
+ vertex 0.149079 0.000000 0.029654
+ endloop
+ endfacet
+ facet normal 0.357398 0.862859 0.357408
+ outer loop
+ vertex 0.000000 0.126383 0.084447
+ vertex 0.089367 0.089367 0.084447
+ vertex 0.000000 0.149079 0.029654
+ endloop
+ endfacet
+ facet normal 0.357406 0.862861 0.357397
+ outer loop
+ vertex 0.000000 0.149079 0.029654
+ vertex 0.089367 0.089367 0.084447
+ vertex 0.105415 0.105415 0.029654
+ endloop
+ endfacet
+ facet normal -0.281085 -0.678598 0.678598
+ outer loop
+ vertex -0.059713 -0.059713 0.126383
+ vertex 0.000000 -0.126383 0.084447
+ vertex 0.000000 -0.084447 0.126383
+ endloop
+ endfacet
+ facet normal -0.281075 -0.678594 0.678606
+ outer loop
+ vertex -0.089367 -0.089367 0.084447
+ vertex 0.000000 -0.126383 0.084447
+ vertex -0.059713 -0.059713 0.126383
+ endloop
+ endfacet
+ facet normal -0.678590 -0.281082 0.678608
+ outer loop
+ vertex -0.089367 -0.089367 0.084447
+ vertex -0.059713 -0.059713 0.126383
+ vertex -0.084447 0.000000 0.126383
+ endloop
+ endfacet
+ facet normal -0.678600 -0.281077 0.678600
+ outer loop
+ vertex -0.126383 0.000000 0.084447
+ vertex -0.089367 -0.089367 0.084447
+ vertex -0.084447 0.000000 0.126383
+ endloop
+ endfacet
+ facet normal -0.678598 0.281085 0.678598
+ outer loop
+ vertex -0.126383 0.000000 0.084447
+ vertex -0.084447 0.000000 0.126383
+ vertex -0.059713 0.059713 0.126383
+ endloop
+ endfacet
+ facet normal -0.678594 0.281075 0.678606
+ outer loop
+ vertex -0.126383 0.000000 0.084447
+ vertex -0.059713 0.059713 0.126383
+ vertex -0.089367 0.089367 0.084447
+ endloop
+ endfacet
+ facet normal -0.281082 0.678590 0.678608
+ outer loop
+ vertex -0.089367 0.089367 0.084447
+ vertex -0.059713 0.059713 0.126383
+ vertex 0.000000 0.084447 0.126383
+ endloop
+ endfacet
+ facet normal -0.281077 0.678600 0.678600
+ outer loop
+ vertex -0.089367 0.089367 0.084447
+ vertex 0.000000 0.084447 0.126383
+ vertex 0.000000 0.126383 0.084447
+ endloop
+ endfacet
+ facet normal 0.281077 -0.678600 0.678600
+ outer loop
+ vertex 0.000000 -0.126383 0.084447
+ vertex 0.089367 -0.089367 0.084447
+ vertex 0.000000 -0.084447 0.126383
+ endloop
+ endfacet
+ facet normal -0.357400 0.862864 0.357396
+ outer loop
+ vertex -0.105415 0.105415 0.029654
+ vertex -0.089367 0.089367 0.084447
+ vertex 0.000000 0.126383 0.084447
+ endloop
+ endfacet
+ facet normal -0.357404 0.862857 0.357407
+ outer loop
+ vertex -0.105415 0.105415 0.029654
+ vertex 0.000000 0.126383 0.084447
+ vertex 0.000000 0.149079 0.029654
+ endloop
+ endfacet
+ facet normal 0.862861 -0.357406 0.357397
+ outer loop
+ vertex 0.089367 -0.089367 0.084447
+ vertex 0.105415 -0.105415 0.029654
+ vertex 0.149079 0.000000 0.029654
+ endloop
+ endfacet
+ facet normal 0.357400 -0.862864 0.357396
+ outer loop
+ vertex 0.000000 -0.126383 0.084447
+ vertex 0.105415 -0.105415 0.029654
+ vertex 0.089367 -0.089367 0.084447
+ endloop
+ endfacet
+ facet normal 0.923881 -0.382681 0.000000
+ outer loop
+ vertex 0.105415 -0.105415 -0.029654
+ vertex 0.149079 0.000000 -0.029654
+ vertex 0.149079 0.000000 0.029654
+ endloop
+ endfacet
+ facet normal 0.923881 -0.382681 0.000000
+ outer loop
+ vertex 0.105415 -0.105415 0.029654
+ vertex 0.105415 -0.105415 -0.029654
+ vertex 0.149079 0.000000 0.029654
+ endloop
+ endfacet
+ facet normal 0.923881 0.382681 0.000000
+ outer loop
+ vertex 0.105415 0.105415 -0.029654
+ vertex 0.105415 0.105415 0.029654
+ vertex 0.149079 0.000000 0.029654
+ endloop
+ endfacet
+ facet normal 0.923881 0.382681 0.000000
+ outer loop
+ vertex 0.149079 0.000000 -0.029654
+ vertex 0.105415 0.105415 -0.029654
+ vertex 0.149079 0.000000 0.029654
+ endloop
+ endfacet
+ facet normal 0.382681 0.923881 -0.000000
+ outer loop
+ vertex 0.000000 0.149079 0.029654
+ vertex 0.105415 0.105415 0.029654
+ vertex 0.000000 0.149079 -0.029654
+ endloop
+ endfacet
+ facet normal 0.382681 0.923881 0.000000
+ outer loop
+ vertex 0.000000 0.149079 -0.029654
+ vertex 0.105415 0.105415 0.029654
+ vertex 0.105415 0.105415 -0.029654
+ endloop
+ endfacet
+ facet normal -0.382681 0.923881 0.000000
+ outer loop
+ vertex -0.105415 0.105415 0.029654
+ vertex 0.000000 0.149079 0.029654
+ vertex -0.105415 0.105415 -0.029654
+ endloop
+ endfacet
+ facet normal -0.382681 0.923881 0.000000
+ outer loop
+ vertex -0.105415 0.105415 -0.029654
+ vertex 0.000000 0.149079 0.029654
+ vertex 0.000000 0.149079 -0.029654
+ endloop
+ endfacet
+ facet normal 0.357404 -0.862857 0.357407
+ outer loop
+ vertex 0.000000 -0.149079 0.029654
+ vertex 0.105415 -0.105415 0.029654
+ vertex 0.000000 -0.126383 0.084447
+ endloop
+ endfacet
+ facet normal -0.357398 -0.862859 0.357408
+ outer loop
+ vertex -0.089367 -0.089367 0.084447
+ vertex 0.000000 -0.149079 0.029654
+ vertex 0.000000 -0.126383 0.084447
+ endloop
+ endfacet
+ facet normal -0.357406 -0.862861 0.357397
+ outer loop
+ vertex -0.105415 -0.105415 0.029654
+ vertex 0.000000 -0.149079 0.029654
+ vertex -0.089367 -0.089367 0.084447
+ endloop
+ endfacet
+ facet normal -0.862864 -0.357400 0.357396
+ outer loop
+ vertex -0.126383 0.000000 0.084447
+ vertex -0.105415 -0.105415 0.029654
+ vertex -0.089367 -0.089367 0.084447
+ endloop
+ endfacet
+ facet normal -0.862857 -0.357404 0.357407
+ outer loop
+ vertex -0.149079 0.000000 0.029654
+ vertex -0.105415 -0.105415 0.029654
+ vertex -0.126383 0.000000 0.084447
+ endloop
+ endfacet
+ facet normal -0.862859 0.357398 0.357408
+ outer loop
+ vertex -0.149079 0.000000 0.029654
+ vertex -0.126383 0.000000 0.084447
+ vertex -0.089367 0.089367 0.084447
+ endloop
+ endfacet
+ facet normal -0.862861 0.357406 0.357397
+ outer loop
+ vertex -0.149079 0.000000 0.029654
+ vertex -0.089367 0.089367 0.084447
+ vertex -0.105415 0.105415 0.029654
+ endloop
+ endfacet
+ facet normal -0.923881 0.382681 0.000000
+ outer loop
+ vertex -0.149079 0.000000 0.029654
+ vertex -0.105415 0.105415 0.029654
+ vertex -0.149079 0.000000 -0.029654
+ endloop
+ endfacet
+ facet normal -0.923881 0.382681 0.000000
+ outer loop
+ vertex -0.149079 0.000000 -0.029654
+ vertex -0.105415 0.105415 0.029654
+ vertex -0.105415 0.105415 -0.029654
+ endloop
+ endfacet
+ facet normal 0.382681 -0.923881 0.000000
+ outer loop
+ vertex 0.000000 -0.149079 -0.029654
+ vertex 0.105415 -0.105415 -0.029654
+ vertex 0.105415 -0.105415 0.029654
+ endloop
+ endfacet
+ facet normal 0.382681 -0.923881 0.000000
+ outer loop
+ vertex 0.000000 -0.149079 0.029654
+ vertex 0.000000 -0.149079 -0.029654
+ vertex 0.105415 -0.105415 0.029654
+ endloop
+ endfacet
+ facet normal 0.862857 -0.357404 -0.357407
+ outer loop
+ vertex 0.105415 -0.105415 -0.029654
+ vertex 0.126383 0.000000 -0.084447
+ vertex 0.149079 0.000000 -0.029654
+ endloop
+ endfacet
+ facet normal 0.862864 -0.357400 -0.357396
+ outer loop
+ vertex 0.089367 -0.089367 -0.084447
+ vertex 0.126383 0.000000 -0.084447
+ vertex 0.105415 -0.105415 -0.029654
+ endloop
+ endfacet
+ facet normal 0.357406 -0.862861 -0.357397
+ outer loop
+ vertex 0.000000 -0.149079 -0.029654
+ vertex 0.089367 -0.089367 -0.084447
+ vertex 0.105415 -0.105415 -0.029654
+ endloop
+ endfacet
+ facet normal 0.862861 0.357406 -0.357397
+ outer loop
+ vertex 0.089367 0.089367 -0.084447
+ vertex 0.105415 0.105415 -0.029654
+ vertex 0.149079 0.000000 -0.029654
+ endloop
+ endfacet
+ facet normal 0.862859 0.357398 -0.357408
+ outer loop
+ vertex 0.089367 0.089367 -0.084447
+ vertex 0.149079 0.000000 -0.029654
+ vertex 0.126383 0.000000 -0.084447
+ endloop
+ endfacet
+ facet normal 0.357404 0.862857 -0.357407
+ outer loop
+ vertex 0.000000 0.126383 -0.084447
+ vertex 0.000000 0.149079 -0.029654
+ vertex 0.105415 0.105415 -0.029654
+ endloop
+ endfacet
+ facet normal 0.357400 0.862864 -0.357396
+ outer loop
+ vertex 0.000000 0.126383 -0.084447
+ vertex 0.105415 0.105415 -0.029654
+ vertex 0.089367 0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal -0.357406 0.862861 -0.357397
+ outer loop
+ vertex -0.105415 0.105415 -0.029654
+ vertex 0.000000 0.149079 -0.029654
+ vertex -0.089367 0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal -0.357398 0.862859 -0.357408
+ outer loop
+ vertex -0.089367 0.089367 -0.084447
+ vertex 0.000000 0.149079 -0.029654
+ vertex 0.000000 0.126383 -0.084447
+ endloop
+ endfacet
+ facet normal -0.862857 0.357404 -0.357407
+ outer loop
+ vertex -0.149079 0.000000 -0.029654
+ vertex -0.105415 0.105415 -0.029654
+ vertex -0.126383 0.000000 -0.084447
+ endloop
+ endfacet
+ facet normal -0.862864 0.357400 -0.357396
+ outer loop
+ vertex -0.126383 0.000000 -0.084447
+ vertex -0.105415 0.105415 -0.029654
+ vertex -0.089367 0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal -0.382681 -0.923881 0.000000
+ outer loop
+ vertex -0.105415 -0.105415 -0.029654
+ vertex 0.000000 -0.149079 -0.029654
+ vertex 0.000000 -0.149079 0.029654
+ endloop
+ endfacet
+ facet normal -0.382681 -0.923881 0.000000
+ outer loop
+ vertex -0.105415 -0.105415 0.029654
+ vertex -0.105415 -0.105415 -0.029654
+ vertex 0.000000 -0.149079 0.029654
+ endloop
+ endfacet
+ facet normal -0.923881 -0.382681 -0.000000
+ outer loop
+ vertex -0.105415 -0.105415 -0.029654
+ vertex -0.105415 -0.105415 0.029654
+ vertex -0.149079 0.000000 -0.029654
+ endloop
+ endfacet
+ facet normal -0.923881 -0.382681 -0.000000
+ outer loop
+ vertex -0.149079 0.000000 -0.029654
+ vertex -0.105415 -0.105415 0.029654
+ vertex -0.149079 0.000000 0.029654
+ endloop
+ endfacet
+ facet normal -0.862861 -0.357406 -0.357397
+ outer loop
+ vertex -0.149079 0.000000 -0.029654
+ vertex -0.089367 -0.089367 -0.084447
+ vertex -0.105415 -0.105415 -0.029654
+ endloop
+ endfacet
+ facet normal -0.862859 -0.357398 -0.357408
+ outer loop
+ vertex -0.149079 0.000000 -0.029654
+ vertex -0.126383 0.000000 -0.084447
+ vertex -0.089367 -0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal 0.357398 -0.862859 -0.357408
+ outer loop
+ vertex 0.000000 -0.149079 -0.029654
+ vertex 0.000000 -0.126383 -0.084447
+ vertex 0.089367 -0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal -0.357404 -0.862857 -0.357407
+ outer loop
+ vertex -0.105415 -0.105415 -0.029654
+ vertex 0.000000 -0.126383 -0.084447
+ vertex 0.000000 -0.149079 -0.029654
+ endloop
+ endfacet
+ facet normal 0.678600 -0.281077 -0.678600
+ outer loop
+ vertex 0.084447 0.000000 -0.126383
+ vertex 0.126383 0.000000 -0.084447
+ vertex 0.089367 -0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal 0.678594 0.281075 -0.678606
+ outer loop
+ vertex 0.059713 0.059713 -0.126383
+ vertex 0.089367 0.089367 -0.084447
+ vertex 0.126383 0.000000 -0.084447
+ endloop
+ endfacet
+ facet normal 0.678598 0.281085 -0.678598
+ outer loop
+ vertex 0.059713 0.059713 -0.126383
+ vertex 0.126383 0.000000 -0.084447
+ vertex 0.084447 0.000000 -0.126383
+ endloop
+ endfacet
+ facet normal 0.678590 -0.281082 -0.678608
+ outer loop
+ vertex 0.059713 -0.059713 -0.126383
+ vertex 0.084447 0.000000 -0.126383
+ vertex 0.089367 -0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal 0.281075 -0.678594 -0.678606
+ outer loop
+ vertex 0.000000 -0.126383 -0.084447
+ vertex 0.059713 -0.059713 -0.126383
+ vertex 0.089367 -0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal 0.281077 0.678600 -0.678600
+ outer loop
+ vertex 0.000000 0.084447 -0.126383
+ vertex 0.000000 0.126383 -0.084447
+ vertex 0.089367 0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal 0.281082 0.678590 -0.678608
+ outer loop
+ vertex 0.000000 0.084447 -0.126383
+ vertex 0.089367 0.089367 -0.084447
+ vertex 0.059713 0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal -0.281075 0.678594 -0.678606
+ outer loop
+ vertex -0.089367 0.089367 -0.084447
+ vertex 0.000000 0.126383 -0.084447
+ vertex -0.059713 0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal -0.281085 0.678598 -0.678598
+ outer loop
+ vertex -0.059713 0.059713 -0.126383
+ vertex 0.000000 0.126383 -0.084447
+ vertex 0.000000 0.084447 -0.126383
+ endloop
+ endfacet
+ facet normal -0.678600 0.281077 -0.678600
+ outer loop
+ vertex -0.126383 0.000000 -0.084447
+ vertex -0.089367 0.089367 -0.084447
+ vertex -0.084447 0.000000 -0.126383
+ endloop
+ endfacet
+ facet normal -0.678590 0.281082 -0.678608
+ outer loop
+ vertex -0.089367 0.089367 -0.084447
+ vertex -0.059713 0.059713 -0.126383
+ vertex -0.084447 0.000000 -0.126383
+ endloop
+ endfacet
+ facet normal -0.678594 -0.281075 -0.678606
+ outer loop
+ vertex -0.126383 0.000000 -0.084447
+ vertex -0.059713 -0.059713 -0.126383
+ vertex -0.089367 -0.089367 -0.084447
+ endloop
+ endfacet
+ facet normal -0.678598 -0.281085 -0.678598
+ outer loop
+ vertex -0.126383 0.000000 -0.084447
+ vertex -0.084447 0.000000 -0.126383
+ vertex -0.059713 -0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal -0.357400 -0.862864 -0.357396
+ outer loop
+ vertex -0.105415 -0.105415 -0.029654
+ vertex -0.089367 -0.089367 -0.084447
+ vertex 0.000000 -0.126383 -0.084447
+ endloop
+ endfacet
+ facet normal -0.281077 -0.678600 -0.678600
+ outer loop
+ vertex -0.089367 -0.089367 -0.084447
+ vertex 0.000000 -0.084447 -0.126383
+ vertex 0.000000 -0.126383 -0.084447
+ endloop
+ endfacet
+ facet normal -0.281082 -0.678590 -0.678608
+ outer loop
+ vertex -0.089367 -0.089367 -0.084447
+ vertex -0.059713 -0.059713 -0.126383
+ vertex 0.000000 -0.084447 -0.126383
+ endloop
+ endfacet
+ facet normal 0.281085 -0.678598 -0.678598
+ outer loop
+ vertex 0.000000 -0.126383 -0.084447
+ vertex 0.000000 -0.084447 -0.126383
+ vertex 0.059713 -0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal 0.377964 -0.156558 -0.912487
+ outer loop
+ vertex 0.029654 0.000000 -0.149079
+ vertex 0.084447 0.000000 -0.126383
+ vertex 0.059713 -0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal 0.377960 0.156557 -0.912489
+ outer loop
+ vertex 0.020968 0.020968 -0.149079
+ vertex 0.059713 0.059713 -0.126383
+ vertex 0.084447 0.000000 -0.126383
+ endloop
+ endfacet
+ facet normal 0.377964 0.156572 -0.912485
+ outer loop
+ vertex 0.020968 0.020968 -0.149079
+ vertex 0.084447 0.000000 -0.126383
+ vertex 0.029654 0.000000 -0.149079
+ endloop
+ endfacet
+ facet normal 0.156558 0.377964 -0.912487
+ outer loop
+ vertex 0.000000 0.029654 -0.149079
+ vertex 0.000000 0.084447 -0.126383
+ vertex 0.059713 0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal 0.156566 0.377951 -0.912491
+ outer loop
+ vertex 0.000000 0.029654 -0.149079
+ vertex 0.059713 0.059713 -0.126383
+ vertex 0.020968 0.020968 -0.149079
+ endloop
+ endfacet
+ facet normal 0.377951 -0.156566 -0.912491
+ outer loop
+ vertex 0.020968 -0.020968 -0.149079
+ vertex 0.029654 0.000000 -0.149079
+ vertex 0.059713 -0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal 0.156557 -0.377960 -0.912489
+ outer loop
+ vertex 0.000000 -0.084447 -0.126383
+ vertex 0.020968 -0.020968 -0.149079
+ vertex 0.059713 -0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal -0.156557 0.377960 -0.912489
+ outer loop
+ vertex -0.059713 0.059713 -0.126383
+ vertex 0.000000 0.084447 -0.126383
+ vertex -0.020968 0.020968 -0.149079
+ endloop
+ endfacet
+ facet normal -0.156572 0.377964 -0.912485
+ outer loop
+ vertex -0.020968 0.020968 -0.149079
+ vertex 0.000000 0.084447 -0.126383
+ vertex 0.000000 0.029654 -0.149079
+ endloop
+ endfacet
+ facet normal -0.377964 0.156558 -0.912487
+ outer loop
+ vertex -0.084447 0.000000 -0.126383
+ vertex -0.059713 0.059713 -0.126383
+ vertex -0.029654 0.000000 -0.149079
+ endloop
+ endfacet
+ facet normal -0.377951 0.156566 -0.912491
+ outer loop
+ vertex -0.059713 0.059713 -0.126383
+ vertex -0.020968 0.020968 -0.149079
+ vertex -0.029654 0.000000 -0.149079
+ endloop
+ endfacet
+ facet normal -0.377960 -0.156557 -0.912489
+ outer loop
+ vertex -0.084447 0.000000 -0.126383
+ vertex -0.020968 -0.020968 -0.149079
+ vertex -0.059713 -0.059713 -0.126383
+ endloop
+ endfacet
+ facet normal -0.377964 -0.156572 -0.912485
+ outer loop
+ vertex -0.084447 0.000000 -0.126383
+ vertex -0.029654 0.000000 -0.149079
+ vertex -0.020968 -0.020968 -0.149079
+ endloop
+ endfacet
+ facet normal -0.156558 -0.377964 -0.912487
+ outer loop
+ vertex -0.059713 -0.059713 -0.126383
+ vertex 0.000000 -0.029654 -0.149079
+ vertex 0.000000 -0.084447 -0.126383
+ endloop
+ endfacet
+ facet normal -0.156566 -0.377951 -0.912491
+ outer loop
+ vertex -0.059713 -0.059713 -0.126383
+ vertex -0.020968 -0.020968 -0.149079
+ vertex 0.000000 -0.029654 -0.149079
+ endloop
+ endfacet
+ facet normal 0.156572 -0.377964 -0.912485
+ outer loop
+ vertex 0.000000 -0.084447 -0.126383
+ vertex 0.000000 -0.029654 -0.149079
+ vertex 0.020968 -0.020968 -0.149079
+ endloop
+ endfacet
+ facet normal -0.000000 0.000000 -1.000000
+ outer loop
+ vertex -0.020968 0.020968 -0.149079
+ vertex 0.000000 0.029654 -0.149079
+ vertex -0.029654 0.000000 -0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 0.000000 -1.000000
+ outer loop
+ vertex -0.029654 0.000000 -0.149079
+ vertex 0.000000 0.029654 -0.149079
+ vertex 0.020968 0.020968 -0.149079
+ endloop
+ endfacet
+ facet normal -0.000000 0.000000 -1.000000
+ outer loop
+ vertex -0.029654 0.000000 -0.149079
+ vertex 0.020968 0.020968 -0.149079
+ vertex 0.029654 0.000000 -0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 0.000000 -1.000000
+ outer loop
+ vertex -0.029654 0.000000 -0.149079
+ vertex 0.029654 0.000000 -0.149079
+ vertex 0.020968 -0.020968 -0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 0.000000 -1.000000
+ outer loop
+ vertex -0.029654 0.000000 -0.149079
+ vertex 0.020968 -0.020968 -0.149079
+ vertex 0.000000 -0.029654 -0.149079
+ endloop
+ endfacet
+ facet normal 0.000000 0.000000 -1.000000
+ outer loop
+ vertex -0.029654 0.000000 -0.149079
+ vertex 0.000000 -0.029654 -0.149079
+ vertex -0.020968 -0.020968 -0.149079
+ endloop
+ endfacet
+endsolid OpenSCAD_Model
diff --git a/test.py b/test.py
index a484032..157e5a8 100644
--- a/test.py
+++ b/test.py
@@ -39,10 +39,14 @@ origin, direction = make_vector(origin), make_vector(direction)
origin_gpu = cuda.to_device(origin)
direction_gpu = cuda.to_device(direction)
-solid = Solid(read_stl('models/tie_interceptor6.stl'), vacuum, vacuum)
-geometry = Geometry()
-geometry.add_solid(solid)
-geometry.build()
+#solid = Solid(read_stl('models/lionsolid.stl'), vacuum, vacuum)
+#geometry = Geometry()
+#geometry.add_solid(solid)
+#geometry.build(bits=3)
+
+import detectors
+
+geometry = detectors.build_lbne()
mesh = geometry.mesh
mesh = mesh.reshape(mesh.shape[0]*3,3)
@@ -84,7 +88,7 @@ states = np.empty(width*height, dtype=np.int32)
states_gpu = cuda.to_device(states)
block_size = 64
-for i in range(100):
+for i in range(10000):
rotate(np.int32(origin.size), origin_gpu, np.float32(np.pi/100), gpuarray.vec.make_float3(0,0,1), block=(block_size,1,1), grid=(width*height//block_size+1,1))
rotate(np.int32(direction.size), direction_gpu, np.float32(np.pi/100), gpuarray.vec.make_float3(0,0,1), block=(block_size,1,1), grid=(width*height//block_size+1,1))
diff --git a/transform.py b/transform.py
new file mode 100644
index 0000000..4e5eb9c
--- /dev/null
+++ b/transform.py
@@ -0,0 +1,10 @@
+import numpy as np
+
+def rotate(x, phi, n):
+ x = np.asarray(x)
+ n = np.asarray(n)
+
+ r = np.cos(phi)*np.identity(3) + (1-np.cos(phi))*np.outer(n,n) + \
+ np.sin(phi)*np.array([[0,n[2],-n[1]],[-n[2],0,n[0]],[n[1],-n[0],0]])
+
+ return np.inner(x,r)