PARtonic Tomography Of Nucleon Software
New GPD module

Table of Contents

Header file template

For a detailed description of each virtual function we refer to its documentation, which is available after left-clicking on the function name. A short explanation is also provided by hovering your mouse pointer on the name.

class MyGPDModel: public PARTONS::GPDModule {
* ID assigned by BaseObjectRegistry.
static const unsigned int classId;
* Default constructor.
* @param className Name of class.
MyGPDModel(const std::string& className);
* Destructor.
virtual ~MyGPDModel();
virtual MyGPDModel* clone() const;
virtual void resolveObjectDependencies();
virtual void configure(const ElemUtils::Parameters &parameters);
* Copy constructor.
* @param other Object to be copied.
MyGPDModel(const MyGPDModel& other);
virtual void isModuleWellConfigured();
virtual void initModule();

Source code file template

const unsigned int MyGPDModel::classId =
MyGPDModel::MyGPDModel(const std::string &className) : PARTONS::GPDModule(className) {
//relate a specific GPD type with the appropriate function
MyGPDModel::MyGPDModel(const MyGPDModel& other) : PARTONS::GPDModule(other) {
MyGPDModel::~MyGPDModel() {
MyGPDModel* MyGPDModel::clone() const {
return new MyGPDModel(*this);
void MyGPDModel::resolveObjectDependencies() {
void MyGPDModel::configure(const ElemUtils::Parameters &parameters) {
void MyGPDModel::isModuleWellConfigured() {
void MyGPDModel::initModule() {
PARTONS::PartonDistribution MyGPDModel::computeH() {
//your implementation comes here
return result;
PARTONS::PartonDistribution MyGPDModel::computeE() {
//see compute::H()

Useful variables

These are the most useful variables defined in the abstract classes. They are crucial for the implementation of new GPD modules.