PARTONS  
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 {
public:
/**
* 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);
protected:
/**
* 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
m_listGPDComputeTypeAvailable.insert(
m_listGPDComputeTypeAvailable.insert(
}
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() {
//result
//your implementation comes here
...
//return
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.