示例#1
0
# JUNO site (HONDA) in 1/(MeV * cm**2 * s), (np.array of float):
flux_total_ccatmospheric_nu_mu = p_nue_numu * flux_nue_juno + p_numu_numu * flux_numu_juno

# total muon-antineutrino flux in the INTERESTING part (10 to 100 MeV) of FLUKA simulation normalized to
# JUNO site (HONDA) in 1/(MeV * cm**2 * s), (np.array of float):
flux_total_ccatmospheric_nu_mu_bar = p_nue_numu * flux_nuebar_juno + p_numu_numu * flux_numubar_juno
""" get cross-section of nu_mu_bar + proton -> neutron + mu_plus, nu_mu + C12 -> N12 + mu_minus 
    and nu_mu_bar + C12 -> B12 + mu_plus from xml files from GENIE: """
# path, where cross-sections are saved:
path_xsec = "/home/astro/blum/juno/GENIE/genie_xsec_2.12.0_eventrate/genie_xsec/v2_12_0/NULL/DefaultPlusMECWithNC/data/"

# nu_mu_bar + proton -> neutron + mu_plus:
path_numubar_p = path_xsec + "gxspl-FNALsmall_numubar_proton_CC.xml"
# calculate total cross-section with function 'read_xml_xsec()' (total cross-section in cm**2, array of float):
# INFO-me: cross.section is calculated for energies from 0 MeV to 10 GeV:
xsec_numubar_p = NC_background_functions.read_xml_xsec(path_numubar_p,
                                                       E_neutrino_interval)
# take cross-section only for E_neutrino:
xsec_numubar_p = np.interp(
    E_neutrino, np.arange(0, 10000 + E_neutrino_interval, E_neutrino_interval),
    xsec_numubar_p)

# nu_mu_bar + C12 -> B12 + mu_plus:
path_numubar_C12 = path_xsec + "gxspl-FNALsmall_numubar_C12_CC.xml"
# calculate total cross-section with function 'read_xml_xsec()' (total cross-section in cm**2, array of float):
# INFO-me: cross.section is calculated for energies from 0 MeV to 10 GeV:
xsec_numubar_C12 = NC_background_functions.read_xml_xsec(
    path_numubar_C12, E_neutrino_interval)
# take cross-section only for E_neutrino:
xsec_numubar_C12 = np.interp(
    E_neutrino, np.arange(0, 10000 + E_neutrino_interval, E_neutrino_interval),
    xsec_numubar_C12)
示例#2
0
import NC_background_functions
import numpy as np
from matplotlib import pyplot as plt

# path, where GENIE cross-sections are saved:
path_xsec = "/home/astro/blum/juno/GENIE/genie_xsec_2.12.0_eventrate/genie_xsec/v2_12_0/NULL/DefaultPlusMECWithNC/data/"
# set energy interval in MeV:
interval_energy = 10
# set energy range in MeV (do NOT change this, it is hardcoded in function read_xml_xsec()):
energy = np.arange(0, 10000 + interval_energy, interval_energy)
""" Neutral Current interaction cross-sections of neutrinos with C12 for each neutrino flavour: """
# NC interaction nu_e + C12 -> nu_e + ...:
# define path, where cross-sections are saved (string):
path_xsec_NC_nue_C12 = path_xsec + "gxspl-FNALsmall_nue.xml"
# calculate total cross-section with function 'read_xml_xsec()' (total cross-section in cm**2, array of float):
xsec_NC_nue_C12 = NC_background_functions.read_xml_xsec(
    path_xsec_NC_nue_C12, interval_energy)

# NC interaction nu_e_bar + C12 -> nu_e_bar + ...:
# define path, where cross-sections are saved (string):
path_xsec_NC_nuebar_C12 = path_xsec + "gxspl-FNALsmall_nuebar.xml"
# calculate total cross-section with function 'read_xml_xsec()' (total cross-section in cm**2, array of float):
xsec_NC_nuebar_C12 = NC_background_functions.read_xml_xsec(
    path_xsec_NC_nuebar_C12, interval_energy)

# NC interaction nu_mu + C12 -> nu_mu + ...:
# define path, where cross-sections are saved (string):
path_xsec_NC_numu_C12 = path_xsec + "gxspl-FNALsmall_numu.xml"
# calculate total cross-section with function 'read_xml_xsec()' (total cross-section in cm**2, array of float):
xsec_NC_numu_C12 = NC_background_functions.read_xml_xsec(
    path_xsec_NC_numu_C12, interval_energy)