Step Hit Processor Configuration
1 Introduction
This file holds the configuration for the different Step Hit Processors (SHP) used with SuperNEMO simulations. The basic idea behind SHP is to treat Geant4 step hits given the sensitive categories in where they occurs. Each Geant4 step is "digitized" and if the step is within a sensitive category with attached SHP then the step is processed. For SuperNEMO simulations there are mainly two kind of physics processors: Geiger cells and calorimeter processors.
There is also a third kind of processors which handles visual hits to make them visible given a list of sensitive categories.
2 Processors
#@description A sample list of setups #@key_label "name" #@meta_label "type"
2.1 Calorimeter processors
This processor collects all MC true hits from the calorimeter scintillator
volumes (with the calorimeter_SD
sensitive category property) and build
calorimeter-like "calo" hits associated to the calorimeter scintillator block
GID. The purpose of this processing is to build a single "calo" hit from the
collection of true hits produced by a particle traversing the block. Both the
start time and the total energy deposit are recorded in the "calo" hit.
There are few options for calorimeter processors :
- a
hit.category
is attached to each Geant4 step hits, - the corresponding
sensitive.category
must be set, cluster.time_range
andcluster.time_space
are related to the clustering of Geant4 step hits.
The basic idea is to aggregate Geant4 step hits given the cluster.time_range
and the cluster.time_space
into a unique calorimeter hit.
2.1.1 Main wall
[name="calorimeter.hit_processor" type="snemo::simulation::calorimeter_step_hit_processor"] #@config The step hit processor for the calorimeter simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The name of the category of output MC hits generated by this processor hit.category : string = "calo" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "calorimeter_SD" #@description Flag to activate a preallocated buffer/pool of MC hits to optimize memory management use_private_pool : boolean = true #@description Initial capacity of the buffer/pool of MC hits private_pool_capacity : integer = 10 #@description The name of the geometry category to be attached to the output MC hits mapping.category : string = "calorimeter_block" #@description The names of the subaddresses not to be considered in the GID mapping.category.any_addresses : string[1] = "part" #@description The time spread of primary MC step hits to apply the clusterization cluster.time_range : real as time = 1.0 ns #@description The spacial spread of primary MC step hits to apply the clusterization cluster.space_range : real as length = 10.0 mm
2.1.2 X-wall
[name="xcalo.hit_processor" type="snemo::simulation::calorimeter_step_hit_processor"] #@config The step hit processor for the auxiliary calorimeter simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The name of the category of output MC hits generated by this processor hit.category : string = "xcalo" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "xcalorimeter_SD" #@description The name of the sensitive MC hits that must be processed to fill the output hit category mapping.category : string = "xcalo_block" #@description The time spread of primary MC step hits to apply the clusterization cluster.time_range : real as time = 1.0 ns #@description The spacial spread of primary MC step hits to apply the clusterization cluster.space_range : real as length = 10.0 mm
2.1.3 γ veto
[name="gveto.hit_processor" type="snemo::simulation::calorimeter_step_hit_processor"] #@config The step hit processor for the gamma veto simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The name of the category of output MC hits generated by this processor hit.category : string = "gveto" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "gveto_SD" #@description The name of the sensitive MC hits that must be processed to fill the output hit category mapping.category : string = "gveto_block" #@description The time spread of primary MC step hits to apply the clusterization cluster.time_range : real as time = 1.0 ns #@description The spacial spread of primary MC step hits to apply the clusterization cluster.space_range : real as length = 10.0 mm
2.2 Geiger cells processors
This processor collects all MC true hits from the drift cell volumes (with the
tracker_SD
sensitive category property) and builds Geiger-like hits associated
to a given drift cell ID. It generates randomly distributed primary ionizations
along the true step of a given particle (electron/positron, muon, alpha…) and
records the time and position of the ionization process that is closest to the
anode wire. Optionally it is possible to record the true time and position of
the minimal approach distance to the anode wire.
[name="gg.hit_processor" type="snemo::simulation::gg_step_hit_processor"] #@config The step hit processor for the Geiger simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The name of the category of output MC hits generated by this processor hit.category : string = "gg" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "tracker_SD" #@description The name of the geometry category to be attached to the output MC hits mapping.category : string = "drift_cell_core" #@description Mean ionization energy used to randomize electron-ion pairs along the particle path mean_ionization_energy : real as energy = 50.0 eV #@description For each cell traversed by a track, compute the position of maximal approach to the anode wire (debug purpose only so default is 0) compute_maximal_approach_position : boolean = false
2.3 Visualization processors
2.3.1 Dedicated step hit processors
[name="calorimeter.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting the calorimeter simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The category of output hit associated to this processor hit.category : string = "__visu.tracks.calo" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "calorimeter_SD" [name="xcalorimeter.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting the calorimeter simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The category of output hit associated to this processor hit.category : string = "__visu.tracks.calo" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "xcalorimeter_SD" [name="gveto.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting the calorimeter simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The category of output hit associated to this processor hit.category : string = "__visu.tracks.calo" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "gveto_SD" [name="tracker.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting the tracker simulated hits #@description Logging flag logging.priority : string = @variant(core:logging_priority|"warning") #@description The category of output hit associated to this processor hit.category : string = "__visu.tracks" #@description The name of the sensitive MC hits that must be processed to fill the output hit category sensitive.category : string = "tracker_SD"
2.3.2 Enabling all volumes
[name="all.volumes.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting all the visu hits logging.priority : string = @variant(core:logging_priority|"warning") hit.category : string = "__visu.tracks" sensitive.category : string = "__all.volumes.SD" sensitive.record_track_id : boolean = true sensitive.record_primary_particle : boolean = true geometry.volumes.all : boolean = true geometry.volumes.excluded : string[2] = "field_wire.model.log" "anode_wire.model.log"
2.3.3 Special visual step hit processors
- Source hits
[name="source.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting simulated hits within source strip logging.priority : string = @variant(core:logging_priority|"warning") hit.category : string = "__visu.tracks" sensitive.category : string = "__source.SD" geometry.volumes : string[2] = \ "source_external_strip.model.log" \ "source_internal_strip.model.log"
- Wires hits
[name="wires.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting simulated hits within tracker's wires logging.priority : string = @variant(core:logging_priority|"warning") hit.category : string = "__visu.tracks" sensitive.category : string = "__wires.SD" geometry.volumes : string[2] = "field_wire.model.log" "anode_wire.model.log" visu.highlighted_hits : boolean = true
- Films hits
[name="films.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting simulated hits within tracker's wires logging.priority : string = @variant(core:logging_priority|"warning") hit.category : string = "__visu.tracks" sensitive.category : string = "__films.SD" geometry.volumes.with_materials : string[3] = "std::mylar" "std::nylon" "std::pfte" visu.highlighted_hits : boolean = false
- Tracking chamber
[name="tracking_gas.visu.hit_processor" type="mctools::push_all_step_hit_processor"] #@config The step hit processor for collecting simulated hits within tracking gas logging.priority : string = @variant(core:logging_priority|"warning") hit.category : string = "__visu.tracks" sensitive.category : string = "__tracking_gas.SD" geometry.volumes.with_materials : string[1] = "tracking_gas" geometry.volumes.excluded : string[1] = "drift_cell_core.model.log"