SuperNEMO-DBD / Falaise

Simulation, Reconstruction and Analysis Software for the SuperNEMO Experiment
http://supernemo.org/Falaise
GNU General Public License v3.0
5 stars 27 forks source link

Allow flsimulate to load module plugins #31

Closed pguzowski closed 5 years ago

pguzowski commented 7 years ago

So that for example people can write their own event generators and run them with flsimulate.

The functionality would be similar to that what already exists for flreconstruct.

drbenmorgan commented 7 years ago

Could you outline the uses cases and requirements in a bit more detail please? As #29 and #30 show, event generators can be added easily through config/variants.

What specific event generators are required, and similarly, what other types of module would you want to allow?

pguzowski commented 7 years ago

A reminder that I'm running as a (semi?) end-user, not a developer, I have installed bayeux & falaise with cadfaelbrew (I cannot modify or add any code there), so I want to write my own plugin module as can already be done for flreconstruct.

While tinkering around trying things for #25 I have written two new classes, one extending genbb::i_genbb for the decay generation, and one extending genvtx::i_vertex_generator for the vertex generation. I want to compile these into a standalone library and load them into flsimulate. As mentioned this sort of situation can already be done with flreconstruct.

Other use cases:

These sort of studies cannot be done with single-particle generators or other proposed solutions for #29 or #30. Even producing some sort of generic multi-particle generator would quickly become extremely complex & unwieldy, with respect to energy/angular/timing spectra and correlations.

Ideally you would want (semi?) end-users to write their own generators, or wrap a third-party generator library within the genbb/genvtx context, and load them as a module. If there is a demand for wider collaborative use of these specific cases, these should really be standalone modules downloadable from github, rather than part of the core falaise installation. That way they are not chained to the release cycle of falaise.

drbenmorgan commented 7 years ago

Thanks @pguzowski that illustrates things very clearly!

I think this can be done, though I think the main challenge will be to make this play nicely with the variant/config system. I can dig into this a bit more, together with the simulation and event/vertex generator, to prepare a design.

drbenmorgan commented 5 years ago

Closing in favour of custom simulation module, which can be integrated in flreconstruct and/or Art.