Plots
of astrophysical neutrino fluxes obtained
using NeutrinoFlux. For further
details
see
the discussion below.
NeutrinoFlux is a tool thought
to evaluate the fluxes of neutrinos of any
flavours at any energy value and (if needed) for any neutrino zenith
angle.
This documentation is meant to explain the Fluxes and how to extract them.
The Doxigen
documentation is available here.
The interfaces to IceTray for weighting purposes are developed by K. J. Meagher and
OneWeight by C. Finley.
Few warnings are of relevance:
A polymorphic
interface provides a common interface for 3 different kind of fluxes
for the user convenence.
But it should be clear that while the conventional atmospheric
neutrinos have a dependence on the zenith angle the other fluxes do not
have it.
At the moment, this class can provide the user with the calculation of
differential and integral fluxes of atmospheric neutrinos
(conventional neutrinos according to the models of Honda et al 2006, Bartol2004, HKKM2004 (obsolete, not recommended),
and prompt neutrinos according to the models of Naumov
RQPM/QGSM, Martin2003 and Costa2001) and with the calculation of diffuse and point-like fluxes of astrophysical
neutrinos according to different theoretical models of emission
from GRBs and AGNs. However, it can be used for every kind of fluxes!
It is warmly encouraged the use of the Bartol or the Honda 2006 fluxes (original tables for this last flux are much better than Bartol ones).
For prompt
neutrinos a new model is available by R. Enberg, M.H. Reno and I.
Sarcevic, PRD78 (2008) 043005. This is a pqcd model where
parameters where changed so that the model is provided as a best
prediction (std) and a max and min ones that provide the uncertainty.
Some of the highest predictions (_opt models can
be discarded since they seem really too optimistic!). Two models are
available for nutau: Enberg et al and Martin (gbw).
Other tables could
be implemented for atmospheric and astrophysical
fluxes
maintaining of course the structure required for the correct reading by
the
class. The class is completely independent from the ROOT framework.
There are two
constructors in NeutrinoFlux according if the user wants to concentrate
his/her
study on the atmospheric or astrophysical
neutrino fluxes.
The
atmospheric neutrino fluxes.
AtmosphericNeutrinoFlux::AtmosphericNeutrinoFlux(string
conv_model,string prompt_model) : conv_flux_(conv_model_nutype),
prompt_flux_(prompt_model_nutype)
PromptNeutrinoFlux::PromptNeutrinoFlux(string modelPrompt):
model_(modelPrompt_nutype)
Flux
model
modelConv
(string type)
modelPrompt
(string type)
Bartol 2004
bartol_numu,
bartol_nue
HKKM2006
honda2006_numu,honda2006_nue
HKKM2004
honda_numu,honda_nue
(only polynomium fit, obsolete)
Naumov/RQPM
naumov_rqpm_numu,
naumov_rqpm_nue
Naumov/QGSM
naumov_qgsm_numu,
naumov_qgsm_nue
Martin/KMS
martin_kms_numu,
martin_kms_nue
Martin/MRS
martin_mrs_numu,
martin_mrs_nue
Martin/GBW
martin_gbw_numu,
martin_gbw_nue, martin_gbw_nutau
Enberg et
al, 2008
sarcevic_std_numu,
sarcevic_std_nue, sarcevic_min_numu, sarcevic_min_nue,
sarcevic_max_numu,sarcevic_max_nue, sarvevic_nutau
Costa 2001
pQCD_opt_numu,
pQCD_opt_nue, pQCD_pes_numu, pQCD_opt_nue
RQPM_opt_numu, RQPM_opt_nue, RQPM_pes_numu, RQPM_pes_nue
QGSM_opt_numu, QGSM_opt_nue, QGSM_pes_numu, QGSM_pes_nue
When the
constructor is initialized, it calls automatically two methods which
open and
read the tables of the parameters characterizing the models chosen by
the user.
These parameters were obtained previously by means of a polynomial 2-dimensional fitting of the
original tables of different type of neutrinos and saved in files whom
the
constructor can read easily. The calculation of the fluxes requires
either to
call the method NeutrinoFlux::FluxAtmo(int neutType,
double
eNeut, double costheta), to evaluate the differential flux at
a given
energy (in GeV) and cosine of the zenith angle and for a particular
type of
neutrino, or to call the method NeutrinoFlux::FluxAtmoInt(int
neutType, double eNeut), to evaluate the integral
flux at
a given energy (in GeV) and for a particular type of neutrino, that is
a flux
integrated over the lower hemisphere, so 2p
steradians. The convention for the neutType
variable is the same as that supported by IceTray, that is the user can
assign
the value 201 for ne, 202
for nmu, 204
for anti-ne and
205 for anti-nmu. A
simple trial of the functionality of the class can be done having a
look at the
example below after having loaded a ROOT session.
Example of usage in ROOT for atmospheric neutrinos:
gSystem->Load("libneutrinoflux");
string conv_b = "bartol";
string prompt_r = "naumov_rqpm";
int neu_ty_numu = 202;
NeutrinoFlux *atmo_r = new AtmosphericNeutrinoFlux(conv_b, prompt_r);
similarly for an astrophysical flux:
NeutrinoFlux *microqso = new
AstroNeutrinoFlux("CYGX1_mq");
NeutrinoFlux
atmo;
atmo.NeutrinoFlux(“bartolâ€,â€naumov_rqpmâ€);
Double_t
t;
t =
Atmo.FluxConv(204,100.,0.1);
cout
<< t << endl;
Bartol-Naumov/RQPM
nm
ne
Bartol-Naumov/QGSM
nm
ne
Honda
-Naumov/RQPM
nm
ne
Honda
-Naumov/QGSM
nm
ne
The
astrophysical neutrino fluxes. The summary of names see
this page.
The other
constructor of the C++ NeutrinoFlux class which is required to evaluate
astrophysical
neutrino fluxes is AstroNeutrinoFlux::AstroNeutrinoFlux(string
modelname):model_(modelname)
for diffuse fluxes. The user assigns one of the model
names below and the flux is returned in GeV-1 cm-2
s-1 sr-1. To get a flux the user must assign the
energy value and (since NeutrinoFlux is polymorphic interface) the user
should also provide a dummy value for cos(zenith).
The other contructor is
model_(modelname) for
point-like sources. The user can get the value of the declination using
GetDecli and the valuse of the flux using GetFlux where again an energy
value is needed and a dummy cos(zenith). The result is returned
in GeV-1 cm-2 s-1
according to the specific model chosen between the ones in the table.
In both cases for
the astrophysical fluxes, when the
constructor is initialized, it calls automatically the method which
opens and
reads the tables of the parameters characterizing the models chosen by
the
user. The considered astrophysical fluxes can be parametrized as a sum
of power
laws in a given energy intervals of the form
The A, B, C, D parameters can change in different energy intervals (for a maximum of 100 different intervals). Moreover the number of power laws that can be summed can vary from 1 to 100. Hence, the tables containing them have the following structure: the first number in the file is the number of lines or energy intervals (piece) and the following lines are
Emin |
Emax |
n. of par. |
A |
B |
C |
D |
where Emin
and Emax define the minimum and maximum energy for the
particular interval of energy and n. of par. is the number of
parameters in that interval. The tables of parameters for each model
may contain
more than 1 lines if the power laws varies in different energy
intervals. If
the user wants to implement his/her own model he/she should prepare a
table of
parameters in this format. The tables will have a number of lines equal
to the
energy intervals in which the flux has a different power law dependence.
WARNING: these clusses can be called using only the neutrino (eg numu)
but they return numu+anumu fluxes SO YOU DO NOT need to sum the GetFlux
for numu and the one for anumu. Also most of these models where for no
oscillations but some are including them so check the table here.