Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:09

0001 #ifndef PHASIC_Main_CS_Dipoles_H
0002 #define PHASIC_Main_CS_Dipoles_H
0003 
0004 #include "PHASIC++/Channels/CS_Dipole.H"
0005 
0006 namespace PHASIC {
0007 
0008   class FF_Dipole: public CS_Dipole {
0009   private:
0010     double m_yexp, m_zexp, m_mi, m_mj, m_mk;
0011     double m_mi2, m_mj2, m_mij2, m_mk2;
0012     bool   m_massive;
0013   public:
0014 
0015     FF_Dipole(ATOOLS::NLO_subevt *const sub,
0016           Phase_Space_Handler *const psh,const bool bmcw=0);
0017 
0018     ~FF_Dipole();
0019 
0020     ATOOLS::Vec4D_Vector GeneratePoint
0021     (const ATOOLS::Vec4D_Vector &p,
0022      Cut_Data *const cuts,const double *rns);
0023     double GenerateWeight(const ATOOLS::Vec4D_Vector &p,
0024               Cut_Data *const cuts);
0025     bool ValidPoint(const ATOOLS::Vec4D_Vector& p);
0026 
0027   };// end of class FF_Dipole
0028 
0029   class FI_Dipole: public CS_Dipole {
0030   private:
0031     double m_xmin, m_xexp, m_zexp;
0032     double m_mi, m_mj, m_mi2, m_mj2, m_mij2;
0033     bool   m_massive;
0034   public:
0035 
0036     FI_Dipole(ATOOLS::NLO_subevt *const sub,
0037           Phase_Space_Handler *const psh,const bool bmcw=0);
0038 
0039     ~FI_Dipole();
0040 
0041     ATOOLS::Vec4D_Vector GeneratePoint
0042     (const ATOOLS::Vec4D_Vector &p,
0043      Cut_Data *const cuts,const double *rns);
0044     double GenerateWeight(const ATOOLS::Vec4D_Vector &p,
0045               Cut_Data *const cuts);
0046     bool ValidPoint(const ATOOLS::Vec4D_Vector& p);
0047 
0048   };// end of class FI_Dipole
0049 
0050   class IF_Dipole: public CS_Dipole {
0051   private:
0052     double m_xmin,m_xexp, m_uexp, m_mk2;
0053   public:
0054 
0055     IF_Dipole(ATOOLS::NLO_subevt *const sub,
0056           Phase_Space_Handler *const psh,const bool bmcw=0);
0057 
0058     ~IF_Dipole();
0059 
0060     ATOOLS::Vec4D_Vector GeneratePoint
0061     (const ATOOLS::Vec4D_Vector &p,
0062      Cut_Data *const cuts,const double *rns);
0063     double GenerateWeight(const ATOOLS::Vec4D_Vector &p,
0064               Cut_Data *const cuts);
0065     bool ValidPoint(const ATOOLS::Vec4D_Vector& p);
0066 
0067   };// end of class IF_Dipole
0068 
0069   class II_Dipole: public CS_Dipole {
0070   private:
0071     double m_xmin, m_xexp, m_vexp;
0072   public:
0073 
0074     II_Dipole(ATOOLS::NLO_subevt *const sub,
0075           Phase_Space_Handler *const psh,const bool bmcw=0);
0076 
0077     ~II_Dipole();
0078 
0079     ATOOLS::Vec4D_Vector GeneratePoint
0080     (const ATOOLS::Vec4D_Vector &p,
0081      Cut_Data *const cuts,const double *rns);
0082     double GenerateWeight(const ATOOLS::Vec4D_Vector &p,
0083               Cut_Data *const cuts);
0084     bool ValidPoint(const ATOOLS::Vec4D_Vector& p);
0085 
0086     void Calculate(const ATOOLS::Vec4D &pi, const ATOOLS::Vec4D &pj,
0087                    const ATOOLS::Vec4D &pk,
0088                    const ATOOLS::Vec4D_Vector& kj,
0089                    double &x, double &v, double &phi,
0090                    ATOOLS::Vec4D &pijt, ATOOLS::Vec4D &pkt,
0091                    ATOOLS::Vec4D_Vector& kjt);
0092     void Construct(ATOOLS::Vec4D &pi, ATOOLS::Vec4D &pj, ATOOLS::Vec4D &pk,
0093                    ATOOLS::Vec4D_Vector& kj,
0094                    const double &x, const double &v, const double &phi,
0095                    const ATOOLS::Vec4D &pijt, const ATOOLS::Vec4D &pkt,
0096                    const ATOOLS::Vec4D_Vector& kjt);
0097 
0098   };// end of class II_Dipole
0099 
0100 }// end of namespace PHASIC
0101 
0102 #endif