Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef TCS_CFF_FROM_DVCS_H
0002 #define TCS_CFF_FROM_DVCS_H
0003 
0004 /**
0005  * @file TCSCFFFromDVCS.h
0006  * @author Oskar Grocholski (UW/NCBJ)
0007  * @date September 08, 2014
0008  * @version 1.0
0009  */
0010 
0011 #include <complex>
0012 #include <map>
0013 #include <string>
0014 
0015 #include "../../../beans/automation/BaseObjectData.h"
0016 #include "TCSConvolCoeffFunctionModule.h"
0017 
0018 namespace PARTONS {
0019 
0020 /**
0021  * @class TCSCFFFromDVCS
0022  *
0023  * This module calculates TCS Compton Form Factors using DVCS CFFs
0024  *
0025  * Available CFF types: H, E, Ht, Et.
0026  */
0027 class TCSCFFFromDVCS: public TCSConvolCoeffFunctionModule {
0028 
0029 public:
0030 
0031     static const unsigned int classId; ///< Unique ID to automatically register the class in the registry.
0032 
0033     /**
0034      * Constructor.
0035      * See BaseObject::BaseObject and ModuleObject::ModuleObject for more details.
0036      * @param className Name of last child class.
0037      */
0038     TCSCFFFromDVCS(const std::string &className);
0039 
0040     virtual TCSCFFFromDVCS* clone() const;
0041 
0042     /**
0043      * Default destructor.
0044      */
0045     virtual ~TCSCFFFromDVCS();
0046 
0047     virtual void resolveObjectDependencies();
0048 
0049     virtual void prepareSubModules(
0050             const std::map<std::string, BaseObjectData>& subModulesData);
0051 
0052     /**
0053      * Set DVCSConvolCoeffFunctionModule.
0054      */
0055     void setDVCSConvolCoeffFunctionModule(
0056             DVCSConvolCoeffFunctionModule* pDVCSConvolCoeffFunctionModule);
0057 
0058     /**
0059      * Get DVCSConvolCoeffFunctionModule.
0060      */
0061     DVCSConvolCoeffFunctionModule* getDVCSConvolCoeffFunctionModule() const;
0062 
0063 protected:
0064 
0065     /**
0066      * Copy constructor.
0067      * @param other
0068      */
0069     TCSCFFFromDVCS(const TCSCFFFromDVCS &other);
0070 
0071     virtual void initModule();
0072     virtual void isModuleWellConfigured();
0073 
0074     virtual std::complex<double> computeUnpolarized();
0075     virtual std::complex<double> computePolarized();
0076 
0077 private:
0078 
0079     /**
0080      * Pointer to DVCSConvolCoeffFunctionModule to be used.
0081      */
0082     DVCSConvolCoeffFunctionModule* m_pDVCSConvolCoeffFunctionModule;
0083 };
0084 
0085 } /* namespace PARTONS */
0086 
0087 #endif /* TCS_CFF_FROM_DVCS_H */