diff options
author | Anthony LaTorre <tlatorre9@gmail.com> | 2011-09-10 15:39:31 -0400 |
---|---|---|
committer | Anthony LaTorre <tlatorre9@gmail.com> | 2011-09-10 15:39:31 -0400 |
commit | 9ab99907d1969822285741256384ad853ca859b8 (patch) | |
tree | a8c5bf2129387c9ba4515e57bc623dad032c67ea /sim.py | |
parent | 2b557d1cb46fcd12271bedcc97969b51a46b65ee (diff) | |
parent | c7144c23df44907327f5b112e62904ed244f9b27 (diff) | |
download | chroma-9ab99907d1969822285741256384ad853ca859b8.tar.gz chroma-9ab99907d1969822285741256384ad853ca859b8.tar.bz2 chroma-9ab99907d1969822285741256384ad853ca859b8.zip |
merge
Diffstat (limited to 'sim.py')
-rwxr-xr-x | sim.py | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -119,7 +119,7 @@ class Simulation(object): return self.gpu_pdf.get_pdfs() - def eval_pdf(self, event_channels, iterable, min_twidth, trange, min_qwidth, qrange, min_bin_content=20, nreps=1, time_only=True): + def eval_pdf(self, event_channels, iterable, min_twidth, trange, min_qwidth, qrange, min_bin_content=20, nreps=1, ndaq=1, time_only=True): """Returns tuple: 1D array of channel hit counts, 1D array of PDF probability densities.""" self.gpu_pdf.setup_pdf_eval(event_channels.hit, @@ -137,16 +137,15 @@ class Simulation(object): if isinstance(first_element, event.Event): iterable = self.photon_generator.generate_events(iterable) - if nreps > 1: - iterable = repeating_iterator(iterable, nreps) - for ev in iterable: - gpu_photons = gpu.GPUPhotons(ev.photons_beg) + gpu_photons = gpu.GPUPhotons(ev.photons_beg, ncopies=nreps) gpu_photons.propagate(self.gpu_geometry, self.rng_states, nthreads_per_block=self.nthreads_per_block, max_blocks=self.max_blocks) - gpu_channels = self.gpu_daq.acquire(gpu_photons, self.rng_states, nthreads_per_block=self.nthreads_per_block, max_blocks=self.max_blocks) - self.gpu_pdf.accumulate_pdf_eval(gpu_channels) + for gpu_photon_slice in gpu_photons.iterate_copies(): + for idaq in xrange(ndaq): + gpu_channels = self.gpu_daq.acquire(gpu_photon_slice, self.rng_states, nthreads_per_block=self.nthreads_per_block, max_blocks=self.max_blocks) + self.gpu_pdf.accumulate_pdf_eval(gpu_channels) return self.gpu_pdf.get_pdf_eval() |