Commit bad1afc2 authored by Cédric Mezrag's avatar Cédric Mezrag
Browse files

Merge remote-tracking branch 'origin/Dirty_Pion_Branch' into RDDA_Branch_For_Evolution

parents 5fb9e299 8f4536e0
......@@ -2,10 +2,10 @@
#define ALGEBRAICTOYMODEL_H
/**
* @file algebraicToyModel.h
* @author José Manuel Morgado Chavez (University Of Huelva)
* @author Cédric Mezrag (CEA Saclay)
* @date 11th May 2021
* @file algebraicToyModel.h
* @author José Manuel Morgado Chavez (University Of Huelva)
* @author Cédric Mezrag (CEA Saclay)
* @date Friday 10th June 2021
* @version 1.0
*/
......@@ -15,23 +15,20 @@
#include <vector>
#include <iostream>
#include "../GPDModule.h"
#include <NumA/linear_algebra/vector/VectorD.h>
#include <NumA/linear_algebra/matrix/MatrixD.h>
#include <eigen3/Eigen/Dense>
#include <NumA/triangulation/mesh.h>
#include <NumA/RadonTransform/RadonTransform.h>
#include <NumA/interpolation/CubicSpline.h>
namespace PARTONS {
class algebraicToyModel: public PARTONS::GPDModule
class algebraicToyModel: public PARTONS::GPDModule
{
public:
static const std::string COVARIANT_EXTENSION;
/**
* ID assigned by BaseObjectRegistry.
*/
......@@ -67,67 +64,32 @@ protected:
virtual PARTONS::PartonDistribution computeH();
/**
* Computation of the double distribution.
*
* Sets the DD attribute of the class.
* Initialize Radon transform
*/
void computeDD( bool t0 );
void initRT();
/**
* Mesh building.
*
* Sets the mesh attribute of the class.
*/
NumA::Mesh setMesh();
/**
* Computation of odd D-term from numerical GPD from the soft-pion theorem.
*
* Returns Dminus as a interpolating object
*/
std::vector<double> computeDminus( NumA::Mesh& mesh, const vector<double>& DD, vector<double>& x );
/**
* Computation of even D-term from numerical GPD from the soft-pion theorem.
*
* Returns Dplus as a interpolating object
*/
std::vector<double> computeDplus( NumA::Mesh& mesh, const vector<double>& DD, vector<double>& x );
/**
* Computation of D-terms.
*
* Updates DtermsVec.
*/
std::vector<std::vector<double>> computeDterms();
NumA::RadonTransform RT; // Create Radon transform.
private:
bool num = 0; // Boolean to choose whether to evaluate the model from its analytic expressions (num = 0) or using the covariant extension (num = 1)
double c; // t-dependece of the GPD model.
double c1; // t-depence x=1 limit ERBL region (Analytical expressions)
double cM; // Auxilary t-dependece for the computation of the singlet distribution.
double c1; // Auxiliary t-dependence for the \xi->1 limit.
double m2; // Squared pion mass scale.
double ca; // Auxiliary t-dependence parameter for computing the inverse Radon transform.
double dplus; // Even D-term.
double dminus; // Odd D-term.
double dt; // D-term t-dependence parametrized as a monopole: 1//(1-t/4m2)
double alpha; // Kinematic variable for D-terms: \alpha = m_x/m_xi
double m2D; // D-term t-dependence (mass-scale). Fitting of Phys. Rev. D 97, 014020 (2018) gravitational FFs.
// TODO: Implement computation of D-terms in RT.
std::vector<std::vector<double>> DtermsVec; // Matrix containing the numerical evaluation for the D-terms: DtermsVec[0]: Dminus (Odd D-term)
// DtermsVec[1]: Dplus (even D-term).
// DtermsVec[2]: x: Evaluation points of the D-terms.
NumA::CubicSpline* Dplus; // Interpolator for even D-term.
NumA::CubicSpline* Dminus; // Interpolator for odd D-term.
double dplus; // D-term analytical computation
double dminus; // D-term analytical computation
NumA::Mesh mesh; // Mesh over the double distribution domain.
vector<double> DD; // Double distribution.
vector<double> DDt0; // Double distribution at zero momentum transfer (it is necessary for the computation of D-terms.)
NumA::MatrixD RTmatrix; // Radon transform matrix for uVal.
double m2D; // D-term t-dependence (mass-scale). Fitting of Phys. Rev. D 97, 014020 (2018) gravitational FFs.
// TODO: Explore the possibility of storing DDs into a map: ( double t-value, std::vector<double> DDt-value ). So at the level of evaluation on just needs to check that map.
Eigen::VectorXd DD = Eigen::VectorXd::Zero(1); // Double distribution.
Eigen::VectorXd DDt0 = Eigen::VectorXd::Zero(1); // Double distribution at zero momentum transfer (it is necessary for the computation of D-terms.)
};
......
......@@ -2,10 +2,10 @@
#define SATURATEDMODEL_DING_H
/**
* @file saturatedModel_Ding.h
* @author José Manuel Morgado Chavez (University Of Huelva)
* @author Cédric Mezrag (CEA Saclay)
* @date 22nd March 2021
* @file saturatedModel_Ding.h
* @author José Manuel Morgado Chavez (University Of Huelva)
* @author Cédric Mezrag (CEA Saclay)
* @date Friday 23rd April 2021
* @version 1.0
*/
......@@ -15,23 +15,20 @@
#include <vector>
#include <iostream>
#include "../GPDModule.h"
#include <NumA/linear_algebra/vector/VectorD.h>
#include <NumA/linear_algebra/matrix/MatrixD.h>
#include <eigen3/Eigen/Dense>
#include <NumA/triangulation/mesh.h>
#include <NumA/RadonTransform/RadonTransform.h>
#include <NumA/interpolation/CubicSpline.h>
namespace PARTONS {
class saturatedModel_Ding: public PARTONS::GPDModule
class saturatedModel_Ding: public PARTONS::GPDModule
{
public:
static const std::string COVARIANT_EXTENSION;
/**
* ID assigned by BaseObjectRegistry.
*/
......@@ -67,66 +64,30 @@ protected:
virtual PARTONS::PartonDistribution computeH();
/**
* Computation of the double distribution.
*
* Sets the DD attribute of the class.
* Initialize Radon transform
*/
void computeDD( bool t0 );
void initRT();
/**
* Mesh building.
*
* Sets the mesh attribute of the class.
*/
NumA::Mesh setMesh();
/**
* Computation of odd D-term from numerical GPD from the soft-pion theorem.
*
* Returns Dminus as a interpolating object
*/
std::vector<double> computeDminus( NumA::Mesh& mesh, const vector<double>& DD, vector<double>& x );
/**
* Computation of even D-term from numerical GPD from the soft-pion theorem.
*
* Returns Dplus as a interpolating object
*/
std::vector<double> computeDplus( NumA::Mesh& mesh, const vector<double>& DD, vector<double>& x );
/**
* Computation of D-terms.
*
* Updates DtermsVec.
*/
std::vector<std::vector<double>> computeDterms();
NumA::RadonTransform RT; // Create Radon transform.
private:
double c; // t-dependece of the GPD model.double c; // t-dependece of the GPD model (parametrized as a monopole).
double cM; // Auxilary t-dependece for the computation of the singlet distribution. //! For the moment the implementation assumes that the whole model (GPD, Dplus and Dminus) behave (wrt t) in same way.
double m2; // Squared pion mass scale. //! The t-dependence is thus completely factorized in an overal multiplicative factor c(t).
double dplus; // Even D-term.
double dminus; // Odd D-term.double dplus; // Even D-term.
double dt; // D-term t-dependence parametrized as a monopole: 1//(1-t/4m2)double dminus; // Odd D-term.
double alpha; // Kinematic variable for D-terms: \alpha = m_x/m_xidouble dt; // D-term t-dependence parametrized as a monopole: 1//(1-t/4m2)
double m2D; // D-term t-dependence (mass-scale). Fitting of Phys. Rev. D 97, 014020 (2018) gravitational FFs.double alpha; // Kinematic variable for D-terms: \alpha = m_x/m_xi
// TODO: Implement computation of D-terms in RT.
std::vector<std::vector<double>> DtermsVec; // Matrix containing the numerical evaluation for the D-terms: DtermsVec[0]: Dminus (Odd D-term)
// DtermsVec[1]: Dplus (even D-term).
// DtermsVec[2]: x: Evaluation points of the D-terms.
NumA::CubicSpline* Dplus; // Interpolator for even D-term.
NumA::CubicSpline* Dminus; // Interpolator for odd D-term.
double c; // t-dependece of the GPD model.
// double c1; // t-depence x=1 limit ERBL region (Analytical expressions)
double cM; // Auxilary t-dependece for the computation of the singlet distribution.
double m2; // Squared pion mass scale.
double ca; // Auxiliary t-dependence parameter for computing the inverse Radon transform.
NumA::Mesh mesh; // Mesh over the double distribution domain.
double dt; // D-term t-dependence parametrized as a monopole: 1//(1-t/4m2)
double alpha; // Kinematic variable for D-terms: \alpha = m_x/m_xi
double dplus; // D-term analytical computation
double dminus; // D-term analytical computation
vector<double> DD; // Double distribution.
vector<double> DDt0; // Double distribution at zero momentum transfer (it is necessary for the computation of D-terms.)
NumA::MatrixD RTmatrix; // Radon transform matrix for uVal.
double m2D; // D-term t-dependence (mass-scale). Fitting of Phys. Rev. D 97, 014020 (2018) gravitational FFs.
// TODO: Explore the possibility of storing DDs into a map: ( double t-value, std::vector<double> DDt-value ). So at the level of evaluation on just needs to check that map.
Eigen::VectorXd DD = Eigen::VectorXd::Zero(1); // Double distribution.
Eigen::VectorXd DDt0 = Eigen::VectorXd::Zero(1); // Double distribution at zero momentum transfer (it is necessary for the computation of D-terms.)
};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment