|
|
|||
File indexing completed on 2026-06-02 08:51:43
0001 #ifndef ACTIVE_FLAVORS_THRESHOLDS_MODULE_H 0002 #define ACTIVE_FLAVORS_THRESHOLDS_MODULE_H 0003 0004 /** 0005 * @file ActiveFlavorsThresholdsModule.h 0006 * @author Bryan BERTHOU (SPhN / CEA Saclay) 0007 * @date August 07, 2015 0008 * @version 1.0 0009 */ 0010 0011 #include <ElementaryUtils/parameters/Parameters.h> 0012 #include <map> 0013 #include <string> 0014 #include <vector> 0015 0016 #include "../../beans/active_flavors_thresholds/ActiveFlavorsThresholds.h" 0017 #include "../../beans/automation/BaseObjectData.h" 0018 #include "../../ModuleObject.h" 0019 0020 namespace PARTONS { 0021 0022 /** 0023 * @class ActiveFlavorsThresholdsModule 0024 * 0025 * @brief Abstract class for modules defining number of quark flavors intervals. 0026 * 0027 * This class acts as an abstract (mother) class for modules that define the number of quark flavors intervals. 0028 * These intervals are used e.g. by the evolution modules to evaluate the number of active quark flavors for a given factorization scale squared. 0029 */ 0030 class ActiveFlavorsThresholdsModule: public ModuleObject { 0031 0032 public: 0033 0034 /** 0035 * Type of module name used by the automatization. 0036 */ 0037 static const std::string ACTIVE_FLAVORS_THRESHOLDS_MODULE_CLASS_NAME; 0038 0039 /** 0040 * Constructor. 0041 * @param className Name of class. 0042 */ 0043 ActiveFlavorsThresholdsModule(const std::string &className); 0044 0045 /** 0046 * Destructor. 0047 */ 0048 virtual ~ActiveFlavorsThresholdsModule(); 0049 0050 virtual ActiveFlavorsThresholdsModule* clone() const = 0; 0051 virtual void configure(const ElemUtils::Parameters ¶meters); 0052 virtual void resolveObjectDependencies(); 0053 virtual std::string toString() const; 0054 virtual void prepareSubModules( 0055 const std::map<std::string, BaseObjectData>& subModulesData); 0056 0057 /** 0058 * Get interval for a specific value of the factorization scale squared. 0059 * @param Mu2 Factorization scale squared value. 0060 * @return Requested interval. If Mu2 is smaller than the lower bound of the first defined interval returns this interval. If Mu2 is larger than the upper bound of the last defined interval returns this interval. 0061 */ 0062 ActiveFlavorsThresholds getNfInterval(double Mu2) const; 0063 0064 /** 0065 * Get intervals for a specific range of the factorization scale squared. 0066 * @param Mu2Min Factorization scale squared minimum value. 0067 * @param Mu2Max Factorization scale squared maximum value. 0068 * @return If lowerBound > upperBound a single interval with the number of active flavors corresponding to lowerBound is returned. Otherwise, a vector containing intervals for the requested range of factorization scale. 0069 */ 0070 std::vector<ActiveFlavorsThresholds> getNfIntervals(double Mu2Min, double Mu2Max) const; 0071 0072 /** 0073 * Get intervals for the entire range of the factorization scale squared. 0074 */ 0075 std::vector<ActiveFlavorsThresholds> getNfIntervals() const { return m_nfFunctionOfMu2; } 0076 0077 protected: 0078 0079 /** 0080 * Copy constructor. 0081 * @param other Object to be copied. 0082 */ 0083 ActiveFlavorsThresholdsModule(const ActiveFlavorsThresholdsModule &other); 0084 0085 virtual void isModuleWellConfigured(); 0086 virtual void initModule(); 0087 0088 /** 0089 * Add a new interval. 0090 * @param nfValue Number of active quark flavors in the new interval. 0091 * @param lowerBound Lower bound of the new interval. 0092 * @param upperBound Upper bound of the new interval. 0093 */ 0094 void addNfInterval(unsigned short nfValue, double lowerBound, double upperBound); 0095 0096 /** 0097 * Reset vector containing defined integrals. 0098 */ 0099 void reset(); 0100 0101 private: 0102 0103 /** 0104 * Vector containing defined integrals. 0105 */ 0106 std::vector<ActiveFlavorsThresholds> m_nfFunctionOfMu2; 0107 0108 /** 0109 * Perform a set of test in order to check the consistency of defined integrals. 0110 */ 0111 void checkCurveIntegrity(); 0112 }; 0113 0114 } /* namespace PARTONS */ 0115 0116 #endif /* ACTIVE_FLAVORS_THRESHOLDS_MODULE_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|