Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ModuleEntry.cpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ModuleEntry.cpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2021 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 #include "Acts/ActsVersion.hpp"
17 
18 #include <array>
19 #include <cstdint>
20 #include <cstdlib>
21 #include <limits>
22 #include <memory>
23 #include <optional>
24 #include <stdexcept>
25 #include <string>
26 #include <tuple>
27 #include <unordered_map>
28 #include <vector>
29 
30 #include <pybind11/detail/common.h>
31 #include <pybind11/functional.h>
32 #include <pybind11/operators.h>
33 #include <pybind11/pybind11.h>
34 #include <pybind11/pytypes.h>
35 #include <pybind11/stl.h>
36 #include <pyerrors.h>
37 
38 namespace py = pybind11;
39 using namespace Acts::Python;
40 
41 namespace Acts::Python {
42 void addUnits(Context& ctx);
43 void addFramework(Context& ctx);
44 void addLogging(Context& ctx);
45 void addPdgParticle(Context& ctx);
46 void addAlgebra(Context& ctx);
47 void addBinning(Context& ctx);
48 void addEventData(Context& ctx);
49 
50 void addPropagation(Context& ctx);
51 
52 void addGeometry(Context& ctx);
54 
55 void addMagneticField(Context& ctx);
56 
57 void addMaterial(Context& ctx);
58 void addOutput(Context& ctx);
59 void addDetector(Context& ctx);
60 void addExampleAlgorithms(Context& ctx);
61 void addInput(Context& ctx);
62 void addGenerators(Context& ctx);
63 void addTruthTracking(Context& ctx);
64 void addTrackFitting(Context& ctx);
65 void addTrackFinding(Context& ctx);
66 void addVertexing(Context& ctx);
68 
69 // Plugins
70 void addDigitization(Context& ctx);
71 void addPythia8(Context& ctx);
72 void addJson(Context& ctx);
73 void addHepMC3(Context& ctx);
75 void addEDM4hep(Context& ctx);
76 void addSvg(Context& ctx);
77 void addObj(Context& ctx);
78 void addOnnx(Context& ctx);
79 void addOnnxMlpack(Context& ctx);
81 
82 } // namespace Acts::Python
83 
84 PYBIND11_MODULE(ActsPythonBindings, m) {
86  ctx.modules["main"] = m;
87  auto mex = m.def_submodule("_examples");
88  ctx.modules["examples"] = mex;
89  auto prop = m.def_submodule("_propagator");
90  ctx.modules["propagation"] = prop;
91  m.doc() = "Acts";
92 
93  m.attr("__version__") =
94  std::tuple{Acts::VersionMajor, Acts::VersionMinor, Acts::VersionPatch};
95 
96  addUnits(ctx);
97  addFramework(ctx);
98  addLogging(ctx);
99  addPdgParticle(ctx);
100  addAlgebra(ctx);
101  addBinning(ctx);
102  addEventData(ctx);
103 
104  addPropagation(ctx);
105  addGeometry(ctx);
107 
108  addMagneticField(ctx);
109  addMaterial(ctx);
110  addOutput(ctx);
111  addDetector(ctx);
113  addInput(ctx);
114  addGenerators(ctx);
115  addTruthTracking(ctx);
116  addTrackFitting(ctx);
117  addTrackFinding(ctx);
118  addVertexing(ctx);
120 
121  addDigitization(ctx);
122  addPythia8(ctx);
123  addJson(ctx);
124  addHepMC3(ctx);
126  addEDM4hep(ctx);
127  addObj(ctx);
128  addSvg(ctx);
129  addOnnx(ctx);
130  addOnnxMlpack(ctx);
132 }