zfit / phasespace

Phase space generation implemented in TensorFlow
https://phasespace.rtfd.io
BSD 3-Clause "New" or "Revised" License
24 stars 9 forks source link

Add post-generation hooks #27

Closed apuignav closed 5 years ago

apuignav commented 5 years ago

We could add the possibility of running arbitrary "post-generation-hooks" on particles. This would allow to apply smearing or other detector effects à la RapidSim.

jonas-eschle commented 5 years ago

Something towards RapidSim would be great, but I see it rather as a new package or similar. Phasespace does a good job at what it is, building a RapidSim I see more as having a PDF from zfit to even incorporate simple dynamics, the sampling from phasespace and applying effects by hooking into the sampling of the pdf, e.g. with a Function, since we may need this functions anyway.

So having a (inheritable, mixin?) class with preconfigured hooks that takes functions for smearing the sampling etc and applies them

sim = RapidSim(dynamics=dynamics_func, smearing=False, inefficiencies=blabla,...)
sample = sim.sample()

just a thought. But this allows to do pahsespace * matrixelement_squared very simple.

jonas-eschle commented 5 years ago

Rethinking it: If the scope would be limited enough, we could. But I would still prefer a new package. And add probably several "premade" post-effects plus e.g. pre-configured boosting (for the experiments).

So that we can fill the package with content. Not so much about the technicalities, but content. And phasespace is no nicely self contained.

apuignav commented 5 years ago

I was also thinking about it, and I think the hooks are not necessary. Anybody can just run their smearing functions on the output of generate_tensor.

I think I close this, but feel free to reopen if you disagree.