Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef TCSCROSSSECTIONTHETAPHIINTEGRATEDUU_H
0002 #define TCSCROSSSECTIONTHETAPHIINTEGRATEDUU_H
0003 
0004 /**
0005  * @file TCSCrossSectionUUThetaPhiIntegrated.h
0006  * @author Pawel Sznajder (IPNO)
0007  * @date November 25, 2016
0008  * @version 1.0
0009  */
0010 
0011 #include <string>
0012 #include <vector>
0013 
0014 #include "../../../../beans/gpd/GPDType.h"
0015 #include "../../../../beans/List.h"
0016 #include "../../../../utils/type/PhysicalType.h"
0017 #include "TCSCrossSectionUUThetaIntegrated.h"
0018 
0019 namespace PARTONS {
0020 
0021 /**
0022  * @class TCSCrossSectionUUThetaPhiIntegrated
0023  * @brief Unpolarized cross-section integrated over \f$\theta\f$ in a given range (default: \f$|\theta - \pi/2| < \pi/4\f$) and \f$\phi\f$ in the full range.
0024  *
0025  * Definition:<br>
0026  *
0027  * \f$ \displaystyle
0028  * \int_{0}^{2\pi}\mathrm{d}\phi\int_{\theta_{\mathrm{min}}}^{\theta_{\mathrm{max}}}\mathrm{d}\theta} \frac{\mathrm{d}^4\sigma_{UU}}{\mathrm{d}|t| \mathrm{d}Q^2 \mathrm{d}\phi \mathrm{d}\theta}\left(t, Q^2, \phi, \theta\right) \, .
0029  * \f$
0030  *
0031  * Unit: \f$\mathrm{nbarn}/\mathrm{GeV}^4\f$.
0032  */
0033 class TCSCrossSectionUUThetaPhiIntegrated: public TCSCrossSectionUUThetaIntegrated {
0034 
0035 public:
0036 
0037     /**
0038      * Unique ID to automatically register the class in the registry.
0039      */
0040     static const unsigned int classId;
0041 
0042     /**
0043      * Constructor.
0044      * @param className Name of class.
0045      */
0046     TCSCrossSectionUUThetaPhiIntegrated(const std::string &className);
0047 
0048     /**
0049      * Destructor.
0050      */
0051     virtual ~TCSCrossSectionUUThetaPhiIntegrated();
0052 
0053     virtual TCSCrossSectionUUThetaPhiIntegrated* clone() const;
0054 
0055 protected:
0056 
0057     /**
0058      * Copy constructor.
0059      * @param other Object to be copied.
0060      */
0061     TCSCrossSectionUUThetaPhiIntegrated(
0062             const TCSCrossSectionUUThetaPhiIntegrated &other);
0063 
0064     virtual PhysicalType<double> computeObservable(
0065             const TCSObservableKinematic& kinematic,
0066             const List<GPDType>& gpdType);
0067 
0068     /**
0069      * Functor to perform the integration.
0070      */
0071     NumA::FunctionType1D* m_pFunctionToIntegrateObservablePhi;
0072 
0073     /**
0074      * Function to be integrated.
0075      */
0076     virtual double functionToIntegrateObservablePhi(double x,
0077             std::vector<double> params);
0078 
0079     /**
0080      * Initialize functors.
0081      */
0082     void initFunctorsForIntegrations();
0083 
0084 };
0085 
0086 } /* namespace PARTONS */
0087 
0088 #endif /* TCSCROSSSECTIONTHETAPHIINTEGRATEDUU_H */