summaryrefslogtreecommitdiff
path: root/sim.py
AgeCommit message (Collapse)Author
2011-09-10Add the ability to propagate the same photons multiple times on theStan Seibert
the GPU, and run the DAQ multiple times on the same photons in a likelihood calculation. Propagating the same photons in a warp speeds up propagation by a factor of 3 (and we could do this even better if we wanted), and this improves the statistics in a likelihood evaluation quite a bit. Running the DAQ multiple times is also an inexpensive way to improve the quality of the PDF estimates.
2011-09-08mergeStan Seibert
2011-09-08repeating_iterator needs a number of repsStan Seibert
2011-09-06geometry on the GPU is now a struct created in the GPUGeometry class. coding ↵Anthony LaTorre
style for cuda code is now compliant with python PEP 7 -- Style Guide for C Code.
2011-09-03Simulation.simulate() now accepts event.Vertex objects.Anthony LaTorre
2011-09-02update event structure. break gpu.GPU class into separate smaller ↵Anthony LaTorre
independent classes.
2011-08-25A new PDF evaluation method that does not require storage proportionalStan Seibert
to [number of bins] * [number of PMTs]. Instead we accumulate information as the Monte Carlo runs in order to evaluate the PDFs only at the points required for the likelihood calculation. This new interface has been propagated all the way up from the GPU class through the Simulation class to the Likelihood class. We have preserved the full binned histogram implementation in case we need it in the future.
2011-08-23Add a RootReader class that also functions as an iterator, also createStan Seibert
a simple unit test for event reading and writing. There were several minor I/O bugs that are now fixed! Always test your code, kids!
2011-08-22Expose interface to PDF creation on the GPU in the Simulation class.Stan Seibert
2011-08-21nreps was not actually being used properly by the Simulation classStan Seibert
2011-08-21Add new nreps parameter to Simulation.simulate() to allow the same initial ↵Stan Seibert
photon distributions to be propagated multiple times. Default nreps is 1.
2011-08-20sim.py displays help if run with no argumentsAnthony LaTorre
2011-08-18Actually pass the max_steps variable in sim.propagate_photons to theStan Seibert
GPU class.
2011-08-17Add flag to Simulation() and Geometry.build() to ignore the BVH cache.Stan Seibert
2011-08-16Minor fixes to simulation. Default to 11 bit mode, fix print statement.Stan Seibert
2011-08-16Refactor sim.py into a reusable Simulation class that is called by theStan Seibert
main function(). Also cleanup more event data structure names and add an nphoton value that is preserved even if you prune off all the actual photon vertices.
2011-08-16Seed the numpy random number generator.Stan Seibert
2011-08-16Move general utility functions out of sim.py into tools.Stan Seibert
The enable_debug_on_crash() function sets the exception hook to start up PDB on uncaught exceptions The @profile_if_possible decorator applies the kernprof.py @profile decorator if available (because of profiling in progress), otherwise does nothing.
2011-08-16Epic restructuring of code to switch to a generator-based style ofStan Seibert
event creation. Now we have vertex generators (that produce initial particles), photon generators (that create photons to propagate), and a standard data structure using Python class containers and numpy arrays to hand around the code. Also cleaned up some naming of things before they become conventions.
2011-08-12Allow multiple GEANT4 generator threads to keep up with the speed of photon ↵Stan Seibert
propagation. Defaults to 4.
2011-08-12G4Generator and sim.py can now generate boosted pi0 decays.Stan Seibert
The ROOT data structure has been extended to allow storage of the individual gamma rays as subtracks.
2011-08-12Refactor ROOT file writing into fileio.root.RootWriter classStan Seibert
2011-08-11Make the generator process a "daemon" process, so it will be cleanedStan Seibert
up when the parent exits, and also start the generator process earlier.
2011-08-10Set the GEANT4 and CUDA RNG seeds using current time and process ID if not ↵Stan Seibert
set on command line.
2011-08-10Use WCSim properties for water with the lbne detectorStan Seibert
2011-08-10Rename chroma.io to chroma.fileio to avoid collision with Python package ↵Stan Seibert
named io
2011-08-09Automatically detect kernprof and profile main() in sim.py. Also ↵Stan Seibert
synchronize CUDA calls.
2011-08-09Bug fix that caused sim.py to only record hits on the first 3 PMTsStan Seibert
2011-08-09Store a photon history for each hit channel. If multiple photons hit theStan Seibert
same channel, their history bits are OR'ed together.
2011-08-08Record generated particle information in data structureStan Seibert
2011-08-08Oops. The generator is a process, not a thread.Stan Seibert
2011-08-08Merge Tony's changes.Stan Seibert
2011-08-08Modify data structure to hold photon start and stop vertices separately.Stan Seibert
Add --save-photon-start and --save-photon-stop options to sim.py to save these vertices. Otherwise, only hit information is recorded.
2011-08-08toggle fullscreen mode with f11 key. use matplotlib colors maps defined in ↵Anthony LaTorre
matplotlib.cm.
2011-08-08Switch sim.py to spawn a separate process for GEANT4 and start it generatingStan Seibert
photons while the detector geometry is being built.
2011-08-08add a simple event viewer. view events by running ./camera.py ↵Anthony LaTorre
<detector_name> -i <name_of_io_file>.
2011-08-05Run a short dummy GEANT4 event to force it to load the tables beforeStan Seibert
the timer starts on the real events.
2011-08-05Fix typo in setting direction of particle from sim.py command line.Stan Seibert
2011-08-04First attempt at a simulation program using Chroma.Stan Seibert
Loads a geometry specified on the command line, uses GEANT4 to create initial photon vertices, propagates with Chroma, then writes the DAQ-level hit information out to a ROOT file.