|
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...