Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
partons
core
partons
Commits
b8346ad4
Commit
b8346ad4
authored
Jul 30, 2020
by
Valerio Bertone
Browse files
First implementation of collinear-distribution evolution through APFEL implemented
parent
ab660101
Changes
39
Hide whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
b8346ad4
...
...
@@ -48,26 +48,29 @@ add_definitions(${QT_DEFINITIONS})
# find libraries: additional modules
set
(
CMAKE_MODULE_PATH
${
CMAKE_MODULE_PATH
}
"
${
CMAKE_SOURCE_DIR
}
/cmake/Modules/"
)
# find libraries: SFML
find_package
(
SFML COMPONENTS system REQUIRED
)
# find libraries: CLN
find_package
(
CLN REQUIRED
)
# find libraries: ElementaryUtils
find_package
(
ElementaryUtils REQUIRED
)
# find libraries: NumA++
find_package
(
NumA++ REQUIRED
)
# find libraries: SFML
find_package
(
SFML COMPONENTS system REQUIRED
)
# find libraries: CLN
find_package
(
CLN REQUIRED
)
# find libraries: GSL
find_package
(
GSL REQUIRED
)
# find libraries: Apfel++
find_package
(
Apfel++ REQUIRED
)
# find libraries: LHAPDF
find_package
(
LHAPDF REQUIRED
)
# directories containing headers
include_directories
(
${
QT_INCLUDE_DIRS
}
${
SFML_INCLUDE_DIR
}
${
CLN_INCLUDE_DIR
}
${
ElementaryUtils_INCLUDE_DIR
}
${
NumA++_INCLUDE_DIR
}
${
LHAPDF_INCLUDE_DIR
}
)
include_directories
(
${
QT_INCLUDE_DIRS
}
${
SFML_INCLUDE_DIR
}
${
CLN_INCLUDE_DIR
}
${
ElementaryUtils_INCLUDE_DIR
}
${
NumA++_INCLUDE_DIR
}
${
Apfel++_INCLUDE_DIR
}
${
LHAPDF_INCLUDE_DIR
}
)
include_directories
(
include
)
# FINALIZE ==================================================================================
...
...
@@ -111,6 +114,8 @@ target_link_libraries(
${
GSL_LIBRARIES
}
${
Apfel++_LIBRARIES
}
${
LHAPDF_LIBRARIES
}
Qt5::Core
...
...
cmake/Modules/FindApfel++.cmake
0 → 100644
View file @
b8346ad4
# APFEL++
find_program
(
Apfel++_CONFIG apfelxx-config REQUIRED
)
if
(
Apfel++_CONFIG
)
exec_program
(
${
Apfel++_CONFIG
}
ARGS --cppflags
OUTPUT_VARIABLE Apfel++_CXX_FLAGS
)
set
(
Apfel++_CXX_FLAGS
${
Apfel++_CXX_FLAGS
}
CACHE STRING INTERNAL
)
exec_program
(
${
Apfel++_CONFIG
}
ARGS --ldflags
OUTPUT_VARIABLE Apfel++_LIBRARIES
)
set
(
Apfel++_LIBRARIES
${
Apfel++_LIBRARIES
}
CACHE STRING INTERNAL
)
exec_program
(
${
Apfel++_CONFIG
}
ARGS --version
OUTPUT_VARIABLE Apfel++_VERSION
)
set
(
Apfel++_VERSION
${
Apfel++_VERSION
}
CACHE STRING INTERNAL
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
Apfel++ REQUIRED_VARS Apfel++_LIBRARIES VERSION_VAR Apfel++_VERSION
)
endif
(
Apfel++_CONFIG
)
cmake/Modules/FindCLN.cmake
View file @
b8346ad4
...
...
@@ -26,7 +26,7 @@ function(_cl_get_version _out_major _out_minor _out_patch _cl_version_h)
message
(
FATAL_ERROR
"failed to determine CL_VERSION_PATCHLEVEL, "
"expected a number, got
${${
_out_patch
}}
"
)
endif
()
message
(
STATUS
"found CLN [
${
_cl_version_h
}
], version
${${
_out_major
}}
.
${${
_out_minor
}}
.
${${
_out_patch
}}
"
)
#
message(STATUS "found CLN [${_cl_version_h}], version ${${_out_major}}.${${_out_minor}}.${${_out_patch}}")
set
(
${
_out_major
}
${${
_out_major
}}
PARENT_SCOPE
)
set
(
${
_out_minor
}
${${
_out_minor
}}
PARENT_SCOPE
)
set
(
${
_out_patch
}
${${
_out_patch
}}
PARENT_SCOPE
)
...
...
@@ -74,6 +74,7 @@ if (CLN_INCLUDE_DIR)
endif
()
endif
()
set
(
CMAKE_REQUIRED_QUIET TRUE
)
# Check if the version embedded into the library is the same as the one in the headers.
if
(
CLN_INCLUDE_DIR AND CLN_LIBRARIES AND NOT CMAKE_CROSSCOMPILING
)
include
(
CheckCXXSourceRuns
)
...
...
cmake/Modules/FindElementaryUtils.cmake
View file @
b8346ad4
...
...
@@ -36,7 +36,7 @@ else (ElementaryUtils_INCLUDE_DIR AND ElementaryUtils_LIBRARIES)
PATH_SUFFIXES lib/PARTONS lib64/PARTONS bin/PARTONS lib lib64 bin
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
ElementaryUtils DEFAULT_MSG
ElementaryUtils_INCLUDE_DIR
ElementaryUtils_LIBRARIES
)
find_package_handle_standard_args
(
ElementaryUtils DEFAULT_MSG ElementaryUtils_LIBRARIES
)
endif
(
ElementaryUtils_INCLUDE_DIR AND ElementaryUtils_LIBRARIES
)
cmake/Modules/FindLHAPDF.cmake
View file @
b8346ad4
...
...
@@ -11,4 +11,12 @@ if (LHAPDF_CONFIG)
OUTPUT_VARIABLE LHAPDF_LIBRARIES
)
set
(
LHAPDF_LIBRARIES
${
LHAPDF_LIBRARIES
}
CACHE STRING INTERNAL
)
exec_program
(
${
LHAPDF_CONFIG
}
ARGS --version
OUTPUT_VARIABLE LHAPDF_VERSION
)
set
(
LHAPDF_VERSION
${
LHAPDF_VERSION
}
CACHE STRING INTERNAL
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
LHAPDF REQUIRED_VARS LHAPDF_LIBRARIES VERSION_VAR LHAPDF_VERSION
)
endif
(
LHAPDF_CONFIG
)
cmake/Modules/FindNumA++.cmake
View file @
b8346ad4
...
...
@@ -40,7 +40,7 @@ else (NumA++_INCLUDE_DIR AND NumA++_LIBRARIES)
PATH_SUFFIXES lib/PARTONS lib64/PARTONS bin/PARTONS lib lib64 bin
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
NumA++ DEFAULT_MSG
NumA++_INCLUDE_DIR
NumA++_LIBRARIES
)
find_package_handle_standard_args
(
NumA++ DEFAULT_MSG NumA++_LIBRARIES
)
endif
(
NumA++_INCLUDE_DIR AND NumA++_LIBRARIES
)
cmake/Modules/FindSFML.cmake
View file @
b8346ad4
...
...
@@ -365,5 +365,6 @@ endif()
# handle success
if
(
SFML_FOUND AND NOT SFML_FIND_QUIETLY
)
message
(
STATUS
"Found SFML
${
SFML_VERSION_MAJOR
}
.
${
SFML_VERSION_MINOR
}
.
${
SFML_VERSION_PATCH
}
in
${
SFML_INCLUDE_DIR
}
"
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
SFML REQUIRED_VARS SFML_LIBRARIES VERSION_VAR SFML_VERSION_MINOR
)
endif
()
include/partons/beans/collinear_distribution/CollinearDistributionKinematic.h
View file @
b8346ad4
...
...
@@ -34,7 +34,7 @@ class CollinearDistributionKinematic: public Kinematic {
public:
static
const
std
::
string
COLLINEAR_DISTRIBUTION_KNEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
static
const
std
::
string
COLLINEAR_DISTRIBUTION_K
I
NEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
/**
* Parameter name to set variable \f$x\f$ via configuration methods.
...
...
include/partons/beans/convol_coeff_function/DVCS/DVCSConvolCoeffFunctionKinematic.h
View file @
b8346ad4
...
...
@@ -30,7 +30,7 @@ class DVCSConvolCoeffFunctionKinematic: public ConvolCoeffFunctionKinematic {
public:
static
const
std
::
string
DVCS_CONVOL_COEFF_FUNCTION_KNEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
static
const
std
::
string
DVCS_CONVOL_COEFF_FUNCTION_K
I
NEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
/**
* Default constructor.
...
...
include/partons/beans/convol_coeff_function/TCS/TCSConvolCoeffFunctionKinematic.h
View file @
b8346ad4
...
...
@@ -30,7 +30,7 @@ class TCSConvolCoeffFunctionKinematic: public ConvolCoeffFunctionKinematic {
public:
static
const
std
::
string
TCS_CONVOL_COEFF_FUNCTION_KNEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
static
const
std
::
string
TCS_CONVOL_COEFF_FUNCTION_K
I
NEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
/**
* Default constructor.
...
...
include/partons/beans/gpd/GPDKinematic.h
View file @
b8346ad4
...
...
@@ -34,7 +34,7 @@ class GPDKinematic: public Kinematic {
public:
static
const
std
::
string
GPD_KNEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
static
const
std
::
string
GPD_K
I
NEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
/**
* Parameter name to set variable \f$x\f$ via configuration methods.
...
...
include/partons/beans/gpd/GPDSubtractionConstantKinematic.h
View file @
b8346ad4
...
...
@@ -33,7 +33,7 @@ class GPDSubtractionConstantKinematic: public Kinematic {
public:
static
const
std
::
string
GPD_SUBTRACTION_CONSTANT_KNEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
static
const
std
::
string
GPD_SUBTRACTION_CONSTANT_K
I
NEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
/**
* Parameter name to set variable \f$t\f$ via configuration methods.
...
...
include/partons/beans/observable/DVCS/DVCSObservableKinematic.h
View file @
b8346ad4
...
...
@@ -30,7 +30,7 @@ class DVCSObservableKinematic: public ObservableKinematic {
public:
static
const
std
::
string
DVCS_OBSERVABLE_KNEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
static
const
std
::
string
DVCS_OBSERVABLE_K
I
NEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
/**
* Parameter name to set variable \f$x_{B}\f$ via configuration methods.
...
...
include/partons/beans/observable/TCS/TCSObservableKinematic.h
View file @
b8346ad4
...
...
@@ -30,7 +30,7 @@ class TCSObservableKinematic: public ObservableKinematic {
public:
static
const
std
::
string
TCS_OBSERVABLE_KNEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
static
const
std
::
string
TCS_OBSERVABLE_K
I
NEMATIC_CLASS_NAME
;
///< Type of the kinematic in XML automation.
/**
* Parameter name to set variable \f$Q^{2}'\f$ via configuration methods.
...
...
include/partons/modules/collinear_distribution/CollinearDistributionModule.h
View file @
b8346ad4
...
...
@@ -19,15 +19,9 @@
#include
"../../ModuleObject.h"
namespace
PARTONS
{
class
CollinearDistributionKinematic
;
}
/* namespace PARTONS */
namespace
PARTONS
{
class
CollinearDistributionKinematic
;
class
CollinearDistributionResult
;
}
/* namespace PARTONS */
namespace
PARTONS
{
class
CollinearDistributionEvolutionModule
;
/**
...
...
@@ -52,27 +46,26 @@ public:
virtual
void
resolveObjectDependencies
();
virtual
void
run
();
void
virtual
configure
(
const
ElemUtils
::
Parameters
&
parameters
);
virtual
void
prepareSubModules
(
const
std
::
map
<
std
::
string
,
BaseObjectData
>&
subModulesData
);
virtual
void
prepareSubModules
(
const
std
::
map
<
std
::
string
,
BaseObjectData
>&
subModulesData
);
/**
* Virtual method, computes collinear distribution with some input parameters.
*
* @param kinematic collinear distribution kinematics object.
* @param colldistType
H, Ht, E, Et, ... or ALL
. See CollinearDistributionType for more details.
* @param colldistType. See CollinearDistributionType for more details.
* @param evolution Boolean to use evolution.
*
* @return PartonDistribution object.
* Contains results for each flavor of partons.
*/
virtual
PartonDistribution
compute
(
const
CollinearDistributionKinematic
&
kinematic
,
CollinearDistributionType
::
Type
colldistType
);
virtual
PartonDistribution
compute
(
const
CollinearDistributionKinematic
&
kinematic
,
CollinearDistributionType
::
Type
colldistType
);
/**
* Virtual method, computes collinear distribution with some input parameters.
*
* @param kinematic collinear distribution kinematics object.
* @param colldistType H, Ht, E, Et, ... or ALL. See CollinearDistributionType for more details.
* @param colldistType. See CollinearDistributionType for more
* details.
*
* @return PartonDistribution object.
* Contains results for each flavor of partons.
...
...
@@ -102,11 +95,6 @@ public:
// ##### GETTERS & SETTERS #####
/**
* Get reference factorization scale used by the collinear distribution model before evolution.
*/
double
getMuF2Ref
()
const
;
/**
* Set underlying collinear distribution Evolution module.
*/
...
...
@@ -135,33 +123,25 @@ protected:
* @param kinematic Kinematics to be set.
*/
virtual
void
setKinematics
(
const
CollinearDistributionKinematic
&
kinematic
);
virtual
void
initModule
();
virtual
void
isModuleWellConfigured
();
/**
* Set current collinear distribution type to be computed.
*/
void
setCurrentCollinearDistributionType
(
CollinearDistributionType
::
Type
colldistType
);
virtual
void
initModule
();
virtual
void
isModuleWellConfigured
();
/**
* List of collinear distribution types that can be computed by the child class.
* Needs to be set in the constructor of the child class, with the corresponding methods to be used.
*/
std
::
map
<
CollinearDistributionType
::
Type
,
PartonDistribution
(
CollinearDistributionModule
::*
)()
>
m_listCollinearDistributionComputeTypeAvailable
;
/**
* Iterator.
*/
std
::
map
<
CollinearDistributionType
::
Type
,
PartonDistribution
(
CollinearDistributionModule
::*
)()
>::
iterator
m_it
;
double
m_x
;
///< Longitudinal momentum fraction of the active parton.
double
m_MuF2
;
///< Factorization scale squared.
double
m_MuR2
;
///< Renormalization scale squared.
CollinearDistributionType
::
Type
m_currentCollinearDistributionComputeType
;
///< Current collinear distribution type.
double
m_MuF2_ref
;
///< Reference factorization scale used by the collinear distribution model before evolution.
CollinearDistributionEvolutionModule
*
m_pCollinearDistributionEvolutionModule
;
///< Pointer to the underlying collinear distribution Evolution module.
};
...
...
include/partons/modules/evolution/collinear_distribution/CollinearDistributionEvolutionApfel.h
0 → 100644
View file @
b8346ad4
#ifndef COLLINEAR_DISTRIBUTION_EVOLUTION_APFEL_H
#define COLLINEAR_DISTRIBUTION_EVOLUTION_APFEL_H
/**
* @file CollinearDistributionEvolutionApfel.h
* @author Valerio BERTONE (CEA Saclay)
* @date July 27, 2020
* @version 1.0
*/
#include
"CollinearDistributionEvolutionModule.h"
#include
"../../../../../include/partons/modules/collinear_distribution/CollinearDistributionModule.h"
#include
<apfel/apfelxx.h>
namespace
PARTONS
{
class
RunningAlphaStrongModule
;
/**
* @class CollinearDistributionEvolutionApfel
*/
class
CollinearDistributionEvolutionApfel
:
public
CollinearDistributionEvolutionModule
{
public:
/**
* Settable parameters
*/
static
const
std
::
string
PARAM_NAME_THRESHOLDS
;
static
const
std
::
string
PARAM_NAME_MASSES
;
static
const
std
::
string
PARAM_NAME_SUBGRID_NODES
;
static
const
std
::
string
PARAM_NAME_SUBGRID_LOWER_BOUNDS
;
static
const
std
::
string
PARAM_NAME_SUBGRID_INTER_DEGREES
;
static
const
std
::
string
PARAM_NAME_TAB_NODES
;
static
const
std
::
string
PARAM_NAME_TAB_LOWER_BOUND
;
static
const
std
::
string
PARAM_NAME_TAB_UPPER_BOUND
;
static
const
std
::
string
PARAM_NAME_TAB_INTER_DEGREE
;
/**
* Unique ID to automatically register the class in the registry.
*/
static
const
unsigned
int
classId
;
/**
* Constructor.
* @param className Name of class.
*/
CollinearDistributionEvolutionApfel
(
const
std
::
string
&
className
);
/**
* Destructor.
*/
virtual
~
CollinearDistributionEvolutionApfel
();
virtual
CollinearDistributionEvolutionApfel
*
clone
()
const
;
virtual
std
::
string
toString
()
const
;
virtual
void
resolveObjectDependencies
();
virtual
void
configure
(
const
ElemUtils
::
Parameters
&
parameters
);
virtual
void
prepareSubModules
(
const
std
::
map
<
std
::
string
,
BaseObjectData
>&
subModulesData
);
// ##### GETTERS & SETTERS #####
void
setThresholds
(
const
std
::
vector
<
double
>&
thresholds
);
void
setMasses
(
const
std
::
vector
<
double
>&
masses
);
void
setSubgridNodes
(
const
std
::
vector
<
int
>&
subgridNodes
);
void
setSubgridLowerBounds
(
const
std
::
vector
<
double
>&
subgridLowerBounds
);
void
setSubgridInterDegrees
(
const
std
::
vector
<
int
>&
subgridInterDegrees
);
void
setTabNodes
(
const
int
&
tabNodes
);
void
setTabLowerBound
(
const
double
&
tabLowerBound
);
void
setTabUpperBound
(
const
double
&
tabUpperBound
);
void
setTabInterDegree
(
const
int
&
tabInterDegree
);
std
::
vector
<
double
>
getThresholds
()
const
;
std
::
vector
<
double
>
getMasses
()
const
;
std
::
vector
<
int
>
getSubgridNodes
()
const
;
std
::
vector
<
double
>
getSubgridLowerBounds
()
const
;
std
::
vector
<
int
>
getSubgridInterDegrees
()
const
;
int
getTabNodes
()
const
;
double
getTabLowerBound
()
const
;
double
getTabUpperBound
()
const
;
int
getTabInterDegree
()
const
;
protected:
/**
* Copy constructor.
* @param other Object to be copied.
*/
CollinearDistributionEvolutionApfel
(
const
CollinearDistributionEvolutionApfel
&
other
);
virtual
void
initModule
();
virtual
void
isModuleWellConfigured
();
virtual
PartonDistribution
compute
(
CollinearDistributionModule
*
pCollinearDistributionModule
);
std
::
function
<
std
::
map
<
int
,
double
>
(
double
const
&
)
>
initialScaleDistributions
(
CollinearDistributionModule
*
pCollinearDistributionModule
);
private:
std
::
vector
<
double
>
m_thresholds
;
std
::
vector
<
double
>
m_masses
;
std
::
vector
<
int
>
m_subgridNodes
;
std
::
vector
<
double
>
m_subgridLowerBounds
;
std
::
vector
<
int
>
m_subgridInterDegrees
;
int
m_tabNodes
;
double
m_tabLowerBound
;
double
m_tabUpperBound
;
int
m_tabInterDegree
;
std
::
unique_ptr
<
apfel
::
Grid
>
m_g
;
std
::
unique_ptr
<
apfel
::
TabulateObject
<
apfel
::
Set
<
apfel
::
Operator
>>>
m_tabulatedOps
;
};
}
/* namespace PARTONS */
#endif
/* COLLINEAR_DISTRIBUTION_EVOLUTION_APFEL_H */
include/partons/modules/evolution/collinear_distribution/CollinearDistributionEvolutionModule.h
View file @
b8346ad4
...
...
@@ -8,26 +8,14 @@
* @version 1.0
*/
#include
<ElementaryUtils/parameters/Parameters.h>
#include
<NumA/linear_algebra/matrix/MatrixD.h>
#include
<stddef.h>
#include
<map>
#include
<string>
#include
<vector>
#include
"../../../beans/automation/BaseObjectData.h"
#include
"../../../ModuleObject.h"
#include
"../../../beans/collinear_distribution/CollinearDistributionType.h"
#include
"../../../beans/collinear_distribution/CollinearDistributionKinematic.h"
#include
"../../../beans/parton_distribution/PartonDistribution.h"
#include
"../../../beans/parton_distribution/QuarkDistribution.h"
#include
"../../../beans/PerturbativeQCDOrderType.h"
#include
"../../../beans/QuarkFlavor.h"
#include
"../../../beans/QuarkNonSingletCombination.h"
#include
"../../../ModuleObject.h"
#include
"../../MathIntegratorModule.h"
namespace
PARTONS
{
class
ActiveFlavorsThresholdsModule
;
class
CollinearDistributionModule
;
class
RunningAlphaStrongModule
;
...
...
@@ -38,10 +26,15 @@ class RunningAlphaStrongModule;
*
* This class acts as an abstract (mother) class for modules implementing collinear distribution evolution.
*/
class
CollinearDistributionEvolutionModule
:
public
ModuleObject
,
public
MathIntegratorModule
{
class
CollinearDistributionEvolutionModule
:
public
ModuleObject
{
public:
/**
* Settable parameters
*/
static
const
std
::
string
PARAM_NAME_MUF2_REF
;
/**
* Type of module name used by the automatization.
*/
...
...
@@ -59,59 +52,29 @@ public:
virtual
~
CollinearDistributionEvolutionModule
();
virtual
CollinearDistributionEvolutionModule
*
clone
()
const
=
0
;
virtual
void
configure
(
const
ElemUtils
::
Parameters
&
parameters
);
virtual
std
::
string
toString
()
const
;
virtual
void
resolveObjectDependencies
();
virtual
void
prepareSubModules
(
const
std
::
map
<
std
::
string
,
BaseObjectData
>&
subModulesData
);
virtual
void
configure
(
const
ElemUtils
::
Parameters
&
parameters
);
virtual
void
prepareSubModules
(
const
std
::
map
<
std
::
string
,
BaseObjectData
>&
subModulesData
);
/**
* Evaluate PartonDistribution.
* @param x Longitudinal momentum of active parton.
* @param MuF2 Factorization scale squared (in \f$GeV^{2}\f$).
* @param MuR2 Renormalization scale squared (in \f$GeV^{2}\f$).
* @param pCollinearDistributionModule Pointer to collinear distribution module to be evaluated.
* @param colldistType Type of CollinearDistribution.
* @return Evaluated result encapsulated in PartonDistribution object.
*/
PartonDistribution
compute
(
double
x
,
double
MuF2
,
double
MuR2
,
CollinearDistributionModule
*
pCollinearDistributionModule
,
CollinearDistributionType
::
Type
colldistType
);
PartonDistribution
compute
(
const
CollinearDistributionKinematic
&
kinematic
,
CollinearDistributionModule
*
pCollinearDistributionModule
);
// GETTERS
and
SETTERS
//
#####
GETTERS
&
SETTERS
#####
/**
* Get pQCD order assumed in the calculation.
*/
PerturbativeQCDOrderType
::
Type
getQcdOrderType
()
const
;
/**
* Set pQCD order assumed in the calculation.
*/
void
setQcdOrderType
(
PerturbativeQCDOrderType
::
Type
qcdOrderType
);
void
setMuF2_ref
(
const
double
&
MuF2_ref
);
void
setPertOrder
(
const
PerturbativeQCDOrderType
::
Type
&
pertOrder
);
void
setCollinearDistributionType
(
CollinearDistributionType
::
Type
type
);
void
setRunningAlphaStrongModule
(
RunningAlphaStrongModule
*
runningAlphaStrongModule
);
/**
* Set pointer to RunningAlphaStrongModule object.
*/
double
getMuF2_ref
()
const
;
double
getMuF_ref
()
const
;
PerturbativeQCDOrderType
::
Type
getPertOrder
()
const
;
CollinearDistributionType
::
Type
getCollinearDistributionType
()
const
;
RunningAlphaStrongModule
*
getRunningAlphaStrongModule
()
const
;
/**
* Set pointer to RunningAlphaStrongModule object.
*/
void
setRunningAlphaStrongModule
(
RunningAlphaStrongModule
*
runningAlphaStrongModule
);
/**
* Get pointer to ActiveFlavorsThresholdsModule object.
*/
ActiveFlavorsThresholdsModule
*
getActiveFlavorsModule
()
const
;
/**
* Set pointer to ActiveFlavorsThresholdsModule object.
*/
void
setActiveFlavorsModule
(
ActiveFlavorsThresholdsModule
*
activeFlavorsModule
);
protected:
/**
...
...
@@ -120,148 +83,29 @@ protected:
*/
CollinearDistributionEvolutionModule
(
const
CollinearDistributionEvolutionModule
&
other
);
virtual
void
isModuleWellConfigured
();
virtual
void
initModule
();
virtual
void
isModuleWellConfigured
();
/**
* Precompute (in particular set initial variables).
* @param x Longitudinal momentum of active parton.
* @param MuF2 Factorization scale squared (in \f$GeV^{2}\f$).
* @param MuR2 Renormalization scale squared (in \f$GeV^{2}\f$).
* @param pCollinearDistributionModule Pointer to collinear distribution module to be evaluated.
* @param colldistType Type of CollinearDistribution.
*/
void
preCompute
(
double
x
,
double
MuF2
,
double
MuR2
,
CollinearDistributionModule
*
pCollinearDistributionModule
,
CollinearDistributionType
::
Type
colldistType
);
/**
* Evaluate change of non-singlet for given factorization scale squared.
* @param MuF2 Factorization scale squared.
* @param quarkNonSingletCombination Type of non-singlet combinations.
* @return Evaluated change of non-singlet distibution.
*/
virtual
double
nonSingletMu2FDerivative
(
double
MuF2
,
QuarkNonSingletCombination
::
Type
quarkNonSingletCombination
)
=
0
;
virtual
void
setKinematics
(
const
CollinearDistributionKinematic
&
kinematic
);
virtual
CollinearDistributionKinematic
getKinematics
()
const
;
/**
* Evaluate change of singlet for given factorization scale squared.
* @param MuF2 Factorization scale squared.
* @return Evaluated change of singlet distibution.
*/
virtual
double
singletMuF2Derivative
(
double
MuF2
)
=
0
;
virtual
PartonDistribution
compute
(
CollinearDistributionModule
*
pCollinearDistributionModule
)
=
0
;
/**
* Evaluate change of gluon distribution for given factorization scale squared.
* @param MuF2 Factorization scale squared.
* @return Evaluated change of gluon distibution.
* Attributes
*/
virtual
double
gluonMuF2Derivative
(
double
MuF2
)
=
0
;
CollinearDistributionModule
*
m_pCollinearDistributionModule
;
///< Pointer to collinear distribution module.
double
m_x
;
///< Longitudinal momentum of active parton.
double
m_MuF2
;
///< Factorization scale squared (in \f$GeV^{2}\f$).
double
m_MuR2
;
///< Renormalization scale squared (in \f$GeV^{2}\f$).
double
m_MuF2_ref
;
///< Reference factorization scale squared (in \f$GeV^{2}\f$).