Kariba
Loading...
Searching...
No Matches
Neutrinos_pg.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5#include <gsl/gsl_interp.h>
6#include <gsl/gsl_spline.h>
7
8#include "Radiation.hpp"
9
10namespace kariba {
11
12struct HetaParams {
13 // eq 70 from KA08 for photons and writen as 0< x=Eg/Ep <1
14 double eta;
15 double eta_zero;
16 double E;
17 double gp_min;
18 double gp_max;
19 gsl_spline* spline_Jp;
20 gsl_interp_accel* acc_Jp;
21 std::string product;
22 gsl_interp_accel* acc_ng;
23 gsl_spline* spline_ng;
24 double nu_min;
25 double nu_max;
26};
27
28class Neutrinos_pg : public Radiation {
29 public:
30 Neutrinos_pg(size_t size, double Emin, double Emax);
31
32 void set_neutrinos(double gp_min, double gp_max, gsl_interp_accel* acc_Jp,
33 gsl_spline* spline_Jp, const std::vector<double>& en_perseg,
34 const std::vector<double>& lum_perseg, size_t nphot,
35 const std::string& outputConfiguration, const std::string& flavor,
36 int infosw, std::string_view source);
37};
38
39double Heta(double x, void* p);
40double colliding_protons(gsl_spline* spline_Jp, gsl_interp_accel* acc_Jp, double gp_min,
41 double gp_max, double Ep);
42double photons_jet(double eta, double Ep, gsl_spline* spline_ng, gsl_interp_accel* acc_ng,
43 double nu_min, double nu_max);
44void tables_photomeson(double& s, double& delta, double& Beta, std::string_view product,
45 double xeta);
46double PhiFunc(double eta, double eta0, double x, std::string_view product);
47
48} // namespace kariba
Definition Neutrinos_pg.hpp:28
void set_neutrinos(double gp_min, double gp_max, gsl_interp_accel *acc_Jp, gsl_spline *spline_Jp, const std::vector< double > &en_perseg, const std::vector< double > &lum_perseg, size_t nphot, const std::string &outputConfiguration, const std::string &flavor, int infosw, std::string_view source)
Definition Neutrinos_pg.cpp:110
Base class for photon/neutrino distributions.
Definition Radiation.hpp:69
Definition BBody.hpp:5
void tables_photomeson(double &s, double &delta, double &Beta, std::string_view product, double xeta)
Definition Neutrinos_pg.cpp:351
double PhiFunc(double eta, double eta0, double x, std::string_view product)
Definition Neutrinos_pg.cpp:252
double colliding_protons(gsl_spline *spline_Jp, gsl_interp_accel *acc_Jp, double gp_min, double gp_max, double Ep)
The following are common for γ rays/electrons/neutrinos from pγ:
Definition GammaRays.cpp:419
double photons_jet(double eta, double Ep, gsl_spline *spline_ng, gsl_interp_accel *acc_ng, double nu_min, double nu_max)
Definition GammaRays.cpp:433
double Heta(double x, void *p)
Definition Neutrinos_pg.cpp:217
Definition Neutrinos_pg.hpp:12
gsl_interp_accel * acc_ng
Definition Neutrinos_pg.hpp:22
double eta_zero
Definition Neutrinos_pg.hpp:15
double E
Definition Neutrinos_pg.hpp:16
gsl_spline * spline_ng
Definition Neutrinos_pg.hpp:23
std::string product
Definition Neutrinos_pg.hpp:21
gsl_interp_accel * acc_Jp
Definition Neutrinos_pg.hpp:20
double eta
Definition Neutrinos_pg.hpp:14
double nu_max
Definition Neutrinos_pg.hpp:25
double gp_min
Definition Neutrinos_pg.hpp:17
gsl_spline * spline_Jp
Definition Neutrinos_pg.hpp:19
double nu_min
Definition Neutrinos_pg.hpp:24
double gp_max
Definition Neutrinos_pg.hpp:18