Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SeedingAlgorithm.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SeedingAlgorithm.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2020 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 
23 
24 #include <algorithm>
25 #include <memory>
26 #include <string>
27 #include <utility>
28 #include <vector>
29 
30 namespace Acts {
31 template <typename external_spacepoint_t>
32 class BinFinder;
33 } // namespace Acts
34 
35 namespace ActsExamples {
36 struct AlgorithmContext;
37 
39 class SeedingAlgorithm final : public IAlgorithm {
40  public:
41  struct Config {
48  std::vector<std::string> inputSpacePoints;
51 
57 
58  // allow for different values of rMax in gridConfig and seedFinderConfig
59  bool allowSeparateRMax = false;
60 
61  // vector containing the map of z bins in the top and bottom layers
62  std::vector<std::pair<int, int>> zBinNeighborsTop;
63  std::vector<std::pair<int, int>> zBinNeighborsBottom;
64  // number of phiBin neighbors at each side of the current bin that will be
65  // used to search for SPs
66  int numPhiNeighbors = 0;
67  };
68 
74 
79  ProcessCode execute(const AlgorithmContext& ctx) const final;
80 
82  const Config& config() const { return m_cfg; }
83 
84  private:
86  std::shared_ptr<const Acts::BinFinder<SimSpacePoint>> m_bottomBinFinder;
87  std::shared_ptr<const Acts::BinFinder<SimSpacePoint>> m_topBinFinder;
89 
90  std::vector<std::unique_ptr<ReadDataHandle<SimSpacePointContainer>>>
92 
94 };
95 
96 } // namespace ActsExamples