Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:00

0001 #ifndef BEAM_Main_DM_beam_H
0002 #define BEAM_Main_DM_beam_H
0003 
0004 #include "BEAM/Main/Beam_Base.H"
0005 #include "ATOOLS/Math/Function_Base.H"
0006 
0007 namespace BEAM {
0008   struct DM_type {
0009     enum code {
0010       Boltzmann = 1,
0011       none      = 0
0012     };
0013   };
0014   std::ostream &operator<<(std::ostream &s,const DM_type::code & type);
0015   
0016   class DM_beam : public Beam_Base {
0017   private:
0018     double m_mass, m_temperature, m_BesselK2;
0019     DM_type::code  m_formfactor;
0020     bool   m_relativistic, m_debugging; // Whether or not to multiply by v
0021     // long double m_bessel_2; // result of K(2,m/T)
0022 
0023     void RegisterDefaults();
0024     void selfTest(std::string filename);
0025   public:
0026     DM_beam(const ATOOLS::Flavour beam,const double & temp,
0027         const DM_type::code & form, const bool & relativistic,
0028         const int dir);
0029     ~DM_beam() {}
0030 
0031     inline Beam_Base *Copy() { return new DM_beam(*this); }
0032 
0033     bool CalculateWeight(double, double);
0034     void SetTemperature(const double & temp) { m_temperature = temp; }
0035     
0036     inline const double & Temperature() { return m_temperature; }
0037   };
0038 }
0039 
0040 #endif