Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef XI_CONVERTER_MODULE_H
0002 #define XI_CONVERTER_MODULE_H
0003 
0004 /**
0005  * @file XiConverterModule.h
0006  * @author Bryan BERTHOU (SPhN / CEA Saclay)
0007  * @date October 28, 2015
0008  * @version 1.0
0009  */
0010 
0011 #include <string>
0012 
0013 #include "../../beans/channel/ChannelType.h"
0014 #include "../../ModuleObject.h"
0015 #include "../../utils/type/PhysicalType.h"
0016 
0017 namespace PARTONS {
0018 
0019 /**
0020  * @class XiConverterModule
0021  *
0022  * @brief Abstract class for modules evaluating GPD variable xi.
0023  */
0024 template<typename KinematicType>
0025 class XiConverterModule: public ModuleObject {
0026 
0027 public:
0028 
0029     /**
0030      * Destructor.
0031      */
0032     virtual ~XiConverterModule() {
0033     }
0034 
0035 protected:
0036 
0037     /**
0038      * Constructor.
0039      * @param className Name of class.
0040      */
0041     XiConverterModule(const std::string &className,
0042             ChannelType::Type channelType) :
0043             ModuleObject(className, channelType) {
0044     }
0045 
0046     /**
0047      * Copy constructor.
0048      * @param other Object to be copied.
0049      */
0050     XiConverterModule(const XiConverterModule &other) :
0051             ModuleObject(other) {
0052     }
0053 
0054     virtual XiConverterModule* clone() const = 0;
0055 
0056     virtual void initModule() {
0057     }
0058 
0059     virtual void isModuleWellConfigured() {
0060     }
0061 
0062     /**
0063      * Evaluate scales for a given kinematics.
0064      */
0065     virtual PhysicalType<double> compute(const KinematicType& kinematic) = 0;
0066 };
0067 
0068 } /* namespace PARTONS */
0069 
0070 #endif /* XI_CONVERTER_MODULE_H */