Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef GAM2_XI_CONVERTER_MODULE_H
0002 #define GAM2_XI_CONVERTER_MODULE_H
0003 
0004 /**
0005  * @file GAM2XiConverterModule.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/observable/GAM2/GAM2ObservableKinematic.h"
0014 #include "../../../utils/type/PhysicalType.h"
0015 #include "../XiConverterModule.h"
0016 
0017 namespace PARTONS {
0018 
0019 /**
0020  * @class GAM2XiConverterModule
0021  *
0022  * @brief Abstract class for modules evaluating GPD variable xi (GAM2 case).
0023  */
0024 class GAM2XiConverterModule: public XiConverterModule<GAM2ObservableKinematic> {
0025 
0026 public:
0027 
0028     /**
0029      * Type of module name used by the automatization.
0030      */
0031     static const std::string GAM2_XI_CONVERTER_MODULE_CLASS_NAME;
0032 
0033     /**
0034      * Constructor.
0035      * @param className Name of class.
0036      */
0037     GAM2XiConverterModule(const std::string &className);
0038 
0039     /**
0040      * Copy constructor.
0041      * @param other Object to be copied.
0042      */
0043     GAM2XiConverterModule(const GAM2XiConverterModule &other);
0044 
0045     /**
0046      * Destructor.
0047      */
0048     virtual ~GAM2XiConverterModule();
0049 
0050     virtual GAM2XiConverterModule* clone() const = 0;
0051 
0052     virtual PhysicalType<double> compute(
0053             const GAM2ObservableKinematic& kinematic) = 0;
0054 
0055 protected:
0056 
0057     virtual void initModule();
0058     virtual void isModuleWellConfigured();
0059 };
0060 
0061 } /* namespace PARTONS */
0062 
0063 #endif /* GAM2_XI_CONVERTER_MODULE_H */