Kariba
Loading...
Searching...
No Matches
Powerlaw.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4
5#include <gsl/gsl_spline.h>
6
7#include "Particles.hpp"
8
9namespace kariba {
10
13class Powerlaw : public Particles {
14 protected:
15 double pspec, plnorm;
16 double pmin, pcut; // was pmax, has been adjusted in the code
18
19 public:
20 Powerlaw(size_t size);
21
22 virtual void set_p(double min, double ucom, double bfield, double betaeff, double r,
23 double fsc);
24 virtual void set_p(double min, double gmax);
25 virtual void set_ndens();
26 virtual void set_pspec(double s1);
27 virtual void set_norm(double n);
28
29 virtual bool get_Efficiency() const { return isEfficient; }
30
31 virtual void cooling_steadystate(double ucom, double n0, double bfield, double r,
32 double tshift);
33 virtual double max_p(double ucom, double bfield, double betaeff, double r, double fsc);
34
35 // // some functions for protons
36 // virtual void set_energy(double gpmin, double fsc, double f_beta, double bfield, double r_g,
37 // double z, double r, int infosw, double protdens, double nwind,
38 // double Uradjet, const std::string& outputConfiguration,
39 // const std::string& source);
40 // virtual void check_secondary_charged_syn(double bfield, double gpmax);
41 // virtual void ProtonTimescales(double& logdgp, double fsc, double f_beta, double bfield,
42 // double gpmin, double& gpmax, double r_g, double z, double r,
43 // int infosw, double nwind, double Uradjet,
44 // const std::string& outputConfiguration,
45 // const std::string& source);
46 // virtual double sigma_pp(double Ep);
47 // virtual double set_normprot(double nprot);
48 // virtual void set_gdens(double& plfrac_p, double Up, double protdens);
49 // virtual void set_gdens(double r, double protdens, double nwind, double bfield, double plfrac,
50 // double Urad);
51 // virtual void set_gdens_pdens(double r, double beta, double Ljet, double ep, double pspec,
52 // double& protdens);
53
54 // // secondary electrons from pp
55 // virtual void set_pp_elecs(gsl_interp_accel* acc_Jp, gsl_spline* spline_Jp, double ntot_prot,
56 // double nwind, double plfrac, double gammap_min, double gammap_max,
57 // double bfield, double r);
58 // // convert secondary electrons from pg from Neutrinos units proper units for
59 // // synchrotron radiation
60 // virtual void set_pg_electrons(const std::vector<double>& energy,
61 // const std::vector<double>& density, double f_beta, double r,
62 // double vol, double B);
63
64 // // function for electrons from γγ annihilation
65 // virtual void Qggeefunction(double r, double vol, double bfield, size_t phot_number,
66 // const std::vector<double>& en_perseg,
67 // const std::vector<double>& lum_perseg, double gmax);
68
69 virtual void test();
70};
71
72} // namespace kariba
Definition Particles.hpp:90
Definition Powerlaw.hpp:13
virtual void set_ndens()
Definition Powerlaw.cpp:52
double plnorm
Definition Powerlaw.hpp:15
bool isEfficient
Proton acceleration.
Definition Powerlaw.hpp:17
double pmin
Definition Powerlaw.hpp:16
double pspec
Definition Powerlaw.hpp:15
virtual void set_norm(double n)
Definition Powerlaw.cpp:65
virtual void cooling_steadystate(double ucom, double n0, double bfield, double r, double tshift)
Definition Powerlaw.cpp:89
virtual bool get_Efficiency() const
Definition Powerlaw.hpp:29
virtual void test()
simple method to check quantities.
Definition Powerlaw.cpp:660
virtual void set_pspec(double s1)
methods to set the slope and normalization
Definition Powerlaw.cpp:63
virtual void set_p(double min, double ucom, double bfield, double betaeff, double r, double fsc)
Methods to set momentum/energy arrays.
Definition Powerlaw.cpp:25
double pcut
Definition Powerlaw.hpp:16
virtual double max_p(double ucom, double bfield, double betaeff, double r, double fsc)
Definition Powerlaw.cpp:146
Definition BBody.hpp:5