File indexing completed on 2025-01-18 09:28:00
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 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 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 ZScanVertexFinder(const Config& cfg,
0076 std::unique_ptr<const Logger> logger =
0077 getDefaultLogger("ZScanVertexFinder", Logging::INFO));
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089 Result<std::vector<Vertex>> find(const std::vector<InputTrack>& trackVector,
0090 const VertexingOptions& vertexingOptions,
0091 IVertexFinder::State& state) const override;
0092
0093 IVertexFinder::State makeState(
0094 const Acts::MagneticFieldContext& ) const override {
0095 return IVertexFinder::State{State{}};
0096 }
0097
0098 void setTracksToRemove(
0099 IVertexFinder::State& ,
0100 const std::vector<InputTrack>& ) const override {
0101
0102 }
0103
0104 private:
0105 Config m_cfg;
0106
0107
0108 std::unique_ptr<const Logger> m_logger;
0109
0110
0111 const Logger& logger() const { return *m_logger; }
0112 };
0113
0114 }