Loading MathJax...

SuperNEMO - Bremsstrahlung studies

This repository holds a SN@ilWare configuration + source code to study the bremsstrahlung produced within source foil. It especially produces plots of the energy of the primary electron + gamma from bremsstrahlung or the angular distribution.

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

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

Module configuration

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

Module declaration

The module name is bremsstrahlung_studies_module which is needed when using bxdpp_processing as explained in the top README file.

File preamble

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

Declaration & description

[name="bremsstrahlung_studies_module" type="analysis::snemo_bremsstrahlung_module"]

#@description A SuperNEMO module to study bremsstrahlung production within source foil

Logging priority

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

Geometry service label

#@description The Geometry Service label
Geo_label : string = "Geo"

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 this 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_bremsstrahlung_studies_histos.root" \
    "/tmp/${USER}/snemo.d/snemo_bremsstrahlung_studies_histos.xml"

Histogram template location

Templates for histogram may be provided to reduce the amount of configuration of individual histogram. For instance, plotting the vertex position distributions only implies 3 histogram templates for each of the 3 cartesian coordinates \(x,y,z\) (see below).

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

Histogram declarations

The histogram declarations i.e. name, boundaries, binning… are set in this section. There are mostly template histogram in such way, their declarations may be used as templates for several histograms.

Mandatory preamble

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

Energy distribution

  • Primary electron
    [name="electron_energy" type="mygsl::histogram_1d"]
    #@config The histogram of the energy of primary electrons
    
    #@description The group of the histogram (optional)
    group : string = "energy_distribution"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The X axis label
    display.xaxis.label : string = "Energy"
    
    #@description The X axis unit for display (a standard unit, typically SI or CLHEP)
    display.xaxis.unit : string = "keV"
    
    #@description The Y axis label
    display.yaxis.label : string = "dN/dE"
    
    #@description The number of bins
    number_of_bins : integer = 25
    
    #@description The unit of the bins' bounds (a standard unit, typically SI or CLHEP)
    unit : string = "keV"
    
    #@description The lower bound of the histogram
    min : real as energy = 0.0 keV
    
    #@description The upper bound of the histogram
    max : real as energy = 3200.0 keV
    
  • γ bremsstrahlung
    [name="gamma_energy" type="mygsl::histogram_1d"]
    #@config The histogram of the energy of gammas
    
    #@description The group of the histogram (optional)
    group : string = "energy_distribution"
    
    #@description The build mode (default : "regular", "table", "mimic");
    mode : string = "regular"
    
    #@description The linear mode (default)
    linear : boolean = 1
    
    #@description The X axis label
    display.xaxis.label : string = "Energy"
    
    #@description The X axis unit for display (a standard unit, typically SI or CLHEP)
    display.xaxis.unit : string = "keV"
    
    #@description The Y axis label
    display.yaxis.label : string = "dN/dE"
    
    #@description The number of bins
    number_of_bins : integer = 25
    
    #@description The unit of the bins' bounds (a standard unit, typically SI or CLHEP)
    unit : string = "keV"
    
    #@description The lower bound of the histogram
    min : real as energy = 0.0 keV
    
    #@description The upper bound of the histogram
    max : real as energy = 3200.0 keV
    

Angular distribution

[name="gamma_angle" type="mygsl::histogram_1d"]
#@config The histogram of the angular distribution of the gamma bremsstrahlung

#@description The group of the histogram (optional)
group : string = "angular_distribution"

#@description The build mode (default : "regular", "table", "mimic");
mode : string = "regular"

#@description The linear mode (default)
linear : boolean = 1

#@description The X axis label
display.xaxis.label : string = "angle"

#@description The X axis unit for display (a standard unit, typically SI or CLHEP)
display.xaxis.unit : string = "degree"

#@description The Y axis label
display.yaxis.label : string = "dN/d#theta"

#@description The number of bins
number_of_bins : integer = 25

#@description The unit of the bins' bounds (a standard unit, typically SI or CLHEP)
unit : string = "degree"

#@description The lower bound of the histogram
min : real as angle = 0 degree

#@description The upper bound of the histogram
max : real as angle = 180 degree

Special execution of this module

Since this module will actively use geometry manager and its locators (i.e. calo_locator, xcalo_locator,…), the module need to initialize and load the geometry service. The geometry service is actually called in this section by using the Geo service label as defined in "Geometry service" section. To properly load the Falaise configuration files for the geometry, we have to specify the path to these resource files by executing

bxdpp_processing                                                                              \
    --module-manager-config $PWD/config/module_manager.conf                                   \
    --module detector_efficiency_module_module                                                \
    --dll-config $PWD/config/dlls.conf                                                        \
    --datatools::resource_path=falaise@<path to Falaise instal>/share/Falaise-1.0.0/resources \
    --input-file <path to a data record>

The --datatools::resource_path option will automatically register this path and it will replace any of the @falaise: declaration into Falaise resource path.

File under version control - commit 72acd54 - 2014-12-28