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

Abstract class for computing the differential cross section of the photon electroproduction process (also called DVCS; Deeply Virtual Compton Scattering). More...

Inheritance diagram for PARTONS::DVCSProcessModule:
PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult > PARTONS::ModuleObject PARTONS::BaseObject PARTONS::DVCSProcessBMJ12 PARTONS::DVCSProcessGV08 PARTONS::DVCSProcessVGG99

Public Member Functions

virtual ~DVCSProcessModule ()
 Destructor. More...
 
virtual DVCSProcessModuleclone () 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 DVCSObservableResult compute (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization, const DVCSObservableKinematic &kinematic, const List< GPDType > &gpdType=List< GPDType >())
 
virtual List< GPDTypegetListOfAvailableGPDTypeForComputation () const
 Must be implemented in child class. More...
 
DVCSObservableResult compute (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization, const DVCSObservableKinematic &kinematic, const List< GPDType > &gpdType, VCSSubProcessType::Type processType)
 Computes the differential cross-section. More...
 
virtual void resetPreviousKinematic ()
 Reset previous kinematics. More...
 
bool isPreviousCCFKinematicDifferent (const DVCSConvolCoeffFunctionKinematic &kinematic) const
 Check if this kinematics is different than the previous one. More...
 
DVCSScalesModulegetScaleModule () const
 Get scale module. More...
 
void setScaleModule (DVCSScalesModule *pScaleModule)
 Set scale module. More...
 
DVCSXiConverterModulegetXiConverterModule () const
 Get xi converter module. More...
 
void setXiConverterModule (DVCSXiConverterModule *pXiConverterModule)
 Set xi converted module. More...
 
DVCSConvolCoeffFunctionModulegetConvolCoeffFunctionModule () const
 Get CCF module;. More...
 
void setConvolCoeffFunctionModule (DVCSConvolCoeffFunctionModule *pConvolCoeffFunctionModule)
 Set CCF module. More...
 
virtual PhysicalType< double > CrossSectionBH ()
 Bethe-Heitler differential cross section. More...
 
virtual PhysicalType< double > CrossSectionVCS ()
 Virtual Compton Scattering differential cross section. More...
 
virtual PhysicalType< double > CrossSectionInterf ()
 Interference differential cross section. More...
 
void setConvolCoeffFunction (const DVCSConvolCoeffFunctionKinematic &kin, const DVCSConvolCoeffFunctionResult &result)
 Set manually CFFs. More...
 
- Public Member Functions inherited from PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >
virtual ~ProcessModule ()
 Destructor. More...
 
bool isCCFModuleDependent () const
 Check if this process module depends on a CCF module. More...
 
void setIsCCFModuleDependent (bool isCCFModuleDependent)
 Set if this process module depends on a CCF 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 DVCS_PROCESS_MODULE_CLASS_NAME
 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

 DVCSProcessModule (const std::string &className)
 Default constructor. More...
 
 DVCSProcessModule (const DVCSProcessModule &other)
 Copy constructor. More...
 
virtual void setKinematics (const DVCSObservableKinematic &kinematic)
 Set internal kinematics. More...
 
virtual void setExperimentalConditions (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization)
 
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...
 
void computeConvolCoeffFunction (const DVCSObservableKinematic &kinematic, const List< GPDType > &gpdType=List< GPDType >())
 Compute CCF for a given kinematics. More...
 
std::complex< double > getConvolCoeffFunctionValue (GPDType::Type gpdType)
 Gives back a previously computed Compton Form Factor. More...
 
- Protected Member Functions inherited from PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >
 ProcessModule (const std::string &className, ChannelType::Type channelType)
 Constructor. More...
 
 ProcessModule (const ProcessModule &other)
 Copy constructor. 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

double m_xB
 Bjorken variable. More...
 
double m_t
 Mandelstam variable (square of the 4-momentum transferm in GeV2). More...
 
double m_Q2
 Virtuality of the incoming photon (in GeV2). More...
 
double m_E
 Beam energy in target rest frame (in GeV). More...
 
double m_phi
 Angle between leptonic and hadronic plane (in radians, Trento convention). More...
 
double m_beamHelicity
 Beam helicity. More...
 
double m_beamCharge
 Beam charge. More...
 
NumA::Vector3D m_targetPolarization
 Target polarization. More...
 
double m_tmin
 Minimal value of t. More...
 
double m_tmax
 Maximal value of t. More...
 
double m_xBmin
 Minimal value of xB. More...
 
double m_y
 Lepton energy fraction. More...
 
double m_epsilon
 \( \epsilon = \frac{2 x_B M}{Q} \). More...
 
DVCSScalesModulem_pScaleModule
 Pointer to the underlying scale module. More...
 
DVCSXiConverterModulem_pXiConverterModule
 Pointer to the underlying xi converter module. More...
 
DVCSConvolCoeffFunctionModulem_pConvolCoeffFunctionModule
 Pointer to the underlying CCF module. More...
 
DVCSConvolCoeffFunctionResult m_dvcsConvolCoeffFunctionResult
 Stored Compton Form Factor result. More...
 
DVCSConvolCoeffFunctionKinematic m_lastCCFKinematics
 Last Compton Form Factor kinematics. More...
 
- Protected Attributes inherited from PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >
bool m_isCCFModuleDependent
 Boolean (true if this Process module depends on a CCF module). More...
 
- Protected Attributes inherited from PARTONS::ModuleObject
ModuleObjectFactorym_pModuleObjectFactory
 Pointer tp module object factory. More...
 

Detailed Description

Abstract class for computing the differential cross section of the photon electroproduction process (also called DVCS; Deeply Virtual Compton Scattering).

The cross-section is five-fold differential with respect to the variables: \( x_B \), \( Q^2 \), \( t \) and the two angles.

Constructor & Destructor Documentation

◆ ~DVCSProcessModule()

PARTONS::DVCSProcessModule::~DVCSProcessModule ( )
virtual

Destructor.

◆ DVCSProcessModule() [1/2]

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

Default constructor.

◆ DVCSProcessModule() [2/2]

PARTONS::DVCSProcessModule::DVCSProcessModule ( const DVCSProcessModule other)
protected

Copy constructor.

Parameters
otherObject to be copied.

Member Function Documentation

◆ clone()

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

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

Returns

Implements PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

Implemented in PARTONS::DVCSProcessVGG99, PARTONS::DVCSProcessGV08, and PARTONS::DVCSProcessBMJ12.

◆ compute() [1/2]

DVCSObservableResult PARTONS::DVCSProcessModule::compute ( double  beamHelicity,
double  beamCharge,
NumA::Vector3D  targetPolarization,
const DVCSObservableKinematic kinematic,
const List< GPDType > &  gpdType,
VCSSubProcessType::Type  processType 
)

Computes the differential cross-section.

Must be implemented in the child class.

Parameters
beamHelicityHelicity of the beam (in units of hbar/2).
beamChargeCharge of the beam (in units of positron charge).
targetPolarizationPolarization of the target. In GV conventions.
kinematicKinematics.
processTypeSubprocess type.
Returns
Result.

◆ compute() [2/2]

DVCSObservableResult PARTONS::DVCSProcessModule::compute ( double  beamHelicity,
double  beamCharge,
NumA::Vector3D  targetPolarization,
const DVCSObservableKinematic kinematic,
const List< GPDType > &  gpdType = List<GPDType>() 
)
virtual

◆ computeConvolCoeffFunction()

void PARTONS::DVCSProcessModule::computeConvolCoeffFunction ( const DVCSObservableKinematic kinematic,
const List< GPDType > &  gpdType = List<GPDType>() 
)
protected

Compute CCF for a given kinematics.

Parameters
kinematicKinematics to be computed.
gpdTypeList of GPD types to be computed.

◆ configure()

void PARTONS::DVCSProcessModule::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::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

◆ CrossSectionBH()

PhysicalType< double > PARTONS::DVCSProcessModule::CrossSectionBH ( )
virtual

Bethe-Heitler differential cross section.

Reimplemented in PARTONS::DVCSProcessVGG99, PARTONS::DVCSProcessGV08, and PARTONS::DVCSProcessBMJ12.

◆ CrossSectionInterf()

PhysicalType< double > PARTONS::DVCSProcessModule::CrossSectionInterf ( )
virtual

Interference differential cross section.

Reimplemented in PARTONS::DVCSProcessVGG99, PARTONS::DVCSProcessGV08, and PARTONS::DVCSProcessBMJ12.

◆ CrossSectionVCS()

PhysicalType< double > PARTONS::DVCSProcessModule::CrossSectionVCS ( )
virtual

Virtual Compton Scattering differential cross section.

Reimplemented in PARTONS::DVCSProcessVGG99, PARTONS::DVCSProcessGV08, and PARTONS::DVCSProcessBMJ12.

◆ getConvolCoeffFunctionModule()

DVCSConvolCoeffFunctionModule * PARTONS::DVCSProcessModule::getConvolCoeffFunctionModule ( ) const

Get CCF module;.

◆ getConvolCoeffFunctionValue()

std::complex< double > PARTONS::DVCSProcessModule::getConvolCoeffFunctionValue ( GPDType::Type  gpdType)
protected

Gives back a previously computed Compton Form Factor.

Parameters
gpdTypeCFF type (e.g. H or E).
Returns
CFF value for the given type.

◆ getListOfAvailableGPDTypeForComputation()

List< GPDType > PARTONS::DVCSProcessModule::getListOfAvailableGPDTypeForComputation ( ) const
virtual

Must be implemented in child class.

Returns
List of GPD/CCF types the child class can compute.

Implements PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

◆ getScaleModule()

DVCSScalesModule * PARTONS::DVCSProcessModule::getScaleModule ( ) const

Get scale module.

◆ getXiConverterModule()

DVCSXiConverterModule * PARTONS::DVCSProcessModule::getXiConverterModule ( ) const

Get xi converter module.

◆ initModule()

void PARTONS::DVCSProcessModule::initModule ( )
protectedvirtual

Pure virtual function that provides skeleton for module initialization.

Children must define and override it.

Reimplemented from PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

Reimplemented in PARTONS::DVCSProcessVGG99, PARTONS::DVCSProcessGV08, and PARTONS::DVCSProcessBMJ12.

◆ isModuleWellConfigured()

void PARTONS::DVCSProcessModule::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::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

Reimplemented in PARTONS::DVCSProcessVGG99, PARTONS::DVCSProcessGV08, and PARTONS::DVCSProcessBMJ12.

◆ isPreviousCCFKinematicDifferent()

bool PARTONS::DVCSProcessModule::isPreviousCCFKinematicDifferent ( const DVCSConvolCoeffFunctionKinematic kinematic) const

Check if this kinematics is different than the previous one.

◆ prepareSubModules()

void PARTONS::DVCSProcessModule::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::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

◆ resetPreviousKinematic()

void PARTONS::DVCSProcessModule::resetPreviousKinematic ( )
virtual

Reset previous kinematics.

◆ resolveObjectDependencies()

void PARTONS::DVCSProcessModule::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::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

◆ run()

void PARTONS::DVCSProcessModule::run ( )
virtual

◆ setConvolCoeffFunction()

void PARTONS::DVCSProcessModule::setConvolCoeffFunction ( const DVCSConvolCoeffFunctionKinematic kin,
const DVCSConvolCoeffFunctionResult result 
)

Set manually CFFs.

◆ setConvolCoeffFunctionModule()

void PARTONS::DVCSProcessModule::setConvolCoeffFunctionModule ( DVCSConvolCoeffFunctionModule pConvolCoeffFunctionModule)

Set CCF module.

◆ setExperimentalConditions()

void PARTONS::DVCSProcessModule::setExperimentalConditions ( double  beamHelicity,
double  beamCharge,
NumA::Vector3D  targetPolarization 
)
protectedvirtual

◆ setKinematics()

void PARTONS::DVCSProcessModule::setKinematics ( const DVCSObservableKinematic kinematic)
protectedvirtual

Set internal kinematics.

Parameters
kinematicKinematics to be set

Implements PARTONS::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

◆ setScaleModule()

void PARTONS::DVCSProcessModule::setScaleModule ( DVCSScalesModule pScaleModule)

Set scale module.

◆ setXiConverterModule()

void PARTONS::DVCSProcessModule::setXiConverterModule ( DVCSXiConverterModule pXiConverterModule)

Set xi converted module.

◆ toString()

std::string PARTONS::DVCSProcessModule::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::ProcessModule< DVCSObservableKinematic, DVCSObservableResult >.

Member Data Documentation

◆ DVCS_PROCESS_MODULE_CLASS_NAME

const std::string PARTONS::DVCSProcessModule::DVCS_PROCESS_MODULE_CLASS_NAME
static
Initial value:
=
"DVCSProcessModule"

Type of the module in XML automation.

◆ m_beamCharge

double PARTONS::DVCSProcessModule::m_beamCharge
protected

Beam charge.

◆ m_beamHelicity

double PARTONS::DVCSProcessModule::m_beamHelicity
protected

Beam helicity.

◆ m_dvcsConvolCoeffFunctionResult

DVCSConvolCoeffFunctionResult PARTONS::DVCSProcessModule::m_dvcsConvolCoeffFunctionResult
protected

Stored Compton Form Factor result.

◆ m_E

double PARTONS::DVCSProcessModule::m_E
protected

Beam energy in target rest frame (in GeV).

◆ m_epsilon

double PARTONS::DVCSProcessModule::m_epsilon
protected

\( \epsilon = \frac{2 x_B M}{Q} \).

◆ m_lastCCFKinematics

DVCSConvolCoeffFunctionKinematic PARTONS::DVCSProcessModule::m_lastCCFKinematics
protected

Last Compton Form Factor kinematics.

◆ m_pConvolCoeffFunctionModule

DVCSConvolCoeffFunctionModule* PARTONS::DVCSProcessModule::m_pConvolCoeffFunctionModule
protected

Pointer to the underlying CCF module.

◆ m_phi

double PARTONS::DVCSProcessModule::m_phi
protected

Angle between leptonic and hadronic plane (in radians, Trento convention).

◆ m_pScaleModule

DVCSScalesModule* PARTONS::DVCSProcessModule::m_pScaleModule
protected

Pointer to the underlying scale module.

◆ m_pXiConverterModule

DVCSXiConverterModule* PARTONS::DVCSProcessModule::m_pXiConverterModule
protected

Pointer to the underlying xi converter module.

◆ m_Q2

double PARTONS::DVCSProcessModule::m_Q2
protected

Virtuality of the incoming photon (in GeV2).

◆ m_t

double PARTONS::DVCSProcessModule::m_t
protected

Mandelstam variable (square of the 4-momentum transferm in GeV2).

◆ m_targetPolarization

NumA::Vector3D PARTONS::DVCSProcessModule::m_targetPolarization
protected

Target polarization.

◆ m_tmax

double PARTONS::DVCSProcessModule::m_tmax
protected

Maximal value of t.

◆ m_tmin

double PARTONS::DVCSProcessModule::m_tmin
protected

Minimal value of t.

◆ m_xB

double PARTONS::DVCSProcessModule::m_xB
protected

Bjorken variable.

◆ m_xBmin

double PARTONS::DVCSProcessModule::m_xBmin
protected

Minimal value of xB.

◆ m_y

double PARTONS::DVCSProcessModule::m_y
protected

Lepton energy fraction.


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