Belle II Software  release-05-02-19
FullSimModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2011 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Andreas Moll, Guofu Cao, Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef FULLSIMMODULE_H_
12 #define FULLSIMMODULE_H_
13 
14 #include <framework/core/Module.h>
15 #include <mdst/dataobjects/MCParticleGraph.h>
16 
17 #include <string>
18 #include <vector>
19 
20 class G4MagneticField;
21 class G4Mag_UsualEqRhs;
22 class G4MagIntegratorStepper;
23 class G4ChordFinder;
24 class G4VisManager;
25 class G4StepLimiter;
26 
27 namespace Belle2 {
44  class FullSimModule : public Module {
45 
46  public:
47 
53  FullSimModule();
54 
56  virtual ~FullSimModule();
57 
64  virtual void initialize() override;
65 
71  virtual void beginRun() override;
72 
76  virtual void event() override;
77 
81  virtual void endRun() override;
82 
86  virtual void terminate() override;
87 
88 
89  protected:
90 
98  std::string m_physicsList;
99  bool m_standardEM;
100  bool m_optics;
102  bool m_monopoles;
114  std::vector<std::string> m_uiCommandsAtPreInit;
116  std::vector<std::string> m_uiCommandsAtIdle;
128  std::string m_magneticFieldName;
134  std::vector<float> m_absorbers;
139  private:
140 
143 
145  G4MagneticField* m_uncachedField;
146 
148  G4MagneticField* m_magneticField;
149 
151  G4Mag_UsualEqRhs* m_magFldEquation;
152 
154  G4MagIntegratorStepper* m_stepper;
155 
157  G4ChordFinder* m_chordFinder;
158 
160  G4VisManager* m_visManager;
161 
163  G4StepLimiter* m_stepLimiter;
164 
165  };
167 }
168 
169 #endif /* FULLSIMMODULE_H_ */
Belle2::FullSimModule::m_chordFinder
G4ChordFinder * m_chordFinder
Pointer to the equation-of-motion chord finder (if not the default)
Definition: FullSimModule.h:157
Belle2::FullSimModule::m_storeOpticalPhotons
bool m_storeOpticalPhotons
controls storing of optical photons in MCParticles
Definition: FullSimModule.h:120
Belle2::FullSimModule::m_stepper
G4MagIntegratorStepper * m_stepper
Pointer to the equation-of-motion stepper (if not the default)
Definition: FullSimModule.h:154
Belle2::FullSimModule::m_mcParticleInputColName
std::string m_mcParticleInputColName
The parameter variable for the name of the input MCParticle collection.
Definition: FullSimModule.h:91
Belle2::FullSimModule::m_storeBremsstrahlungPhotons
bool m_storeBremsstrahlungPhotons
controls storing of bremsstrahlung photons in MCParticles
Definition: FullSimModule.h:123
Belle2::FullSimModule::m_cdcProductionCut
double m_cdcProductionCut
Secondary production threshold in CDC envelope.
Definition: FullSimModule.h:107
Belle2::FullSimModule::m_arichtopProductionCut
double m_arichtopProductionCut
Secondary production threshold in ARICH and TOP envelopes.
Definition: FullSimModule.h:108
Belle2::FullSimModule::event
virtual void event() override
Performs the full Geant4 simulation.
Definition: FullSimModule.cc:449
Belle2::FullSimModule::m_storeSecondaries
bool m_storeSecondaries
controls storing of Geant secondaries in MCParticles
Definition: FullSimModule.h:121
Belle2::FullSimModule::m_storePairConversions
bool m_storePairConversions
controls storing of e+ or e- from pair conversions in MCParticles
Definition: FullSimModule.h:125
Belle2::FullSimModule::initialize
virtual void initialize() override
Initialize the Module.
Definition: FullSimModule.cc:169
Belle2::MCParticleGraph
Class to build, validate and sort a particle decay chain.
Definition: MCParticleGraph.h:48
Belle2::FullSimModule::m_thresholdImportantEnergy
double m_thresholdImportantEnergy
A particle which got 'stuck' and has less than this energy will be killed after m_thresholdTrials tri...
Definition: FullSimModule.h:92
Belle2::FullSimModule::m_trackingVerbosity
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:95
Belle2::FullSimModule::m_mcParticleGraph
MCParticleGraph m_mcParticleGraph
The MCParticle Graph used to manage the MCParticles before and after the simulation.
Definition: FullSimModule.h:142
Belle2::FullSimModule::m_secondariesEnergyCut
double m_secondariesEnergyCut
kinetic energy cut for the stored Geant secondaries
Definition: FullSimModule.h:122
Belle2::FullSimModule::~FullSimModule
virtual ~FullSimModule()
Destructor of the module.
Definition: FullSimModule.cc:163
Belle2::FullSimModule::terminate
virtual void terminate() override
Terminates the module.
Definition: FullSimModule.cc:464
Belle2::FullSimModule::m_trajectoryDistanceTolerance
double m_trajectoryDistanceTolerance
Maximum distance to actuall trajectory when merging points.
Definition: FullSimModule.h:133
Belle2::FullSimModule::m_productionCut
double m_productionCut
Apply continuous energy loss to primary particle which has no longer enough energy to produce seconda...
Definition: FullSimModule.h:104
Belle2::FullSimModule::m_maxNumberSteps
int m_maxNumberSteps
The maximum number of steps before the track transportation is stopped and the track is killed.
Definition: FullSimModule.h:111
Belle2::FullSimModule::m_svdProductionCut
double m_svdProductionCut
Secondary production threshold in SVD envelope.
Definition: FullSimModule.h:106
Belle2::FullSimModule::m_thresholdTrials
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:93
Belle2::FullSimModule::m_emProcessVerbosity
int m_emProcessVerbosity
Loss Table verbosity: 0=Silent; 1=info level; 2=debug level, default=0.
Definition: FullSimModule.h:97
Belle2::FullSimModule::m_uiCommandsAtIdle
std::vector< std::string > m_uiCommandsAtIdle
A list of Geant4 UI commands that should be applied at Idle state, after the Geant4 initialization an...
Definition: FullSimModule.h:116
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2::FullSimModule::endRun
virtual void endRun() override
Called when run has ended.
Definition: FullSimModule.cc:459
Belle2::FullSimModule::m_trajectoryStore
int m_trajectoryStore
If true, store the trajectories of all primary particles.
Definition: FullSimModule.h:132
Belle2::FullSimModule::m_optics
bool m_optics
If set to true, registers the optical physics list.
Definition: FullSimModule.h:100
Belle2::FullSimModule::m_monopoles
bool m_monopoles
If set to true, G4MonopolePhysics is registered in Geant4 PhysicsList.
Definition: FullSimModule.h:102
Belle2::FullSimModule::m_uncachedField
G4MagneticField * m_uncachedField
Pointer to the uncached magnetic field (might be superseded by its cached version)
Definition: FullSimModule.h:145
Belle2::FullSimModule::m_physicsList
std::string m_physicsList
The name of the physics list which is used for the simulation.
Definition: FullSimModule.h:98
Belle2::FullSimModule::m_useNativeGeant4
bool m_useNativeGeant4
If set to true, uses the Geant4 navigator and native detector construction class.
Definition: FullSimModule.h:113
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::FullSimModule::m_HPneutrons
bool m_HPneutrons
If true, high precision neutron models used below 20 MeV.
Definition: FullSimModule.h:101
Belle2::FullSimModule::m_uiCommandsAtPreInit
std::vector< std::string > m_uiCommandsAtPreInit
A list of Geant4 UI commands that should be applied at PreInit state, before the Geant4 initializatio...
Definition: FullSimModule.h:114
Belle2::FullSimModule::m_hadronProcessVerbosity
int m_hadronProcessVerbosity
Hadron Process verbosity: 0=Silent; 1=info level; 2=debug level, default=0.
Definition: FullSimModule.h:96
Belle2::FullSimModule::m_magFldEquation
G4Mag_UsualEqRhs * m_magFldEquation
Pointer to the equation of motion in the magnetic field (if not the default)
Definition: FullSimModule.h:151
Belle2::FullSimModule::m_runEventVerbosity
int m_runEventVerbosity
Geant4 run/event verbosity: 0=Silent; 1=info level; 2=debug level, default=0.
Definition: FullSimModule.h:94
Belle2::FullSimModule::m_eclProductionCut
double m_eclProductionCut
Secondary production threshold in ECL envelopes.
Definition: FullSimModule.h:109
Belle2::FullSimModule::m_klmProductionCut
double m_klmProductionCut
Secondary production threshold in BKLM and EKLM envelopes.
Definition: FullSimModule.h:110
Belle2::FullSimModule::m_standardEM
bool m_standardEM
If set to true, replaces fast EM physics with standard EM physics.
Definition: FullSimModule.h:99
Belle2::FullSimModule
The full Geant4 simulation module.
Definition: FullSimModule.h:44
Belle2::FullSimModule::m_magneticFieldName
std::string m_magneticFieldName
magnetic field stepper to use
Definition: FullSimModule.h:128
Belle2::FullSimModule::m_photonFraction
double m_photonFraction
The fraction of Cerenkov photons which will be kept and propagated.
Definition: FullSimModule.h:112
Belle2::FullSimModule::m_absorbers
std::vector< float > m_absorbers
The absorbers defined at given radii where tracks across them will be destroyed.
Definition: FullSimModule.h:134
Belle2::FullSimModule::m_deltaChordInMagneticField
double m_deltaChordInMagneticField
The maximum miss-distance between the trajectory curve and its linear chord(s) approximation.
Definition: FullSimModule.h:130
Belle2::FullSimModule::m_pairConversionsEnergyCut
double m_pairConversionsEnergyCut
kinetic energy cut for the stored e+ or e- from pair conversions
Definition: FullSimModule.h:126
Belle2::FullSimModule::m_stepLimiter
G4StepLimiter * m_stepLimiter
Pointer to the step limiter.
Definition: FullSimModule.h:163
Belle2::FullSimModule::FullSimModule
FullSimModule()
Constructor of the module.
Definition: FullSimModule.cc:72
Belle2::FullSimModule::m_magneticField
G4MagneticField * m_magneticField
Pointer to the (un)cached magnetic field.
Definition: FullSimModule.h:148
Belle2::FullSimModule::m_bremsstrahlungPhotonsEnergyCut
double m_bremsstrahlungPhotonsEnergyCut
kinetic energy cut for the stored bremsstrahlung photons
Definition: FullSimModule.h:124
Belle2::FullSimModule::m_pxdProductionCut
double m_pxdProductionCut
Secondary production threshold in PXD envelope.
Definition: FullSimModule.h:105
Belle2::FullSimModule::m_monopoleMagneticCharge
double m_monopoleMagneticCharge
The value of monopole magnetic charge in units of e+.
Definition: FullSimModule.h:103
Belle2::FullSimModule::beginRun
virtual void beginRun() override
Called when a new run is started.
Definition: FullSimModule.cc:443
Belle2::FullSimModule::m_EnableVisualization
bool m_EnableVisualization
If set to true the Geant4 visualization support is enabled.
Definition: FullSimModule.h:118
Belle2::FullSimModule::m_visManager
G4VisManager * m_visManager
Pointer to the visualization manager (if used)
Definition: FullSimModule.h:160
Belle2::FullSimModule::m_magneticCacheDistance
double m_magneticCacheDistance
minimal distance for magnetic field lookup.
Definition: FullSimModule.h:129