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"