Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Application Object #33
GooFit 2.0 could have an App object, which is created at the beginning of
This is the proposed interface:
This is the only piece required to handle MPI setup and teardown. However, it is highly recommended to also "run" the application (below), since that handles standard options to all goofit programs, like printing info about the card/processor, and includes a help flag.
Adding options is simple:
This subclasses my CLI11 library and modifies it to support a ROOT like constructor. It can process ints, floats, and strings, as well as vectors of arguments, flags, and sets. It can also handle positional arguments, defaults, required options, validators, and sub-commands with callbacks.
To parse the arguments and exit if needed:
All examples have been fully converted to use this new object; the
Current Application support:
Well technically one should add a
So in principle I am all for the idea of having some cleanup method, but the nicest way would probably be to move to newer c++11 features like smart pointers, right?
I would like to have feedback on the namespaces:
The main application object is in the GooFit namespace.
The various tools, like
What do you think?