Commit bdcc7fe4 authored by Pawel Sznajder's avatar Pawel Sznajder
Browse files

add GPDType EbarTrans and use it in GK DVMP moduls

parent 491214bd
......@@ -118,6 +118,9 @@ VALUES ('16', 'Ht3m', 'Ht3m');
INSERT INTO gpd_type (gpd_type_id, gpd_type_short_name, gpd_type_long_name)
VALUES ('17', 'Et3m', 'Et3m');
INSERT INTO gpd_type (gpd_type_id, gpd_type_short_name, gpd_type_long_name)
VALUES ('18', 'EbarTrans', 'EbarTrans');
/* === quark_flavor === */
INSERT INTO quark_flavor (quark_flavor_id, quark_flavor_short_name, quark_flavor_long_name)
......
......@@ -56,6 +56,7 @@ public:
E3m = 15, //!< Twist-3 GPD \f$E_{3}^{-}\f$
Ht3m = 16, //!< Twist-3 GPD \f$\tilde{H}_{3}^{-}\f$
Et3m = 17, //!< Twist-3 GPD \f$\tilde{E}_{3}^{-}\f$
EbarTrans = 18, //!< \f$2\tilde{H}_{T} + E_{T}\f$
END //!< End-like type, useful to define loops over all GPD types.
};
......
......@@ -69,7 +69,7 @@ protected:
virtual PartonDistribution computeHt();
virtual PartonDistribution computeEt();
virtual PartonDistribution computeHTrans();
virtual PartonDistribution computeETrans();
virtual PartonDistribution computeEbarTrans();
void calculateHtCoefs();
void calculateEtCoefs();
......
......@@ -215,6 +215,14 @@ public:
*/
virtual PartonDistribution computeEt3m();
/**
* This method can be implemented in the child class if the GPD EbarTrans is available to compute.
*
* @return PartonDistribution object.
* Contains results for each flavor of partons.
*/
virtual PartonDistribution computeEbarTrans();
// ##### GETTERS & SETTERS #####
/**
......
......@@ -78,6 +78,10 @@ std::string GPDType::toString() const {
return "Et3m";
break;
case EbarTrans:
return "EbarTrans";
break;
default:
return "UNDEFINED";
}
......@@ -139,6 +143,10 @@ GPDType::Type GPDType::fromString(const std::string& gpdTypeStr) {
gpdType = GPDType::Et3m;
}
else if (ElemUtils::StringUtils::equals(gpdTypeStr, "EbarTrans")) {
gpdType = GPDType::EbarTrans;
}
return gpdType;
}
......
......@@ -66,7 +66,7 @@ DVMPCFFGK06::DVMPCFFGK06(const std::string &className) :
std::make_pair(GPDType::HTrans,
&DVMPConvolCoeffFunctionModule::computeCFF));
m_listOfCFFComputeFunctionAvailable.insert(
std::make_pair(GPDType::ETrans,
std::make_pair(GPDType::EbarTrans,
&DVMPConvolCoeffFunctionModule::computeCFF));
}
......@@ -245,8 +245,8 @@ std::complex<double> DVMPCFFGK06::computeCFF() {
break;
//ETrans
case GPDType::ETrans: {
//EbarTrans
case GPDType::EbarTrans: {
convolution = convolutionTwist3A(m_currentGPDComputeType)
+ convolutionTwist3B(m_currentGPDComputeType)
......
......@@ -70,7 +70,7 @@ GPDGK19::GPDGK19(const std::string &className) :
m_listGPDComputeTypeAvailable.insert(
std::make_pair(GPDType::HTrans, &GPDModule::computeHTrans));
m_listGPDComputeTypeAvailable.insert(
std::make_pair(GPDType::ETrans, &GPDModule::computeETrans));
std::make_pair(GPDType::EbarTrans, &GPDModule::computeEbarTrans));
}
GPDGK19::GPDGK19(const GPDGK19& other) :
......@@ -395,7 +395,7 @@ PartonDistribution GPDGK19::computeHTrans() {
return partonDistribution;
}
PartonDistribution GPDGK19::computeETrans() {
PartonDistribution GPDGK19::computeEbarTrans() {
//available internal variables
// m_x, m_xi, m_t, m_MuF2, m_MuR2, m_currentGPDComputeType;
......
......@@ -330,6 +330,11 @@ PartonDistribution GPDModule::computeEt3m() {
"Check your implementation ; must be implemented in daughter class");
}
PartonDistribution GPDModule::computeEbarTrans() {
throw ElemUtils::CustomException(getClassName(), __func__,
"Check your implementation ; must be implemented in daughter class");
}
void GPDModule::setKinematics(const GPDKinematic& kinematic) {
m_x = kinematic.getX().makeSameUnitAs(PhysicalUnit::NONE).getValue();
......
......@@ -119,9 +119,9 @@ double DVMPProcessGK06::CrossSectionT() {
std::complex<double> amplitude0mpp = getConvolCoeffFunctionValue(
GPDType::HTrans);
std::complex<double> amplitude0ppp = getConvolCoeffFunctionValue(
GPDType::ETrans);
GPDType::EbarTrans);
std::complex<double> amplitude0pmp = getConvolCoeffFunctionValue(
GPDType::ETrans);
GPDType::EbarTrans);
std::complex<double> amplitude0mmp(0., 0.);
double result = 1.
......@@ -150,9 +150,9 @@ double DVMPProcessGK06::CrossSectionLT() {
std::complex<double> amplitude0mpp = getConvolCoeffFunctionValue(
GPDType::HTrans);
std::complex<double> amplitude0ppp = getConvolCoeffFunctionValue(
GPDType::ETrans);
GPDType::EbarTrans);
std::complex<double> amplitude0pmp = getConvolCoeffFunctionValue(
GPDType::ETrans);
GPDType::EbarTrans);
std::complex<double> amplitude0mmp(0., 0.);
// Partial cross section of the interference part LT. See Eq. (43) in arxiv:0906.0460
......@@ -178,9 +178,9 @@ double DVMPProcessGK06::CrossSectionTT() {
std::complex<double> amplitude0mpp = getConvolCoeffFunctionValue(
GPDType::HTrans);
std::complex<double> amplitude0ppp = getConvolCoeffFunctionValue(
GPDType::ETrans);
GPDType::EbarTrans);
std::complex<double> amplitude0pmp = getConvolCoeffFunctionValue(
GPDType::ETrans);
GPDType::EbarTrans);
std::complex<double> amplitude0mmp(0., 0.);
// Partial cross section of the interference part TT. See Eq. (43) in arxiv:0906.0460
......
Supports Markdown
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