ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_Core
ISF_Interfaces
ISF_Interfaces
BaseSimulationG4Svc.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 ISF_BASESIMULATIONG4SVC_H
6
#define ISF_BASESIMULATIONG4SVC_H 1
7
8
// STL includes
9
#include <memory.h>
10
#include <string>
11
12
// FrameWork includes
13
#include "
AthenaBaseComps/AthService.h
"
14
#include <GaudiKernel/StatusCode.h>
15
#include "
GeneratorObjects/McEventCollection.h
"
16
17
// ISF includes
18
#include "
ISF_Event/ISFParticle.h
"
19
#include "
ISF_Interfaces/BaseSimulationSvc.h
"
20
#include "
ISF_Interfaces/ISimulationSvc.h
"
21
22
class
HitCollectionMap
;
23
24
namespace
ISF
{
25
26
class
IParticleBroker
;
27
class
ITruthSvc
;
28
33
class
BaseSimulationG4Svc
:
public
ISF::BaseSimulationSvc
{
34
public
:
36
using
BaseSimulationSvc::BaseSimulationSvc
;
37
39
virtual
~BaseSimulationG4Svc
() =
default
;
40
42
virtual
StatusCode
simulate
(
ISFParticle
&,
McEventCollection
*,
43
std::shared_ptr<HitCollectionMap>) = 0;
44
46
virtual
StatusCode
setupEvent
(
HitCollectionMap
&) = 0;
47
49
virtual
StatusCode
releaseEvent
(
HitCollectionMap
&) = 0;
50
52
virtual
StatusCode
simulateVector
(
const
ISFParticleVector
& particles,
53
McEventCollection
* mcEventCollection,
54
std::shared_ptr<HitCollectionMap> hitCollections,
55
McEventCollection
*) {
56
// this implementation is a wrapper in case the simulator does
57
// implement particle-vector input
58
StatusCode
sc
= StatusCode::SUCCESS;
59
// simulate each particle individually
60
for
(
ISF::ISFParticle
* part : particles) {
61
ATH_MSG_VERBOSE
(
m_screenOutputPrefix
62
<<
"Starting simulation of particle: "
<< part);
63
if
(this->
simulate
(*part, mcEventCollection, hitCollections).isFailure()) {
64
ATH_MSG_WARNING
(
"Simulation of particle failed!"
65
<<
endmsg
66
<<
" -> simulator: "
<< this->
simSvcDescriptor
()
67
<<
" -> particle : "
<< *part);
68
sc
= StatusCode::FAILURE;
69
}
70
}
71
return
sc
;
72
}
73
75
77
virtual
StatusCode
simulate
(
ISFParticle
&,
McEventCollection
*)
override
{
78
return
StatusCode::FAILURE;
79
}
80
82
virtual
StatusCode
setupEvent
()
override
{
return
StatusCode::FAILURE; }
83
85
virtual
StatusCode
releaseEvent
()
override
{
return
StatusCode::FAILURE; }
86
88
virtual
StatusCode
simulateVector
(
const
ISFParticleVector
&,
89
McEventCollection
*,
90
McEventCollection
*)
override
{
91
return
StatusCode::FAILURE;
92
}
93
};
94
}
// namespace ISF
95
96
#endif
//> !ISF_BASESIMULATIONSVC_H
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
AthService.h
BaseSimulationSvc.h
ISFParticle.h
ISimulationSvc.h
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
McEventCollection.h
HitCollectionMap
Small wrapper around hit collection map to facilitate accessing the hit collection.
Definition
HitCollectionMap.h:23
ISF::BaseSimulationG4Svc
Base class for an ISimulatorSvc which requires a Geant4 UserInfo object.
Definition
BaseSimulationG4Svc.h:33
ISF::BaseSimulationG4Svc::simulateVector
virtual StatusCode simulateVector(const ISFParticleVector &particles, McEventCollection *mcEventCollection, std::shared_ptr< HitCollectionMap > hitCollections, McEventCollection *)
Simulation call for vectors of particles.
Definition
BaseSimulationG4Svc.h:52
ISF::BaseSimulationG4Svc::simulate
virtual StatusCode simulate(ISFParticle &, McEventCollection *, std::shared_ptr< HitCollectionMap >)=0
Simulation call for individual particles.
ISF::BaseSimulationG4Svc::releaseEvent
virtual StatusCode releaseEvent() override
Release Event chain - in case of an end-of event action is needed.
Definition
BaseSimulationG4Svc.h:85
ISF::BaseSimulationG4Svc::setupEvent
virtual StatusCode setupEvent(HitCollectionMap &)=0
Setup Event chain - in case of a begin-of event action is needed.
ISF::BaseSimulationG4Svc::~BaseSimulationG4Svc
virtual ~BaseSimulationG4Svc()=default
Destructor.
ISF::BaseSimulationG4Svc::simulateVector
virtual StatusCode simulateVector(const ISFParticleVector &, McEventCollection *, McEventCollection *) override
Simulation call for vectors of particles.
Definition
BaseSimulationG4Svc.h:88
ISF::BaseSimulationG4Svc::simulate
virtual StatusCode simulate(ISFParticle &, McEventCollection *) override
Simulation call for individual particles.
Definition
BaseSimulationG4Svc.h:77
ISF::BaseSimulationG4Svc::setupEvent
virtual StatusCode setupEvent() override
Setup Event chain - in case of a begin-of event action is needed.
Definition
BaseSimulationG4Svc.h:82
ISF::BaseSimulationG4Svc::releaseEvent
virtual StatusCode releaseEvent(HitCollectionMap &)=0
Release Event chain - in case of an end-of event action is needed.
ISF::BaseSimulationSvc
Concrete base class for all simulation services.
Definition
BaseSimulationSvc.h:40
ISF::BaseSimulationSvc::m_screenOutputPrefix
Gaudi::Property< std::string > m_screenOutputPrefix
Screen output refinement.
Definition
BaseSimulationSvc.h:198
ISF::BaseSimulationSvc::BaseSimulationSvc
BaseSimulationSvc(const std::string &name, ISvcLocator *pSvcLocator)
Definition
BaseSimulationSvc.h:44
ISF::BaseSimulationSvc::simSvcDescriptor
const std::string & simSvcDescriptor() override
Return the simulation service descriptor.
Definition
BaseSimulationSvc.h:66
ISF::IParticleBroker
@ class IParticleBroker
Definition
IParticleBroker.h:39
ISF::ISFParticle
The generic ISF particle definition,.
Definition
ISFParticle.h:42
ISF::ITruthSvc
@ class ITruthSvc
Definition
ITruthSvc.h:29
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objectsFile: Gene...
Definition
McEventCollection.h:31
ISF
ISFParticleOrderedQueue.
Definition
PrimaryParticleInformation.h:13
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition
ISFParticleContainer.h:26
Generated on
for ATLAS Offline Software by
1.17.0