icecube / nuflux

A library for calculating atmospheric neutrino fluxes.
https://docs.icecube.aq/nuflux/main
GNU Lesser General Public License v3.0
15 stars 5 forks source link

getFlux() should return floats for for all netrino types on all models #15

Closed NehaLad9 closed 2 years ago

NehaLad9 commented 2 years ago

I have been trying to weigh all flavour datasets for Gen2 using various atmospheric models (both prompt and conventional ) and i keep running into error for Nutau sample : RuntimeError: BERSS_H3a_central does not support particle type 16

Is it not supported ? it works fine for NuE and NuMu sample.. Do i have to import anything additionally ?

kjmeagher commented 2 years ago

It is hard coded that SplineFlux only does NuMu and NuE https://github.com/icecube/nuflux/blob/ef94742cbeed63f729c2aca432e7788248ab1607/src/library/SplineFlux.cpp#L30 I do not know enough about this model to know if it should have NuTau support. Maybe @cnweaver can provide more information

cnweaver commented 2 years ago

I don't think we ever gave this much thought before; it just came from the assumption that there was zero nu_tau component in the various old atmospheric flux models. It would probably be nice for simplicity of use if particle types which are not part of a given model would automatically yield fluxes of zero, but as a short term fix one can just avoid querying for things that aren't expected to be produced in the atmosphere.

NehaLad9 commented 2 years ago

I understand that flux can (and most likely will be) zero, but I was just wondering about why its not supported. Thanks @cnweaver and @kjmeagher for quick responses

kjmeagher commented 2 years ago

New requirement: All Calls to getFlux() should only throw if neutrino type is not one of the 6 defined neutrino types. All calls where the neutrino type is not predicted this model (NuTau's) should return 0. All calls outside the Energy and cosZenith range should also return 0.