Kariba
Loading...
Searching...
No Matches
Radiation.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include <gsl/gsl_spline.h>
7#include <gsl/gsl_integration.h>
8
9namespace kariba {
10
13 double nu;
14 double b;
15 gsl_spline* syn;
16 gsl_interp_accel* acc_syn;
17 gsl_spline* eldis;
18 gsl_interp_accel* acc_eldis;
19};
20
23 double nu;
24 double b;
25 gsl_spline* syn;
26 gsl_interp_accel* acc_syn;
27 gsl_spline* derivs;
28 gsl_interp_accel* acc_derivs;
29};
30
33 double eph;
34 double ephmin;
35 double ephmax;
36 gsl_spline* eldis;
37 gsl_interp_accel* acc_eldis;
38 gsl_spline* phodis;
39 gsl_interp_accel* acc_phodis;
40 gsl_integration_workspace* w2;
41};
42
45 double game;
46 double e1;
47 gsl_spline* phodis;
48 gsl_interp_accel* acc_phodis;
49};
50
53 double tin;
54 double rin;
55 double nu;
56};
57
60 double gamma;
61 double beta;
62 double tin;
63 double rin;
64 double rout;
65 double h;
66 double z;
67 double nu;
68};
69
71class Radiation {
72 protected:
73 std::vector<double> en_phot;
74 std::vector<double> num_phot;
75 std::vector<double> en_phot_obs;
76 std::vector<double> num_phot_obs;
77
78 double r, z;
79 double vol;
80 double beta;
81 double dopfac, angle;
82 double dopnum;
84 std::string geometry;
85
86 public:
87 Radiation(size_t size);
88
89 virtual const std::vector<double>& get_energy() const { return en_phot; }
90
91 virtual const std::vector<double>& get_nphot() const { return num_phot; }
92
93 virtual const std::vector<double>& get_energy_obs() const { return en_phot_obs; }
94
95 virtual const std::vector<double>& get_nphot_obs() const { return num_phot_obs; }
96
97 virtual size_t get_size() const { return en_phot.size(); }
98
99 virtual double get_volume() const { return vol; }
100
101 virtual double integrated_luminosity(double numin, double numax);
102
103 virtual void set_beaming(double theta, double speed, double doppler);
104 virtual void set_inclination(double theta);
105 virtual void set_geometry(const std::string& geom, double l1, double l2);
106 virtual void set_geometry(const std::string& geom, double l1);
107
108 virtual void set_counterjet(bool flag);
109 virtual void test_arrays();
110};
111} // namespace kariba
Base class for photon/neutrino distributions.
Definition Radiation.hpp:71
virtual size_t get_size() const
Definition Radiation.hpp:97
std::vector< double > en_phot_obs
same as above but in observer frame
Definition Radiation.hpp:75
std::string geometry
string to track geometry of emitting region
Definition Radiation.hpp:84
double angle
Viewing angle/Doppler factor of emitting region.
Definition Radiation.hpp:81
virtual double integrated_luminosity(double numin, double numax)
Definition Radiation.cpp:74
double vol
Volume of emitting region.
Definition Radiation.hpp:79
double dopfac
Definition Radiation.hpp:81
double z
Dimensions of emitting region.
Definition Radiation.hpp:78
virtual void test_arrays()
Simple method to check arrays; only meant for debugging.
Definition Radiation.cpp:92
double r
Definition Radiation.hpp:78
std::vector< double > num_phot
array of number of photons in units of erg/s/Hz
Definition Radiation.hpp:74
virtual void set_beaming(double theta, double speed, double doppler)
Methods to set viewing angle, beaming and geometry of emission region.
Definition Radiation.cpp:13
virtual const std::vector< double > & get_energy() const
Definition Radiation.hpp:89
virtual void set_geometry(const std::string &geom, double l1, double l2)
Definition Radiation.cpp:21
bool counterjet
boolean switch if user wants to include counterjet emission
Definition Radiation.hpp:83
double dopnum
Doppler boosting exponent, depends on geometry.
Definition Radiation.hpp:82
std::vector< double > en_phot
array of photon energies
Definition Radiation.hpp:73
double beta
speed of the emitting region
Definition Radiation.hpp:80
virtual void set_counterjet(bool flag)
Method to include a counterjet in cyclosycnchrotron/Compton classes.
Definition Radiation.cpp:89
virtual double get_volume() const
Definition Radiation.hpp:99
virtual const std::vector< double > & get_energy_obs() const
Definition Radiation.hpp:93
std::vector< double > num_phot_obs
same as above but in observer frame
Definition Radiation.hpp:76
virtual void set_inclination(double theta)
Definition Radiation.cpp:19
virtual const std::vector< double > & get_nphot_obs() const
Definition Radiation.hpp:95
virtual const std::vector< double > & get_nphot() const
Definition Radiation.hpp:91
Definition BBody.hpp:5
Structure used for GSL integration.
Definition Radiation.hpp:44
gsl_spline * phodis
Definition Radiation.hpp:47
gsl_interp_accel * acc_phodis
Definition Radiation.hpp:48
double e1
Definition Radiation.hpp:46
double game
Definition Radiation.hpp:45
Structure used for GSL integration.
Definition Radiation.hpp:32
gsl_spline * phodis
Definition Radiation.hpp:38
gsl_interp_accel * acc_phodis
Definition Radiation.hpp:39
double ephmin
Definition Radiation.hpp:34
gsl_spline * eldis
Definition Radiation.hpp:36
double ephmax
Definition Radiation.hpp:35
double eph
Definition Radiation.hpp:33
gsl_interp_accel * acc_eldis
Definition Radiation.hpp:37
gsl_integration_workspace * w2
Definition Radiation.hpp:40
Structure used for GSL integration.
Definition Radiation.hpp:22
gsl_spline * derivs
Definition Radiation.hpp:27
gsl_interp_accel * acc_syn
Definition Radiation.hpp:26
gsl_interp_accel * acc_derivs
Definition Radiation.hpp:28
gsl_spline * syn
Definition Radiation.hpp:25
double nu
Definition Radiation.hpp:23
double b
Definition Radiation.hpp:24
Structure used for GSL integration.
Definition Radiation.hpp:12
gsl_spline * syn
Definition Radiation.hpp:15
gsl_spline * eldis
Definition Radiation.hpp:17
gsl_interp_accel * acc_syn
Definition Radiation.hpp:16
double nu
Definition Radiation.hpp:13
double b
Definition Radiation.hpp:14
gsl_interp_accel * acc_eldis
Definition Radiation.hpp:18
Structure used for GSL integration.
Definition Radiation.hpp:59
double tin
Definition Radiation.hpp:62
double z
Definition Radiation.hpp:66
double beta
Definition Radiation.hpp:61
double rout
Definition Radiation.hpp:64
double gamma
Definition Radiation.hpp:60
double nu
Definition Radiation.hpp:67
double h
Definition Radiation.hpp:65
double rin
Definition Radiation.hpp:63
Structure used for GSL integration.
Definition Radiation.hpp:52
double nu
Definition Radiation.hpp:55
double tin
Definition Radiation.hpp:53
double rin
Definition Radiation.hpp:54