SuperNEMO control plot module

This repository holds a SN@ilWare configuration to run SuperNEMO simulations and to produce several "control" plots. It provides one SN@ilWare module which automatically plot physical quantities from different data banks. For example, it shows the distribution of the number of Geiger hits from the simulated_data bank and from the calibrated_data bank. The purpose of this module is to have some fundamental key plots to check differences between software releases, new software implementations and so on.

The current version is hosted at https://github.com/xgarrido/snemo_simulation_modules/snemo_control_plot under git version control.

The code itself is implemented in the source directory which holds the snemo_control_plot_module.* source code as well as a CMakeLists.txt file in order to compile, build and install the module following cmake rules.

Module declaration

The next item holds the configuration of the module. The second item is related to histogram declarations.

Module declaration

The module name to be used when processing a file is scp_module.

File preamble

#@description A sample list of setups
#@key_label   "name"
#@meta_label  "type"

Declaration & description

[name="control_plot_module" type="analysis::snemo_control_plot_module"]

#@description A SuperNEMO module to plot key quantities from data banks

Logging priority

#@description Logging priority
logging.priority : string = "warning"

Histogram service label

Set the same histogram service label as defined here

#@description The Histogram Service label
Histo_label : string = "Histo"

Histogram storage

All histograms generated by snemo_control_plot module can be stored inside ROOT files or XML archives.

#@description The ouput file where to store the histograms
Histo_output_files : string[2] as path =                  \
    "/tmp/${USER}/snemo.d/snemo_control_plot_histos.root" \
    "/tmp/${USER}/snemo.d/snemo_control_plot_histos.xml"

Histogram templates

Templates for histogram may be provided to reduce the amount of configuration of individual histogram. For instance, plotting the energy distributions of several channels may only need one general histogram definition which gives the x-axis boundaries and x-binning.

#@description The ouput file where to store the histograms
Histo_template_files : string[1] as path = \
    "@SNEMO_SIMULATION_MODULES_DIR@/snemo_control_plot_histogram_templates.conf"

Histogram declarations

The histogram declarations i.e. name, boundaries, binning… are set in this section which is organized by data bank related plots. There are two kinds of histograms:

  • unique histogram, dedicated to one task and used only one time,
  • template histogram which may be used by several data bank.

For example, to plot the distribution of the number of Geiger hits which can be done for simulated_data and calibrated_data banks, we use one histogram template that define boundaries, binning, axis titles… The template histograms all belong to the __template group.

Mandatory preamble

#@description A sample list of setups
#@key_label   "name"
#@meta_label  "type"

Simulated data bank histograms

  • Number of Geiger hits
    [name="SD::ngghits" type="mygsl::histogram_1d"]
    #@config The histogram of the number of MC Geiger hits
    
    #@description The group of the histogram (optional)
    group : string = "SD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 50
    
    #@description The lower bound of the histogram
    min : real = -0.5
    
    #@description The upper bound of the histogram
    max : real = 99.5
    
    #@description The X axis label
    display.xaxis.label : string = "Ngg"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    
  • Number of calorimeter hits
    [name="SD::ncalohits" type="mygsl::histogram_1d"]
    #@config The histogram of the number of MC calo hits
    
    #@description The group of the histogram (optional)
    group : string = "SD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 10
    
    #@description The lower bound of the histogram
    min : real = -0.5
    
    #@description The upper bound of the histogram
    max : real = 9.5
    
    #@description The X axis label
    display.xaxis.label : string = "Ncalo"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    

Calibrated data bank histograms

  • Number of calibrated tracker hits
    [name="CD::ngghits" type="mygsl::histogram_1d"]
    #@config The histogram of the number of calibrated tracker hits
    
    #@description The title of the histogram (optional)
    title : string = "Number of calibrated tracker hits"
    
    #@description The group of the histogram (optional)
    group : string = "CD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 25
    
    #@description The lower bound of the histogram
    min : real = -0.5
    
    #@description The upper bound of the histogram
    max : real = 99.5
    
    #@description The X axis label
    display.xaxis.label : string = "N_{calib.}(tracker)"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    
  • Number of calibrated calorimeter hits
    [name="CD::ncalohits" type="mygsl::histogram_1d"]
    #@config The histogram of the number of calibrated calorimeter hits
    
    #@description The title of the histogram (optional)
    title : string = "Number of calibrated calorimeter hits"
    
    #@description The group of the histogram (optional)
    group : string = "CD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 10
    
    #@description The lower bound of the histogram
    min : real = -0.5
    
    #@description The upper bound of the histogram
    max : real = 9.5
    
    #@description The X axis label
    display.xaxis.label : string = "N_{calib.}(calorimeter)"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    
  • Distribution of drift radius
    [name="CD::drift_radius" type="mygsl::histogram_1d"]
    #@config The histogram of the Geiger cell radius
    
    #@description The group of the histogram (optional)
    group : string = "CD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 100
    
    #@description The unit of the bins' bounds (a standard unit, typically SI or CLHEP)
    unit : string = "mm"
    
    #@description The lower bound of the histogram
    min : real as length = 0 mm
    
    #@description The upper bound of the histogram
    max : real as length = 25 mm
    
    #@description The X axis label
    display.xaxis.label : string = "r_{calib.}(tracker)"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    
  • Distribution of drift radius error
    [name="CD::drift_radius_error" type="mygsl::histogram_1d"]
    #@config The histogram of the Geiger cell radius error
    
    #@description The group of the histogram (optional)
    group : string = "CD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 100
    
    #@description The unit of the bins' bounds (a standard unit, typically SI or CLHEP)
    unit : string = "mm"
    
    #@description The lower bound of the histogram
    min : real as length = 0 mm
    
    #@description The upper bound of the histogram
    max : real as length = 1 mm
    
    #@description The X axis label
    display.xaxis.label : string = "#sigma_{r_{calib.}}(tracker)"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    
  • Distribution of longitudinal position
    [name="CD::long_position" type="mygsl::histogram_1d"]
    #@config The histogram of the Geiger cell longitudinal position
    
    #@description The group of the histogram (optional)
    group : string = "CD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 100
    
    #@description The unit of the bins' bounds (a standard unit, typically SI or CLHEP)
    unit : string = "mm"
    
    #@description The lower bound of the histogram
    min : real as length = 0 mm
    
    #@description The upper bound of the histogram
    max : real as length = 1500 mm
    
    #@description The X axis label
    display.xaxis.label : string = "z_{calib.}(tracker)"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    
  • Distribution of longitudinal position error
    [name="CD::long_position_error" type="mygsl::histogram_1d"]
    #@config The histogram of the Geiger cell longitudinal position error
    
    #@description The group of the histogram (optional)
    group : string = "CD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 100
    
    #@description The unit of the bins' bounds (a standard unit, typically SI or CLHEP)
    unit : string = "mm"
    
    #@description The lower bound of the histogram
    min : real as length = 0 mm
    
    #@description The upper bound of the histogram
    max : real as length = 10 mm
    
    #@description The X axis label
    display.xaxis.label : string = "#sigma_{z_{calib.}}(tracker)"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    

Tracker clustering data bank histograms

  • Number of clusters
    [name="TCD::nclusters" type="mygsl::histogram_1d"]
    #@config The histogram of the number of tracker clusters
    
    #@description The group of the histogram (optional)
    group : string = "TCD::histos"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The number of bins
    number_of_bins : integer = 10
    
    #@description The lower bound of the histogram
    min : real = -0.5
    
    #@description The upper bound of the histogram
    max : real = 9.5
    
    #@description The X axis label
    display.xaxis.label : string = "N_{cluster}"
    
    #@description The Y axis label
    display.yaxis.label : string = "Counts"
    
File under version control - commit 72acd54 - 2014-12-28