Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:51:45

0001 /*
0002  * GPDSubtractionConstantModule.h
0003  *
0004  *  Created on: Oct 18, 2016
0005  *      Author: debian
0006  */
0007 
0008 #ifndef GPD_SUBTRACTION_CONSTANT_MODULE_H_
0009 #define GPD_SUBTRACTION_CONSTANT_MODULE_H_
0010 
0011 #include <ElementaryUtils/parameters/Parameters.h>
0012 #include <map>
0013 #include <string>
0014 
0015 #include "../../beans/automation/BaseObjectData.h"
0016 #include "../../beans/gpd/GPDType.h"
0017 #include "../../ModuleObject.h"
0018 #include "../../utils/type/PhysicalType.h"
0019 
0020 namespace PARTONS {
0021 class GPDSubtractionConstantKinematic;
0022 class GPDSubtractionConstantResult;
0023 } /* namespace PARTONS */
0024 
0025 namespace PARTONS {
0026 
0027 /**
0028  * @class GPDSubtractionConstantModule
0029  *
0030  * @brief Abstract class for modeling of GPD subtraction constant.
0031  */
0032 class GPDSubtractionConstantModule: public ModuleObject {
0033 
0034 public:
0035 
0036     /**
0037      * Type of module name used by the automatization.
0038      */
0039     static const std::string GPD_SUBTRACTION_CONSTANT_MODULE_CLASS_NAME;
0040 
0041     /**
0042      * Constructor.
0043      * @param className Name of class.
0044      */
0045     GPDSubtractionConstantModule(const std::string &className);
0046 
0047     /**
0048      * Destructor.
0049      */
0050     virtual ~GPDSubtractionConstantModule();
0051 
0052     virtual GPDSubtractionConstantModule* clone() const;
0053     virtual std::string toString() const;
0054     virtual void resolveObjectDependencies();
0055     virtual void configure(const ElemUtils::Parameters &parameters);
0056     virtual void prepareSubModules(
0057             const std::map<std::string, BaseObjectData>& subModulesData);
0058 
0059     /**
0060      * Evaluate specific GPD subtraction constant for a given kinematics.
0061      * @param kinematic GPD kinematics
0062      * @param gpdType GPD type
0063      */
0064     virtual GPDSubtractionConstantResult compute(
0065             const GPDSubtractionConstantKinematic& kinematic,
0066             GPDType::Type gpdType);
0067 
0068 protected:
0069 
0070     /**
0071      * Copy constructor.
0072      * @param other Object to be copied.
0073      */
0074     GPDSubtractionConstantModule(const GPDSubtractionConstantModule &other);
0075 
0076     virtual void initModule();
0077     virtual void isModuleWellConfigured();
0078 
0079     /**
0080      * Evaluate specific GPD subtraction constant (user defined part).
0081      */
0082     virtual PhysicalType<double> computeSubtractionConstant();
0083 
0084     /**
0085      * Set internal kinematics.
0086      * @param kinematic Kinematics to be set.
0087      */
0088     virtual void setKinematics(
0089             const GPDSubtractionConstantKinematic& kinematic);
0090 
0091     /**
0092      * Set current GPD type to be computed.
0093      */
0094     void setCurrentGPDType(GPDType::Type gpdType);
0095 
0096     double m_t; ///< Mandelstam variable, momentum transfer on the hadron target.
0097     double m_MuF2; ///< Factorization scale squared.
0098     double m_MuR2; ///< Renormalization scale squared.
0099     GPDType::Type m_currentGPDComputeType; ///< Current GPD type.
0100 };
0101 
0102 } /* namespace PARTONS */
0103 
0104 #endif /* GPD_SUBTRACTION_CONSTANT_MODULE_H_ */