Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SCALES_MODULE_H
0002 #define SCALES_MODULE_H
0003 
0004 /**
0005  * @file ScalesModule.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 
0016 namespace PARTONS {
0017 class Scales;
0018 } /* namespace PARTONS */
0019 
0020 namespace PARTONS {
0021 
0022 /**
0023  * @class ScalesModule
0024  *
0025  * @brief Abstract class for modules evaluating factorization and renormalization scales.
0026  */
0027 template<typename KinematicType>
0028 class ScalesModule: public ModuleObject {
0029 
0030 public:
0031 
0032     /**
0033      * Destructor.
0034      */
0035     virtual ~ScalesModule() {
0036     }
0037 
0038 protected:
0039 
0040     /**
0041      * Constructor.
0042      * @param className Name of class.
0043      */
0044     ScalesModule(const std::string &className, ChannelType::Type channelType) :
0045             ModuleObject(className, channelType) {
0046     }
0047 
0048     /**
0049      * Copy constructor.
0050      * @param other Object to be copied.
0051      */
0052     ScalesModule(const ScalesModule &other) :
0053             ModuleObject(other) {
0054     }
0055 
0056     virtual ScalesModule* clone() const = 0;
0057 
0058     virtual void initModule() {
0059     }
0060 
0061     virtual void isModuleWellConfigured() {
0062     }
0063 
0064     /**
0065      * Evaluate scales for a given kinematics.
0066      */
0067     virtual Scales compute(const KinematicType& kinematic) = 0;
0068 };
0069 
0070 } /* namespace PARTONS */
0071 
0072 #endif /* SCALES_MODULE_H */