diff options
-rw-r--r-- | chroma/__init__.py | 2 | ||||
-rw-r--r-- | chroma/camera.py | 10 | ||||
-rw-r--r-- | chroma/likelihood.py | 10 |
3 files changed, 7 insertions, 15 deletions
diff --git a/chroma/__init__.py b/chroma/__init__.py index 6712470..dd7e323 100644 --- a/chroma/__init__.py +++ b/chroma/__init__.py @@ -3,7 +3,6 @@ from chroma import geometry from chroma import event from chroma.io import root from chroma import generator -from chroma.generator import constant_particle_gun from chroma import gpu from chroma import itertoolset from chroma import likelihood @@ -12,6 +11,5 @@ from chroma.demo import optics from chroma import project from chroma import sample from chroma.sim import Simulation -from chroma.likelihood import Likelihood from chroma.stl import mesh_from_stl from chroma import transform diff --git a/chroma/camera.py b/chroma/camera.py index 302bc6f..74ac4ad 100644 --- a/chroma/camera.py +++ b/chroma/camera.py @@ -706,14 +706,8 @@ class EventViewer(Camera): q = self.ev.channels.q # Important: Compute range only with HIT channels - channel_color = map_to_color(q, range=(q[hit].min(),q[hit].max())) - solid_hit = np.zeros(len(self.geometry.mesh.triangles), dtype=np.bool) - solid_color = np.zeros(len(self.geometry.mesh.triangles), dtype=np.uint32) - - solid_hit[self.geometry.channel_index_to_solid_id] = hit - solid_color[self.geometry.channel_index_to_solid_id] = channel_color - - self.gpu_geometry.color_solids(solid_hit, solid_color) + solid_colors = map_to_color(q, range=(q[hit].min(),q[hit].max())) + self.gpu_geometry.color_solids(hit, solid_colors) def process_event(self, event): if event.type == KEYDOWN: diff --git a/chroma/likelihood.py b/chroma/likelihood.py index 22398e3..93a95c3 100644 --- a/chroma/likelihood.py +++ b/chroma/likelihood.py @@ -61,7 +61,7 @@ class Likelihood(object): nreps=nreps, ndaq=ndaq, time_only=self.time_only) - + # Normalize probabilities and put a floor to keep the log finite hit_prob = hitcount.astype(np.float32) / ntotal hit_prob = np.maximum(hit_prob, 0.5 / ntotal) @@ -79,10 +79,10 @@ class Likelihood(object): # NLL calculation: note that negation is at the end # Start with the probabilties of hitting (or not) the channels - hit_channel_prob = np.log(hit_prob[self.event.channels.hit]).sum() + np.log(1.0-hit_prob[~self.event.channels.hit]).sum() + hit_channel_prob = np.log(hit_prob[self.event.channels.hit]).sum() + np.log(1.0-hit_prob[~self.event.channels.hit])[1:].sum() + hit_channel_prob_uncert = ( (ntotal * hit_prob * (1.0 - hit_prob)) / hit_prob**2 ).sum()**0.5 log_likelihood = ufloat((hit_channel_prob, 0.0)) - - #log_likelihood = ufloat((0.0,0.0)) # FIXME: skipping hit/not hit probabilities for now + log_likelihood = ufloat((0.0,0.0)) # FIXME: skipping hit/not hit probabilities for now # Then include the probability densities of the observed # charges and times. @@ -90,7 +90,7 @@ class Likelihood(object): pdf_prob_uncert[self.event.channels.hit])) log_likelihood += unumpy.log(hit_pdf_ufloat).sum() - return -log_likelihood + return -log_likelihood, pdf_prob def setup_kernel(self, vertex_generator, nevals, nreps, ndaq, oversample_factor): bandwidth_generator = islice(vertex_generator, nevals*oversample_factor) |