Added fmt as external dependency and printing example #278
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added fmt (https://github.com/fmtlib/fmt) as dependency to help with string formatting.
I also moved
-lstdc++fs
outside of that block, I think it was a mistake (it should always be linked).I added some simple class / methods in the
fmt
namespace and placed inTRestTools.h/cpp
to help with printing.Methods such as
fmt::ToEnergyString
take a number in the default REST energy scale and return the appropiate string, for examplefmt::ToEnergyString(10000)
returns"10.00 MeV"
. Other methods such asfmt::ToLengthString
have been added and its easy to implement more.I updated the print for
TRestEvent
(andTRestGeant4Event/Track
in another PR) to showcase what can be done with this library.For instance one can define a custom formatter for any class, such as
TVector3
to simplify printing:Its very easy to add colors to the terminal which helps when reading the output: