ATLAS Offline Software
Simulation
G4Utilities
G4StepLimitation
src
G4StepLimitationTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// class header
6
#include "
G4StepLimitationTool.h
"
7
8
// G4 headers
9
#include "G4StepLimiter.hh"
10
#include "G4ParticleDefinition.hh"
11
#include "G4ProcessManager.hh"
12
#include "G4Version.hh"
13
14
//-----------------------------------------------------------------------------
15
// Implementation file for class : G4StepLimitationTool
16
//
17
// 03-08-2015 : Edoardo Farina
18
//-----------------------------------------------------------------------------
19
20
#if G4VERSION_NUMBER > 1029
21
#define PARTICLEITERATOR (this->GetParticleIterator())
22
#elif G4VERSION_NUMBER > 1009
23
#define PARTICLEITERATOR aParticleIterator
24
#else
25
#define PARTICLEITERATOR theParticleIterator
26
#endif
27
28
//=============================================================================
29
// Standard constructor, initializes variables
30
//=============================================================================
31
G4StepLimitationTool::G4StepLimitationTool
(
const
std::string&
type
,
32
const
std::string&
name
,
33
const
IInterface*
parent
)
34
: base_class(
type
,
name
,
parent
) {
35
m_physicsOptionType =
G4AtlasPhysicsOption::Type::GlobalProcesses
;
36
}
37
38
//=============================================================================
39
// Destructor
40
//=============================================================================
41
42
G4StepLimitationTool::~G4StepLimitationTool
()
43
{
44
}
45
46
//=============================================================================
47
// Initialize
48
//=============================================================================
49
StatusCode
G4StepLimitationTool::initialize
( )
50
{
51
ATH_MSG_VERBOSE
(
"G4StepLimitationTool initialize( )"
);
52
53
return
StatusCode::SUCCESS;
54
}
55
56
auto
G4StepLimitationTool::GetPhysicsOption
() -> UPPhysicsConstructor {
57
return
std::make_unique<G4StepLimitationTool::PhysicsConstructor>(
name
(), this->msgLevel());
58
}
59
60
void
G4StepLimitationTool::PhysicsConstructor::ConstructParticle
() {}
61
62
void
G4StepLimitationTool::PhysicsConstructor::ConstructProcess
() {
63
64
ATH_MSG_DEBUG
(
" ConstructProcess for G4StepLimiter being run"
);
65
PARTICLEITERATOR
->reset();
66
while
( (*
PARTICLEITERATOR
)() )
67
{
68
G4ParticleDefinition*
particle
=
PARTICLEITERATOR
->value();
69
G4ProcessManager* pmanager =
particle
->GetProcessManager();
70
pmanager->AddProcess(
new
G4StepLimiter, -1,-1,3);
71
}
72
}
G4StepLimitationTool::G4StepLimitationTool
G4StepLimitationTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition:
G4StepLimitationTool.cxx:31
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition:
ParticleHypothesis.h:79
PARTICLEITERATOR
#define PARTICLEITERATOR
Definition:
G4StepLimitationTool.cxx:25
G4StepLimitationTool.h
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition:
AthMsgStreamMacros.h:28
python.CaloAddPedShiftConfig.type
type
Definition:
CaloAddPedShiftConfig.py:42
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition:
AthMsgStreamMacros.h:29
test_pyathena.parent
parent
Definition:
test_pyathena.py:15
G4StepLimitationTool::PhysicsConstructor::ConstructProcess
virtual void ConstructProcess() override
Definition:
G4StepLimitationTool.cxx:62
G4StepLimitationTool::GetPhysicsOption
UPPhysicsConstructor GetPhysicsOption() override
Implements.
Definition:
G4StepLimitationTool.cxx:56
G4StepLimitationTool::~G4StepLimitationTool
virtual ~G4StepLimitationTool()
Destructor.
Definition:
G4StepLimitationTool.cxx:42
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:240
G4AtlasPhysicsOption::GlobalProcesses
@ GlobalProcesses
Definition:
IPhysicsOptionTool.h:26
G4StepLimitationTool::initialize
virtual StatusCode initialize() override
Initialize method.
Definition:
G4StepLimitationTool.cxx:49
G4StepLimitationTool::PhysicsConstructor::ConstructParticle
virtual void ConstructParticle() override
Definition:
G4StepLimitationTool.cxx:60
Generated on Tue Sep 2 2025 21:11:48 for ATLAS Offline Software by
1.8.18