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>
29  Result<measurement_t> operator()(measurement_t measurement,
30  const parameters_t& /* parameters */) const {
31  return measurement;
32  }
33 };
34 
51  template <typename source_link_t, typename parameters_t>
53  const source_link_t& sourceLink,
54  const parameters_t& /* parameters */) const {
55  static_assert(SourceLinkConcept<source_link_t>,
56  "Source link does fulfill SourceLinkConcept.");
57  static_assert(
60  source_link_t>,
61  "For DefaultMeasurementCalibrator, source link needs to implement "
62  "dereference operator");
63  return *sourceLink;
64  }
65 };
66 
78  template <typename track_state_t, typename predicted_state_t>
79  auto operator()(track_state_t& /* trackState */,
80  const predicted_state_t& predicted) const {
81  return &(predicted.parameters);
82  }
83 };
84 
94  template <typename parameters_t, typename track_states_t>
95  const parameters_t* operator()(track_states_t& /* trackStates */) const {
96  return nullptr;
97  }
98 };
99 
109  template <typename track_state_t>
110  constexpr bool operator()(const track_state_t& /* trackState */) const {
111  return false;
112  }
113 };
114 
115 } // namespace Acts