summaryrefslogtreecommitdiff
path: root/generator/vertex.py
diff options
context:
space:
mode:
Diffstat (limited to 'generator/vertex.py')
-rw-r--r--generator/vertex.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/generator/vertex.py b/generator/vertex.py
index 5626541..450c0e4 100644
--- a/generator/vertex.py
+++ b/generator/vertex.py
@@ -4,9 +4,18 @@ from itertools import izip, count
from chroma.pi0 import pi0_decay
from chroma.event import Event, Subtrack
from chroma.sample import uniform_sphere
+from chroma.itertoolset import repeat_func
# generator parts for use with gun()
+def from_histogram(h):
+ "Yield values drawn randomly from the histogram `h` interpreted as a pdf."
+ pdf = h.hist/h.hist.sum()
+ cdf = np.cumsum(pdf)
+
+ for x in repeat_func(np.random.random_sample):
+ yield h.bincenters[np.searchsorted(cdf, x)]
+
def constant(obj):
while True:
yield obj