ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detector_scan_config.hpp
1// This file is part of the ACTS project.
2//
3// Copyright (C) 2016 CERN for the benefit of the ACTS project
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9#pragma once
10
11// Detray plugin include(s)
12#include "detray/plugins/svgtools/styling/styling.hpp"
13
14// Detray test include(s)
15#include "detray/test/framework/test_configuration.hpp"
16
17// System include(s)
18#include <limits>
19#include <memory>
20#include <string>
21
22namespace detray::test {
23
25template <typename track_generator_t, concepts::algebra algebra_t>
27 : public detray::test::configuration<dscalar<algebra_t>> {
35 using trk_gen_config_t = typename track_generator_t::configuration;
36
38 std::string m_name{"detector_scan"};
40 std::string m_intersection_file{"truth_intersections"};
42 std::string m_track_param_file{"truth_trk_parameters"};
44 scalar_type m_mask_tol{std::numeric_limits<scalar_type>::epsilon()};
48
55 bool m_write_inters{false};
59
64 const std::string &name() const { return m_name; }
67 const std::string &intersection_file() const { return m_intersection_file; }
70 const std::string &track_param_file() const { return m_track_param_file; }
76 const vector3_type &B_vector() { return m_B; }
79 bool write_intersections() const { return m_write_inters; }
88 bool overlaps_removal() const { return m_overlaps_removal; }
91 float overlaps_tol() const { return m_overlaps_tol; }
94 const auto &svg_style() const { return m_style; }
96
102 detector_scan_config &name(const std::string_view n) {
103 m_name = n;
104 return *this;
105 }
106
109 detector_scan_config &intersection_file(const std::string_view f) {
111 return *this;
112 }
113
116 detector_scan_config &track_param_file(const std::string_view f) {
118 return *this;
119 }
120
124 m_mask_tol = tol;
125 return *this;
126 }
127
131 m_B = B;
132 return *this;
133 }
134
140 const scalar_type B2) {
141 m_B = vector3_type{B0, B1, B2};
142 return *this;
143 }
144
149 return *this;
150 }
151
155 m_overlaps_tol = static_cast<float>(tol);
156 return *this;
157 }
158
162 m_write_inters = do_write;
163 return *this;
164 }
165
166};
167
168} // namespace detray::test
const styling::style style
Complete style configuration using the Tableau colorblind palette.
Definition styling.hpp:316
get_scalar_t< A, T > dscalar
Scalar type for algebra A and value type T.
Definition algebra.hpp:64
get_vector3D_t< A, T > dvector3D
Three-dimensional vector type for algebra A and value type T.
Definition algebra.hpp:80
Global styling options.
Definition styling.hpp:184
Test configuration type.
Definition test_configuration.hpp:22
configuration & tol(scalar_t t)
Definition test_configuration.hpp:43
Configuration for a detector scan test.
Definition detector_scan_config.hpp:27
detector_scan_config & overlaps_tol(const scalar_type tol)
Set the overlap tolerance.
Definition detector_scan_config.hpp:154
std::string m_name
Name of the test.
Definition detector_scan_config.hpp:38
float overlaps_tol() const
Get the overlap tolerance.
Definition detector_scan_config.hpp:91
trk_gen_config_t m_trk_gen_cfg
Configuration of the ray generator.
Definition detector_scan_config.hpp:49
trk_gen_config_t & track_generator()
Get the mutable track generator configuration.
Definition detector_scan_config.hpp:82
const std::string & intersection_file() const
Get the intersection input file name.
Definition detector_scan_config.hpp:67
bool write_intersections() const
Check whether intersections are written.
Definition detector_scan_config.hpp:79
detector_scan_config & overlaps_removal(const bool o)
Set whether overlap removal is enabled.
Definition detector_scan_config.hpp:147
detector_scan_config & intersection_file(const std::string_view f)
Set the intersection input file name.
Definition detector_scan_config.hpp:109
const vector3_type & B_vector()
Get the magnetic field vector.
Definition detector_scan_config.hpp:76
const std::string & track_param_file() const
Get the track parameter input file name.
Definition detector_scan_config.hpp:70
detector_scan_config & B_vector(const vector3_type &B)
Set the magnetic field vector.
Definition detector_scan_config.hpp:130
scalar_type m_mask_tol
Mask tolerance for the intersectors.
Definition detector_scan_config.hpp:44
detector_scan_config & mask_tolerance(const scalar_type tol)
Set the intersector mask tolerance.
Definition detector_scan_config.hpp:123
const trk_gen_config_t & track_generator() const
Get the track generator configuration.
Definition detector_scan_config.hpp:85
detector_scan_config & B_vector(const scalar_type B0, const scalar_type B1, const scalar_type B2)
Set the magnetic field vector components.
Definition detector_scan_config.hpp:139
const auto & svg_style() const
Get the SVG style.
Definition detector_scan_config.hpp:94
std::string m_track_param_file
Name of the input file containing track parameters.
Definition detector_scan_config.hpp:42
std::string m_intersection_file
Name of the input file, containing the complete ray scan traces.
Definition detector_scan_config.hpp:40
bool overlaps_removal() const
Check whether overlap removal is enabled.
Definition detector_scan_config.hpp:88
detray::test::configuration< scalar_type > base_type
Base test configuration type.
Definition detector_scan_config.hpp:33
detector_scan_config & name(const std::string_view n)
SettersSet the test name.
Definition detector_scan_config.hpp:102
dvector3D< algebra_t > vector3_type
Three-dimensional vector type used by the scan.
Definition detector_scan_config.hpp:31
scalar_type mask_tolerance() const
Get the intersector mask tolerance.
Definition detector_scan_config.hpp:73
detray::svgtools::styling::style m_style
Visualization style to be applied to the svgs.
Definition detector_scan_config.hpp:57
bool m_write_inters
Write intersection points for plotting.
Definition detector_scan_config.hpp:55
typename track_generator_t::configuration trk_gen_config_t
Track generator configuration type.
Definition detector_scan_config.hpp:35
detector_scan_config & track_param_file(const std::string_view f)
Set the track parameter input file name.
Definition detector_scan_config.hpp:116
dscalar< algebra_t > scalar_type
Scalar type used by the scan.
Definition detector_scan_config.hpp:29
const std::string & name() const
GettersGet the test name.
Definition detector_scan_config.hpp:64
float m_overlaps_tol
Tolerance for overlaps.
Definition detector_scan_config.hpp:53
bool m_overlaps_removal
Perform overlaps removal (needed for detector converted from ACTS).
Definition detector_scan_config.hpp:51
detector_scan_config & write_intersections(const bool do_write)
Set whether intersections are written.
Definition detector_scan_config.hpp:161
vector3_type m_B
B-field vector for helix.
Definition detector_scan_config.hpp:46
static constexpr scalar_t mm
Native length unit, the millimetre.
Definition units.hpp:27
static constexpr scalar_t T
Magnetic field, native unit GeV/(e*mm).
Definition units.hpp:108