Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-15 08:14:43

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #include "Acts/ActsVersion.hpp"
0010 #include "Acts/Plugins/Python/Utilities.hpp"
0011 
0012 #include <tuple>
0013 #include <unordered_map>
0014 
0015 #include <pybind11/detail/common.h>
0016 #include <pybind11/functional.h>
0017 #include <pybind11/operators.h>
0018 #include <pybind11/pybind11.h>
0019 #include <pybind11/pytypes.h>
0020 #include <pybind11/stl.h>
0021 #include <pyerrors.h>
0022 
0023 namespace py = pybind11;
0024 using namespace Acts::Python;
0025 
0026 namespace Acts::Python {
0027 void addContext(Context& ctx);
0028 void addAny(Context& ctx);
0029 void addUnits(Context& ctx);
0030 void addFramework(Context& ctx);
0031 void addLogging(Context& ctx);
0032 void addPdgParticle(Context& ctx);
0033 void addAlgebra(Context& ctx);
0034 void addBinning(Context& ctx);
0035 void addEventData(Context& ctx);
0036 
0037 void addPropagation(Context& ctx);
0038 void addNavigation(Context& ctx);
0039 
0040 void addAlignment(Context& ctx);
0041 void addGeometry(Context& ctx);
0042 void addGeometryBuildingGen1(Context& ctx);
0043 void addExperimentalGeometry(Context& ctx);
0044 
0045 void addMagneticField(Context& ctx);
0046 
0047 void addMaterial(Context& ctx);
0048 void addOutput(Context& ctx);
0049 void addDetector(Context& ctx);
0050 void addExampleAlgorithms(Context& ctx);
0051 void addInput(Context& ctx);
0052 void addGenerators(Context& ctx);
0053 void addTruthTracking(Context& ctx);
0054 void addTrackFitting(Context& ctx);
0055 void addTrackFinding(Context& ctx);
0056 void addTruthJet(Context& ctx);
0057 void addVertexing(Context& ctx);
0058 void addAmbiguityResolution(Context& ctx);
0059 void addUtilities(Context& ctx);
0060 
0061 void addRootInput(Context& ctx);
0062 void addRootOutput(Context& ctx);
0063 
0064 // Plugins
0065 void addDigitization(Context& ctx);
0066 void addPythia8(Context& ctx);
0067 void addGeoModel(Context& ctx);
0068 void addTGeo(Context& ctx);
0069 void addJson(Context& ctx);
0070 void addDetray(Context& ctx);
0071 void addHepMC3(Context& ctx);
0072 void addGnnTrackFinding(Context& ctx);
0073 void addSvg(Context& ctx);
0074 void addObj(Context& ctx);
0075 void addOnnx(Context& ctx);
0076 void addOnnxNeuralCalibrator(Context& ctx);
0077 void addCovfie(Context& ctx);
0078 void addTraccc(Context& ctx);
0079 void addHashing(Context& ctx);
0080 
0081 }  // namespace Acts::Python
0082 
0083 PYBIND11_MODULE(ActsPythonBindings, m) {
0084   Acts::Python::Context ctx;
0085   ctx.modules["main"] = m;
0086   auto mex = m.def_submodule("_examples");
0087   ctx.modules["examples"] = mex;
0088   auto prop = m.def_submodule("_propagator");
0089   ctx.modules["propagation"] = prop;
0090   m.doc() = "Acts";
0091 
0092   m.attr("__version__") =
0093       std::tuple{Acts::VersionMajor, Acts::VersionMinor, Acts::VersionPatch};
0094 
0095   {
0096     auto mv = m.def_submodule("version");
0097 
0098     mv.attr("major") = Acts::VersionMajor;
0099     mv.attr("minor") = Acts::VersionMinor;
0100     mv.attr("patch") = Acts::VersionPatch;
0101 
0102     mv.attr("commit_hash") = Acts::CommitHash;
0103     mv.attr("commit_hash_short") = Acts::CommitHashShort;
0104   }
0105 
0106   addContext(ctx);
0107   addAny(ctx);
0108   addUnits(ctx);
0109   addFramework(ctx);
0110   addLogging(ctx);
0111   addPdgParticle(ctx);
0112   addAlgebra(ctx);
0113   addBinning(ctx);
0114   addEventData(ctx);
0115   addOutput(ctx);
0116 
0117   addPropagation(ctx);
0118   addNavigation(ctx);
0119   addAlignment(ctx);
0120   addGeometryBuildingGen1(ctx);
0121   addGeometry(ctx);
0122   addExperimentalGeometry(ctx);
0123 
0124   addMagneticField(ctx);
0125   addMaterial(ctx);
0126   addDetector(ctx);
0127   addExampleAlgorithms(ctx);
0128   addInput(ctx);
0129   addGenerators(ctx);
0130   addTruthTracking(ctx);
0131   addTrackFitting(ctx);
0132   addTrackFinding(ctx);
0133   addTruthJet(ctx);
0134   addVertexing(ctx);
0135   addAmbiguityResolution(ctx);
0136   addUtilities(ctx);
0137 
0138   addDigitization(ctx);
0139   addPythia8(ctx);
0140   addJson(ctx);
0141   addGeoModel(ctx);
0142   addTGeo(ctx);
0143   addDetray(ctx);
0144   addHepMC3(ctx);
0145   addGnnTrackFinding(ctx);
0146   addObj(ctx);
0147   addSvg(ctx);
0148   addOnnx(ctx);
0149   addOnnxNeuralCalibrator(ctx);
0150   addCovfie(ctx);
0151   addTraccc(ctx);
0152   addHashing(ctx);
0153 
0154   addRootInput(ctx);
0155   addRootOutput(ctx);
0156 }