OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
PyDistribution.cpp
Go to the documentation of this file.
1#include "PyOpal/Globals.h"
6
7namespace PyOpal {
8namespace PyDistributionNS {
9
10std::string distribution_docstring = std::string();
11
12
13const char* module_docstring = "build a distribution object";
14
15template <>
16std::vector<PyOpalObjectNS::AttributeDef> PyOpalObjectNS::PyOpalObject<Distribution>::attributes = {
17 {"TYPE", "type", "", PyOpalObjectNS::STRING},
18 {"FNAME", "fname", "", PyOpalObjectNS::STRING},
19 {"INPUTMOUNITS", "momentum_units", "", PyOpalObjectNS::STRING},
20};
21
22template <>
24
26 Object* obj = &(*dist.getOpalShared());
28}
29
30BOOST_PYTHON_MODULE(distribution) {
34 auto distributionClass = distributionObject.make_class("Distribution");
35 distributionObject.addExecute(distributionClass);
36 distributionClass.def("register", &registerDistribution);
37
38}
39
40} // PyTrackRun
41} // PyOpal
42
void Initialise()
Definition: Globals.cpp:78
std::string distribution_docstring
void registerDistribution(PyOpalObjectNS::PyOpalObject< Distribution > &dist)
BOOST_PYTHON_MODULE(distribution)
std::shared_ptr< C > getOpalShared()
Definition: PyOpalObject.h:190
boost::python::class_< PyC > make_class(const char *className)
Definition: PyOpalObject.h:439
void addExecute(PYCLASS &pyclass)
Definition: PyOpalObject.h:450
The base class for all OPAL objects.
Definition: Object.h:48
static OpalData * getInstance()
Definition: OpalData.cpp:196
void define(Object *newObject)
Define a new object.
Definition: OpalData.cpp:489