Merge branch 'main' of gitlab.etp.kit.edu:jkiesele/minicalosim
This commit is contained in:
+13
-11
@@ -3,22 +3,23 @@
|
||||
#include <pybind11/stl.h>
|
||||
#include <pybind11/operators.h>
|
||||
|
||||
#include "ConstructionWrapper.hh"
|
||||
#include "GeometryDescriptor.hh"
|
||||
#include "G4System.hh"
|
||||
|
||||
namespace py = pybind11;
|
||||
|
||||
|
||||
template<class M>
|
||||
void makeConstructionWrapper(M & m, std::string name){
|
||||
void makeGeometryDescriptor(M & m, std::string name){
|
||||
|
||||
py::class_<ConstructionWrapper>(m, name.data()).def(py::init())
|
||||
.def("addLayer", &ConstructionWrapper::addLayer, py::arg("thickness"), py::arg("material"), py::arg("isActive")=true, py::arg("nx")=1, py::arg("ny")=-1)
|
||||
.def("getXYWidth", &ConstructionWrapper::getXYWidth)
|
||||
py::class_<GeometryDescriptor>(m, name.data()).def(py::init())
|
||||
.def("addLayer", &GeometryDescriptor::addLayer, py::arg("thickness"), py::arg("material"), py::arg("isActive")=true, py::arg("nx")=1, py::arg("ny")=-1)
|
||||
.def("getXYWidth", &GeometryDescriptor::getXYWidth)
|
||||
// bind overloaded getLayers function
|
||||
.def("getLayers", (std::vector<Layer> & (ConstructionWrapper::*)()) &ConstructionWrapper::getLayers)
|
||||
.def("getLayers", (const std::vector<Layer> & (ConstructionWrapper::*)() const) &ConstructionWrapper::getLayers)
|
||||
.def("getNSensors", &ConstructionWrapper::getNSensors);
|
||||
.def("getLayers", (std::vector<Layer> & (GeometryDescriptor::*)()) &GeometryDescriptor::getLayers)
|
||||
.def("getLayers", (const std::vector<Layer> & (GeometryDescriptor::*)() const) &GeometryDescriptor::getLayers)
|
||||
.def("isAssigned", &GeometryDescriptor::isAssigned)
|
||||
.def("getNSensors", &GeometryDescriptor::getNSensors);
|
||||
|
||||
}
|
||||
|
||||
@@ -31,8 +32,9 @@ void makeG4System(M &m, std::string name)
|
||||
.def("run_gui", &G4System::run_gui).def("run_batch", &G4System::run_batch, py::arg("nEvents"), py::arg("partSpecies"), py::arg("minEnergy_GeV"), py::arg("maxEnergy_GeV"))
|
||||
.def("applyUICommand", &G4System::applyUICommand, py::arg("command"))
|
||||
.def("displayEvent", &G4System::displayEvent)
|
||||
.def("printMaterial", &G4System::printMaterial, py::arg("name"))
|
||||
.def("check", &G4System::check);
|
||||
// .def("printMaterial", &G4System::printMaterial, py::arg("name"))
|
||||
//.def("check", &G4System::check)
|
||||
.def("getGeometryDescriptor", &G4System::getGeometryDescriptor);
|
||||
}
|
||||
|
||||
// create bindings for Layer class
|
||||
@@ -69,7 +71,7 @@ void makeSensor(M &m, std::string name){
|
||||
PYBIND11_MODULE(minicalo, m)
|
||||
{
|
||||
m.doc() = "pybind11 plugin"; // optional module docstring
|
||||
makeConstructionWrapper(m, "ConstructionWrapper");
|
||||
makeGeometryDescriptor(m, "GeometryDescriptor");
|
||||
makeG4System(m, "G4System");
|
||||
makeSensor(m, "Sensor");
|
||||
makeLayer(m, "Layer");
|
||||
|
||||
Reference in New Issue
Block a user