Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VoidFitterComponents.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file VoidFitterComponents.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2018-2020 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 
19 
20 namespace Acts::detail {
21 
22 template <typename traj_t>
24  const CalibrationContext& /*cctx*/,
25  const SourceLink& /*sourceLink*/,
26  typename traj_t::TrackStateProxy /*trackState*/) {
27  throw std::runtime_error{"voidFitterCalibrator should not ever execute"};
28 }
29 
30 template <typename traj_t>
32  typename traj_t::TrackStateProxy trackState,
33  Direction /*direction*/,
34  const Logger& /*logger*/) {
35  trackState.filtered() = trackState.predicted();
36  trackState.filteredCovariance() = trackState.predictedCovariance();
37  return Result<void>::success();
38 }
39 
40 template <typename traj_t>
42  traj_t& trackStates, size_t entry,
43  const Logger& /*logger*/) {
44  trackStates.applyBackwards(entry, [](auto trackState) {
45  trackState.smoothed() = trackState.filtered();
46  trackState.smoothedCovariance() = trackState.filteredCovariance();
47  });
48 
49  return Result<void>::success();
50 }
51 
52 template <typename traj_t>
53 bool voidOutlierFinder(typename traj_t::ConstTrackStateProxy /*trackState*/) {
54  return false;
55 }
56 
57 template <typename traj_t>
59  typename traj_t::ConstTrackStateProxy /*trackState*/) {
60  return false;
61 }
62 
63 inline const Surface* voidSurfaceAccessor(const SourceLink& /*sourceLink*/) {
64  throw std::runtime_error{"voidSurfaceAccessor should not ever execute"};
65  return nullptr;
66 }
67 } // namespace Acts::detail