From 1c106592fc757c7799a0045b52ee3661115a5d7d Mon Sep 17 00:00:00 2001
From: Tamas Gal <tgal@km3net.de>
Date: Tue, 31 Mar 2020 14:31:38 +0200
Subject: [PATCH] Add NPE module

---
 setup.py   |  6 +++---
 src/npe.cc | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 3 deletions(-)
 create mode 100644 src/npe.cc

diff --git a/setup.py b/setup.py
index 305f41d..922745a 100644
--- a/setup.py
+++ b/setup.py
@@ -26,14 +26,14 @@ def get_jpp_include():
 
 ext_modules = [
     Extension(
-        'jppy.pdf',
-        ['src/pdf.cc'],
+        'jppy.{}'.format(module),
+        ['src/{}.cc'.format(module)],
         include_dirs=[
             get_pybind_include(),
             get_pybind_include(user=True),
             get_jpp_include()
         ],
-        language='c++')
+        language='c++') for module in ['pdf', 'npe']
 ]
 
 # Populating the __init__.py with submodule imports, so that one can import
diff --git a/src/npe.cc b/src/npe.cc
new file mode 100644
index 0000000..8e3eeab
--- /dev/null
+++ b/src/npe.cc
@@ -0,0 +1,32 @@
+#include <pybind11/pybind11.h>
+
+#include "JPhysics/JNPE_t.hh"
+
+namespace py = pybind11;
+
+PYBIND11_MODULE(npe, m) {
+    m.doc() = "NPE utilities";
+    py::class_<JMuonNPE_t>(m, "JMuonNPE")
+        .def(py::init<const std::string &, double, int, double>(),
+             py::arg("file_descriptor"),
+             py::arg("TTS"),
+             py::arg("number_of_points") = 25,
+             py::arg("epsilon") = 1e-10)
+        .def("calculate", &JMuonNPE_t::calculate,
+             py::arg("E"),
+             py::arg("R"),
+             py::arg("theta"),
+             py::arg("phi")
+            ),
+    py::class_<JShowerNPE_t>(m, "JShowerNPE")
+        .def(py::init<const std::string &, int>(),
+             py::arg("file_descriptor"),
+             py::arg("number_of_points") = 0)
+        .def("calculate", &JShowerNPE_t::calculate,
+             py::arg("E"),
+             py::arg("D"),
+             py::arg("cd"),
+             py::arg("theta"),
+             py::arg("phi")
+             );
+}
-- 
GitLab