File indexing completed on 2025-04-19 09:10:09
0001 #ifndef PHASIC_Channels_Simple_Pole_Channels_H
0002 #define PHASIC_Channels_Simple_Pole_Channels_H
0003
0004 #include "PHASIC++/Channels/ISR_Channel_Base.H"
0005
0006 namespace PHASIC {
0007 class Simple_Pole_RelicDensity: public ISR_Channel_Base {
0008 protected:
0009 double m_exponent;
0010 bool m_zchannel;
0011 ATOOLS::Info_Key m_spkey, m_sgridkey;
0012 public:
0013 Simple_Pole_RelicDensity(const double exponent,const std::string cinfo,
0014 ATOOLS::Integration_Info *info);
0015 void GeneratePoint(const double *rans);
0016 void GenerateWeight(const int & mode=0);
0017 };
0018
0019 class Simple_Pole_DM_Annihilation: public ISR_Channel_Base {
0020 protected:
0021 double m_exponent, m_mass[2];
0022 bool m_zchannel;
0023 ATOOLS::Info_Key m_spkey, m_sgridkey, m_xkey, m_xgridkey, m_cosxikey, m_cosgridkey;
0024 public:
0025 Simple_Pole_DM_Annihilation(const double exponent, const double mass1,
0026 const double mass2, const std::string cinfo,
0027 ATOOLS::Integration_Info *info);
0028 void GeneratePoint(const double *rans);
0029 void GenerateWeight(const int & mode=0);
0030 };
0031
0032
0033
0034 class Simple_Pole_Uniform: public ISR_Channel_Base {
0035 protected:
0036 double m_exponent;
0037 bool m_zchannel;
0038 size_t m_mode;
0039 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0040 ATOOLS::Info_Key m_kp1key, m_kp2key;
0041 public:
0042 Simple_Pole_Uniform(const double exponent,const std::string cinfo,
0043 ATOOLS::Integration_Info *info,const size_t mode=0);
0044 void GeneratePoint(const double *rans);
0045 void GenerateWeight(const int & mode=0);
0046 };
0047
0048
0049
0050 class Simple_Pole_Central: public ISR_Channel_Base {
0051 protected:
0052 double m_exponent;
0053 bool m_zchannel;
0054 size_t m_mode;
0055 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0056 ATOOLS::Info_Key m_kp1key, m_kp2key;
0057 public:
0058 Simple_Pole_Central(const double exponent,const std::string cinfo,
0059 ATOOLS::Integration_Info *info,const size_t mode=0);
0060 void GeneratePoint(const double *rans);
0061 void GenerateWeight(const int & mode=0);
0062 };
0063
0064
0065
0066 class Simple_Pole_Forward: public ISR_Channel_Base {
0067 protected :
0068 double m_sexponent, m_yexponent;
0069 bool m_zchannel;
0070 size_t m_mode;
0071 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0072 ATOOLS::Info_Key m_kp1key, m_kp2key;
0073 public :
0074 Simple_Pole_Forward(const double sexponent,const double yexponent,
0075 const std::string cinfo,ATOOLS::Integration_Info *info,
0076 const size_t mode=0);
0077 void GeneratePoint(const double *rans);
0078 void GenerateWeight(const int & mode=0);
0079 };
0080
0081
0082
0083 class Simple_Pole_Backward: public ISR_Channel_Base {
0084 protected :
0085 double m_sexponent, m_yexponent;
0086 bool m_zchannel;
0087 size_t m_mode;
0088 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0089 ATOOLS::Info_Key m_kp1key, m_kp2key;
0090 public :
0091 Simple_Pole_Backward(const double sexponent,const double yexponent,
0092 const std::string cinfo,ATOOLS::Integration_Info *info,
0093 const size_t mode=0);
0094 void GeneratePoint(const double *rans);
0095 void GenerateWeight(const int & mode=0);
0096 };
0097
0098
0099
0100 class Simple_Pole_YFS: public ISR_Channel_Base {
0101 protected :
0102 double m_sexponent;
0103 bool m_zchannel;
0104 size_t m_mode;
0105 ATOOLS::Info_Key m_spkey, m_xkey, m_sgridkey;
0106 public :
0107 Simple_Pole_YFS(const double exponent, const std::string cinfo,
0108 ATOOLS::Integration_Info *info);
0109 void GeneratePoint(const double *rans);
0110 void GenerateWeight(const int & mode=0);
0111 };
0112 }
0113 #endif