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 };
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 };
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 };
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 };
0099
0100 }
0101
0102 #endif