Project

General

Profile

pkgs/EventGenerator (NOvA offline)

A concise, but complete, statement of what this thing does.

  • Input: none - events are created
  • Output: simb::MCTruth and possibly simb::MCFlux objects

Technical description

A technical description of how it works. No need to skimp on the details here.

Usage

There are three different ways to create events for NOvA:

  1. CRY - cosmic ray generation
  2. GENIE - neutrino interaction generation
  3. Single - creation of predefined particles at given energies, directions in the detectors

The source:pkgs/EventGenerator package contains a module for each of these, as well as configuration files defining the jobs to run each type of event generation. The prod*.fcl files mentioned below handle all stages of the simulation, including event generation, geant tracking, photon propagation, and readout simulation.

This page contains instructions for producing a file from the event generation stage through the raw digit simulation. Instructions for reconstructing the produced events are elsewhere.

CosmicsGen

Cosmic Ray Generation with CRY

To create a file containing cosmic ray interactions for each event, do

% nova -c job/prodcosmics.fcl -n ### -o output.root

where ### is the number of events you want to make and output.root is the output file you want to make.

You can edit parameters related to the simulation in the cosmics.fcl file located in the source:pkgs/EventGenerator package.

The detector geometry configuration is controlled in the job/geometry.fcl file.

  • ndos_geo - the NDOS
  • nd_geo - the near detector
  • fd_geo - the far detector

GENIEGen

Neutrino Interaction Generation with GENIE

To create a file containing neutrino interactions for each event, do

% nova -c job/prodgenie.fcl -n ### -o output.root

where ### is the number of events you want to make and output.root is the output file you want to make.

You can edit parameters related to the simulation in the genie.fcl files located in the source:pkgs/EventGenerator package.

genie.fcl

For the Genie simulation, the job/genie.fcl file contains some parameters that a person may be likely to change. Here is a list of more interesting ones:

  1. Number of events per spill. The number of events to produce in each spill. The default behavior is for GENIE to produce events in accordance with a spill intensity of 50e12 POT. If you instead wish to produce a predefined number, n, interactions in a spill you have to set the EventsPerSpill parameter to be n instead of 0 (the default that signals the use of POT per spill instead).
  2. Neutrino flavors. By default Genie simulate only nue, numu, nuebar and numubar type of neutrinos. This is set by a a parameter GenFlavors. One needs to put the pdg code for the neutrino type of an interest.
  3. Types of interactions. By default, Genie generates all types of interactions. One may leave one type of interaction, turning all other ones off, by changing GEVGL parameter from "Default" to one of the following values:
    • Default
    • Default_old
    • TestNew
    • AM-NUGAMMA
    • GLRES
    • MEC
    • DFR
    • DIS-CHARM
    • QEL-CHARM
    • CHARM
    • IMD
    • NUE-EL
    • NUE
    • QEL
    • QEL-CC
    • QEL-NC
    • RES
    • RES-CC
    • RES-NC
    • RSPP
    • RSPP-CC
    • RSPP-NC
    • COH
    • COH-CC
    • COH-NC
    • DIS
    • DIS-CC
    • DIS-NC
    • NC
    • CC
    • QEL-EM
    • RES-EM
    • DIS-EM
    • EM
    • HadronizationTest
      Unfortunately, there is no document at the moment describing what interaction each of the options represents. However, most of them can be understood intuitively.

SingleGen

Single Particle Generation

You can make files where each event contains a predetermined set of particles by doing

% nova -c job/prodsingle.fcl -n ### -o output.root

where ### is the number of events you wish to create and output.root is the output file holding the events.

You can edit parameters related to the simulation in the singlep.fcl file located in the source:pkgs/EventGenerator package. The events can either contain exactly one particle per event or a set of particles depending on which version of the configuration you use.

Verifying the Monte Carlo is Working

The best way to check that the file you just made is to use the source:pkgs/MCCheckOut package. To run a check-out job, do

% nova -c job/mccheckout.fcl -s detsim.root -T out.root

Where out.root is the file containing the histograms made. There are 4 modules that one can run using MCCheckOut:

  • NeutrinoAna: produces histograms related to the information for generated neutrino interactions
  • CosmicAna: produces histograms related to the information for generated cosmic ray interactions
  • DetSimAna: produces histograms related to the information for the Geant4 simulation
  • DetAna: produces histograms related to the information for the raw digit simulation

The modules to run are set by editing the source:pkgs/MCCheckOut/mccheckout.fcl file and setting which modules to use. One would likely never use the CosmicAna and NeutrinoAna modules at the same time. The output file will have a folder in it named for each module that will contain the produced histograms.