Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef GPDSELECTONEPARTONTYPE_H
0002 #define GPDSELECTONEPARTONTYPE_H
0003 
0004 /**
0005  * @file GPDSelectOnePartonType.h
0006  * @author Pawel Sznajder (IPNO)
0007  * @date March 29, 2015
0008  * @version 1.0
0009  */
0010 
0011 #include <ElementaryUtils/parameters/Parameters.h>
0012 #include <map>
0013 #include <string>
0014 
0015 #include "../../beans/automation/BaseObjectData.h"
0016 #include "GPDModule.h"
0017 
0018 namespace PARTONS {
0019 
0020 /**
0021  * @class GPDSelectOnePartonType
0022  *
0023  * @brief This model allows to select a single parton type.
0024  */
0025 class GPDSelectOnePartonType: public GPDModule {
0026 
0027 public:
0028 
0029     static const std::string PARAMETER_NAME_SELECTONEPARTONTYPE_PARTONTYPE; ///< Name of parameter to set parton type via configure()
0030 
0031     static const unsigned int classId;    ///< ID assigned by BaseObjectRegistry
0032 
0033     /**
0034      * Constructor.
0035      * See BaseObject::BaseObject and ModuleObject::ModuleObject for more details.
0036      *
0037      * @param className name of child class.
0038      */
0039     GPDSelectOnePartonType(const std::string &className);
0040 
0041     /**
0042      * Default destructor.
0043      */
0044     virtual ~GPDSelectOnePartonType();
0045 
0046     virtual GPDSelectOnePartonType* clone() const;
0047     virtual void configure(const ElemUtils::Parameters &parameters);
0048     virtual void prepareSubModules(
0049             const std::map<std::string, BaseObjectData>& subModulesData);
0050 
0051     /**
0052      * Set underlying GPD module.
0053      */
0054     const GPDModule* getGPDModule() const;
0055 
0056     /**
0057      * Get  underlying GPD module.
0058      */
0059     void setGPDModule(GPDModule* pGPDModule);
0060 
0061     /**
0062      * Get parton type.
0063      */
0064     const std::string& getPartonType() const;
0065 
0066     /**
0067      * Set parton type.
0068      */
0069     void setPartonType(const std::string& partonType);
0070 
0071 protected:
0072 
0073     /** Copy constructor.
0074      @param other Object to be copied.
0075      */
0076     GPDSelectOnePartonType(const GPDSelectOnePartonType& other);
0077 
0078     virtual PartonDistribution computeH();
0079 
0080 private:
0081 
0082     GPDModule* m_pGPDModule; ///< GPD module.
0083     std::string m_partonType; ///< Parton type.
0084 };
0085 
0086 } /* namespace PARTONS */
0087 
0088 #endif /* GPDSELECTONEPARTONTYPE_H */