Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef DDVCSCROSSSECTIONUUMINUSTCSLIMIT_H
0002 #define DDVCSCROSSSECTIONUUMINUSTCSLIMIT_H
0003 
0004 /**
0005  * @file DDVCSCrossSectionUUMinusTCSLimit.h
0006  * @author Pawel Sznajder (IPNO)
0007  * @date November 25, 2016
0008  * @version 1.0
0009  */
0010 
0011 #include <stddef.h>
0012 #include <string>
0013 
0014 #include "../../../../beans/gpd/GPDType.h"
0015 #include "../../../../beans/List.h"
0016 #include "../../../../utils/type/PhysicalType.h"
0017 #include "../DDVCSObservable.h"
0018 
0019 namespace PARTONS {
0020 
0021 /**
0022  * @class DDVCSCrossSectionUUMinusTCSLimit
0023  * @brief Unpolarized cross-section for negative beam charge - DVCS limit.
0024  *
0025  * Unit: \f$\mathrm{nbarn}/\mathrm{GeV}^4\f$.
0026  */
0027 class DDVCSCrossSectionUUMinusTCSLimit: public DDVCSObservable {
0028 
0029 public:
0030 
0031     /**
0032      * Unique ID to automatically register the class in the registry.
0033      */
0034     static const unsigned int classId;
0035 
0036     /**
0037      * Function for the integration.
0038      */
0039     static double DDVCSCrossSectionUUMinusTCSLimitFunction(double* kin,
0040             size_t dim, void* par);
0041 
0042     /**
0043      * Constructor.
0044      * @param className Name of class.
0045      */
0046     DDVCSCrossSectionUUMinusTCSLimit(const std::string &className);
0047 
0048     /**
0049      * Destructor.
0050      */
0051     virtual ~DDVCSCrossSectionUUMinusTCSLimit();
0052 
0053     virtual DDVCSCrossSectionUUMinusTCSLimit* clone() const;
0054 
0055 protected:
0056 
0057     /**
0058      * Copy constructor.
0059      * @param other Object to be copied.
0060      */
0061     DDVCSCrossSectionUUMinusTCSLimit(
0062             const DDVCSCrossSectionUUMinusTCSLimit &other);
0063 
0064     virtual PhysicalType<double> computeObservable(
0065             const DDVCSObservableKinematic& kinematic,
0066             const List<GPDType>& gpdType);
0067 };
0068 
0069 struct DDVCSCrossSectionUUMinusTCSLimitParameters {
0070 
0071     DDVCSCrossSectionUUMinusTCSLimit* m_pDDVCSCrossSectionUUMinusTCSLimit; ///< Pointer to DDVCSCrossSectionUUMinusTCSLimit.
0072     double m_xB, m_t, m_Q2, m_Q2Prim, m_E, m_phiL, m_thetaL;
0073     List<GPDType> m_gpdType; ///< GPD types.
0074 };
0075 
0076 } /* namespace PARTONS */
0077 
0078 #endif /* DDVCSCROSSSECTIONUUMINUSTCSLIMIT_H */