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;
0021
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