Stand-alone binary for the reconstruction from timeslice (using FairRun)
This MR introduces a new stand-alone command-line application, cbmreco_fairrun. It succeeds the implementation of the CbmReco steering class in !768 (merged). The application instantiatates and configures a CbmReco object, which executes the CBM reconstruction steps using FairTasks and FairRunOnline.
The CbmReco configuration is read from a YAML file using the yaml-cpp library.
The parsing of command line options is performed using Boost.Program_options and was heavily inspired by the flesnet applications. See bin/cbmreco_fairrun --help
for an overview.
Example usage:
build/bin/cbmreco_fairrun -i 1588_node8_1_0000.tsa -c reco/tasks/CbmRecoConfigExample.yaml -n1
Merge request reports
Activity
added 1 commit
- a4716652 - Falsify institute name to work around bug in scripts/check-licence-header.sh
added Framework label
assigned to @v.friese
requested review from @f.uhlig
Dear @f.uhlig, @v.friese, @p.-a.loizeau,
you have been identified as code owner of at least one file which was changed with this merge request.
Please check the changes and approve them or request changes.
added CodeOwners label
In reviewing the MR, please consider especially the file structure and locations.
My thoughts so far:
- While the concept of executables seems to be partly new to the cbmroot repository, the addition should not be incompatible with the existing structure.
- The only other kind of stand-alone applications I found are the ones based on FairMQ, which are located in a directory "MQ" at the top level.
- Following this line of thought (framework as top directory name), this MR would have to add a directory "FairRun" or similar at top level, which I find rather confusing.
- And when we add a variant of this application that does not rely on FairTasks/FairRun in the future ("cbmreco_plain"), we will need yet another top-level directory.
That's why I opted for a generic
app
directory at the top level as we also have it in the flesnet repository. What do you think, should this rather go somewhere else?Also, the location of
reco/tasks/CbmRecoConfigExample.json
may not be canonical. Please regard this MR as an initial proposal and request changes as you see fit.- Resolved by Volker Friese
First of all: very nice! And very quick - would have taken me ages, not being familiar to boost::property_tree and program options.
To the file structure: Having in mind the (distant) goal that the repository should allow different builds (sim, ana, reco), I would suggest to put the app folder, now at the top level, to the reco directory (reco/app). Imagine we want similar executables for transport and detector response simulations, they would have quite different (additional) libraries to link to. But I must confess that the final folder structure to eventually arrive at is still not clear to me. The current top level folder MQ is not the result of some discussion that I remember. @f.uhlig, what is your opinion?
- Resolved by Volker Friese
- Resolved by Volker Friese
- Resolved by Volker Friese
- Resolved by Volker Friese
- Resolved by Volker Friese
- Resolved by Volker Friese
added 4 commits
Toggle commit listadded 11 commits
-
dab860ee...d94b4dec - 5 commits from branch
computing:master
- 8cc1e9b2 - Add load/save using boost property_tree to CbmRecoConfig
- 2ff4c792 - Add initial version of cbmreco_fairrun application
- 3f776c9e - Include download and build of external yaml-cpp in build flow
- 3d9c1ae9 - Add load/save using yaml-cpp to CbmRecoConfig
- b00caf01 - Use YAML instead of JSON for cbmreco_fairrun configuration
- 7cd6d27e - Revert "Add load/save using boost property_tree to CbmRecoConfig"
Toggle commit list-
dab860ee...d94b4dec - 5 commits from branch