SNGeometry Manager Configuration

1 Introduction

This file provides the paths to geometry configuration and files for SuperNEMO detector. SuperNEMo geometry is mainly wrapped arround geomtools library and thus, use most of its primitives.

2 Manager configuration

2.1 Setup label, description and version

#@description Setup label
setup_label : string = "snemo::demonstrator"

#@description Setup description
setup_description : string = "SuperNEMO demonstrator module"

#@description Setup version
setup_version : string = "3.0"

2.2 Logging priority

#@description Logging priority
logging.priority : string = @variant(core:logging_priority|"warning")

2.3 Geometry factory

The geometry factory holds all the files needed for the geometry construction.

2.3.1 Logging priority

#@description Logging priority of the embedded geometry model factory
factory.logging.priority : string = @variant(core:logging_priority|"warning")

2.3.2 Geometry files

#@description List of files describing the geometry models
factory.geom_files : string[22] as path =                                                                     \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/source_module/source_calibration.geom"            \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/source_module/source_frame_horizontal_beams.geom" \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/source_module/source_frame_vertical_beams.geom"   \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/source_module/source_strips.geom"                 \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/source_module/source_foil_support.geom"           \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/source_module/source_module.geom"                 \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/pmt_5inch.geom"                   \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/xwall_module.geom"                \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/xwall.geom"                       \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/gveto_module.geom"                \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/gveto.geom"                       \
    "@falaise:config/snemo/common/geometry/3.0/models/tracker_drift_cell_core.geom"                           \
    "@falaise:config/snemo/common/geometry/3.0/models/tracker_drift_cell.geom"                                \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/tracker_layers.geom"              \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/tracker_volumes.geom"             \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/tracker_modules/tracker_submodules.geom"          \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/calorimeter_modules/pmt_8inch.geom"               \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/calorimeter_modules/calorimeter_module.geom"      \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/calorimeter_modules/calorimeter_walls.geom"       \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/calorimeter_modules/calorimeter_submodules.geom"  \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/module_0.geom"                                    \
    "@falaise:config/snemo/demonstrator/geometry/3.0/models/setup.geom"

2.4 ID manager

2.4.1 Logging priority

#@description Logging flag of the embedded ID manager
id_mgr.logging.priority : string = @variant(core:logging_priority|"warning")

2.4.2 Category list

Categories are used to assign a unique id number (integer) to a geometrical volume.

#@description Source file of the geometry categories used by the ID manager
id_mgr.categories_list : string as path = \
    "@falaise:config/snemo/demonstrator/geometry/3.0/categories.lis"

2.5 Mapping configuration

#@description Build the embedded mapping dictionnary
build_mapping : boolean = false

#@description Max depth of the mapping: no items to be mapped
mapping.max_depth : integer = 0

#@description Categories not to be registered in the mapping dictionnary
mapping.excluded_categories : string[5] = \
    "drift_cell_field_wires_set" \
    "drift_cell_field_wire"      \
    "drift_cell_base"            \
    "drift_cell_cathodic_ring"   \
    "drift_cell_anodic_wire"

2.6 Plugins configuration

#@description Plugins factory preload from system registration (default=0)
plugins.factory_no_preload : boolean = false

#@description Plugins initialization at load (default=0)
plugins.force_initialization_at_load : boolean = false

#@description Configuration files for geometry manager's plugins
plugins.configuration_files : string[3] as path =                 \
    "@configuration:materials_plugin.conf"      \
    "@configuration:magnetic_field_plugin.conf" \
    "@configuration:locator_plugin.conf"

3 Material for SuperNEMO detector

3.1 Material driver

We use the definitions of isotopes, elements and materials from the installed materials library. Here the materials_aliases definition are locally defined to change the source foil isotope.

3.1.1 Plugin declaration

#@description The geometry manager plugin for materials

#@key_label  "name"
#@meta_label "type"

[name="materials_driver" type="geomtools::materials_plugin"]

3.1.2 Logging priority

#@description Logging priority
logging.priority : string = @variant(core:logging_priority|"warning")

#@description Materials manager logging priority
materials.logging.priority : string = @variant(core:logging_priority|"warning")

3.1.3 Use isotope mass database

Recent release of materials component changes the default behavior which was actually wrong (see fix 14824). The default configuration is not to use any kind of database. To allow the use of Atomic Mass Evaluation data base, we should indicate it to materials manager.

#@description Use AME 2003
materials.load_isotope_mass_data : boolean = true

3.1.4 Allow overloading of materials

This property allows the overloading of some materials as it is done, for example, in 3.2 section.

#@description Flag to allow the overloading of materials
materials.alias_allow_overload : boolean = true

3.1.5 Files

#@description List of files describing the materials
materials.configuration_files : string[7] as path =                       \
    "@materials:data/std_isotopes.def"                                    \
    "@materials:data/std_elements.def"                                    \
    "@materials:data/std_materials.def"                                   \
    "@falaise:config/common/geometry/materials/1.0/elements.def"          \
    "@falaise:config/common/geometry/materials/1.0/materials.def"         \
    "@falaise:config/common/geometry/materials/1.0/materials_aliases.def" \
    "@configuration:materials_aliases.def"

3.2 Material aliases

This piece of code allows user to define or redefine materials aliases. Here for example, we locally change the source material without changing anything else.

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

[name="bb_source_material" type="alias"]

#@description The alias for the source
material : string = @variant(detector:bb_source_material|"snemo::se82_source_material")

4 Magnetic field for SuperNEMO detector

4.1 Magnetic field plugin

4.1.1 Plugin declaration

#@description The geometry manager plugin for emfield

#@key_label  "name"
#@meta_label "type"

[name="fields_driver" type="emfield::emfield_geom_plugin"]

4.1.2 Logging priority

#@description Logging priority
logging.priority : string = @variant(core:logging_priority|"warning")

4.1.3 EM field manager configuration

#@description Manager logging priority
manager.logging.priority : string = @variant(core:logging_priority|"warning")

#@description The name of the geometry service
manager.services.geometry : string = "Geo"

#@description List of EM fields definitions files
manager.field_definitions_filenames : string[1] as path = \
    "@configuration:magnetic_field_drivers.conf"

EM field defined within manager.field_definitions_filenames file can be set independently and at the same time for different G4 volumes. This association between volumes and field is done by the geom_map object of emfield component. For SuperNEMO, constant magnetic field is defined inside demonstrator module.

#@description Flag to activate the geometry volume/field associations map
manager.build_geom_map : boolean = true

#@description Manager logging priority
manager.geom_map.logging.priority : string = @variant(core:logging_priority|"warning")

#@description The list of EM fields associated to some logical volumes
manager.geom_map.associations.labels : string[1] = "module"

#@description The logical model associated for the label 'module'
manager.geom_map.associations.module.volume : string = "module_basic.model.log"

#@description The EM field associated for the label 'module'
manager.geom_map.associations.module.field_name : string = "B_module"
#manager.geom_map.associations.module.field_name : string = "Bz_polynomial"

4.2 Magnetic field drivers

4.2.1 Driver preamble

#@description Definition parameters for some electro-magnetic fields

#@key_label   "name"
#@meta_label  "type"

4.2.2 Constant magnetic field

[name="B_module" type="emfield::uniform_magnetic_field"]

#@config Configuration parameters for the magnetic field of SuperNEMO

#@description Logging flag
logging.priority : string = @variant(core:logging_priority|"warning")

#@description Default implicit magnetic field unit
magnetic_field.unit : string  = "gauss"

#@description Coordinates of the static magnetic field (Bx, By, Bz)
magnetic_field.coordinates : real[3] = 0.0 0.0 @variant(detector:bz_magnitude|25.0)

4.2.3 Polynomial magnetic field

To take into account effects from the calorimeter magnetic shielding as shown in DocDB 3552, we made a variable magnetic field inside tracker

[name="Bz_polynomial" type="emfield::polynomial_magnetic_field"]

#@config Configuration parameters for a variable magnetic field

#@description Logging flag
logging.priority : string = @variant(core:logging_priority|"warning")

#@description Default implicit magnetic field unit
magnetic_field.unit : string = "gauss"

#@description Bz field polynomial degree
magnetic_field.Bz.x.polynomial_degree : integer = 2

#@description Bz x-parameters
magnetic_field.Bz.x.polynomial_parameters : real[3] = 25.0 0.0 -8e-5

#@description Bz field space limits
magnetic_field.Bz.x.limits : real[2] as length = -500 +500 mm

5 Locators for SuperNEMO detector

5.1 Locator driver

5.1.1 Plugin declaration

#@description The geometry manager plugin for locators

#@key_label  "name"
#@meta_label "type"

[name="locator_driver" type="snemo::geometry::locator_plugin"]

5.1.2 Logging priority

#@description Logging priority
logging.priority : string = @variant(core:logging_priority|"warning")

5.1.3 Geometry requirements

#@description Geometry version requirement (not working with version lower than 2.0)
geometry.setup_requirement : string[2] = "snemo(>=2)" "snemo::demonstrator(>=2)"

5.1.4 Module number

#@description SuperNEMO module number
locators.module_number : integer = 0
File under version control - commit 17f7cf0 - 2015-10-24