# 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)
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)