diff options
-rwxr-xr-x | bin/chroma-cam | 2 | ||||
-rwxr-xr-x | bin/chroma-sim | 4 | ||||
-rw-r--r-- | chroma/geometry.py | 28 | ||||
-rw-r--r-- | chroma/log.py | 3 |
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') |