summaryrefslogtreecommitdiff
path: root/optics.py
AgeCommit message (Collapse)Author
2011-08-13For consistency, we should keep the water index of refraction down toStan Seibert
200 nm, like all the other optical properties. It no longer is a speed benefit, anyway.
2011-08-10Use WCSim properties for water with the lbne detectorStan Seibert
2011-08-10Fix misuse of Material.set(), so now wavelengths and values of materialStan Seibert
properties are not transposed.
2011-08-05Cut off the index of refraction for water below 260 nm, which can'tStan Seibert
be observed anyway. Speed increase of 20% in full size LBNE.
2011-08-05Tony discovered that Inf is not a good value for a scattering length. :)Stan Seibert
2011-08-03GEANT4-based photon vertex generator.Stan Seibert
Propagates a particle through a huge volume of some material and harvest the photon vertices that are created for propagation with Chroma. Relies on a patched version of g4py, plus a local boost.python module that is built at import time if needed. (Does not detect changes to rebuild, however.) Chroma materials can now have a density set, as well as an elemental composition (by weight) that is used by this generator.
2011-07-29Add SNO acrylic and LAB+PPO scintillator to detector model.Stan Seibert
2011-07-26added a camera class which is able to render using the simple ray tracer or ↵Anthony LaTorre
the hybrid monte carlo ray tracer in a separate thread. the camera object is initialized by passing a pycuda.driver.Context object and a threading.Lock object; you can then run kernels and copy arrays to and from the device in the same context as that used by the camera by acquiring the lock, calling context.push(), executing the kernel and/or copying arrays, calling context.pop(), and then releasing the lock. fixed mistakes in both build_rgb_lookup() and render() where I had accidently switched the green and blue photons. updated the lbne geometry with the latest specifications. added profiles for the sno pmt and concentrator.
2011-07-19removed STL pmt models; pmt models are now built by calling rotate_extrude() ↵Anthony LaTorre
on a profile of the PMT model (see build_pmt() in solids/pmts.py). triangle intersection now allows one of the two coefficients multiplying the vectors which span the triangle to float slightly negative (up to -EPSILON; EPSILON is defined in src/intersect.h) in order to eliminate rays passing through the line between two triangles. cleaned up a lot of unused code. pulled duplicate code in view() and render() into functions in view.py. in order to allow view.py and render.py to search pre-defined geometries, solids, meshes, etc. without requiring them to be pre-built, pre-defined geometries, solids, meshes, etc. should be returned by a function tagged by the decorator @buildable(identifier) defined in view.py, where identifier is a string used to identify the object as an argument to either view.py or render.py. optical materials and surfaces are now defined in optics.py. added an image directory to save cool screenshots.
2011-07-10added a hybrid monte carlo ray tracing rendering algorithmAnthony LaTorre