PARTONS  
PARtonic Tomography Of Nucleon Software
Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
PARTONS::GPDHM18 Class Reference

The proposition of the scalar di-quark model (SDQM) in the context of GPDs back to the Jakob-Mulders-Rodrigues paper hep-ph/9704335 [14]. More...

Inheritance diagram for PARTONS::GPDHM18:
PARTONS::GPDModule PARTONS::MathIntegratorModule PARTONS::ModuleObject PARTONS::BaseObject

Public Member Functions

 GPDHM18 (const std::string &className)
 Default constructor. More...
 
virtual ~GPDHM18 ()
 Destructor. More...
 
virtual GPDHM18clone () const
 Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry. 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 configure (const ElemUtils::Parameters &parameters)
 Provides a generic method to configure all types of modules by passing a Parameters object. More...
 
- Public Member Functions inherited from PARTONS::GPDModule
virtual ~GPDModule ()
 Destructor. More...
 
virtual std::string toString () const
 Return a pre-formatted characters string for output visualization of class member's values. More...
 
virtual void run ()
 
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 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)
 
- Public Member Functions inherited from PARTONS::MathIntegratorModule
 MathIntegratorModule ()
 Default constructor. More...
 
virtual ~MathIntegratorModule ()
 Default destructor. More...
 

Static Public Attributes

static const std::string PARAMETER_NAME_HM18MODEL_M = "HM18MODEL_M"
 Name of parameter to set m_M via configure() More...
 
static const std::string PARAMETER_NAME_HM18MODEL_m = "HM18MODEL_m"
 Name of parameter to set m_m via configure() More...
 
static const std::string PARAMETER_NAME_HM18MODEL_lambda = "HM18MODEL_lambda"
 Name of parameter to set m_lambda via configure() More...
 
static const std::string PARAMETER_NAME_HM18MODEL_p = "HM18MODEL_p"
 Name of parameter to set m_p via configure() More...
 
static const unsigned int classId
 ID assigned by BaseObjectRegistry. More...
 
- Static Public Attributes inherited from PARTONS::GPDModule
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"
 
- Static Public Attributes inherited from PARTONS::MathIntegratorModule
static const std::string PARAM_NAME_INTEGRATOR_TYPE
 Parameter used in configureIntegrator() or XML automation to set the type of integrator. More...
 

Protected Member Functions

 GPDHM18 (const GPDHM18 &other)
 Copy constructor. More...
 
virtual void isModuleWellConfigured ()
 Pure virtual function that provides skeleton to check if the module is well initialized and configured. More...
 
virtual void initModule ()
 Pure virtual function that provides skeleton for module initialization. More...
 
virtual PartonDistribution computeH ()
 This method can be implemented in the child class if the GPD H 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 computeE ()
 This method can be implemented in the child class if the GPD E 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...
 
- Protected Member Functions inherited from PARTONS::GPDModule
 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...
 
- 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 Member Functions inherited from PARTONS::MathIntegratorModule
 MathIntegratorModule (const MathIntegratorModule &other)
 Copy constructor. More...
 
void setIntegrator (NumA::IntegratorType1D::Type integratorType)
 Sets a given integrator available in NumA++. More...
 
double integrate (NumA::FunctionType1D *pFunction, double a, double b, std::vector< double > &parameters)
 Computes the integral of a function defined via a functor. More...
 
void configureIntegrator (const ElemUtils::Parameters &parameters)
 Provides a generic method to configure all types of integration routines by passing a Parameters object. More...
 
NumA::Integrator1D * getMathIntegrator ()
 

Private Member Functions

void Normalize ()
 Function setting the normalization of the GPDs. More...
 
double IntNorm (double y, std::vector< double > par)
 Integral given in Eq. More...
 
double DD_E (double y, double z, double t)
 Double distribution function for GPD E. More...
 
double IntE (double y, std::vector< double > par)
 Integrand of GPD E for xi <> 0. More...
 
double IntE0 (double z, std::vector< double > par)
 Integrand of GPD E for xi == 0. More...
 
double DD_H (double y, double z, double t)
 Double distribution function for GPD H. More...
 
double IntH (double y, std::vector< double > par)
 Integrand of GPD H for xi <> 0. More...
 
double IntH0 (double z, std::vector< double > par)
 Integrand of GPD H for xi == 0. More...
 
double DD_Ht (double y, double z, double t)
 Double distribution function for GPD Ht. More...
 
double IntHt (double y, std::vector< double > par)
 Integrand of GPD Ht for xi <> 0. More...
 
double IntHt0 (double z, std::vector< double > par)
 Integrad of GPD Ht for xi == 0. More...
 
double DD_Et (double y, double z, double t)
 Double distribution function for GPD Et. More...
 
double IntEt (double y, std::vector< double > par)
 Integrand of GPD Et for xi <> 0. More...
 
double evaluate (double x, NumA::FunctionType1D *p_fun0, NumA::FunctionType1D *p_fun)
 Evaluates GPDs using double distribution function by integrating p_fun0 or p_fun function depending on kinematics. More...
 
PartonDistribution compute (NumA::FunctionType1D *p_fun0, NumA::FunctionType1D *p_fun)
 Computes GPDs using GPDHM18::evaluate function and creates appropriate parton distributions. More...
 
void initializeFunctorsForIntegrations ()
 Initialize functors. More...
 
void deleteFunctorsForIntegrations ()
 Delete functors. More...
 

Private Attributes

double m_M
 Mass of the proton;. More...
 
double m_m
 Mass of the active quark. More...
 
double m_lambda
 Mass of the spectator. More...
 
double m_p
 Parameter controlling the power. More...
 
double m_N
 Normalization of the GPDs. More...
 
NumA::FunctionType1D * m_pint_IntNorm
 Functor related to IntNorm. More...
 
NumA::FunctionType1D * m_pint_IntE
 Functor related to IntE. More...
 
NumA::FunctionType1D * m_pint_IntE0
 Functor related to IntE0. More...
 
NumA::FunctionType1D * m_pint_IntH
 Functor related to IntH. More...
 
NumA::FunctionType1D * m_pint_IntH0
 Functor related to IntH0. More...
 
NumA::FunctionType1D * m_pint_IntHt
 Functor related to IntHt. More...
 
NumA::FunctionType1D * m_pint_IntHt0
 Functor related to IntHt0. More...
 
NumA::FunctionType1D * m_pint_IntEt
 Functor related to IntE for xi <> 0. More...
 

Additional Inherited Members

- Protected Attributes inherited from PARTONS::GPDModule
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

The proposition of the scalar di-quark model (SDQM) in the context of GPDs back to the Jakob-Mulders-Rodrigues paper hep-ph/9704335 [14].

Later, the model has been studied by Dae Sung Hwang and Dieter Mueller. The short description of the GPDs derived from this model is given in arXiv:0710.1567 [13]. In the Ref. arXiv:1407.16655 [19] full description is given.

Available GPD types: H, Ht, E, Et.

Constructor & Destructor Documentation

◆ GPDHM18() [1/2]

PARTONS::GPDHM18::GPDHM18 ( const std::string &  className)

Default constructor.

Parameters
classNameName of class.

Value of m_N is calculated in GPDHM18::configure using Normalize() function. In this place Normalization() function cann't be run, since it is using integration mechanism, which will be initiated not sooner that in GPDHM18::configure. In order to not to leave the value of m_N not initialize the value returned by Normalization() with initial values of model parameters has been used.

◆ ~GPDHM18()

PARTONS::GPDHM18::~GPDHM18 ( )
virtual

Destructor.

◆ GPDHM18() [2/2]

PARTONS::GPDHM18::GPDHM18 ( const GPDHM18 other)
protected

Copy constructor.

Parameters
otherObject to be copied.

Member Function Documentation

◆ clone()

GPDHM18 * PARTONS::GPDHM18::clone ( ) const
virtual

Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry.

Returns

Implements PARTONS::GPDModule.

◆ compute()

PartonDistribution PARTONS::GPDHM18::compute ( NumA::FunctionType1D *  p_fun0,
NumA::FunctionType1D *  p_fun 
)
private

Computes GPDs using GPDHM18::evaluate function and creates appropriate parton distributions.

Parameters
p_fun0integrate this function if xi == 0
p_funintegrate this function if xi <> 0
Returns
parton distributions

◆ computeE()

PartonDistribution PARTONS::GPDHM18::computeE ( )
protectedvirtual

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 from PARTONS::GPDModule.

◆ computeEt()

PartonDistribution PARTONS::GPDHM18::computeEt ( )
protectedvirtual

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 from PARTONS::GPDModule.

◆ computeH()

PartonDistribution PARTONS::GPDHM18::computeH ( )
protectedvirtual

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 from PARTONS::GPDModule.

◆ computeHt()

PartonDistribution PARTONS::GPDHM18::computeHt ( )
protectedvirtual

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 from PARTONS::GPDModule.

◆ configure()

void PARTONS::GPDHM18::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::GPDModule.

◆ DD_E()

double PARTONS::GPDHM18::DD_E ( double  y,
double  z,
double  t 
)
private

Double distribution function for GPD E.

Definition can be found in Eqs. (18) and (19) in Ref. [13].

Parameters
yDouble distribution parameter y.
zDouble distribution parameter z.
tDouble distribution parameter t.
Returns
GPD E

◆ DD_Et()

double PARTONS::GPDHM18::DD_Et ( double  y,
double  z,
double  t 
)
private

Double distribution function for GPD Et.

Definition can be found in Eqs. (4.23) and (4.27) in Ref. [19].

Parameters
yDouble distribution parameter y.
zDouble distribution parameter z.
tDouble distribution parameter t.
Returns
GPD Et

◆ DD_H()

double PARTONS::GPDHM18::DD_H ( double  y,
double  z,
double  t 
)
private

Double distribution function for GPD H.

Definition can be found in Eqs. (21) and (19) in Ref. [13].

Parameters
yDouble distribution parameter y.
zDouble distribution parameter z.
tDouble distribution parameter t.
Returns
GPD H

◆ DD_Ht()

double PARTONS::GPDHM18::DD_Ht ( double  y,
double  z,
double  t 
)
private

Double distribution function for GPD Ht.

Definition can be found in Eqs. (4.23) and (4.26) in Ref. [19].

Parameters
yDouble distribution parameter y.
zDouble distribution parameter z.
tDouble distribution parameter t.
Returns
GPD Ht

◆ deleteFunctorsForIntegrations()

void PARTONS::GPDHM18::deleteFunctorsForIntegrations ( )
private

Delete functors.

◆ evaluate()

double PARTONS::GPDHM18::evaluate ( double  x,
NumA::FunctionType1D *  p_fun0,
NumA::FunctionType1D *  p_fun 
)
private

Evaluates GPDs using double distribution function by integrating p_fun0 or p_fun function depending on kinematics.

Parameters
x
p_fun0integrate this function if xi == 0
p_funintegrate this function if xi <> 0
Returns
computed GPD

◆ initializeFunctorsForIntegrations()

void PARTONS::GPDHM18::initializeFunctorsForIntegrations ( )
private

Initialize functors.

◆ initModule()

void PARTONS::GPDHM18::initModule ( )
protectedvirtual

Pure virtual function that provides skeleton for module initialization.

Children must define and override it.

Reimplemented from PARTONS::GPDModule.

◆ IntE()

double PARTONS::GPDHM18::IntE ( double  y,
std::vector< double >  par 
)
private

Integrand of GPD E for xi <> 0.

◆ IntE0()

double PARTONS::GPDHM18::IntE0 ( double  z,
std::vector< double >  par 
)
private

Integrand of GPD E for xi == 0.

◆ IntEt()

double PARTONS::GPDHM18::IntEt ( double  y,
std::vector< double >  par 
)
private

Integrand of GPD Et for xi <> 0.

◆ IntH()

double PARTONS::GPDHM18::IntH ( double  y,
std::vector< double >  par 
)
private

Integrand of GPD H for xi <> 0.

◆ IntH0()

double PARTONS::GPDHM18::IntH0 ( double  z,
std::vector< double >  par 
)
private

Integrand of GPD H for xi == 0.

◆ IntHt()

double PARTONS::GPDHM18::IntHt ( double  y,
std::vector< double >  par 
)
private

Integrand of GPD Ht for xi <> 0.

◆ IntHt0()

double PARTONS::GPDHM18::IntHt0 ( double  z,
std::vector< double >  par 
)
private

Integrad of GPD Ht for xi == 0.

◆ IntNorm()

double PARTONS::GPDHM18::IntNorm ( double  y,
std::vector< double >  par 
)
private

Integral given in Eq.

(22) Ref. [13].

Parameters
y
paroptional parameters of integration, not used.
Returns
1/m_N

◆ isModuleWellConfigured()

void PARTONS::GPDHM18::isModuleWellConfigured ( )
protectedvirtual

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

Children must define and override it.

Reimplemented from PARTONS::GPDModule.

◆ Normalize()

void PARTONS::GPDHM18::Normalize ( )
private

Function setting the normalization of the GPDs.

Parameters
m_Naccording to the Eq. (22) Ref. [13]. *

◆ resolveObjectDependencies()

void PARTONS::GPDHM18::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::GPDModule.

Member Data Documentation

◆ classId

const unsigned int PARTONS::GPDHM18::classId
static
Initial value:
=
new GPDHM18("GPDHM18"))
unsigned int registerBaseObject(BaseObject *pBaseObject)
Store a unique instance of a module identified by a unique string character key.
Definition: BaseObjectRegistry.cpp:45
static BaseObjectRegistry * getInstance()
Static function to be able to retrieve a unique instance pointer of this class anywhere in the code.
Definition: BaseObjectRegistry.cpp:15
GPDHM18(const std::string &className)
Default constructor.
Definition: GPDHM18.cpp:29

ID assigned by BaseObjectRegistry.

◆ m_lambda

double PARTONS::GPDHM18::m_lambda
private

Mass of the spectator.

◆ m_M

double PARTONS::GPDHM18::m_M
private

Mass of the proton;.

◆ m_m

double PARTONS::GPDHM18::m_m
private

Mass of the active quark.

◆ m_N

double PARTONS::GPDHM18::m_N
private

Normalization of the GPDs.

◆ m_p

double PARTONS::GPDHM18::m_p
private

Parameter controlling the power.

◆ m_pint_IntE

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntE
private

Functor related to IntE.

◆ m_pint_IntE0

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntE0
private

Functor related to IntE0.

◆ m_pint_IntEt

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntEt
private

Functor related to IntE for xi <> 0.

◆ m_pint_IntH

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntH
private

Functor related to IntH.

◆ m_pint_IntH0

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntH0
private

Functor related to IntH0.

◆ m_pint_IntHt

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntHt
private

Functor related to IntHt.

◆ m_pint_IntHt0

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntHt0
private

Functor related to IntHt0.

◆ m_pint_IntNorm

NumA::FunctionType1D* PARTONS::GPDHM18::m_pint_IntNorm
private

Functor related to IntNorm.

◆ PARAMETER_NAME_HM18MODEL_lambda

const std::string PARTONS::GPDHM18::PARAMETER_NAME_HM18MODEL_lambda = "HM18MODEL_lambda"
static

Name of parameter to set m_lambda via configure()

◆ PARAMETER_NAME_HM18MODEL_M

const std::string PARTONS::GPDHM18::PARAMETER_NAME_HM18MODEL_M = "HM18MODEL_M"
static

Name of parameter to set m_M via configure()

◆ PARAMETER_NAME_HM18MODEL_m

const std::string PARTONS::GPDHM18::PARAMETER_NAME_HM18MODEL_m = "HM18MODEL_m"
static

Name of parameter to set m_m via configure()

◆ PARAMETER_NAME_HM18MODEL_p

const std::string PARTONS::GPDHM18::PARAMETER_NAME_HM18MODEL_p = "HM18MODEL_p"
static

Name of parameter to set m_p via configure()


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