diff options
-rw-r--r-- | __init__.py | 4 | ||||
-rw-r--r-- | detectors/__init__.py | 1 | ||||
-rw-r--r-- | detectors/lbne.py | 40 | ||||
-rw-r--r-- | models/sphere.stl | 870 | ||||
-rw-r--r-- | test.py | 14 | ||||
-rw-r--r-- | transform.py | 10 |
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 @@ -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) |