Back to home page

EIC code displayed by LXR

 
 

    


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