PARTONS  
PARtonic Tomography Of Nucleon Software
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
PARTONS::GPDModule Class Referenceabstract

Abstract class that provides a skeleton to implement a Generalized Parton Distributions (GPD) module. More...

Inheritance diagram for PARTONS::GPDModule:
PARTONS::ModuleObject PARTONS::BaseObject PARTONS::GPDBDMMS21 PARTONS::GPDGK11 PARTONS::GPDGK16 PARTONS::GPDGK16Numerical PARTONS::GPDHM18 PARTONS::GPDMMS13 PARTONS::GPDMPSSW13 PARTONS::GPDSelectOnePartonType PARTONS::GPDVGG99 PARTONS::GPDVinnikov06

Public Member Functions

virtual ~GPDModule ()
 Destructor. More...
 
virtual GPDModuleclone () const =0
 Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry. More...
 
virtual std::string toString () const
 Return a pre-formatted characters string for output visualization of class member's values. More...
 
virtual void resolveObjectDependencies ()
 Because of the initialization step order of the program, objects are registered in a total random order and some objects depend on others. More...
 
virtual void run ()
 
virtual void configure (const ElemUtils::Parameters &parameters)
 Provides a generic method to configure all types of modules by passing a Parameters object. More...
 
virtual void prepareSubModules (const std::map< std::string, BaseObjectData > &subModulesData)
 Method used in automation to prepare all the modules used by this current module and configure them recursively. More...
 
virtual PartonDistribution compute (const GPDKinematic &kinematic, GPDType::Type gpdType)
 Virtual method, computes GPD with some input parameters. More...
 
virtual GPDResult compute (const GPDKinematic &kinematic, const List< GPDType > &gpdType=List< GPDType >())
 Virtual method, computes GPD with some input parameters. More...
 
List< GPDTypegetListOfAvailableGPDTypeForComputation () const
 Get list of available GPDTypes in the model considered. More...
 
virtual PartonDistribution computeH ()
 This method can be implemented in the child class if the GPD H is available to compute. More...
 
virtual PartonDistribution computeE ()
 This method can be implemented in the child class if the GPD E is available to compute. More...
 
virtual PartonDistribution computeHt ()
 This method can be implemented in the child class if the GPD Ht is available to compute. More...
 
virtual PartonDistribution computeEt ()
 This method can be implemented in the child class if the GPD Et is available to compute. More...
 
virtual PartonDistribution computeHTrans ()
 This method can be implemented in the child class if the GPD HTrans is available to compute. More...
 
virtual PartonDistribution computeETrans ()
 This method can be implemented in the child class if the GPD ETrans is available to compute. More...
 
virtual PartonDistribution computeHtTrans ()
 This method can be implemented in the child class if the GPD HtTrans is available to compute. More...
 
virtual PartonDistribution computeEtTrans ()
 This method can be implemented in the child class if the GPD EtTrans is available to compute. More...
 
virtual PartonDistribution computeH3p ()
 This method can be implemented in the child class if the GPD H3p is available to compute. More...
 
virtual PartonDistribution computeE3p ()
 This method can be implemented in the child class if the GPD E3p is available to compute. More...
 
virtual PartonDistribution computeHt3p ()
 This method can be implemented in the child class if the GPD Ht3p is available to compute. More...
 
virtual PartonDistribution computeEt3p ()
 This method can be implemented in the child class if the GPD Et3p is available to compute. More...
 
virtual PartonDistribution computeH3m ()
 This method can be implemented in the child class if the GPD H3m is available to compute. More...
 
virtual PartonDistribution computeE3m ()
 This method can be implemented in the child class if the GPD E3m is available to compute. More...
 
virtual PartonDistribution computeHt3m ()
 This method can be implemented in the child class if the GPD Ht3m is available to compute. More...
 
virtual PartonDistribution computeEt3m ()
 This method can be implemented in the child class if the GPD Et3m is available to compute. More...
 
virtual PartonDistribution computeEbarTrans ()
 This method can be implemented in the child class if the GPD EbarTrans is available to compute. More...
 
double getMuF2Ref () const
 Get reference factorization scale used by the GPD model before evolution. More...
 
const GPDEvolutionModulegetEvolQcdModule () const
 Set underlying GPD Evolution module. More...
 
void setEvolQcdModule (GPDEvolutionModule *pEvolQcdModule)
 Get underlying GPD Evolution module. More...
 
const CollinearDistributionModulegetPDFModule () const
 Set underlying PDF module. More...
 
void setPDFModule (CollinearDistributionModule *pPDFModule)
 Get underlying PDF module. More...
 
- Public Member Functions inherited from PARTONS::ModuleObject
 ModuleObject (const std::string &className, ChannelType::Type channelType)
 Constructor. More...
 
virtual ~ModuleObject ()
 Default destructor. More...
 
unsigned int getReferenceModuleId () const
 Get reference module id. More...
 
void setReferenceModuleId (unsigned int referenceModuleId)
 Set reference module id. More...
 
ChannelType::Type getChannelType () const
 Get channel type. More...
 
- Public Member Functions inherited from PARTONS::BaseObject
 BaseObject (const std::string &className)
 Constructor. More...
 
virtual ~BaseObject ()
 Default destructor. More...
 
void serialize (ElemUtils::Packet &packet) const
 Used to split a complex C++ object into a concatenation of simple types. More...
 
void unserialize (ElemUtils::Packet &packet)
 Used to rebuild a complex C++ object from a concatenation of simple type. More...
 
bool operator< (const BaseObject &other) const
 Overload of < operator to sort BaseObject object by its indexId value. More...
 
const std::string & getClassName () const
 
unsigned int getObjectId () const
 
int getIndexId () const
 
void setIndexId (int indexId)
 

Static Public Attributes

static const std::string GPD_MODULE_CLASS_NAME = "GPDModule"
 Type of the module in XML automation. More...
 
- Static Public Attributes inherited from PARTONS::ModuleObject
static const std::string CLASS_NAME = "className"
 

Protected Member Functions

 GPDModule (const std::string &className)
 Default constructor. More...
 
 GPDModule (const GPDModule &other)
 Copy constructor. More...
 
virtual void setKinematics (const GPDKinematic &kinematic)
 Set internal kinematics. More...
 
void setCurrentGPDType (GPDType::Type gpdType)
 Set current GPD type to be computed. More...
 
virtual void initModule ()
 Pure virtual function that provides skeleton for module initialization. More...
 
virtual void isModuleWellConfigured ()
 Pure virtual function that provides skeleton to check if the module is well initialized and configured. More...
 
- Protected Member Functions inherited from PARTONS::ModuleObject
 ModuleObject (const ModuleObject &other)
 
- Protected Member Functions inherited from PARTONS::BaseObject
 BaseObject (const BaseObject &other)
 Copy constructor. More...
 
void info (const std::string &functionName, const std::string &message) const
 Print info message into logger. More...
 
void debug (const std::string &functionName, const std::string &message) const
 Print debug message into logger. More...
 
void warn (const std::string &functionName, const std::string &message) const
 Print warning message into logger. More...
 
void errorMissingParameter (const std::string &parameterName) const
 Use in automation process to throw exception when a parameter is missing from the XML scenario file. More...
 

Protected Attributes

std::map< GPDType::Type, PartonDistribution(GPDModule::*)()> m_listGPDComputeTypeAvailable
 List of GPD types that can be computed by the child class. More...
 
std::map< GPDType::Type, PartonDistribution(GPDModule::*)()>::iterator m_it
 Iterator. More...
 
double m_x
 Longitudinal momentum fraction of the active parton. More...
 
double m_xi
 Skewness. More...
 
double m_t
 Mandelstam variable, momentum transfer on the hadron target. More...
 
double m_MuF2
 Factorization scale squared. More...
 
double m_MuR2
 Renormalization scale squared. More...
 
GPDType::Type m_currentGPDComputeType
 Current GPD type. More...
 
double m_MuF2_ref
 Reference factorization scale used by the GPD model before evolution. More...
 
GPDEvolutionModulem_pGPDEvolutionModule
 Pointer to the underlying GPD Evolution module. More...
 
CollinearDistributionModulem_pCollinearDistributionModule
 Pointer to the underlying PDF module. More...
 
- Protected Attributes inherited from PARTONS::ModuleObject
ModuleObjectFactorym_pModuleObjectFactory
 Pointer tp module object factory. More...
 

Detailed Description

Abstract class that provides a skeleton to implement a Generalized Parton Distributions (GPD) module.

It is best to use this module with the corresponding service: GPDService (see examples therein), as explained in the general tutorial.

Constructor & Destructor Documentation

◆ ~GPDModule()

PARTONS::GPDModule::~GPDModule ( )
virtual

Destructor.

◆ GPDModule() [1/2]

PARTONS::GPDModule::GPDModule ( const std::string &  className)
protected

Default constructor.

◆ GPDModule() [2/2]

PARTONS::GPDModule::GPDModule ( const GPDModule other)
protected

Copy constructor.

Parameters
otherObject to be copied.

Member Function Documentation

◆ clone()

virtual GPDModule* PARTONS::GPDModule::clone ( ) const
pure virtual

◆ compute() [1/2]

GPDResult PARTONS::GPDModule::compute ( const GPDKinematic kinematic,
const List< GPDType > &  gpdType = List<GPDType>() 
)
virtual

Virtual method, computes GPD with some input parameters.

Parameters
kinematicGPD kinematics object.
gpdTypeH, Ht, E, Et, ... or ALL. See GPDType for more details.
Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ compute() [2/2]

PartonDistribution PARTONS::GPDModule::compute ( const GPDKinematic kinematic,
GPDType::Type  gpdType 
)
virtual

Virtual method, computes GPD with some input parameters.

Parameters
kinematicGPD kinematics object.
gpdTypeH, Ht, E, Et, ... or ALL. See GPDType for more details.
evolutionBoolean to use evolution.
Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeE()

PartonDistribution PARTONS::GPDModule::computeE ( )
virtual

This method can be implemented in the child class if the GPD E is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

Reimplemented in PARTONS::GPDVGG99, PARTONS::GPDMMS13, PARTONS::GPDHM18, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, and PARTONS::GPDGK11.

◆ computeE3m()

PartonDistribution PARTONS::GPDModule::computeE3m ( )
virtual

This method can be implemented in the child class if the GPD E3m is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeE3p()

PartonDistribution PARTONS::GPDModule::computeE3p ( )
virtual

This method can be implemented in the child class if the GPD E3p is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeEbarTrans()

PartonDistribution PARTONS::GPDModule::computeEbarTrans ( )
virtual

This method can be implemented in the child class if the GPD EbarTrans is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

Reimplemented in PARTONS::GPDGK19COMPASS, and PARTONS::GPDGK19.

◆ computeEt()

PartonDistribution PARTONS::GPDModule::computeEt ( )
virtual

This method can be implemented in the child class if the GPD Et is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

Reimplemented in PARTONS::GPDVGG99, PARTONS::GPDHM18, PARTONS::GPDGK19COMPASS, PARTONS::GPDGK19, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, and PARTONS::GPDGK11.

◆ computeEt3m()

PartonDistribution PARTONS::GPDModule::computeEt3m ( )
virtual

This method can be implemented in the child class if the GPD Et3m is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeEt3p()

PartonDistribution PARTONS::GPDModule::computeEt3p ( )
virtual

This method can be implemented in the child class if the GPD Et3p is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeETrans()

PartonDistribution PARTONS::GPDModule::computeETrans ( )
virtual

This method can be implemented in the child class if the GPD ETrans is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeEtTrans()

PartonDistribution PARTONS::GPDModule::computeEtTrans ( )
virtual

This method can be implemented in the child class if the GPD EtTrans is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeH()

PartonDistribution PARTONS::GPDModule::computeH ( )
virtual

This method can be implemented in the child class if the GPD H is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

Reimplemented in PARTONS::GPDVinnikov06, PARTONS::GPDVGG99, PARTONS::GPDSelectOnePartonType, PARTONS::GPDMPSSW13, PARTONS::GPDMMS13, PARTONS::GPDHM18, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, PARTONS::GPDGK11, and PARTONS::GPDBDMMS21.

◆ computeH3m()

PartonDistribution PARTONS::GPDModule::computeH3m ( )
virtual

This method can be implemented in the child class if the GPD H3m is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeH3p()

PartonDistribution PARTONS::GPDModule::computeH3p ( )
virtual

This method can be implemented in the child class if the GPD H3p is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeHt()

PartonDistribution PARTONS::GPDModule::computeHt ( )
virtual

This method can be implemented in the child class if the GPD Ht is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

Reimplemented in PARTONS::GPDVinnikov06, PARTONS::GPDVGG99, PARTONS::GPDHM18, PARTONS::GPDGK19COMPASS, PARTONS::GPDGK19, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, and PARTONS::GPDGK11.

◆ computeHt3m()

PartonDistribution PARTONS::GPDModule::computeHt3m ( )
virtual

This method can be implemented in the child class if the GPD Ht3m is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeHt3p()

PartonDistribution PARTONS::GPDModule::computeHt3p ( )
virtual

This method can be implemented in the child class if the GPD Ht3p is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ computeHTrans()

PartonDistribution PARTONS::GPDModule::computeHTrans ( )
virtual

This method can be implemented in the child class if the GPD HTrans is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

Reimplemented in PARTONS::GPDGK19COMPASS, and PARTONS::GPDGK19.

◆ computeHtTrans()

PartonDistribution PARTONS::GPDModule::computeHtTrans ( )
virtual

This method can be implemented in the child class if the GPD HtTrans is available to compute.

Returns
PartonDistribution object. Contains results for each flavor of partons.

◆ configure()

void PARTONS::GPDModule::configure ( const ElemUtils::Parameters &  parameters)
virtual

Provides a generic method to configure all types of modules by passing a Parameters object.

Parameters class represents a list of couples key/value (see Parameters class documentation for more info).

Parameters
parametersElemUtils::Parameters object.

Reimplemented from PARTONS::ModuleObject.

Reimplemented in PARTONS::GPDVinnikov06, PARTONS::GPDVGG99, PARTONS::GPDSelectOnePartonType, PARTONS::GPDMPSSW13, PARTONS::GPDMMS13, PARTONS::GPDHM18, PARTONS::GPDGK19COMPASS, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, PARTONS::GPDGK11, and PARTONS::GPDBDMMS21.

◆ getEvolQcdModule()

const GPDEvolutionModule * PARTONS::GPDModule::getEvolQcdModule ( ) const

Set underlying GPD Evolution module.

◆ getListOfAvailableGPDTypeForComputation()

List< GPDType > PARTONS::GPDModule::getListOfAvailableGPDTypeForComputation ( ) const

Get list of available GPDTypes in the model considered.

This list is set in the child class.

◆ getMuF2Ref()

double PARTONS::GPDModule::getMuF2Ref ( ) const

Get reference factorization scale used by the GPD model before evolution.

◆ getPDFModule()

const CollinearDistributionModule * PARTONS::GPDModule::getPDFModule ( ) const

Set underlying PDF module.

◆ initModule()

void PARTONS::GPDModule::initModule ( )
protectedvirtual

Pure virtual function that provides skeleton for module initialization.

Children must define and override it.

Implements PARTONS::ModuleObject.

Reimplemented in PARTONS::GPDVinnikov06, PARTONS::GPDVGG99, PARTONS::GPDMPSSW13, PARTONS::GPDMMS13, PARTONS::GPDHM18, PARTONS::GPDGK19COMPASS, PARTONS::GPDGK19, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, PARTONS::GPDGK11, and PARTONS::GPDBDMMS21.

◆ isModuleWellConfigured()

void PARTONS::GPDModule::isModuleWellConfigured ( )
protectedvirtual

Pure virtual function that provides skeleton to check if the module is well initialized and configured.

Children must define and override it.

Implements PARTONS::ModuleObject.

Reimplemented in PARTONS::GPDVinnikov06, PARTONS::GPDVGG99, PARTONS::GPDMPSSW13, PARTONS::GPDMMS13, PARTONS::GPDHM18, PARTONS::GPDGK19COMPASS, PARTONS::GPDGK19, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, PARTONS::GPDGK11, and PARTONS::GPDBDMMS21.

◆ prepareSubModules()

void PARTONS::GPDModule::prepareSubModules ( const std::map< std::string, BaseObjectData > &  subModulesData)
virtual

Method used in automation to prepare all the modules used by this current module and configure them recursively.

The recursion is linked to the imbrication in XML files.
Can be implemented in the child class if it needs modules not needed by the parent class. But there must be first a call to the parent method.

Parameters
subModulesDataData used to retrieve the needed modules and their configuration.

Reimplemented from PARTONS::ModuleObject.

Reimplemented in PARTONS::GPDSelectOnePartonType.

◆ resolveObjectDependencies()

void PARTONS::GPDModule::resolveObjectDependencies ( )
virtual

Because of the initialization step order of the program, objects are registered in a total random order and some objects depend on others.

To avoid the problem of pointer resolution order, this method is called by the BaseObjectRegistery after all objects are well registered in it. See BaseObjectRegistry class documentation for more details.

Reimplemented from PARTONS::ModuleObject.

Reimplemented in PARTONS::GPDVinnikov06, PARTONS::GPDVGG99, PARTONS::GPDMPSSW13, PARTONS::GPDMMS13, PARTONS::GPDHM18, PARTONS::GPDGK19COMPASS, and PARTONS::GPDBDMMS21.

◆ run()

void PARTONS::GPDModule::run ( )
virtual

Reimplemented from PARTONS::ModuleObject.

◆ setCurrentGPDType()

void PARTONS::GPDModule::setCurrentGPDType ( GPDType::Type  gpdType)
protected

Set current GPD type to be computed.

◆ setEvolQcdModule()

void PARTONS::GPDModule::setEvolQcdModule ( GPDEvolutionModule pEvolQcdModule)

Get underlying GPD Evolution module.

◆ setKinematics()

void PARTONS::GPDModule::setKinematics ( const GPDKinematic kinematic)
protectedvirtual

Set internal kinematics.

Parameters
kinematicKinematics to be set.

◆ setPDFModule()

void PARTONS::GPDModule::setPDFModule ( CollinearDistributionModule pPDFModule)

Get underlying PDF module.

◆ toString()

std::string PARTONS::GPDModule::toString ( ) const
virtual

Return a pre-formatted characters string for output visualization of class member's values.

Returns
a pre-formatted characters string.

Reimplemented from PARTONS::ModuleObject.

Reimplemented in PARTONS::GPDVinnikov06, PARTONS::GPDVGG99, PARTONS::GPDMMS13, PARTONS::GPDGK16Numerical, PARTONS::GPDGK16, and PARTONS::GPDGK11.

Member Data Documentation

◆ GPD_MODULE_CLASS_NAME

const std::string PARTONS::GPDModule::GPD_MODULE_CLASS_NAME = "GPDModule"
static

Type of the module in XML automation.

◆ m_currentGPDComputeType

GPDType::Type PARTONS::GPDModule::m_currentGPDComputeType
protected

Current GPD type.

◆ m_it

std::map<GPDType::Type, PartonDistribution (GPDModule::*)()>::iterator PARTONS::GPDModule::m_it
protected

Iterator.

◆ m_listGPDComputeTypeAvailable

std::map<GPDType::Type, PartonDistribution (GPDModule::*)()> PARTONS::GPDModule::m_listGPDComputeTypeAvailable
protected

List of GPD types that can be computed by the child class.

Needs to be set in the constructor of the child class, with the corresponding methods to be used.

◆ m_MuF2

double PARTONS::GPDModule::m_MuF2
protected

Factorization scale squared.

◆ m_MuF2_ref

double PARTONS::GPDModule::m_MuF2_ref
protected

Reference factorization scale used by the GPD model before evolution.

◆ m_MuR2

double PARTONS::GPDModule::m_MuR2
protected

Renormalization scale squared.

◆ m_pCollinearDistributionModule

CollinearDistributionModule* PARTONS::GPDModule::m_pCollinearDistributionModule
protected

Pointer to the underlying PDF module.

◆ m_pGPDEvolutionModule

GPDEvolutionModule* PARTONS::GPDModule::m_pGPDEvolutionModule
protected

Pointer to the underlying GPD Evolution module.

◆ m_t

double PARTONS::GPDModule::m_t
protected

Mandelstam variable, momentum transfer on the hadron target.

◆ m_x

double PARTONS::GPDModule::m_x
protected

Longitudinal momentum fraction of the active parton.

◆ m_xi

double PARTONS::GPDModule::m_xi
protected

Skewness.


The documentation for this class was generated from the following files: