Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef DDVCSALUPHI_H
0002 #define DDVCSALUPHI_H
0003 
0004 /**
0005  * @file DDVCSAluPhi.h
0006  * @author Victor Martinez-Fernandez (NCBJ)
0007  * @date 2023
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 "../DDVCSObservable.h"
0017 
0018 namespace PARTONS {
0019 
0020 /**
0021  * @class DDVCSAluPhi
0022  * @brief Longitudinally polarized beam asymmetry for negative beam charge. ALL subprocesses considered: DDVCS + BH + Interference.
0023  *
0024  * Definition:<br>
0025  *
0026  * \f$ \displaystyle
0027  * A_{LU}\left(  \right) =
0028  * TODO FORMULA \, ,
0029  * \f$
0030  *
0031  * where
0032  * \f$\sigma^{b_{h} b_{c}}\f$ is a single photon production cross-section (DDVCS, BH and Interference) for beam helicity denoted by \f$b_{h}\f$ and beam charge denoted by \f$b_{c}\f$.
0033  */
0034 class DDVCSAluPhi: public DDVCSObservable {
0035 
0036 public:
0037 
0038     /**
0039      * Unique ID to automatically register the class in the registry.
0040      */
0041     static const unsigned int classId;
0042 
0043     /**
0044      * Function for the integration.
0045      */
0046     static double DDVCSAluPhiFunction(double* kin, size_t dim, void* par);
0047 
0048     /**
0049      * Constructor.
0050      * @param className Name of class.
0051      */
0052     DDVCSAluPhi(const std::string &className);
0053 
0054     /**
0055      * Destructor.
0056      */
0057     virtual ~DDVCSAluPhi();
0058 
0059     virtual DDVCSAluPhi* clone() const;
0060 
0061 protected:
0062 
0063     /**
0064      * Copy constructor.
0065      * @param other Object to be copied.
0066      */
0067 
0068     DDVCSAluPhi(const DDVCSAluPhi &other);
0069 
0070     virtual PhysicalType<double> computeObservable(
0071             const DDVCSObservableKinematic& kinematic,
0072             const List<GPDType>& gpdType);
0073 };
0074 
0075 struct DDVCSAluPhiParameters {
0076 
0077     DDVCSAluPhi* m_pDDVCSAluPhi; ///< Pointer to DDVCSAluPhi.
0078     double m_xB, m_t, m_Q2, m_Q2Prim, m_E, m_phi, signAux;
0079     List<GPDType> m_gpdType; ///< GPD types.
0080 };
0081 
0082 } /* namespace PARTONS */
0083 
0084 #endif /* DDVCSALUPHI_H */