summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/chroma-cam2
-rwxr-xr-xbin/chroma-sim4
-rw-r--r--chroma/geometry.py28
-rw-r--r--chroma/log.py3
4 files changed, 32 insertions, 5 deletions
diff --git a/bin/chroma-cam b/bin/chroma-cam
index e81469e..25f0eb3 100755
--- a/bin/chroma-cam
+++ b/bin/chroma-cam
@@ -9,6 +9,8 @@ if __name__ == '__main__':
from chroma import view, build, EventViewer
from chroma import mesh_from_stl
from chroma.tools import enable_debug_on_crash
+ from chroma.log import logger, logging
+ logger.setLevel(logging.INFO)
parser = optparse.OptionParser('%prog')
parser.add_option('--debug', dest='debug', action='store_true',
diff --git a/bin/chroma-sim b/bin/chroma-sim
index 0d737c4..7f309de 100755
--- a/bin/chroma-sim
+++ b/bin/chroma-sim
@@ -16,6 +16,10 @@ if __name__ == '__main__':
from chroma.rootimport import ROOT
ROOT.gROOT.SetBatch()
+ from chroma.log import logger, logging
+ logger.setLevel(logging.INFO)
+
+
parser = optparse.OptionParser('%prog <detector>')
parser.add_option('-o', dest='output_filename',
help='output filename', default='out.root')
diff --git a/chroma/geometry.py b/chroma/geometry.py
index 19f27a3..8c97a74 100644
--- a/chroma/geometry.py
+++ b/chroma/geometry.py
@@ -1,11 +1,14 @@
import sys
import os
-import numpy as np
-from chroma.itertoolset import *
-from chroma.tools import timeit, profile_if_possible
from hashlib import md5
import cPickle as pickle
import gzip
+import numpy as np
+import time
+
+from chroma.itertoolset import *
+from chroma.tools import timeit, profile_if_possible
+from chroma.log import logger
# all material/surface properties are interpolated at these
# wavelengths when they are sent to the gpu
@@ -270,6 +273,12 @@ class Geometry(object):
vertices = np.empty((nv[-1],3), dtype=np.float32)
triangles = np.empty((nt[-1],3), dtype=np.uint32)
+
+
+ logger.info('Setting up BVH for detector mesh...')
+ logger.info(' triangles: %d' % len(triangles))
+ logger.info(' vertices: %d' % len(vertices))
+
for i, solid in enumerate(self.solids):
vertices[nv[i]:nv[i+1]] = \
@@ -316,7 +325,7 @@ class Geometry(object):
except IOError:
pass
else:
- #print 'loading cache.'
+ logger.info('Loading BVH from cache.')
data = pickle.load(f)
reorder = data.pop('reorder')
@@ -330,8 +339,14 @@ class Geometry(object):
for key, value in data.iteritems():
setattr(self, key, value)
f.close()
+
+ logger.info(' nodes: %d' % len(self.upper_bounds))
return
+ logger.info('Constructing new BVH from mesh. This may take several minutes.')
+
+ start_time = time.time()
+
zvalues_mesh = morton_order(self.mesh, bits)
reorder = np.argsort(zvalues_mesh)
zvalues_mesh = zvalues_mesh[reorder]
@@ -397,8 +412,11 @@ class Geometry(object):
self.start_node = self.node_map.size - 1
+ logger.info('BVH construction completed in %1.1f seconds.' % (time.time() - start_time))
+ logger.info(' nodes: %d' % len(self.upper_bounds))
+
if use_cache:
- #print 'Writing BVH to cache directory...'
+ logger.info('Writing BVH to ~/.chroma cache directory...')
sys.stdout.flush()
if not os.path.exists(cache_dir):
diff --git a/chroma/log.py b/chroma/log.py
new file mode 100644
index 0000000..4c41bdb
--- /dev/null
+++ b/chroma/log.py
@@ -0,0 +1,3 @@
+import logging
+logging.basicConfig() # Avoid "no handlers could be found" warnings
+logger = logging.getLogger('chroma')