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

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

Inheritance diagram for PARTONS::TCSCrossSectionTotal:
PARTONS::TCSCrossSectionUU PARTONS::TCSObservable PARTONS::Observable< TCSObservableKinematic, TCSObservableResult > PARTONS::ModuleObject PARTONS::BaseObject

Public Member Functions

 TCSCrossSectionTotal (const std::string &className)
 Constructor. More...
 
virtual ~TCSCrossSectionTotal ()
 Destructor. More...
 
virtual TCSCrossSectionTotalclone () 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 > & getRangeT () const
 
void setRangeT (const std::pair< double, double > &rangeT)
 
const std::pair< double, double > & getRangeQ2Prim () const
 
void setRangeQ2Prim (const std::pair< double, double > &rangeQ2Prim)
 
const std::pair< double, double > & getRangePhi () const
 
void setRangePhi (const std::pair< double, double > &rangePhi)
 
const std::pair< double, double > & getRangeTheta () const
 
void setRangeTheta (const std::pair< double, double > &rangeTheta)
 
const std::pair< double, double > & getRangeY () const
 
void setRangeY (const std::pair< double, double > &rangeY)
 
const std::pair< double, double > & getRangeQ2 () const
 
void setRangeQ2 (const std::pair< double, double > &rangeQ2)
 
double getPhiEpsilon () const
 
void setPhiEpsilon (double phiEpsilon)
 
- Public Member Functions inherited from PARTONS::TCSCrossSectionUU
 TCSCrossSectionUU (const std::string &className)
 Constructor. More...
 
virtual ~TCSCrossSectionUU ()
 Destructor. More...
 
- Public Member Functions inherited from PARTONS::TCSObservable
virtual ~TCSObservable ()
 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 TCSObservableResult compute (const TCSObservableKinematic &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...
 
TCSProcessModulegetProcessModule () const
 Get process module. More...
 
void setProcessModule (TCSProcessModule *pProcessModule)
 Set process module. More...
 
- Public Member Functions inherited from PARTONS::Observable< TCSObservableKinematic, TCSObservableResult >
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 TCSCrossSectionTotalFunctionA (double *kin, size_t dim, void *par)
 Function for the integration. More...
 
static double TCSCrossSectionTotalFunctionB (double x, void *params)
 Function for the integration. More...
 
static double TCSCrossSectionTotalFunctionC (double x, void *params)
 Function for the integration. More...
 

Static Public Attributes

static const std::string TCS_CROSSSECTION_TOTAL_RANGET
 String used to set integration t range via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_RANGEQ2PRIM
 String used to set integration Q2Prim range via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_RANGEPHI
 String used to set integration phi range via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_RANGETHETA
 String used to set integration theta range via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_RANGEY
 String used to set integration y range via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_RANGEQ2
 String used to set integration Q2 range via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_N0
 String used to set number of MC integration iterations per cycle via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_N1
 String used to set number of MC integration cycles via XML scenario. More...
 
static const std::string TCS_CROSSSECTION_TOTAL_PHIEPSILON
 String used to set epsilon skipped arroung phiL = PI 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::TCSCrossSectionUU
static const unsigned int classId
 Unique ID to automatically register the class in the registry. More...
 
- Static Public Attributes inherited from PARTONS::TCSObservable
static const std::string TCS_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

 TCSCrossSectionTotal (const TCSCrossSectionTotal &other)
 Copy constructor. More...
 
virtual PhysicalType< double > computeObservable (const TCSObservableKinematic &kinematic, const List< GPDType > &gpdType)
 Evaluate observable. More...
 
- Protected Member Functions inherited from PARTONS::TCSCrossSectionUU
 TCSCrossSectionUU (const TCSCrossSectionUU &other)
 Copy constructor. More...
 
- Protected Member Functions inherited from PARTONS::TCSObservable
 TCSObservable (const std::string &className)
 Default constructor. More...
 
 TCSObservable (const TCSObservable &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< TCSObservableKinematic, TCSObservableResult >
 Observable (const std::string &className, ChannelType::Type channelType)
 Constructor. More...
 
 Observable (const Observable &other)
 Copy constructor. More...
 
std::vector< double > serializeKinematicsAndGPDTypesIntoStdVector (const TCSObservableKinematic &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, TCSObservableKinematic &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_rangeT
 t integration range. More...
 
std::pair< double, double > m_rangeQ2Prim
 Q2Prim integration range. More...
 
std::pair< double, double > m_rangePhi
 phi integration range. More...
 
std::pair< double, double > m_rangeTheta
 phi integration range. More...
 
std::pair< double, double > m_rangeY
 y integration range. More...
 
std::pair< double, double > m_rangeQ2
 Q2 integration range. More...
 
double m_phiEpsilon
 Cut out phi = pi. More...
 

Additional Inherited Members

- Protected Attributes inherited from PARTONS::TCSObservable
TCSProcessModulem_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: \(-1 < t < 0\), \(1 < Q'^{2} < 1E3\) and \(0 < y < 1\), \(Q2min < Q^{2} < 0.1\). Full integration over angles.

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

Constructor & Destructor Documentation

◆ TCSCrossSectionTotal() [1/2]

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

Constructor.

Parameters
classNameName of class.

◆ ~TCSCrossSectionTotal()

PARTONS::TCSCrossSectionTotal::~TCSCrossSectionTotal ( )
virtual

Destructor.

◆ TCSCrossSectionTotal() [2/2]

PARTONS::TCSCrossSectionTotal::TCSCrossSectionTotal ( const TCSCrossSectionTotal other)
protected

Copy constructor.

Parameters
otherObject to be copied.

Member Function Documentation

◆ clone()

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

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

Returns

Reimplemented from PARTONS::TCSCrossSectionUU.

◆ computeObservable()

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

Evaluate observable.

To be implemented in a child class.

Reimplemented from PARTONS::TCSCrossSectionUU.

◆ configure()

void PARTONS::TCSCrossSectionTotal::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::TCSObservable.

◆ getNI0()

size_t PARTONS::TCSCrossSectionTotal::getNI0 ( ) const

◆ getNI1()

size_t PARTONS::TCSCrossSectionTotal::getNI1 ( ) const

◆ getPhiEpsilon()

double PARTONS::TCSCrossSectionTotal::getPhiEpsilon ( ) const

◆ getRangePhi()

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

◆ getRangeQ2()

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

◆ getRangeQ2Prim()

const std::pair< double, double > & PARTONS::TCSCrossSectionTotal::getRangeQ2Prim ( ) const

◆ getRangeT()

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

◆ getRangeTheta()

const std::pair< double, double > & PARTONS::TCSCrossSectionTotal::getRangeTheta ( ) const

◆ getRangeY()

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

◆ parseRange()

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

Parse range.

◆ printChangeOfRange()

void PARTONS::TCSCrossSectionTotal::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::TCSCrossSectionTotal::setNI0 ( size_t  nI0)

◆ setNI1()

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

◆ setPhiEpsilon()

void PARTONS::TCSCrossSectionTotal::setPhiEpsilon ( double  phiEpsilon)

◆ setRangePhi()

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

◆ setRangeQ2()

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

◆ setRangeQ2Prim()

void PARTONS::TCSCrossSectionTotal::setRangeQ2Prim ( const std::pair< double, double > &  rangeQ2Prim)

◆ setRangeT()

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

◆ setRangeTheta()

void PARTONS::TCSCrossSectionTotal::setRangeTheta ( const std::pair< double, double > &  rangeTheta)

◆ setRangeY()

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

◆ TCSCrossSectionTotalFunctionA()

double PARTONS::TCSCrossSectionTotal::TCSCrossSectionTotalFunctionA ( double *  kin,
size_t  dim,
void *  par 
)
static

Function for the integration.

◆ TCSCrossSectionTotalFunctionB()

double PARTONS::TCSCrossSectionTotal::TCSCrossSectionTotalFunctionB ( double  x,
void *  params 
)
static

Function for the integration.

◆ TCSCrossSectionTotalFunctionC()

double PARTONS::TCSCrossSectionTotal::TCSCrossSectionTotalFunctionC ( double  x,
void *  params 
)
static

Function for the integration.

Member Data Documentation

◆ classId

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

Unique ID to automatically register the class in the registry.

◆ m_nI0

size_t PARTONS::TCSCrossSectionTotal::m_nI0
private

Number of iteration in single cycle.

◆ m_nI1

size_t PARTONS::TCSCrossSectionTotal::m_nI1
private

Number of cycles.

◆ m_phiEpsilon

double PARTONS::TCSCrossSectionTotal::m_phiEpsilon
private

Cut out phi = pi.

◆ m_rangePhi

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

phi integration range.

◆ m_rangeQ2

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

Q2 integration range.

◆ m_rangeQ2Prim

std::pair<double, double> PARTONS::TCSCrossSectionTotal::m_rangeQ2Prim
private

Q2Prim integration range.

◆ m_rangeT

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

t integration range.

◆ m_rangeTheta

std::pair<double, double> PARTONS::TCSCrossSectionTotal::m_rangeTheta
private

phi integration range.

◆ m_rangeY

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

y integration range.

◆ TCS_CROSSSECTION_TOTAL_N0

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_N0
static
Initial value:
=
"TCSCrossSectionTotal_N0"

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

◆ TCS_CROSSSECTION_TOTAL_N1

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_N1
static
Initial value:
=
"TCSCrossSectionTotal_N1"

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

◆ TCS_CROSSSECTION_TOTAL_PHIEPSILON

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_PHIEPSILON
static
Initial value:
=
"TCSCrossSectionTotal_phiEpsilon"

String used to set epsilon skipped arroung phiL = PI via XML scenario.

◆ TCS_CROSSSECTION_TOTAL_RANGEPHI

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_RANGEPHI
static
Initial value:
=
"TCSCrossSectionTotal_rangePhi"

String used to set integration phi range via XML scenario.

◆ TCS_CROSSSECTION_TOTAL_RANGEQ2

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_RANGEQ2
static
Initial value:
=
"TCSCrossSectionTotal_rangeQ2"

String used to set integration Q2 range via XML scenario.

◆ TCS_CROSSSECTION_TOTAL_RANGEQ2PRIM

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_RANGEQ2PRIM
static
Initial value:
=
"TCSCrossSectionTotal_rangeQ2Prim"

String used to set integration Q2Prim range via XML scenario.

◆ TCS_CROSSSECTION_TOTAL_RANGET

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_RANGET
static
Initial value:
=
"TCSCrossSectionTotal_rangeT"

String used to set integration t range via XML scenario.

◆ TCS_CROSSSECTION_TOTAL_RANGETHETA

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_RANGETHETA
static
Initial value:
=
"TCSCrossSectionTotal_rangeTheta"

String used to set integration theta range via XML scenario.

◆ TCS_CROSSSECTION_TOTAL_RANGEY

const std::string PARTONS::TCSCrossSectionTotal::TCS_CROSSSECTION_TOTAL_RANGEY
static
Initial value:
=
"TCSCrossSectionTotal_rangeY"

String used to set integration y range via XML scenario.


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