diff options
author | Stan Seibert <stan@mtrr.org> | 2011-10-03 10:08:08 -0400 |
---|---|---|
committer | Stan Seibert <stan@mtrr.org> | 2011-10-03 10:08:08 -0400 |
commit | 5bc1516d020cd5b304d0364b74b65d6f3239809c (patch) | |
tree | d1557cf6a99ae5bf4ba15cb9c26847c5fef078c4 | |
parent | f546e2ee29db8c62112e9370c9a51947e6f87da1 (diff) | |
download | chroma-5bc1516d020cd5b304d0364b74b65d6f3239809c.tar.gz chroma-5bc1516d020cd5b304d0364b74b65d6f3239809c.tar.bz2 chroma-5bc1516d020cd5b304d0364b74b65d6f3239809c.zip |
Create a chroma.log module that provides the default logger object for
the package.
Rather than use the logging module directly, we wrap it with this to ensure
that logger.basicConfig() is called automatically. All chroma code
should use this logger for printing status information so that it can
be hidden when chroma is part of a bigger application.
-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') |