e4nu / e4nuanalysiscode

Placeholder for all e4nu analyses
1 stars 2 forks source link
cross-sections electron neutrino

e4nu Analysis code

This repository contains the e4nu analysis code and utils to plot the relevant information. The following are brief descriptions of the code structure and various classes. Additional information on the analysis can be found on the e4nu Wiki.


Compile and run e4nu analyses

To configure the software:

  1. Setup the environmental variables according to the farm you're in. For the FNAL gpvm, source e4nu_gpvm_env.sh;. For the ifarm, source e4nu_ifarm_env.sh;.
  2. Compile the code "make" from the E4NUANALYSIS directory: cd $E4NUANALYSIS; make;
  3. If a previous installation exists, cd $E4NUANALYSIS; make clean ; make;
  4. Run the main application, ./e4nuanalysis. You can pass a different configuration file by passing the name to ./e4nuanalysis my_config.txt. The configuration file must live in ConfigFiles.
  5. There's some configurable options that can be passed to the main analysis app. This enables the user to write a simple bash script that runs the whole analysis. For instance, you can run the 1p1pim analysis at 2 GeV on carbon using ConfFiles/mc_conf/run_clas6mc_1pimanalysis_eC12_2GeV.sh.

After each run, you will get a new root file containing information from the valid analysed events. The information stored in this file, as well as it's name, can be configured from a configuration file (see Configuration guide Wiki).

The user might want to obtain the cross section from the output files. src/apps/plote4nuanalysis.cxx is responsible to plot the cross section for a given list of observables. This app takes into account the acceptance correction. The input options are:


Directory Structure

The code can be found in different subdirectories, with the following structure:

The structure of the src directory is as follows:


E4nu Analysis Code

The analysis app e4nuanalysis.cxx is the main executable. It's content is simple: it instiantates an E4NuAnalysis object (see below details on inheritance chain), configured with ConfigFiles/example_configuration. This object is then used to load the data from an input root file (analysis -> LoadData()), run the analysis and background subtraction methods, and finally, store the analized information in a TTree as well as Histograms.

The main analysis flow is as follows: e4nu flow

The e4nu analysis code is highly factorized into different classes, which inherit from each other. ConfigureI is the base class, E4NuAnalyisis is the top derived class. The main structure is depicted in the diagram below: e4nu diagram The (...) boxes indicate that new classes might be added to accomodate new analysis cuts, specific to a new analysis (see user gide section below).

Each class has a specific role within the e4nu analysis: