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

Unpolarized cross-section for electro-production integrated over \(xB\), \(Q^{2}\), \(t\) and angles. More...

Inheritance diagram for PARTONS::DVCSCrossSectionTotal:
PARTONS::DVCSCrossSectionUUMinus PARTONS::DVCSObservable PARTONS::Observable< DVCSObservableKinematic, DVCSObservableResult > PARTONS::ModuleObject PARTONS::BaseObject

Public Member Functions

 DVCSCrossSectionTotal (const std::string &className)
 Constructor. More...
 
virtual ~DVCSCrossSectionTotal ()
 Destructor. More...
 
virtual DVCSCrossSectionTotalclone () const
 Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry. More...
 
virtual void configure (const ElemUtils::Parameters &parameters)
 Provides a generic method to configure all types of modules by passing a Parameters object. More...
 
size_t getNI0 () const
 
void setNI0 (size_t nI0)
 
size_t getNI1 () const
 
void setNI1 (size_t nI1)
 
const std::pair< double, double > & getRangeQ2 () const
 
void setRangeQ2 (const std::pair< double, double > &rangeQ2)
 
const std::pair< double, double > & getRangeT () const
 
void setRangeT (const std::pair< double, double > &rangeT)
 
const std::pair< double, double > & getRangexB () const
 
void setRangexB (const std::pair< double, double > &rangexB)
 
const std::pair< double, double > & getRangeY () const
 
void setRangeY (const std::pair< double, double > &rangeY)
 
const std::pair< double, double > & getRangePhi () const
 
void setRangePhi (const std::pair< double, double > &rangePhi)
 
- Public Member Functions inherited from PARTONS::DVCSCrossSectionUUMinus
 DVCSCrossSectionUUMinus (const std::string &className)
 Constructor. More...
 
virtual ~DVCSCrossSectionUUMinus ()
 Destructor. More...
 
- Public Member Functions inherited from PARTONS::DVCSObservable
virtual ~DVCSObservable ()
 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 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 (const DVCSObservableKinematic &kinematic, const List< GPDType > &gpdType=List< GPDType >())
 Computes the observable at given kinematics. More...
 
virtual List< GPDTypegetListOfAvailableGPDTypeForComputation () const
 Must be implemented in child class. More...
 
DVCSProcessModulegetProcessModule () const
 Get process module. More...
 
void setProcessModule (DVCSProcessModule *pProcessModule)
 Set process module. More...
 
- Public Member Functions inherited from PARTONS::Observable< DVCSObservableKinematic, DVCSObservableResult >
virtual ~Observable ()
 Destructor. 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 Member Functions

static double DVCSCrossSectionTotalFunctionA (double *kin, size_t dim, void *par)
 Function for the integration. More...
 
static double DVCSCrossSectionTotalFunctionB (double x, void *params)
 Function for the integration. More...
 

Static Public Attributes

static const std::string DVCS_CROSSSECTION_TOTAL_RANGEXb
 String used to set integration xB range via XML scenario. More...
 
static const std::string DVCS_CROSSSECTION_TOTAL_RANGET
 String used to set integration t range via XML scenario. More...
 
static const std::string DVCS_CROSSSECTION_TOTAL_RANGEQ2
 String used to set integration Q2 range via XML scenario. More...
 
static const std::string DVCS_CROSSSECTION_TOTAL_RANGEPHI
 String used to set integration phi range via XML scenario. More...
 
static const std::string DVCS_CROSSSECTION_TOTAL_RANGEY
 String used to set integration y range via XML scenario. More...
 
static const std::string DVCS_CROSSSECTION_TOTAL_N0
 String used to set number of MC integration iterations per cycle via XML scenario. More...
 
static const std::string DVCS_CROSSSECTION_TOTAL_N1
 String used to set number of MC integration cycles via XML scenario. More...
 
static const unsigned int classId
 Unique ID to automatically register the class in the registry. More...
 
- Static Public Attributes inherited from PARTONS::DVCSCrossSectionUUMinus
static const unsigned int classId
 Unique ID to automatically register the class in the registry. More...
 
- Static Public Attributes inherited from PARTONS::DVCSObservable
static const std::string DVCS_OBSERVABLE_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

 DVCSCrossSectionTotal (const DVCSCrossSectionTotal &other)
 Copy constructor. More...
 
virtual PhysicalType< double > computeObservable (const DVCSObservableKinematic &kinematic, const List< GPDType > &gpdType)
 Evaluate observable. More...
 
- Protected Member Functions inherited from PARTONS::DVCSCrossSectionUUMinus
 DVCSCrossSectionUUMinus (const DVCSCrossSectionUUMinus &other)
 Copy constructor. More...
 
- Protected Member Functions inherited from PARTONS::DVCSObservable
 DVCSObservable (const std::string &className)
 Default constructor. More...
 
 DVCSObservable (const DVCSObservable &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...
 
- Protected Member Functions inherited from PARTONS::Observable< DVCSObservableKinematic, DVCSObservableResult >
 Observable (const std::string &className, ChannelType::Type channelType)
 Constructor. More...
 
 Observable (const Observable &other)
 Copy constructor. More...
 
std::vector< double > serializeKinematicsAndGPDTypesIntoStdVector (const DVCSObservableKinematic &kin, const List< GPDType > &list) const
 Serialize kinematics and list of GPD types to std::vector<double>. More...
 
void unserializeKinematicsAndGPDTypesFromStdVector (const std::vector< double > &vec, DVCSObservableKinematic &kin, List< GPDType > &list) const
 Unserialize kinematics and list of GPD types from std::vector<double>. 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 printChangeOfRange (const std::string &func, const std::string &name, const std::pair< double, double > &oldValues, const std::pair< double, double > &newValues) const
 Print change of ranges. More...
 
std::pair< double, double > parseRange (const std::string &str) const
 Parse range. More...
 

Private Attributes

size_t m_nI0
 Number of iteration in single cycle. More...
 
size_t m_nI1
 Number of cycles. More...
 
std::pair< double, double > m_rangexB
 xB integration range. More...
 
std::pair< double, double > m_rangeT
 t integration range. More...
 
std::pair< double, double > m_rangeQ2
 Q2 integration range. More...
 
std::pair< double, double > m_rangePhi
 phi integration range. More...
 
std::pair< double, double > m_rangeY
 y integration range. More...
 

Additional Inherited Members

- Protected Attributes inherited from PARTONS::DVCSObservable
DVCSProcessModulem_pProcessModule
 Pointer to the underlying process module. More...
 
- Protected Attributes inherited from PARTONS::ModuleObject
ModuleObjectFactorym_pModuleObjectFactory
 Pointer tp module object factory. More...
 

Detailed Description

Unpolarized cross-section for electro-production integrated over \(xB\), \(Q^{2}\), \(t\) and angles.

Default ranges: \(1E-4 < xB < 0.7\), \(-1 < t < 0\), \(1 < Q^{2} < 1E3\) and \(0 < y < 1\). Full integration over angles.

Unit: \(\mathrm{nbarn}\).

Constructor & Destructor Documentation

◆ DVCSCrossSectionTotal() [1/2]

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

Constructor.

Parameters
classNameName of class.

◆ ~DVCSCrossSectionTotal()

PARTONS::DVCSCrossSectionTotal::~DVCSCrossSectionTotal ( )
virtual

Destructor.

◆ DVCSCrossSectionTotal() [2/2]

PARTONS::DVCSCrossSectionTotal::DVCSCrossSectionTotal ( const DVCSCrossSectionTotal other)
protected

Copy constructor.

Parameters
otherObject to be copied.

Member Function Documentation

◆ clone()

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

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

Returns

Reimplemented from PARTONS::DVCSCrossSectionUUMinus.

◆ computeObservable()

PhysicalType< double > PARTONS::DVCSCrossSectionTotal::computeObservable ( const DVCSObservableKinematic kinematic,
const List< GPDType > &  gpdType 
)
protectedvirtual

Evaluate observable.

To be implemented in a child class.

Reimplemented from PARTONS::DVCSCrossSectionUUMinus.

◆ configure()

void PARTONS::DVCSCrossSectionTotal::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::DVCSObservable.

◆ DVCSCrossSectionTotalFunctionA()

double PARTONS::DVCSCrossSectionTotal::DVCSCrossSectionTotalFunctionA ( double *  kin,
size_t  dim,
void *  par 
)
static

Function for the integration.

◆ DVCSCrossSectionTotalFunctionB()

double PARTONS::DVCSCrossSectionTotal::DVCSCrossSectionTotalFunctionB ( double  x,
void *  params 
)
static

Function for the integration.

◆ getNI0()

size_t PARTONS::DVCSCrossSectionTotal::getNI0 ( ) const

◆ getNI1()

size_t PARTONS::DVCSCrossSectionTotal::getNI1 ( ) const

◆ getRangePhi()

const std::pair< double, double > & PARTONS::DVCSCrossSectionTotal::getRangePhi ( ) const

◆ getRangeQ2()

const std::pair< double, double > & PARTONS::DVCSCrossSectionTotal::getRangeQ2 ( ) const

◆ getRangeT()

const std::pair< double, double > & PARTONS::DVCSCrossSectionTotal::getRangeT ( ) const

◆ getRangexB()

const std::pair< double, double > & PARTONS::DVCSCrossSectionTotal::getRangexB ( ) const

◆ getRangeY()

const std::pair< double, double > & PARTONS::DVCSCrossSectionTotal::getRangeY ( ) const

◆ parseRange()

std::pair< double, double > PARTONS::DVCSCrossSectionTotal::parseRange ( const std::string &  str) const
private

Parse range.

◆ printChangeOfRange()

void PARTONS::DVCSCrossSectionTotal::printChangeOfRange ( const std::string &  func,
const std::string &  name,
const std::pair< double, double > &  oldValues,
const std::pair< double, double > &  newValues 
) const
private

Print change of ranges.

◆ setNI0()

void PARTONS::DVCSCrossSectionTotal::setNI0 ( size_t  nI0)

◆ setNI1()

void PARTONS::DVCSCrossSectionTotal::setNI1 ( size_t  nI1)

◆ setRangePhi()

void PARTONS::DVCSCrossSectionTotal::setRangePhi ( const std::pair< double, double > &  rangePhi)

◆ setRangeQ2()

void PARTONS::DVCSCrossSectionTotal::setRangeQ2 ( const std::pair< double, double > &  rangeQ2)

◆ setRangeT()

void PARTONS::DVCSCrossSectionTotal::setRangeT ( const std::pair< double, double > &  rangeT)

◆ setRangexB()

void PARTONS::DVCSCrossSectionTotal::setRangexB ( const std::pair< double, double > &  rangexB)

◆ setRangeY()

void PARTONS::DVCSCrossSectionTotal::setRangeY ( const std::pair< double, double > &  rangeY)

Member Data Documentation

◆ classId

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

Unique ID to automatically register the class in the registry.

◆ DVCS_CROSSSECTION_TOTAL_N0

const std::string PARTONS::DVCSCrossSectionTotal::DVCS_CROSSSECTION_TOTAL_N0
static
Initial value:
=
"DVCSCrossSectionTotal_N0"

String used to set number of MC integration iterations per cycle via XML scenario.

◆ DVCS_CROSSSECTION_TOTAL_N1

const std::string PARTONS::DVCSCrossSectionTotal::DVCS_CROSSSECTION_TOTAL_N1
static
Initial value:
=
"DVCSCrossSectionTotal_N1"

String used to set number of MC integration cycles via XML scenario.

◆ DVCS_CROSSSECTION_TOTAL_RANGEPHI

const std::string PARTONS::DVCSCrossSectionTotal::DVCS_CROSSSECTION_TOTAL_RANGEPHI
static
Initial value:
=
"DVCSCrossSectionTotal_rangePhi"

String used to set integration phi range via XML scenario.

◆ DVCS_CROSSSECTION_TOTAL_RANGEQ2

const std::string PARTONS::DVCSCrossSectionTotal::DVCS_CROSSSECTION_TOTAL_RANGEQ2
static
Initial value:
=
"DVCSCrossSectionTotal_rangeQ2"

String used to set integration Q2 range via XML scenario.

◆ DVCS_CROSSSECTION_TOTAL_RANGET

const std::string PARTONS::DVCSCrossSectionTotal::DVCS_CROSSSECTION_TOTAL_RANGET
static
Initial value:
=
"DVCSCrossSectionTotal_rangeT"

String used to set integration t range via XML scenario.

◆ DVCS_CROSSSECTION_TOTAL_RANGEXb

const std::string PARTONS::DVCSCrossSectionTotal::DVCS_CROSSSECTION_TOTAL_RANGEXb
static
Initial value:
=
"DVCSCrossSectionTotal_rangeXb"

String used to set integration xB range via XML scenario.

◆ DVCS_CROSSSECTION_TOTAL_RANGEY

const std::string PARTONS::DVCSCrossSectionTotal::DVCS_CROSSSECTION_TOTAL_RANGEY
static
Initial value:
=
"DVCSCrossSectionTotal_rangeY"

String used to set integration y range via XML scenario.

◆ m_nI0

size_t PARTONS::DVCSCrossSectionTotal::m_nI0
private

Number of iteration in single cycle.

◆ m_nI1

size_t PARTONS::DVCSCrossSectionTotal::m_nI1
private

Number of cycles.

◆ m_rangePhi

std::pair<double, double> PARTONS::DVCSCrossSectionTotal::m_rangePhi
private

phi integration range.

◆ m_rangeQ2

std::pair<double, double> PARTONS::DVCSCrossSectionTotal::m_rangeQ2
private

Q2 integration range.

◆ m_rangeT

std::pair<double, double> PARTONS::DVCSCrossSectionTotal::m_rangeT
private

t integration range.

◆ m_rangexB

std::pair<double, double> PARTONS::DVCSCrossSectionTotal::m_rangexB
private

xB integration range.

◆ m_rangeY

std::pair<double, double> PARTONS::DVCSCrossSectionTotal::m_rangeY
private

y integration range.


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