Belle II Software development
FullSimModule.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#ifndef FULLSIMMODULE_H_
10#define FULLSIMMODULE_H_
11
12#include <framework/core/Module.h>
13#include <mdst/dataobjects/MCParticleGraph.h>
14
15#include <string>
16#include <vector>
17
18class G4MagneticField;
19class G4Mag_UsualEqRhs;
20class G4MagIntegratorStepper;
21class G4ChordFinder;
22class G4VisManager;
23class G4StepLimiter;
24
25namespace Belle2 {
42 class FullSimModule : public Module {
43
44 public:
45
52
54 virtual ~FullSimModule();
55
62 virtual void initialize() override;
63
69 virtual void beginRun() override;
70
74 virtual void event() override;
75
79 virtual void endRun() override;
80
84 virtual void terminate() override;
85
86
87 protected:
88
96 std::string m_physicsList;
98 bool m_optics;
112 std::vector<std::string> m_uiCommandsAtPreInit;
114 std::vector<std::string> m_uiCommandsAtIdle;
132 std::vector<float> m_absorbers;
137 private:
138
141
143 G4MagneticField* m_uncachedField;
144
146 G4MagneticField* m_magneticField;
147
149 G4Mag_UsualEqRhs* m_magFldEquation;
150
152 G4MagIntegratorStepper* m_stepper;
153
155 G4ChordFinder* m_chordFinder;
156
158 G4VisManager* m_visManager;
159
161 G4StepLimiter* m_stepLimiter;
162
163 };
165}
166
167#endif /* FULLSIMMODULE_H_ */
The full Geant4 simulation module.
Definition: FullSimModule.h:42
std::vector< float > m_absorbers
The absorbers defined at given radii where tracks across them will be destroyed.
int m_emProcessVerbosity
Loss Table verbosity: 0=Silent; 1=info level; 2=debug level, default=0.
Definition: FullSimModule.h:95
double m_trajectoryDistanceTolerance
Maximum distance to actuall trajectory when merging points.
G4VisManager * m_visManager
Pointer to the visualization manager (if used)
std::vector< std::string > m_uiCommandsAtIdle
A list of Geant4 UI commands that should be applied at Idle state, after the Geant4 initialization an...
double m_monopoleMagneticCharge
The value of monopole magnetic charge in units of e+.
double m_cdcProductionCut
Secondary production threshold in CDC envelope.
double m_photonFraction
The fraction of Cerenkov photons which will be kept and propagated.
bool m_HPneutrons
If true, high precision neutron models used below 20 MeV.
Definition: FullSimModule.h:99
int m_hadronProcessVerbosity
Hadron Process verbosity: 0=Silent; 1=info level; 2=debug level, default=0.
Definition: FullSimModule.h:94
G4Mag_UsualEqRhs * m_magFldEquation
Pointer to the equation of motion in the magnetic field (if not the default)
double m_klmProductionCut
Secondary production threshold in BKLM and EKLM envelopes.
virtual void initialize() override
Initialize the Module.
int m_thresholdTrials
Geant4 will try m_thresholdTrials times to move a particle which got 'stuck' and has an energy less t...
Definition: FullSimModule.h:91
bool m_storePairConversions
controls storing of e+ or e- from pair conversions in MCParticles
double m_pxdProductionCut
Secondary production threshold in PXD envelope.
int m_trackingVerbosity
Tracking verbosity: 0=Silent; 1=Min info per step; 2=sec particles; 3=pre/post step info; 4=like 3 bu...
Definition: FullSimModule.h:93
virtual void event() override
Performs the full Geant4 simulation.
double m_productionCut
Apply continuous energy loss to primary particle which has no longer enough energy to produce seconda...
bool m_storeOpticalPhotons
controls storing of optical photons in MCParticles
bool m_standardEM
If set to true, replaces fast EM physics with standard EM physics.
Definition: FullSimModule.h:97
G4MagIntegratorStepper * m_stepper
Pointer to the equation-of-motion stepper (if not the default)
bool m_useNativeGeant4
If set to true, uses the Geant4 navigator and native detector construction class.
virtual void endRun() override
Called when run has ended.
double m_svdProductionCut
Secondary production threshold in SVD envelope.
virtual void terminate() override
Terminates the module.
double m_arichtopProductionCut
Secondary production threshold in ARICH and TOP envelopes.
bool m_optics
If set to true, registers the optical physics list.
Definition: FullSimModule.h:98
double m_pairConversionsEnergyCut
kinetic energy cut for the stored e+ or e- from pair conversions
std::vector< std::string > m_uiCommandsAtPreInit
A list of Geant4 UI commands that should be applied at PreInit state, before the Geant4 initializatio...
bool m_storeBremsstrahlungPhotons
controls storing of bremsstrahlung photons in MCParticles
std::string m_mcParticleInputColName
The parameter variable for the name of the input MCParticle collection.
Definition: FullSimModule.h:89
virtual void beginRun() override
Called when a new run is started.
double m_thresholdImportantEnergy
A particle which got 'stuck' and has less than this energy will be killed after m_thresholdTrials tri...
Definition: FullSimModule.h:90
std::string m_physicsList
The name of the physics list which is used for the simulation.
Definition: FullSimModule.h:96
int m_runEventVerbosity
Geant4 run/event verbosity: 0=Silent; 1=info level; 2=debug level, default=0.
Definition: FullSimModule.h:92
double m_magneticCacheDistance
minimal distance for magnetic field lookup.
double m_eclProductionCut
Secondary production threshold in ECL envelopes.
bool m_EnableVisualization
If set to true the Geant4 visualization support is enabled.
double m_secondariesEnergyCut
kinetic energy cut for the stored Geant secondaries
std::string m_magneticFieldName
magnetic field stepper to use
G4MagneticField * m_magneticField
Pointer to the (un)cached magnetic field.
G4MagneticField * m_uncachedField
Pointer to the uncached magnetic field (might be superseded by its cached version)
int m_maxNumberSteps
The maximum number of steps before the track transportation is stopped and the track is killed.
double m_deltaChordInMagneticField
The maximum miss-distance between the trajectory curve and its linear chord(s) approximation.
G4ChordFinder * m_chordFinder
Pointer to the equation-of-motion chord finder (if not the default)
MCParticleGraph m_mcParticleGraph
The MCParticle Graph used to manage the MCParticles before and after the simulation.
virtual ~FullSimModule()
Destructor of the module.
bool m_monopoles
If set to true, G4MonopolePhysics is registered in Geant4 PhysicsList.
double m_bremsstrahlungPhotonsEnergyCut
kinetic energy cut for the stored bremsstrahlung photons
int m_trajectoryStore
If true, store the trajectories of all primary particles.
bool m_storeSecondaries
controls storing of Geant secondaries in MCParticles
G4StepLimiter * m_stepLimiter
Pointer to the step limiter.
FullSimModule()
Constructor of the module.
Class to build, validate and sort a particle decay chain.
Base class for Modules.
Definition: Module.h:72
Abstract base class for different kinds of events.