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