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