Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef GLUON_DISTRIBUTION_H
0002 #define GLUON_DISTRIBUTION_H
0003 
0004 /**
0005  * @file QuarkDistribution.h
0006  * @author: Bryan BERTHOU (SPhN / CEA Saclay)
0007  * @date 26 April 2015
0008  * @version 1.0
0009  */
0010 
0011 #include <string>
0012 
0013 #include "../../BaseObject.h"
0014 
0015 namespace PARTONS {
0016 
0017 class ComparisonReport;
0018 
0019 /**
0020  * @class GluonDistribution
0021  *
0022  * @brief Container to store value of single gluon distribution.
0023  *
0024  * This class represents a gluon distribution at a single kinematic point. For example, it can be a gluon GPD of a given type at some GPD kinematics.
0025  *
0026  * To see how this class can be used, analyze the following example:
0027  \code{.cpp}
0028  //in code, e.g. in one of GPD modules, one calculates value of GPD H for gluons at given kinematics
0029  double Hg = 3.45;
0030 
0031  //store this result in GluonDistribution object
0032  GluonDistribution gluonDistribution(Hg);
0033 
0034  //check what is inside
0035  Partons::getInstance()->getLoggerManager()->info("example", __func__, ElemUtils::Formatter() << "Gluon distribution contains: " << gluonDistribution.toString());
0036  \endcode
0037  which gives via Logger:
0038  \code
0039  20-05-2017 08:51:19 [INFO] (example::main) Gluon distribution contains: GluonDistribution = 3.45
0040  \endcode
0041  * Check also the documentation of GPDResult and PartonDistribution classes, where GluonDistribution objects are used extensively.
0042  */
0043 class GluonDistribution: public BaseObject {
0044 
0045 public:
0046 
0047     /**
0048      * Name of field in the database storing value of gluon distribution.
0049      */
0050     static const std::string GLUON_DISTRIBUTION_DB_COLUMN_NAME;
0051 
0052     /**
0053      *
0054      */
0055     static const std::string GLUON_DISTRIBUTION_PARAMETER_NAME_GLUON_DISTRIBUTION;
0056 
0057     /**
0058      * Default constructor.
0059      */
0060     GluonDistribution();
0061 
0062     /**
0063      * Copy constructor.
0064      * @param other Object to be copied.
0065      */
0066     GluonDistribution(const GluonDistribution &other);
0067 
0068     /**
0069      * Assignment constructor.
0070      * @param gluonDistribution Value to be assigned.
0071      */
0072     GluonDistribution(double gluonDistribution);
0073 
0074     /**
0075      * Destructor.
0076      */
0077     virtual ~GluonDistribution();
0078 
0079     virtual std::string toString() const;
0080 
0081     //********************************************************
0082     //*** SETTERS AND GETTERS ********************************
0083     //********************************************************
0084 
0085     /**
0086      * Get value of gluon distribution.
0087      */
0088     double getGluonDistribution() const;
0089 
0090     /**
0091      * Set value of gluon distribution.
0092      */
0093     void setGluonDistribution(double gluonDistribution);
0094 
0095     /**
0096      * Check if any value of gluon distribution has been set.
0097      */
0098     bool isNullObject() const;
0099 
0100     /**
0101      * Set GluonDistribution::m_nullObject.
0102      */
0103     void setNullObject(bool nullObject);
0104 
0105 private:
0106 
0107     /**
0108      * Value of gluon distribution.
0109      */
0110     double m_gluonDistribution;
0111 
0112     /**
0113      * Variable to check if any value of gluon distribution has been set.
0114      */
0115     bool m_nullObject;
0116 };
0117 
0118 } /* namespace PARTONS */
0119 
0120 #endif /* GLUON_DISTRIBUTION_H */