ATLAS Offline Software
Simulation
G4Atlas
G4AtlasTools
G4AtlasTools
G4AtlasUserWorkerInitialization.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef G4ATLASALG_G4ATLASUSERWORKERINITIALIZATION_H
6
#define G4ATLASALG_G4ATLASUSERWORKERINITIALIZATION_H
7
8
#include <G4FastSimulationManagerProcess.hh>
9
#include <G4ParticleDefinition.hh>
10
#include <G4ParticleTable.hh>
11
#include <G4ProcessManager.hh>
12
#include <G4UserWorkerInitialization.hh>
13
18
class
G4AtlasUserWorkerInitialization
:
public
G4UserWorkerInitialization {
19
public
:
20
struct
Config
{
21
bool
m_activateFastSimulation
{
false
};
22
};
23
24
explicit
G4AtlasUserWorkerInitialization
(
const
Config
&
config
)
25
: G4UserWorkerInitialization(),
m_config
(
config
) {}
26
27
void
WorkerRunStart
()
const override
28
{
29
if
(!
m_config
.
m_activateFastSimulation
)
30
return
;
31
// Enable fast simulation processes for all particle types
32
// Initialized here because it needs to happen after Geant4 physics initialization to access the particle table
33
G4FastSimulationManagerProcess* fastSimManagerProcess =
new
G4FastSimulationManagerProcess;
34
G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable();
35
G4ParticleTable::G4PTblDicIterator* theParticleIterator = theParticleTable->GetIterator();
36
37
theParticleIterator->reset();
38
while
( (*theParticleIterator)() ){
39
G4ParticleDefinition*
particle
= theParticleIterator->value();
40
G4ProcessManager* pmanager =
particle
->GetProcessManager();
41
pmanager->AddProcess(fastSimManagerProcess, -1, 1, 1);
42
}
43
}
44
45
private
:
46
Config
m_config
;
47
};
48
#endif
G4AtlasUserWorkerInitialization::m_config
Config m_config
Definition:
G4AtlasUserWorkerInitialization.h:46
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition:
ParticleHypothesis.h:79
G4AtlasUserWorkerInitialization::Config
Definition:
G4AtlasUserWorkerInitialization.h:20
G4AtlasUserWorkerInitialization
ATLAS custom class for worker initialization functionality.
Definition:
G4AtlasUserWorkerInitialization.h:18
G4AtlasUserWorkerInitialization::Config::m_activateFastSimulation
bool m_activateFastSimulation
Activate fast simulation processes.
Definition:
G4AtlasUserWorkerInitialization.h:21
config
Definition:
PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
G4AtlasUserWorkerInitialization::WorkerRunStart
void WorkerRunStart() const override
Definition:
G4AtlasUserWorkerInitialization.h:27
G4AtlasUserWorkerInitialization::G4AtlasUserWorkerInitialization
G4AtlasUserWorkerInitialization(const Config &config)
Definition:
G4AtlasUserWorkerInitialization.h:24
Generated on Wed Sep 3 2025 21:10:30 for ATLAS Offline Software by
1.8.18