13 #include <boost/program_options.hpp>
15 namespace ActsExamples {
22 auto opt = desc.add_options();
23 opt(
"geo-tele-positions",
24 value<VariableReals>()->default_value({{0, 30, 60, 120, 150, 180}}),
25 "Telescope detector Input: the layers positions in the longitudinal "
27 opt(
"geo-tele-stereos",
28 value<VariableReals>()->default_value({{0, 0, 0, 0, 0, 0}}),
29 "Telescope detector Input: the layers stereo angle around the "
32 opt(
"geo-tele-offsets",
value<
Reals<2>>()->default_value({{0, 0}}),
33 "Telescope detector Input: the layers offsets in the transverse plane "
35 "mm. Same values for "
37 opt(
"geo-tele-bounds",
value<
Reals<2>>()->default_value({{25, 100}}),
38 "Telescope detector Input: the values for surface bounds in mm: "
39 "(halfX, halfY) - plane surface, (minR, maxR) - disc surface");
40 opt(
"geo-tele-thickness", value<double>()->default_value(80),
41 "Telescope detector Input: the silicon material thickness of "
42 "each layer in um. Same value for all layers");
43 opt(
"geo-tele-surface", value<int>()->default_value(0),
44 "Telescope detector Input: the detector surface type: 0 - plane "
47 opt(
"geo-tele-alignaxis", value<int>()->default_value(2),
48 "Telescope detector Input: the detector is placed along which "
49 "axis: 0 - x axis, 1 - y axis, 2 - z axis");
53 const boost::program_options::variables_map& vm,
54 std::shared_ptr<const Acts::IMaterialDecorator> )
55 -> std::pair<TrackingGeometryPtr, ContextDecorators> {
59 .template as<ActsExamples::Options::VariableReals>()
61 cfg.
stereos = vm[
"geo-tele-stereos"]
62 .template as<ActsExamples::Options::VariableReals>()
65 vm[
"geo-tele-offsets"].template as<ActsExamples::Options::Reals<2>>();
69 vm[
"geo-tele-bounds"].template as<ActsExamples::Options::Reals<2>>();
71 cfg.
thickness = vm[
"geo-tele-thickness"].template as<double>() * 0.001;
72 cfg.
surfaceType = vm[
"geo-tele-surface"].template as<int>();
73 cfg.
binValue = vm[
"geo-tele-alignaxis"].template as<int>();