File indexing completed on 2025-04-19 09:10:08
0001 #ifndef PHASIC_Channels_Beam_Channels_H
0002 #define PHASIC_Channels_Beam_Channels_H
0003
0004 #include "BEAM/Main/Beam_Spectra_Handler.H"
0005 #include "PHASIC++/Channels/Multi_Channel.H"
0006
0007 namespace PHASIC {
0008 class Phase_Space_Handler;
0009
0010 class Beam_Channels: public Multi_Channel {
0011 private:
0012 Phase_Space_Handler * p_psh;
0013 std::string m_keyid;
0014 BEAM::Beam_Spectra_Handler * p_beamspectra;
0015 BEAM::beammode::code m_beammode;
0016 BEAM::beamspectrum::code m_beamtype[2];
0017 channelinfos m_beamparams;
0018 std::set<double> m_yexponents;
0019
0020
0021 bool MakeChannels();
0022 bool DefineColliderChannels();
0023 void CheckForStructuresFromME();
0024 bool CreateChannels();
0025 void AddSimplePole(const size_t & chno,const size_t & mode);
0026 void AddResonance(const size_t & chno,const size_t & mode);
0027 void AddThreshold(const size_t & chno,const size_t & mode);
0028 void AddLaserBackscattering(const size_t & chno,const size_t & mode);
0029 void AddExponential(const size_t & chno,const size_t & mode);
0030 public:
0031 Beam_Channels(Phase_Space_Handler *const psh,const std::string &name);
0032 ~Beam_Channels() {}
0033 bool Initialize();
0034 inline channelinfos &Parameters() { return m_beamparams; }
0035 };
0036
0037 }
0038
0039 #endif