k4SimGeant4
Loading...
Searching...
No Matches
SimG4FastSimCalorimeterRegion.h
Go to the documentation of this file.
1#ifndef SIMG4FAST_SIMG4FASTSIMCALORIMETERREGION_H
2#define SIMG4FAST_SIMG4FASTSIMCALORIMETERREGION_H
3
4// Gaudi
5#include "GaudiKernel/AlgTool.h"
6#include "GaudiKernel/SystemOfUnits.h"
7#include "GaudiKernel/ToolHandle.h"
8
9// FCCSW
12
13// Geant
14#include "GFlashHitMaker.hh"
15#include "GFlashParticleBounds.hh"
16#include "GVFlashShowerParameterisation.hh"
17class G4VFastSimulationModel;
18class G4Region;
19
31class SimG4FastSimCalorimeterRegion : public AlgTool, virtual public ISimG4RegionTool {
32public:
33 explicit SimG4FastSimCalorimeterRegion(const std::string& type, const std::string& name, const IInterface* parent);
38 virtual StatusCode initialize() final;
42 virtual StatusCode finalize() final;
46 virtual StatusCode create() final;
50 inline virtual const std::vector<std::string>& volumeNames() const final { return m_volumeNames; };
51
52private:
54 ToolHandle<ISimG4GflashTool> m_parametrisationTool{"SimG4GflashHomo", this, true};
57 std::vector<G4Region*> m_g4regions;
59 std::vector<std::unique_ptr<G4VFastSimulationModel>> m_models;
61 std::unique_ptr<GVFlashShowerParameterisation> m_parametrisation{nullptr};
63 std::unique_ptr<GFlashParticleBounds> m_particleBounds{nullptr};
65 std::unique_ptr<GFlashHitMaker> m_hitMaker{nullptr};
67 Gaudi::Property<std::vector<std::string>> m_volumeNames{
68 this, "volumeNames", {}, "Names of the parametrised volumes (set by job options)"};
70 Gaudi::Property<double> m_minTriggerEnergy{this, "minEnergy", 0.1 * Gaudi::Units::GeV,
71 "minimum energy of the electron (positron) that triggers the model"};
73 Gaudi::Property<double> m_maxTriggerEnergy{this, "minEnergy", 10 * Gaudi::Units::TeV,
74 "maximum energy of the electron (positron) that triggers the model"};
76 Gaudi::Property<double> m_energyToKill{this, "minEnergy", 0.1 * Gaudi::Units::GeV,
77 "threshold below which the electrons (positrons) are killed"};
78};
79
80#endif /* SIMG4FAST_SIMG4FASTSIMCALORIMETERREGION_H */
Interface to the tool creating region.
Definition ISimG4RegionTool.h:14
SimG4FastSimCalorimeterRegion.h.
Definition SimG4FastSimCalorimeterRegion.h:31
std::unique_ptr< GVFlashShowerParameterisation > m_parametrisation
GFlash model parametrisation (retrieved from the m_parametrisationTool)
Definition SimG4FastSimCalorimeterRegion.h:61
virtual StatusCode initialize() final
Initialize.
Definition SimG4FastSimCalorimeterRegion.cpp:25
std::unique_ptr< GFlashHitMaker > m_hitMaker
GFlash hit maker.
Definition SimG4FastSimCalorimeterRegion.h:65
virtual StatusCode finalize() final
Finalize.
Definition SimG4FastSimCalorimeterRegion.cpp:44
ToolHandle< ISimG4GflashTool > m_parametrisationTool
Pointer to a parametrisation tool, to retrieve calorimeter parametrisation.
Definition SimG4FastSimCalorimeterRegion.h:54
Gaudi::Property< double > m_minTriggerEnergy
minimum energy of the electron (positron) that triggers the model
Definition SimG4FastSimCalorimeterRegion.h:70
virtual StatusCode create() final
Create regions and fast simulation models.
Definition SimG4FastSimCalorimeterRegion.cpp:46
std::vector< G4Region * > m_g4regions
Envelopes that are used in a parametric simulation deleted by the G4RegionStore.
Definition SimG4FastSimCalorimeterRegion.h:57
Gaudi::Property< std::vector< std::string > > m_volumeNames
Names of the parametrised volumes (set by job options)
Definition SimG4FastSimCalorimeterRegion.h:67
SimG4FastSimCalorimeterRegion(const std::string &type, const std::string &name, const IInterface *parent)
Definition SimG4FastSimCalorimeterRegion.cpp:15
virtual const std::vector< std::string > & volumeNames() const final
Get the names of the volumes where fast simulation should be performed.
Definition SimG4FastSimCalorimeterRegion.h:50
std::unique_ptr< GFlashParticleBounds > m_particleBounds
GFlash model configuration.
Definition SimG4FastSimCalorimeterRegion.h:63
Gaudi::Property< double > m_energyToKill
threshold below which the electrons (positrons) are killed
Definition SimG4FastSimCalorimeterRegion.h:76
virtual ~SimG4FastSimCalorimeterRegion()
Definition SimG4FastSimCalorimeterRegion.cpp:23
Gaudi::Property< double > m_maxTriggerEnergy
maximum energy of the electron (positron) that triggers the model
Definition SimG4FastSimCalorimeterRegion.h:73
std::vector< std::unique_ptr< G4VFastSimulationModel > > m_models
Fast simulation (parametrisation) models.
Definition SimG4FastSimCalorimeterRegion.h:59