File indexing completed on 2026-04-04 07:47:50
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Definitions/Units.hpp"
0013 #include "Acts/Utilities/Logger.hpp"
0014 #include "Acts/Utilities/Result.hpp"
0015 #include "Acts/Vertexing/FsmwMode1dFinder.hpp"
0016 #include "Acts/Vertexing/IVertexFinder.hpp"
0017 #include "Acts/Vertexing/ImpactPointEstimator.hpp"
0018 #include "Acts/Vertexing/Vertex.hpp"
0019 #include "Acts/Vertexing/VertexingOptions.hpp"
0020
0021 #include <unordered_map>
0022
0023 namespace Acts {
0024
0025
0026
0027
0028
0029
0030
0031
0032 class ZScanVertexFinder final : public IVertexFinder {
0033 public:
0034
0035 struct Config {
0036
0037
0038
0039 explicit Config(const ImpactPointEstimator& ipEst) : ipEstimator(ipEst) {}
0040
0041
0042 ImpactPointEstimator ipEstimator;
0043
0044
0045 FsmwMode1dFinder mode1dFinder;
0046
0047
0048 bool disableAllWeights = false;
0049
0050 float constraintcutoff = 9.;
0051
0052 float constrainttemp = 1.;
0053
0054 bool useLogPt = true;
0055
0056 bool usePt = false;
0057
0058 double minPt = 0.4 * UnitConstants::GeV;
0059
0060 double expPt = 1.;
0061
0062 double minWeight = 0.01;
0063
0064
0065 InputTrack::Extractor extractParameters;
0066 };
0067
0068
0069 struct State {};
0070
0071
0072
0073
0074
0075 explicit ZScanVertexFinder(const Config& cfg,
0076 std::unique_ptr<const Logger> logger =
0077 getDefaultLogger("ZScanVertexFinder",
0078 Logging::INFO));
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090 Result<std::vector<Vertex>> find(const std::vector<InputTrack>& trackVector,
0091 const VertexingOptions& vertexingOptions,
0092 IVertexFinder::State& state) const override;
0093
0094 IVertexFinder::State makeState(
0095 const Acts::MagneticFieldContext& ) const override {
0096 return IVertexFinder::State{State{}};
0097 }
0098
0099 void setTracksToRemove(
0100 IVertexFinder::State& ,
0101 const std::vector<InputTrack>& ) const override {
0102
0103 }
0104
0105 private:
0106 Config m_cfg;
0107
0108
0109 std::unique_ptr<const Logger> m_logger;
0110
0111
0112 const Logger& logger() const { return *m_logger; }
0113 };
0114
0115 }