PARTONS
|
PARtonic Tomography Of Nucleon Software
|
Module for the DVCS process using the Belitsky-Müller set of formulas. More...
Public Member Functions | |
DVCSProcessBMJ12 (const std::string &className) | |
Constructor. More... | |
virtual | ~DVCSProcessBMJ12 () |
Default destructor. More... | |
virtual DVCSProcessBMJ12 * | clone () 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 ¶meters) |
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< GPDType > | getListOfAvailableGPDTypeForComputation () 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... | |
DVCSScalesModule * | getScaleModule () const |
Get scale module. More... | |
void | setScaleModule (DVCSScalesModule *pScaleModule) |
Set scale module. More... | |
DVCSXiConverterModule * | getXiConverterModule () const |
Get xi converter module. More... | |
void | setXiConverterModule (DVCSXiConverterModule *pXiConverterModule) |
Set xi converted module. More... | |
DVCSConvolCoeffFunctionModule * | getConvolCoeffFunctionModule () 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 | |
DVCSProcessBMJ12 (const DVCSProcessBMJ12 &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 ¶meterName) const |
Use in automation process to throw exception when a parameter is missing from the XML scenario file. More... | |
Private Member Functions | |
void | defineAngles (const NumA::Vector3D &targetPolarization) |
Defines the BMK angles. Conversion to the BMK convention. More... | |
void | computeFormFactors () |
Compute F1 and F2 form factors. More... | |
void | computeFourierCoeffsBH () |
Computes c_BH and s_BH. More... | |
void | computeFourierCoeffsVCS () |
Computes c_VCS and s_VCS. More... | |
void | computeAngularCoeffsInterf () |
Computes C_ab(n), S_ab(n), etc. More... | |
void | computeFourierCoeffsInterf () |
Computes c_I and s_I. More... | |
std::complex< double > | CFF (GPDType::Type F, int a, int b) |
Method that gives F+b and F0+ already calculated. More... | |
void | computeCFFs () |
Computes CFFS F+b and F0+. More... | |
std::complex< double > | C_VCS (unsigned int S, int a1, int b1, int a2, int b2) |
Method that gives the VCS coefficient bilinear in the CFFs. More... | |
std::complex< double > | C_VCS (unsigned int S, int a1, int b1, int a2, int b2, int a3, int b3) |
std::complex< double > | C_VCS (unsigned int S, int a1, int b1, int a2, int b2, int a3, int b3, int a4, int b4) |
std::complex< double > | C_I (unsigned int S, int a, int b, const std::string &VA) |
Method that gives the Interference coefficient linear in the CFFs. More... | |
std::complex< double > | C_I (unsigned int S, unsigned int n, int a, int b) |
Method that gives the "effective" linear combinations of CFFs. More... | |
std::complex< double > | S_I (unsigned int S, unsigned int n, int a, int b) |
Method that gives the "effective" linear combinations of CFFs. More... | |
double | SqrAmplBH (double beamHelicity, double beamCharge, NumA::Vector3D targetPolarization) |
Returns the squared amplitude of Bethe Heitler process. 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... | |
Private Attributes | |
double | m_phi1BMK |
Angle small phi of BMK (between electron and outgoing proton). More... | |
double | m_phi2BMK |
Angle small phi of BMK (between target polarization and outgoing proton). More... | |
double | m_PhiBMK |
Angle capital Phi of BMK (between electron and target polarization). More... | |
double | m_theta |
Polarization angle of target. More... | |
double | m_Lambda |
Longitudinal polarization of target. More... | |
double | m_lambda |
Lepton helicity. More... | |
double | m_phaseSpace |
Phase-space factor. More... | |
double | m_xB2 |
Square of xB. More... | |
std::vector< double > | m_Q |
Square root of virtuality Q2. More... | |
std::vector< double > | m_xBtQ2 |
std::vector< double > | m_M |
Proton mass. More... | |
std::vector< double > | m_yBMJ |
Lepton energy fraction. More... | |
std::vector< double > | m_epsilonBMJ |
m_epsilon[0] = epsilon, m_epsilon[1] = epsilon^2, etc... More... | |
std::vector< double > | m_epsroot |
sqrt(1+epsilon^2) More... | |
std::vector< double > | m_K |
std::vector< double > | m_Kt |
Kinematical factors K and K tilde. More... | |
std::vector< double > | m_Delta2 |
Mandelstam variable t. More... | |
double | m_P1 |
double | m_P2 |
Lepton propagators. More... | |
double | m_F1 |
double | m_F2 |
Dirac and Pauli form factors. More... | |
std::vector< std::vector< double > > | m_cBH |
Fourier coeffs of the BH squared amplitude. More... | |
double | m_s1BHTP |
BH Fourier coeff s1 TP. More... | |
std::vector< std::vector< double > > | m_cVCS |
Fourier coeffs (cosinus) of the VCS squared amplitude. More... | |
std::vector< std::vector< double > > | m_sVCS |
Fourier coeffs (sinus) of the VCS squared amplitude. More... | |
std::vector< std::vector< double > > | m_cI |
Fourier coeffs (cosinus) of the Interference term. More... | |
std::vector< std::vector< double > > | m_sI |
Fourier coeffs (sinus) of the Interference term. More... | |
std::vector< std::vector< std::vector< double > > > | m_C |
Angular coeffs \( C_ab(n) \), \( dC_ab(n) \), \( S_ab(n) \), \( dS_ab(n) \) . More... | |
std::vector< std::vector< std::vector< double > > > | m_S |
std::vector< std::vector< std::vector< double > > > | m_dC |
std::vector< std::vector< std::vector< double > > > | m_dS |
std::vector< std::vector< double > > | m_cF |
Coefficients used for computing F+b and F0+. More... | |
std::vector< std::vector< std::complex< double > > > | m_CFF |
Array that stores the CFFs F+b and F0+. 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... | |
DVCSScalesModule * | m_pScaleModule |
Pointer to the underlying scale module. More... | |
DVCSXiConverterModule * | m_pXiConverterModule |
Pointer to the underlying xi converter module. More... | |
DVCSConvolCoeffFunctionModule * | m_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 | |
ModuleObjectFactory * | m_pModuleObjectFactory |
Pointer tp module object factory. More... | |
Module for the DVCS process using the Belitsky-Müller set of formulas.
Code based on the published papers:
PARTONS::DVCSProcessBMJ12::DVCSProcessBMJ12 | ( | const std::string & | className | ) |
Constructor.
See BaseObject::BaseObject and ModuleObject::ModuleObject for more details.
className | name of child class. |
|
virtual |
Default destructor.
|
protected |
Copy constructor.
Used by the factory.
other |
|
private |
Method that gives the Interference coefficient linear in the CFFs.
S | 0=unp, 1=LP, 2=TP+, 3=TP-. |
VA | can be "V" or "A" or "". |
|
private |
Method that gives the "effective" linear combinations of CFFs.
Corresponds to Eqs. (68-69) but multiplied by the coefficient \( C_{ab}(n) \) to avoid divisions by zero.
S | 0=unp, 1=LP, 2=TP+, 3=TP-. |
n | |
a | |
b |
|
private |
Method that gives the VCS coefficient bilinear in the CFFs.
S | 0=unp, 1=LP, 2=TP+, 3=TP- |
|
private |
|
private |
|
private |
Method that gives F+b and F0+ already calculated.
|
virtual |
Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry.
Implements PARTONS::DVCSProcessModule.
|
private |
Computes C_ab(n), S_ab(n), etc.
|
private |
Computes CFFS F+b and F0+.
|
private |
Compute F1 and F2 form factors.
|
private |
Computes c_BH and s_BH.
|
private |
Computes c_I and s_I.
|
private |
Computes c_VCS and s_VCS.
|
protectedvirtual |
Bethe-Heitler differential cross section.
Reimplemented from PARTONS::DVCSProcessModule.
|
protectedvirtual |
Interference differential cross section.
Reimplemented from PARTONS::DVCSProcessModule.
|
protectedvirtual |
Virtual Compton Scattering differential cross section.
Reimplemented from PARTONS::DVCSProcessModule.
|
private |
Defines the BMK angles. Conversion to the BMK convention.
|
protectedvirtual |
Pure virtual function that provides skeleton for module initialization.
Children must define and override it.
Reimplemented from PARTONS::DVCSProcessModule.
|
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.
|
private |
Method that gives the "effective" linear combinations of CFFs.
Corresponds to Eqs. (68-69) but multiplied by the coefficient \( S_{ab}(n) \) to avoid divisions by zero.
S | 0=unp, 1=LP, 2=TP+, 3=TP-. |
n | |
a | |
b |
|
private |
Returns the squared amplitude of Bethe Heitler process.
|
private |
Returns the interference term of the squared amplitude.
|
private |
Returns the squared amplitude of VCS process.
|
static |
Unique ID to automatically register the class in the registry.
|
private |
Angular coeffs \( C_ab(n) \), \( dC_ab(n) \), \( S_ab(n) \), \( dS_ab(n) \) .
1st index: [0]=C++, [1]=C-+, [2]=C0+.
2nd index: [0]=not, [1]=V, [2]=A.
3rd index: n
|
private |
Fourier coeffs of the BH squared amplitude.
1st index: [0]=unp, [1]=LP, [2]=TP.
2nd index: [0]=c0, [1]=c1, [2]=c2.
|
private |
Coefficients used for computing F+b and F0+.
1st index: [0] = F++, [1] = F+-, [2] = F0+.
2nd index: [0]: F coeff, [1]: FT coeff, [2]: FLT coeff.
|
private |
Array that stores the CFFs F+b and F0+.
1st index: [0] = H, [1] = E, [2] = Ht, [3] = Et.
2nd index: [0] = F++, [1] = F+-, [2] = F0+.
|
private |
Fourier coeffs (cosinus) of the Interference term.
1st index: [0]=unp, [1]=LP, [2]=TP.
2nd index: [0]=c0, [1]=c1, [2]=c2, [3]=c3.
|
private |
Fourier coeffs (cosinus) of the VCS squared amplitude.
1st index: [0]=unp, [1]=LP, [2]=TP.
2nd index: [0]=c0, [1]=c1, [2]=c2.
|
private |
|
private |
Mandelstam variable t.
m_Delta2[0] = t, m_Delta2[1] = Delta^4 = t^2, etc...
|
private |
|
private |
m_epsilon[0] = epsilon, m_epsilon[1] = epsilon^2, etc...
|
private |
sqrt(1+epsilon^2)
|
private |
|
private |
Dirac and Pauli form factors.
|
private |
|
private |
Kinematical factors K and K tilde.
m_K[0] = K, m_K[1] = K^2, etc...
|
private |
Longitudinal polarization of target.
|
private |
Lepton helicity.
|
private |
Proton mass.
m_M[0] = M, m_M[1] = M^2, etc...
|
private |
|
private |
Lepton propagators.
|
private |
Phase-space factor.
|
private |
Angle small phi of BMK (between electron and outgoing proton).
|
private |
Angle small phi of BMK (between target polarization and outgoing proton).
|
private |
Angle capital Phi of BMK (between electron and target polarization).
|
private |
Square root of virtuality Q2.
m_Q[0] = Q, m_Q[1] = Q^2, etc...
|
private |
|
private |
BH Fourier coeff s1 TP.
|
private |
Fourier coeffs (sinus) of the Interference term.
1st index: [0]=unp, [1]=LP, [2]=TP.
2nd index: [0]=0., [1]=s1, [2]=s2, [3]=s3.
|
private |
Fourier coeffs (sinus) of the VCS squared amplitude.
1st index: [0]=unp, [1]=LP, [2]=TP.
2nd index: [0]=0., [1]=s1, [2]=s2.
|
private |
Polarization angle of target.
|
private |
Square of xB.
|
private |
|
private |
Lepton energy fraction.
m_y[0] = y, m_y[1] = y^2, etc...