Kariba
Loading...
Searching...
No Matches
kariba::Cyclosyn Class Reference

Class synchrotron photons, inherited from Radiation.hpp. More...

#include <Cyclosyn.hpp>

Inheritance diagram for kariba::Cyclosyn:
kariba::Radiation

Public Member Functions

 ~Cyclosyn ()
 
 Cyclosyn (size_t size)
 
double emis_integral (double nu, double gmin, double gmax, gsl_spline *eldis, gsl_interp_accel *acc_eldis)
 
double abs_integral (double nu, double gmin, double gmax, gsl_spline *eldis_diff, gsl_interp_accel *acc_eldis_diff)
 
void cycsyn_spectrum (double gmin, double gmax, gsl_spline *eldis, gsl_interp_accel *acc_eldis, gsl_spline *eldis_diff, gsl_interp_accel *acc_eldis_diff)
 Comoving and observed specific luminosity for the input particle distribution.
 
double nu_syn (double gamma)
 
double nu_syn ()
 
void set_frequency (double numin, double numax)
 Method to set up the frequency array over desired range.
 
void set_bfield (double b)
 Method to set magnetic field.
 
void set_mass (double mass)
 Method to set the particle mass.
 
void test ()
 
- Public Member Functions inherited from kariba::Radiation
 Radiation (size_t size)
 
const std::vector< double > & get_energy () const
 
const std::vector< double > & get_nphot () const
 
const std::vector< double > & get_energy_obs () const
 
const std::vector< double > & get_nphot_obs () const
 
size_t get_size () const
 
double get_volume () const
 
double integrated_luminosity (double numin, double numax)
 
void set_beaming (double theta, double speed, double doppler)
 Methods to set viewing angle, beaming and geometry of emission region.
 
void set_inclination (double theta)
 
void set_geometry (const std::string &geom, double l1, double l2)
 
void set_geometry (const std::string &geom, double l1)
 
void set_counterjet (bool flag)
 Method to include a counterjet in cyclosycnchrotron/Compton classes.
 
void test_arrays ()
 Simple method to check arrays; only meant for debugging.
 

Protected Attributes

double bfield
 
double mass_gr
 
gsl_spline * syn_f
 
gsl_interp_accel * syn_acc
 
- Protected Attributes inherited from kariba::Radiation
std::vector< double > en_phot
 array of photon energies
 
std::vector< double > num_phot
 array of number of photons in units of erg/s/Hz
 
std::vector< double > en_phot_obs
 same as above but in observer frame
 
std::vector< double > num_phot_obs
 same as above but in observer frame
 
double r
 
double z
 Dimensions of emitting region.
 
double vol
 Volume of emitting region.
 
double beta
 speed of the emitting region
 
double dopfac
 
double angle
 Viewing angle/Doppler factor of emitting region.
 
double dopnum
 Doppler boosting exponent, depends on geometry.
 
bool counterjet
 boolean switch if user wants to include counterjet emission
 
std::string geometry
 string to track geometry of emitting region
 

Friends

double emis (double gamma, void *p)
 
double abs (double gamma, void *p)
 

Detailed Description

Class synchrotron photons, inherited from Radiation.hpp.

Constructor & Destructor Documentation

◆ ~Cyclosyn()

kariba::Cyclosyn::~Cyclosyn ( )

◆ Cyclosyn()

kariba::Cyclosyn::Cyclosyn ( size_t  size)

This constructor initializes the arrays and interpolations. In this case, calculations are done in frequency space, not in photon energies.

Member Function Documentation

◆ abs_integral()

double kariba::Cyclosyn::abs_integral ( double  nu,
double  gmin,
double  gmax,
gsl_spline *  eldis_diff,
gsl_interp_accel *  acc_eldis_diff 
)

◆ cycsyn_spectrum()

void kariba::Cyclosyn::cycsyn_spectrum ( double  gmin,
double  gmax,
gsl_spline *  eldis,
gsl_interp_accel *  acc_eldis,
gsl_spline *  eldis_diff,
gsl_interp_accel *  acc_eldis_diff 
)

Comoving and observed specific luminosity for the input particle distribution.

◆ emis_integral()

double kariba::Cyclosyn::emis_integral ( double  nu,
double  gmin,
double  gmax,
gsl_spline *  eldis,
gsl_interp_accel *  acc_eldis 
)

Integrals of single particle emissivity/absorption coefficient over particle distribution

◆ nu_syn() [1/2]

double kariba::Cyclosyn::nu_syn ( )

◆ nu_syn() [2/2]

double kariba::Cyclosyn::nu_syn ( double  gamma)

Methods to return the cyclosyn scale frequencies for a given Lorentz factor. Returns synchrotron or larmor frequencies depending on whether input gamma is greater or smaller than 2 The second method does the same thing, but it checks the computed arrays and looking for the maximum value of L_nu. Unlike the simple way, this accounts for the fact that the peak may be caused by synchrotron self absorption rather than coinciding with the scale frequency

◆ set_bfield()

void kariba::Cyclosyn::set_bfield ( double  b)

Method to set magnetic field.

◆ set_frequency()

void kariba::Cyclosyn::set_frequency ( double  numin,
double  numax 
)

Method to set up the frequency array over desired range.

◆ set_mass()

void kariba::Cyclosyn::set_mass ( double  mass)

Method to set the particle mass.

◆ test()

void kariba::Cyclosyn::test ( )

Friends And Related Symbol Documentation

◆ abs

double abs ( double  gamma,
void *  p 
)
friend

◆ emis

double emis ( double  gamma,
void *  p 
)
friend

Member Data Documentation

◆ bfield

double kariba::Cyclosyn::bfield
protected

◆ mass_gr

double kariba::Cyclosyn::mass_gr
protected

◆ syn_acc

gsl_interp_accel* kariba::Cyclosyn::syn_acc
protected

◆ syn_f

gsl_spline* kariba::Cyclosyn::syn_f
protected

The documentation for this class was generated from the following files: