ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VoidKalmanComponents.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file VoidKalmanComponents.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2018 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 http://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 
14 
15 namespace Acts {
16 
28  template <typename measurement_t, typename parameters_t>
30  const parameters_t& /*pars*/) const {
31  return m;
32  }
33 
42  template <typename measurements_t>
43  Result<measurements_t> operator()(measurements_t ms) const {
44  return std::move(ms);
45  }
46 };
47 
64  template <typename source_link_t, typename parameters_t>
66  const source_link_t& sl, const parameters_t& /*pars*/) const {
67  static_assert(SourceLinkConcept<source_link_t>,
68  "Source link does fulfill SourceLinkConcept.");
69  static_assert(
72  source_link_t>,
73  "For DefaultMeasurementCalibrator, source link needs to implement "
74  "dereference operator");
75 
76  return *sl;
77  }
78 };
79 
91  template <typename track_state_t, typename predicted_state_t>
92  auto operator()(track_state_t& /*m*/,
93  const predicted_state_t& predicted) const {
94  return &(predicted.parameters);
95  }
96 };
97 
107  template <typename parameters_t, typename track_states_t>
108  const parameters_t* operator()(track_states_t& /*states*/) const {
109  return nullptr;
110  }
111 };
112 
122  template <typename track_state_t>
123  constexpr bool operator()(const track_state_t& trackState) const {
124  return false;
125  }
126 };
127 
128 } // namespace Acts