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::DVCSProcessGV08 Class Reference

Module for the DVCS process using the unpublished Guichon-Vanderhaeghen set of formulas. More...

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

Public Member Functions

 DVCSProcessGV08 (const std::string &className)
 Constructor. More...
 
virtual ~DVCSProcessGV08 ()
 Default destructor. More...
 
virtual DVCSProcessGV08clone () const
 Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry. More...
 
- Public Member Functions inherited from PARTONS::DVCSProcessModule
virtual ~DVCSProcessModule ()
 Destructor. 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...
 
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 unsigned int classId
 Unique ID to automatically register the class in the registry. More...
 
- Static Public Attributes inherited from PARTONS::DVCSProcessModule
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

 DVCSProcessGV08 (const DVCSProcessGV08 &other)
 Copy constructor. 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...
 
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...
 
- Protected Member Functions inherited from PARTONS::DVCSProcessModule
 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)
 
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...
 

Private Member Functions

void MakeExactBHCrossSections ()
 Fills the Jem and SigmaBHPol arrays. More...
 
void MakeExactVCSAndInterfCrossSections ()
 Fills the Ur, SigmaVCSPol and SigmaIPol arrays. More...
 
double DdirectDcrossed (double phi)
 Denominator of the Bethe Heitler cross section. More...
 
double SqrAmplBH (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization)
 Returns the squared amplitude of Bethe Heitler process. More...
 
double SqrAmplVCSAndInterf (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization)
 Sum of the squared amplitude of VCS process and interference term. More...
 
double SqrAmplVCS (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization)
 Returns the squared amplitude of VCS process. More...
 
double SqrAmplInterf (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization)
 Returns the interference term of the squared amplitude. More...
 
void MakeVCSHelicityAmplitudes ()
 

Private Attributes

double m_phaseSpace
 Phase-space factor. More...
 
double m_phiGV
 Angle between hadronic and leptonic planes (opposite sign of the phi angle of Trento). More...
 
std::vector< double > m_powerOfQ
 
std::vector< double > m_powerOfProtonMass
 
double m_yGV
 
double m_xB2
 Square of \( x_B \). More...
 
double m_xBMin
 
double m_xBMax
 
bool Validation
 
bool NoPrint
 
double m_thetag
 Angle between real and virtual photons. More...
 
double m_qpPerp
 Component (here x-axis) of the real photon 3-momentum orthogonal to the virtual photon trajectory (here z-axis) in the hadronic plane (here xz-plane). More...
 
double m_Ur [100]
 Coefficients of the expansion of the interference cross section wrt (combinations of) helicity amplitudes. More...
 
double m_Omega
 (Function of) the linear polarization rate. More...
 
double m_s
 Mandelstam variable (square of the total incoming 4-momentum). More...
 
double m_Q
 Photon virtual mass i.e. square root of Q2. More...
 
NumA::Vector4D m_qCM
 Virtual photon (propagates along z-axis). 4-vector defined in the CM frame. More...
 
NumA::Vector4D m_pCM
 Incoming proton (propagates along z-axis). 4-vector defined in the CM frame. More...
 
NumA::Vector4D m_qpCM
 Real photon (defines hadronic plane xz). 4-vector defined in the CM frame. More...
 
NumA::Vector4D m_ppCM
 Outgoing proton. 4-vector defined in the CM frame. More...
 
double Jem [4][3]
 Helicity amplitudes of the interference process assuming the real photon has helicity +1. More...
 
double RMvcs [4][3]
 Real part of the helicity amplitudes of the VCS process assuming the real photon has helicity +1. More...
 
double IMvcs [4][3]
 Imaginary part of the helicity amplitudes of the VCS process assuming the real photon has helicity +1. More...
 
double SigmaBHPol0 [4]
 Coefficients for the unpolarized cross section of the Bethe-Heitler process. More...
 
double SigmaBHPolX [2]
 Coefficients for the x-polarized cross section of the Bethe-Heitler process. More...
 
double SigmaBHPolY
 Coefficient for the y-polarized cross section of the Bethe-Heitler process. More...
 
double SigmaBHPolZ [2]
 Coefficients for the z-polarized cross section of the Bethe-Heitler process. More...
 
double SigmaVCSPol0 [5]
 Coefficients for the unpolarized cross section of the Virtual Compton Scattering process. More...
 
double SigmaVCSPolX [4]
 Coefficients for the x-polarized cross section of the Virtual Compton Scattering process. More...
 
double SigmaVCSPolY [5]
 Coefficients for the y-polarized cross section of the Virtual Compton Scattering process. More...
 
double SigmaVCSPolZ [4]
 Coefficients for the z-polarized cross section of the Virtual Compton Scattering process. More...
 
double SigmaIPol0 [8]
 Coefficients for the unpolarized cross section (interference term). More...
 
double SigmaIPolX [8]
 Coefficients for the x-polarized cross section (interference term). More...
 
double SigmaIPolY [8]
 Coefficients for the x-polarized cross section (interference term). More...
 
double SigmaIPolZ [8]
 Coefficients for the x-polarized cross section (interference term). More...
 

Additional Inherited Members

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

Module for the DVCS process using the unpublished Guichon-Vanderhaeghen set of formulas.

Constructor & Destructor Documentation

◆ DVCSProcessGV08() [1/2]

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

Constructor.

See BaseObject::BaseObject and ModuleObject::ModuleObject for more details.

Parameters
classNamename of child class.

◆ ~DVCSProcessGV08()

PARTONS::DVCSProcessGV08::~DVCSProcessGV08 ( )
virtual

Default destructor.

◆ DVCSProcessGV08() [2/2]

PARTONS::DVCSProcessGV08::DVCSProcessGV08 ( const DVCSProcessGV08 other)
protected

Copy constructor.

Use by the factory

Parameters
other

Member Function Documentation

◆ clone()

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

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

Returns

Implements PARTONS::DVCSProcessModule.

◆ CrossSectionBH()

PhysicalType< double > PARTONS::DVCSProcessGV08::CrossSectionBH ( )
protectedvirtual

Bethe-Heitler differential cross section.

Reimplemented from PARTONS::DVCSProcessModule.

◆ CrossSectionInterf()

PhysicalType< double > PARTONS::DVCSProcessGV08::CrossSectionInterf ( )
protectedvirtual

Interference differential cross section.

Reimplemented from PARTONS::DVCSProcessModule.

◆ CrossSectionVCS()

PhysicalType< double > PARTONS::DVCSProcessGV08::CrossSectionVCS ( )
protectedvirtual

Virtual Compton Scattering differential cross section.

Reimplemented from PARTONS::DVCSProcessModule.

◆ DdirectDcrossed()

double PARTONS::DVCSProcessGV08::DdirectDcrossed ( double  phi)
private

Denominator of the Bethe Heitler cross section.

◆ initModule()

void PARTONS::DVCSProcessGV08::initModule ( )
protectedvirtual

Pure virtual function that provides skeleton for module initialization.

Children must define and override it.

Reimplemented from PARTONS::DVCSProcessModule.

◆ isModuleWellConfigured()

void PARTONS::DVCSProcessGV08::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::DVCSProcessModule.

◆ MakeExactBHCrossSections()

void PARTONS::DVCSProcessGV08::MakeExactBHCrossSections ( )
private

Fills the Jem and SigmaBHPol arrays.

◆ MakeExactVCSAndInterfCrossSections()

void PARTONS::DVCSProcessGV08::MakeExactVCSAndInterfCrossSections ( )
private

Fills the Ur, SigmaVCSPol and SigmaIPol arrays.

◆ MakeVCSHelicityAmplitudes()

void PARTONS::DVCSProcessGV08::MakeVCSHelicityAmplitudes ( )
private

◆ SqrAmplBH()

double PARTONS::DVCSProcessGV08::SqrAmplBH ( double  beamHelicity,
double  beamCharge,
NumA::Vector3D  targetPolarization 
)
private

Returns the squared amplitude of Bethe Heitler process.

◆ SqrAmplInterf()

double PARTONS::DVCSProcessGV08::SqrAmplInterf ( double  beamHelicity,
double  beamCharge,
NumA::Vector3D  targetPolarization 
)
private

Returns the interference term of the squared amplitude.

◆ SqrAmplVCS()

double PARTONS::DVCSProcessGV08::SqrAmplVCS ( double  beamHelicity,
double  beamCharge,
NumA::Vector3D  targetPolarization 
)
private

Returns the squared amplitude of VCS process.

◆ SqrAmplVCSAndInterf()

double PARTONS::DVCSProcessGV08::SqrAmplVCSAndInterf ( double  beamHelicity,
double  beamCharge,
NumA::Vector3D  targetPolarization 
)
private

Sum of the squared amplitude of VCS process and interference term.

Member Data Documentation

◆ classId

const unsigned int PARTONS::DVCSProcessGV08::classId
static
Initial value:
=
new DVCSProcessGV08("DVCSProcessGV08"))
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
DVCSProcessGV08(const std::string &className)
Constructor.
Definition: DVCSProcessGV08.cpp:20

Unique ID to automatically register the class in the registry.

◆ IMvcs

double PARTONS::DVCSProcessGV08::IMvcs[4][3]
private

Imaginary part of the helicity amplitudes of the VCS process assuming the real photon has helicity +1.

◆ Jem

double PARTONS::DVCSProcessGV08::Jem[4][3]
private

Helicity amplitudes of the interference process assuming the real photon has helicity +1.

◆ m_Omega

double PARTONS::DVCSProcessGV08::m_Omega
private

(Function of) the linear polarization rate.

◆ m_pCM

NumA::Vector4D PARTONS::DVCSProcessGV08::m_pCM
private

Incoming proton (propagates along z-axis). 4-vector defined in the CM frame.

◆ m_phaseSpace

double PARTONS::DVCSProcessGV08::m_phaseSpace
private

Phase-space factor.

◆ m_phiGV

double PARTONS::DVCSProcessGV08::m_phiGV
private

Angle between hadronic and leptonic planes (opposite sign of the phi angle of Trento).

◆ m_powerOfProtonMass

std::vector<double> PARTONS::DVCSProcessGV08::m_powerOfProtonMass
private

◆ m_powerOfQ

std::vector<double> PARTONS::DVCSProcessGV08::m_powerOfQ
private

◆ m_ppCM

NumA::Vector4D PARTONS::DVCSProcessGV08::m_ppCM
private

Outgoing proton. 4-vector defined in the CM frame.

◆ m_Q

double PARTONS::DVCSProcessGV08::m_Q
private

Photon virtual mass i.e. square root of Q2.

◆ m_qCM

NumA::Vector4D PARTONS::DVCSProcessGV08::m_qCM
private

Virtual photon (propagates along z-axis). 4-vector defined in the CM frame.

◆ m_qpCM

NumA::Vector4D PARTONS::DVCSProcessGV08::m_qpCM
private

Real photon (defines hadronic plane xz). 4-vector defined in the CM frame.

◆ m_qpPerp

double PARTONS::DVCSProcessGV08::m_qpPerp
private

Component (here x-axis) of the real photon 3-momentum orthogonal to the virtual photon trajectory (here z-axis) in the hadronic plane (here xz-plane).

◆ m_s

double PARTONS::DVCSProcessGV08::m_s
private

Mandelstam variable (square of the total incoming 4-momentum).

◆ m_thetag

double PARTONS::DVCSProcessGV08::m_thetag
private

Angle between real and virtual photons.

◆ m_Ur

double PARTONS::DVCSProcessGV08::m_Ur[100]
private

Coefficients of the expansion of the interference cross section wrt (combinations of) helicity amplitudes.

◆ m_xB2

double PARTONS::DVCSProcessGV08::m_xB2
private

Square of \( x_B \).

◆ m_xBMax

double PARTONS::DVCSProcessGV08::m_xBMax
private

◆ m_xBMin

double PARTONS::DVCSProcessGV08::m_xBMin
private

◆ m_yGV

double PARTONS::DVCSProcessGV08::m_yGV
private

◆ NoPrint

bool PARTONS::DVCSProcessGV08::NoPrint
private

◆ RMvcs

double PARTONS::DVCSProcessGV08::RMvcs[4][3]
private

Real part of the helicity amplitudes of the VCS process assuming the real photon has helicity +1.

◆ SigmaBHPol0

double PARTONS::DVCSProcessGV08::SigmaBHPol0[4]
private

Coefficients for the unpolarized cross section of the Bethe-Heitler process.

◆ SigmaBHPolX

double PARTONS::DVCSProcessGV08::SigmaBHPolX[2]
private

Coefficients for the x-polarized cross section of the Bethe-Heitler process.

◆ SigmaBHPolY

double PARTONS::DVCSProcessGV08::SigmaBHPolY
private

Coefficient for the y-polarized cross section of the Bethe-Heitler process.

◆ SigmaBHPolZ

double PARTONS::DVCSProcessGV08::SigmaBHPolZ[2]
private

Coefficients for the z-polarized cross section of the Bethe-Heitler process.

◆ SigmaIPol0

double PARTONS::DVCSProcessGV08::SigmaIPol0[8]
private

Coefficients for the unpolarized cross section (interference term).

◆ SigmaIPolX

double PARTONS::DVCSProcessGV08::SigmaIPolX[8]
private

Coefficients for the x-polarized cross section (interference term).

◆ SigmaIPolY

double PARTONS::DVCSProcessGV08::SigmaIPolY[8]
private

Coefficients for the x-polarized cross section (interference term).

◆ SigmaIPolZ

double PARTONS::DVCSProcessGV08::SigmaIPolZ[8]
private

Coefficients for the x-polarized cross section (interference term).

◆ SigmaVCSPol0

double PARTONS::DVCSProcessGV08::SigmaVCSPol0[5]
private

Coefficients for the unpolarized cross section of the Virtual Compton Scattering process.

◆ SigmaVCSPolX

double PARTONS::DVCSProcessGV08::SigmaVCSPolX[4]
private

Coefficients for the x-polarized cross section of the Virtual Compton Scattering process.

◆ SigmaVCSPolY

double PARTONS::DVCSProcessGV08::SigmaVCSPolY[5]
private

Coefficients for the y-polarized cross section of the Virtual Compton Scattering process.

◆ SigmaVCSPolZ

double PARTONS::DVCSProcessGV08::SigmaVCSPolZ[4]
private

Coefficients for the z-polarized cross section of the Virtual Compton Scattering process.

◆ Validation

bool PARTONS::DVCSProcessGV08::Validation
private

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