File indexing completed on 2026-03-29 07:47:09
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Utilities/Logger.hpp"
0012 #include "ActsExamples/EventData/Track.hpp"
0013 #include "ActsExamples/Framework/DataHandle.hpp"
0014 #include "ActsExamples/Framework/IAlgorithm.hpp"
0015 #include "ActsExamples/Framework/ProcessCode.hpp"
0016
0017 #include <limits>
0018 #include <string>
0019
0020 namespace ActsExamples {
0021
0022
0023 class TrackParameterSelector final : public IAlgorithm {
0024 public:
0025 struct Config {
0026
0027 std::string inputTrackParameters;
0028
0029 std::string outputTrackParameters;
0030
0031
0032 double loc0Min = -std::numeric_limits<double>::infinity();
0033 double loc0Max = std::numeric_limits<double>::infinity();
0034 double loc1Min = -std::numeric_limits<double>::infinity();
0035 double loc1Max = std::numeric_limits<double>::infinity();
0036
0037 double timeMin = -std::numeric_limits<double>::infinity();
0038 double timeMax = std::numeric_limits<double>::infinity();
0039
0040 double phiMin = -std::numeric_limits<double>::infinity();
0041 double phiMax = std::numeric_limits<double>::infinity();
0042 double etaMin = -std::numeric_limits<double>::infinity();
0043 double etaMax = std::numeric_limits<double>::infinity();
0044 double absEtaMin = 0.0;
0045 double absEtaMax = std::numeric_limits<double>::infinity();
0046
0047 double ptMin = 0.0;
0048 double ptMax = std::numeric_limits<double>::infinity();
0049 };
0050
0051 explicit TrackParameterSelector(
0052 const Config& config,
0053 std::unique_ptr<const Acts::Logger> logger = nullptr);
0054
0055 ProcessCode execute(const AlgorithmContext& ctx) const final;
0056
0057
0058 const Config& config() const { return m_cfg; }
0059
0060 private:
0061 Config m_cfg;
0062
0063 ReadDataHandle<TrackParametersContainer> m_inputTrackParameters{
0064 this, "InputTrackParameters"};
0065 WriteDataHandle<TrackParametersContainer> m_outputTrackParameters{
0066 this, "OutputTrackParameters"};
0067 };
0068
0069 }