File indexing completed on 2025-04-19 09:10:09
0001 #ifndef PHASIC_Channels_Threshold_Channels_H
0002 #define PHASIC_Channels_Threshold_Channels_H
0003
0004 #include "PHASIC++/Channels/ISR_Channel_Base.H"
0005 #include "PHASIC++/Channels/Vegas.H"
0006
0007
0008 namespace PHASIC {
0009 class Threshold_Uniform: public ISR_Channel_Base {
0010 protected:
0011 double m_mass,m_sexp;
0012 bool m_zchannel;
0013 size_t m_mode;
0014 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0015 ATOOLS::Info_Key m_kp1key, m_kp2key;
0016 public:
0017 Threshold_Uniform(const double mass,const double sexp,
0018 const std::string cinfo,ATOOLS::Integration_Info *info,
0019 const size_t mode=0);
0020 void GeneratePoint(const double *rans);
0021 void GenerateWeight(const int & mode=0);
0022 inline void SetMass(const double mass) { m_mass=mass; }
0023 inline double Mass() const { return m_mass; }
0024 };
0025
0026
0027
0028 class Threshold_Forward: public ISR_Channel_Base {
0029 protected :
0030 double m_mass,m_sexp, m_yexponent;
0031 bool m_zchannel;
0032 size_t m_mode;
0033 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0034 ATOOLS::Info_Key m_kp1key, m_kp2key;
0035 public :
0036 Threshold_Forward(const double mass,const double sexp,
0037 const double yexponent,
0038 const std::string cinfo,ATOOLS::Integration_Info *info,
0039 const size_t mode=0);
0040 void GeneratePoint(const double *rans);
0041 void GenerateWeight(const int & mode=0);
0042 inline void SetMass(const double mass) { m_mass=mass; }
0043 inline const double Mass() const { return m_mass; }
0044 };
0045
0046
0047
0048 class Threshold_Backward: public ISR_Channel_Base {
0049 protected :
0050 double m_mass,m_sexp, m_yexponent;
0051 bool m_zchannel;
0052 size_t m_mode;
0053 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0054 ATOOLS::Info_Key m_kp1key, m_kp2key;
0055 public :
0056 Threshold_Backward(const double mass,const double sexp,
0057 const double yexponent,
0058 const std::string cinfo,ATOOLS::Integration_Info *info,
0059 const size_t mode=0);
0060 void GeneratePoint(const double *rans);
0061 void GenerateWeight(const int & mode=0);
0062 inline void SetMass(const double mass) { m_mass=mass; }
0063 inline const double Mass() const { return m_mass; }
0064 };
0065
0066
0067
0068 class Threshold_Central: public ISR_Channel_Base {
0069 protected:
0070 double m_mass,m_sexp;
0071 bool m_zchannel;
0072 size_t m_mode;
0073 ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey;
0074 ATOOLS::Info_Key m_kp1key, m_kp2key;
0075 public:
0076 Threshold_Central(const double mass,const double sexp,
0077 const std::string cinfo,ATOOLS::Integration_Info *info,
0078 const size_t mode=0);
0079 void GeneratePoint(const double *rans);
0080 void GenerateWeight(const int & mode=0);
0081 inline void SetMass(const double mass) { m_mass=mass; }
0082 inline const double Mass() const { return m_mass; }
0083 };
0084
0085
0086
0087 class Threshold_YFS: public ISR_Channel_Base {
0088 protected:
0089 double m_mass,m_sexp;
0090 bool m_zchannel;
0091 size_t m_mode;
0092 ATOOLS::Info_Key m_spkey, m_xkey, m_sgridkey;
0093 ATOOLS::Info_Key m_kp1key, m_kp2key;
0094 public:
0095 Threshold_YFS(const double mass,const double sexp,
0096 const std::string cinfo,ATOOLS::Integration_Info *info);
0097 void GeneratePoint(const double *rans);
0098 void GenerateWeight(const int & mode=0);
0099 inline void SetMass(const double mass) { m_mass=mass; }
0100 inline const double Mass() const { return m_mass; }
0101 };
0102
0103 }
0104 #endif