ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_Geant4
ISF_Geant4Services
src
Geant4SimSvc.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// class header
6
#include "
Geant4SimSvc.h
"
7
8
#include "
HitManagement/HitCollectionMap.h
"
9
11
iGeant4::Geant4SimSvc::Geant4SimSvc
(
const
std::string& name, ISvcLocator* svc)
12
: BaseSimulationG4Svc(name, svc) {}
13
14
iGeant4::Geant4SimSvc::~Geant4SimSvc
()
15
{}
16
18
StatusCode
iGeant4::Geant4SimSvc::initialize
()
19
{
20
ATH_CHECK
(
m_simulatorTool
.retrieve());
21
m_simulatorG4Tool
=
22
dynamic_cast<
ISF::BaseSimulatorG4Tool
*
>
(
m_simulatorTool
.get());
23
if
(!
m_simulatorG4Tool
) {
24
ATH_MSG_FATAL
(
"SimulatorTool is not of type ISF::BaseSimulatorG4Tool"
);
25
return
StatusCode::FAILURE;
26
}
27
return
StatusCode::SUCCESS;
28
}
29
31
StatusCode
iGeant4::Geant4SimSvc::finalize
()
32
{
33
return
StatusCode::SUCCESS;
34
}
35
36
StatusCode
iGeant4::Geant4SimSvc::setupEvent
(
HitCollectionMap
& hitCollections) {
37
return
m_simulatorG4Tool
->setupEventST(hitCollections);
38
}
39
40
StatusCode
iGeant4::Geant4SimSvc::releaseEvent
(
41
HitCollectionMap
& hitCollections) {
42
return
m_simulatorG4Tool
->releaseEventST(hitCollections);
43
}
44
46
StatusCode
iGeant4::Geant4SimSvc::simulate
(
ISF::ISFParticle
& isp,
47
McEventCollection
* mcEventCollection,
48
std::shared_ptr<HitCollectionMap> hitCollections) {
49
const
EventContext& ctx = Gaudi::Hive::currentContext();
50
ISF::ISFParticleContainer
secondaries;
// filled, but not used
51
ATH_CHECK
(
m_simulatorG4Tool
->simulate(ctx, isp, secondaries,
52
mcEventCollection, hitCollections));
53
return
StatusCode::SUCCESS;
54
}
55
57
StatusCode
iGeant4::Geant4SimSvc::simulateVector
(
58
const
ISF::ISFParticleVector
& particles,
59
McEventCollection
* mcEventCollection, std::shared_ptr<HitCollectionMap> hitCollections,
60
McEventCollection
* shadowTruth) {
61
const
EventContext& ctx = Gaudi::Hive::currentContext();
62
ISF::ISFParticleContainer
secondaries;
// filled, but not used
63
ATH_CHECK
(
m_simulatorG4Tool
->simulateVector(
64
ctx, particles, secondaries, mcEventCollection, hitCollections, shadowTruth));
65
return
StatusCode::SUCCESS;
66
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
Geant4SimSvc.h
HitCollectionMap.h
HitCollectionMap
Small wrapper around hit collection map to facilitate accessing the hit collection.
Definition
HitCollectionMap.h:23
ISF::BaseSimulatorG4Tool
Definition
BaseSimulatorG4Tool.h:28
ISF::ISFParticle
The generic ISF particle definition,.
Definition
ISFParticle.h:42
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objectsFile: Gene...
Definition
McEventCollection.h:31
iGeant4::Geant4SimSvc::simulate
virtual StatusCode simulate(ISF::ISFParticle &isp, McEventCollection *mcEventCollection, std::shared_ptr< HitCollectionMap >) override
Simulation Call.
Definition
Geant4SimSvc.cxx:46
iGeant4::Geant4SimSvc::Geant4SimSvc
Geant4SimSvc()
Default constructor.
iGeant4::Geant4SimSvc::initialize
virtual StatusCode initialize() override
Athena algorithm's interface methods.
Definition
Geant4SimSvc.cxx:18
iGeant4::Geant4SimSvc::~Geant4SimSvc
virtual ~Geant4SimSvc()
Destructor.
Definition
Geant4SimSvc.cxx:14
iGeant4::Geant4SimSvc::releaseEvent
virtual StatusCode releaseEvent() override
Release Event chain - in case of an end-of event action is needed.
Definition
BaseSimulationG4Svc.h:85
iGeant4::Geant4SimSvc::m_simulatorTool
PublicToolHandle< ISF::ISimulatorTool > m_simulatorTool
Definition
Geant4SimSvc.h:66
iGeant4::Geant4SimSvc::finalize
virtual StatusCode finalize() override
framework methods
Definition
Geant4SimSvc.cxx:31
iGeant4::Geant4SimSvc::simulateVector
virtual StatusCode simulateVector(const ISF::ISFParticleVector &particles, McEventCollection *mcEventCollection, std::shared_ptr< HitCollectionMap > hitCollections, McEventCollection *shadowTruth=nullptr) override
Simulation Call for vector of ISF particles.
Definition
Geant4SimSvc.cxx:57
iGeant4::Geant4SimSvc::setupEvent
virtual StatusCode setupEvent() override
Setup Event chain - in case of a begin-of event action is needed.
Definition
BaseSimulationG4Svc.h:82
iGeant4::Geant4SimSvc::m_simulatorG4Tool
ISF::BaseSimulatorG4Tool * m_simulatorG4Tool
pointer to the downcasted G4 simulator tool
Definition
Geant4SimSvc.h:70
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition
ISFParticleContainer.h:23
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition
ISFParticleContainer.h:26
Generated on
for ATLAS Offline Software by
1.17.0