Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

numerical issue in O16 CC cross sections #25

Closed
JostMigenda opened this issue May 28, 2021 · 0 comments · Fixed by #26
Closed

numerical issue in O16 CC cross sections #25

JostMigenda opened this issue May 28, 2021 · 0 comments · Fixed by #26
Assignees

Comments

@JostMigenda
Copy link
Member

Discovered this issue while working on a PR for SNOwGLoBES: The oxygen-16 CC cross sections are implemented using a fit from arXiv:1809.08398, that has four "excitation energy" parameters. If the neutrino energy is barely higher than one of these excitation energies, the cross section has an unphysical spike (because the fit function diverges as the difference between neutrino energy and excitation energy goes to zero).

Sample code to demonstrate:

from sntools.interaction_channels import o16e
for i in range(1,5):
    eG, a, b, c = o16e.fit_parameters[i]
    eNu = 29.350001 # excitation energy of the 4th group: 29.35 MeV
    print(f"*** {i}: eNu={eNu}, eG={eG} ***")
    if eNu - eG > 0:
        d = log10(eNu**0.25 - eG**0.25)
        log_sigma = a + b * d + c * d**2
        print(f"d = {d}\nlog_sigma = {log_sigma}\npartial_dSigma_dE(eNu, eNu-eG, {i}) = {o16e.partial_dSigma_dE(eNu, eNu - eG,i)}\n")

In reality, the difference between eNu and eG needs to be above the detector threshold (e.g. 0.8 MeV in water Cherenkov detectors). Enforcing that may be sufficient to fix this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant