Skip to content

Decoupling data structures from Gaudi

Christian Gumpert requested to merge ACTS-68_decoupling_migration into master

Data structures exhibit only very small dependencies on the underlying framework (mostly due to printout methods). With this change we can build a first, completely standalone version of the ACTS framework which does not depend on Gaudi or Athena any more.

Another important change in concept introduced by this merge is that the number of libraries built is vastly reduced. It is only foreseen to build one library for the central part of the code (the Core/ subfolder) and additional libraries only for optional plugins (to be added later). The motivation for this changed strategy is that it allows to benefit more from optimizations possible at the linking stage, to reduce the memory footprint of client applications (by avoiding having the same symbols defined in several libraries) and to simplify maintainability/usage for the user. The requirement of having a more diverse package structure with each package building its own library was partly motivated to decouple parallel (and possibly conflicting) developments on independent parts of the code. Due to continuous integration tests, this is of no concern anymore. The structure of the include directories follows the example of other well-known open source projects (e.g. boost, eigen).

At the moment, only data structures were migrated (and Geometry building algorithms for testing). The remaining (still Gaudi-dependent) code is in the Gaudi/ subfolder. This folder is currently excluded from CI testing. Before migrating more algorithm, a default definition of logging macros MSG_XXX should be provided. This should be made configurable for the user, probably using (for the moment) the same pragma-based approach as for the definition of the track parameters

Closes ACTS-68.

Merge request reports