Belle II Software  release-08-01-10
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 
18 class G4MagneticField;
19 class G4Mag_UsualEqRhs;
20 class G4MagIntegratorStepper;
21 class G4ChordFinder;
22 class G4VisManager;
23 class G4StepLimiter;
24 
25 namespace Belle2 {
42  class FullSimModule : public Module {
43 
44  public:
45 
51  FullSimModule();
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;
97  bool m_standardEM;
98  bool m_optics;
99  bool m_HPneutrons;
100  bool m_monopoles;
112  std::vector<std::string> m_uiCommandsAtPreInit;
114  std::vector<std::string> m_uiCommandsAtIdle;
126  std::string m_magneticFieldName;
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.