Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ZScanVertexFinder.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ZScanVertexFinder.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2019 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 
21 
22 #include <unordered_map>
23 
24 namespace Acts {
25 
33 template <typename vfitter_t>
35  static_assert(VertexFitterConcept<vfitter_t>,
36  "Vertex fitter does not fulfill vertex fitter concept.");
37  using Propagator_t = typename vfitter_t::Propagator_t;
38 
39  public:
40  using InputTrack_t = typename vfitter_t::InputTrack_t;
41 
43  struct Config {
48  : ipEstimator(ipEst) {}
49 
50  // ImpactPointEstimator
52 
53  // FsmwMode1dFinder
55 
56  // disables all weights, set all weights to 1.
57  bool disableAllWeights = false;
58  // constraint parameters
59  float constraintcutoff = 9.;
60  float constrainttemp = 1.;
61  // use LogPt for weighting
62  bool useLogPt = true;
63  // use pt for weighting
64  bool usePt = false;
65  // minimum pt
66  double minPt = 0.4 * UnitConstants::GeV;
67  // exponent used for weighting if usePt
68  double expPt = 1.;
69  // minimum required weight
70  double minWeight = 0.01;
71  };
72 
74  struct State {};
75 
80  template <
81  typename T = InputTrack_t,
83 
85  std::unique_ptr<const Logger> logger =
86  getDefaultLogger("ZScanVertexFinder", Logging::INFO))
87  : m_cfg(std::move(cfg)),
88  m_extractParameters([](T params) { return params; }),
90 
99  std::function<BoundTrackParameters(InputTrack_t)> func,
100  std::unique_ptr<const Logger> logger =
101  getDefaultLogger("ZScanVertexFinder", Logging::INFO))
102  : m_cfg(cfg), m_extractParameters(func), m_logger(std::move(logger)) {}
103 
115  const std::vector<const InputTrack_t*>& trackVector,
116  const VertexingOptions<InputTrack_t>& vertexingOptions,
117  State& state) const;
118 
119  private:
121 
125  std::function<BoundTrackParameters(InputTrack_t)> m_extractParameters;
126 
128  std::unique_ptr<const Logger> m_logger;
129 
131  const Logger& logger() const { return *m_logger; }
132 };
133 
134 } // namespace Acts
135 
136 #include "ZScanVertexFinder.ipp"