diff options
Diffstat (limited to 'generator/vertex.py')
-rw-r--r-- | generator/vertex.py | 9 |
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 |