#ifndef PHASIC_Channels_LBS_Compton_Peak_Channels_H #define PHASIC_Channels_LBS_Compton_Peak_Channels_H #include "PHASIC++/Channels/ISR_Channel_Base.H" namespace PHASIC { class LBS_Compton_Peak_Uniform: public ISR_Channel_Base { protected: double m_exponent, m_pole; bool m_zchannel; size_t m_mode; ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey; ATOOLS::Info_Key m_kp1key, m_kp2key; public: LBS_Compton_Peak_Uniform(const double exponent,const double pole, const std::string cinfo,ATOOLS::Integration_Info *info, const size_t mode=0); void GeneratePoint(const double *rans); void GenerateWeight(const int & mode=0); }; class LBS_Compton_Peak_Forward: public ISR_Channel_Base { protected : double m_exponent, m_pole, m_yexponent; bool m_zchannel; size_t m_mode; ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey; ATOOLS::Info_Key m_kp1key, m_kp2key; public : LBS_Compton_Peak_Forward(const double exponent,const double pole,const double yexponent, const std::string cinfo,ATOOLS::Integration_Info *info, const size_t mode=0); void GeneratePoint(const double *rans); void GenerateWeight(const int & mode=0); }; class LBS_Compton_Peak_Backward: public ISR_Channel_Base { protected : double m_exponent, m_pole, m_yexponent; bool m_zchannel; size_t m_mode; ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey; ATOOLS::Info_Key m_kp1key, m_kp2key; public : LBS_Compton_Peak_Backward(const double exponent,const double pole,const double yexponent, const std::string cinfo,ATOOLS::Integration_Info *info, const size_t mode=0); void GeneratePoint(const double *rans); void GenerateWeight(const int & mode=0); }; class LBS_Compton_Peak_Central: public ISR_Channel_Base { protected: double m_exponent, m_pole; bool m_zchannel; size_t m_mode; ATOOLS::Info_Key m_spkey, m_xkey, m_ykey, m_sgridkey, m_ygridkey; ATOOLS::Info_Key m_kp1key, m_kp2key; public: LBS_Compton_Peak_Central(const double exponent,const double pole, const std::string cinfo,ATOOLS::Integration_Info *info, const size_t mode=0); void GeneratePoint(const double *rans); void GenerateWeight(const int & mode=0); }; } #endif