AmpGen into AmpGen development branch
These are fixes for AmpGen, mostly focused on the stand-alone build system, LLVM compatibility, and macOS support.
Fixes:
- Lots of CMake fixes, adds symbolic links to options files
- Printout fixes, debug can be activated from
CMakeLists_local
-
CLI11 is used for Generator, same syntax but now supports
-h
and fewer segfaults - OpenMP is now optional
- Print statements now flush, causing the final error message to be printed on a crash
- Lots of cleanups from LLVM, such as missing includes, mismatched definitions, invalid definitions
-
prob_unnormalised
was missing from FixedLibGenerator
Merge request reports
Activity
Nice work.
One minor thing, AmpGen now has better CLI support of its own such that one can overwrite any parameter in the options file from the command line - this isn't nearly as feature rich as CLI11 by the look of it but I'd rather stick with this option as it gives a more uniform interface.
How do you override parameters from command line? I didn't change the interface for Generator, those used to be segfaults if three command line args were not given. I noticed that something else seemed to be used in
Fitter.cpp
. I'll re-add the xROOTd part optionally, I couldn't see where it was used.Yep, the applications aren't really made with user friendliness (or some may argue, basic sanity) in mind. I need to update the apps to use this new CLI feature (the current interface to Generator, as you have surely noticed, is crap). If you have something that is a NamedParameter, say for example:
unsigned int seed = NamedParameter("Seed",5);
You can overwrite from the command line with:
./Generator < options.opt --Seed=5 or ./Generator < options.opt --Seed 5
Shortcuts and help menus would be nice, but help menus in particular are really non-trivial to do as a parameter can be made from anywhere in the code.
Yes, it's not obvious why xROOTd is needed, I can add a comment in the CMakeLists explaining what this is for. Someday I'll either make the code that runs stuff on the grid publically usable, or better yet make a GANGA plugin.
mentioned in commit 8f706317