nuDIS_Generator is a Monte Carlo event generator designed for Neutrino-Nucleon Deep Inelastic Scattering (DIS). It simulates neutrino fluxes originating from muon decays in flight, integrating physical cross-sections with LHAPDF sets and the VEGAS integration algorithm.
To ensure all dependencies (like LHAPDF) are correctly installed, follow these steps:
Use the provided environment.yml file to create a dedicated environment with the necessary C++ and Python libraries:
conda env create -f environment.ymlconda activate nuDISOnce the environment is active, install the project in "editable" mode. This will read the `pyproject.toml` file, install any remaining Python dependencies, and allow you to run the generator from anywhere:
pip install -e .You must download the LHAPDF sets specified in your configuration (e.g., NNPDF3.1):
lhapdf install PDF4LHC21_40Notice that you can replace PDF4LHC21_40 with any other LHAPDF set of your choice. You have to update the pdf_set_name parameter in src/pdfs/pdf_set.py accordingly.
The following processes can be specified in the process field of the run card:
- d_p: d + neutrino → mu- + h
- s_p: s + neutrino → mu- + h
- b_p: b + neutrino → mu- + h
- ubar_p: u~ + neutrino → mu- + h
- cbar_p: c~ + neutrino → mu- + h
- dbar_p: d~ + antineutrino → mu+ + h
- sbar_p: s~ + antineutrino → mu+ + h
- bbar_p: b~ + antineutrino → mu+ + h
- u_p: u + antineutrino → mu+ + h
- c_p: c + antineutrino → mu+ + h
- d_n: d + neutrino → mu- + h
- ubar_n: u~ + neutrino → mu- + h
- dbar_n: d~ + antineutrino → mu+ + h
- u_n: u + antineutrino → mu+ + h
The simulation is controlled via card/cross_section_card.dat or card/events_card.dat.
The first file is used for cross-section calculations, while the second is for event generation.
Below is a description of the parameters:
- process: The name of the process from the list above.
- E_muon: Energy of the parent muon beam in GeV.
- replica: The PDF replica ID. Use 0 for the central member, or N for specific error variations.
-
Q2_min_theory: Minimum momentum transfer squared (
$Q^2$ ) allowed in the integration [GeV²]. -
W2_min_theory: Minimum hadronic invariant mass squared (
$W^2$ ) allowed [GeV²].
- vegas_iter: Number of adaptive iterations for the VEGAS algorithm.
- vegas_eval: Number of function evaluations per iteration.
- num_bins_x / Q2 / E: Number of bins for each observable.
- x_min_bin / x_max_bin: Range for Bjorken x.
-
Q2_min_bin / Q2_max_bin: Range for
$Q^2$ [GeV²]. -
E_min_bin / E_max_bin: Range for the Neutrino Energy [GeV].
- Note: If E_max_bin is set to -1, the generator automatically calculates the maximum kinematic limit based on the muon beam energy.
Run the generator by passing the path to your run card:
python events.py --card card/events_card.dat
python cross_section.py --card card/cross_section_card.dat