Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef DVCSAUTDVCSSINPHIMPHIS_H
0002 #define DVCSAUTDVCSSINPHIMPHIS_H
0003 
0004 /**
0005  * @file DVCSAutDVCSSinPhiMPhis.h
0006  * @author Pawel Sznajder (NCBJ, Warsaw)
0007  * @date November 16, 2017
0008  * @version 1.0
0009  */
0010 
0011 #include <string>
0012 
0013 #include "../../../../beans/gpd/GPDType.h"
0014 #include "../../../../beans/List.h"
0015 #include "../../../../utils/type/PhysicalType.h"
0016 #include "../DVCSObservable.h"
0017 
0018 namespace PARTONS {
0019 
0020 /**
0021  * @class DVCSAutDVCSSinPhiMPhis
0022  * @brief Transverse target asymmetry (DVCS part).
0023  *
0024  * Definition:<br>
0025  *
0026  * \f$ \displaystyle
0027  * A_{UT, DVCS}^{\sin\left(\phi-\phi_{S}\right)}\left(x_{B}, t, Q^2, \phi\right) =
0028  * \frac{
0029  * \left(\mathrm{d}^4\sigma_{\downarrow}^{+}\left(x_{B}, t, Q^2, \phi\right) +
0030  * \mathrm{d}^4\sigma_{\downarrow}^{-}\left(x_{B}, t, Q^2, \phi\right)\right) -
0031  * \left(\mathrm{d}^4\sigma_{\uparrow}^{+}\left(x_{B}, t, Q^2, \phi\right) +
0032  * \mathrm{d}^4\sigma_{\uparrow}^{-}\left(x_{B}, t, Q^2, \phi\right)\right)
0033  * }{
0034  * \left(\mathrm{d}^4\sigma_{\downarrow}^{+}\left(x_{B}, t, Q^2, \phi\right) +
0035  * \mathrm{d}^4\sigma_{\downarrow}^{-}\left(x_{B}, t, Q^2, \phi\right)\right) +
0036  * \left(\mathrm{d}^4\sigma_{\uparrow}^{+}\left(x_{B}, t, Q^2, \phi\right) +
0037  * \mathrm{d}^4\sigma_{\uparrow}^{-}\left(x_{B}, t, Q^2, \phi\right)\right)
0038  * } \, ,
0039  * \f$
0040  *
0041  * where
0042  * \f$\sigma_{t_{h}}^{b_{c}}\f$ is a single photon production cross-section (DVCS, BH and Int) for target helicity denoted by \f$t_{h}\f$ and beam charge denoted by \f$b_{c}\f$.
0043  */
0044 class DVCSAutDVCSSinPhiMPhis: public DVCSObservable {
0045 
0046 public:
0047 
0048     /**
0049      * Unique ID to automatically register the class in the registry.
0050      */
0051     static const unsigned int classId;
0052 
0053     /**
0054      * Constructor.
0055      * @param className Name of class.
0056      */
0057     DVCSAutDVCSSinPhiMPhis(const std::string &className);
0058 
0059     /**
0060      * Destructor.
0061      */
0062     virtual ~DVCSAutDVCSSinPhiMPhis();
0063 
0064     virtual DVCSAutDVCSSinPhiMPhis* clone() const;
0065 
0066 protected:
0067 
0068     /**
0069      * Copy constructor.
0070      * @param other Object to be copied.
0071      */
0072     DVCSAutDVCSSinPhiMPhis(const DVCSAutDVCSSinPhiMPhis &other);
0073 
0074     virtual PhysicalType<double> computeObservable(
0075             const DVCSObservableKinematic& kinematic,
0076             const List<GPDType>& gpdType);
0077 };
0078 
0079 } /* namespace PARTONS */
0080 
0081 #endif /* DVCSAUTDVCSSINPHIMPHIS_H */