Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PlanarSteppingAlgorithm.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PlanarSteppingAlgorithm.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2017 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 
24 
25 #include <memory>
26 #include <string>
27 #include <unordered_map>
28 #include <vector>
29 
30 namespace ActsFatras {
31 class Barcode;
32 } // namespace ActsFatras
33 
34 namespace Acts {
35 class DigitizationModule;
36 class IdentifiedDetectorElement;
37 class PlanarModuleStepper;
38 class Surface;
39 class TrackingGeometry;
40 class PlanarModuleCluster;
41 } // namespace Acts
42 
43 namespace ActsExamples {
44 class IndexSourceLink;
45 class RandomNumbers;
46 struct AlgorithmContext;
47 
49 class PlanarSteppingAlgorithm final : public IAlgorithm {
50  public:
51  using ClusterContainer =
53 
54  struct Config {
70  std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry;
72  std::shared_ptr<const Acts::PlanarModuleStepper> planarModuleStepper;
74  std::shared_ptr<const RandomNumbers> randomNumbers;
75  };
76 
82 
87  ProcessCode execute(const AlgorithmContext& ctx) const override;
88 
90  const Config& config() const { return m_cfg; }
91 
92  private:
93  struct Digitizable {
94  const Acts::Surface* surface = nullptr;
97  };
98 
101  std::unordered_map<Acts::GeometryIdentifier, Digitizable> m_digitizables;
102 
104 
106 
108  this, "OutputSourceLinks"};
109 
111  m_outputDigiSourceLinks{this, "OutputDigiSourceLinks"};
112 
114  this, "OutputMeasurements"};
115 
117  m_outputMeasurementParticlesMap{this, "OutputMeasurementParticlesMap"};
118 
120  this, "OutputMeasurementSimHitsMap"};
121 };
122 
123 } // namespace ActsExamples