Separate detector instantiation from usage
Currently, many detector-based examples are explicitly instantiated for each available detector type. Most use cases, e.g. reconstruction, should not care which specific detector is loaded and the user should be able to select different detectors at runtime through the command line options.
The detector module should allow to hide the specific implementations and provide a single entrance point for users. Something like
// setup all available detector options
void addDetectorOptions(Options::Description&);
// parse detector options, construct the detector geometry,
// and setup any additional tools, i.e. alignment services
auto geo = setupDetector(const Options::Variables&, Sequencer&);