ATLAS Offline Software
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 
9 
11 iGeant4::Geant4SimSvc::Geant4SimSvc(const std::string& name, ISvcLocator* svc)
12  : BaseSimulationG4Svc(name, svc) {}
13 
15 {}
16 
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 
32 {
33  return StatusCode::SUCCESS;
34 }
35 
37  return m_simulatorG4Tool->setupEventST(hitCollections);
38 }
39 
41  HitCollectionMap& hitCollections) {
42  return m_simulatorG4Tool->releaseEventST(hitCollections);
43 }
44 
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 
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 }
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition: ISFParticleContainer.h:23
Geant4SimSvc.h
iGeant4::Geant4SimSvc::simulate
virtual StatusCode simulate(ISF::ISFParticle &isp, McEventCollection *mcEventCollection, std::shared_ptr< HitCollectionMap >) override
Simulation Call
Definition: Geant4SimSvc.cxx:46
HitCollectionMap
Small wrapper around hit collection map to facilitate accessing the hit collection.
Definition: HitCollectionMap.h:21
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
HitCollectionMap.h
iGeant4::Geant4SimSvc::Geant4SimSvc
Geant4SimSvc()
Default constructor.
ISF::ISFParticle
Definition: ISFParticle.h:42
iGeant4::Geant4SimSvc::finalize
virtual StatusCode finalize() override
framework methods
Definition: Geant4SimSvc.cxx:31
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() override
Setup Event chain - in case of a begin-of event action is needed.
Definition: BaseSimulationG4Svc.h:82
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
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition: ISFParticleContainer.h:26
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:32
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
iGeant4::Geant4SimSvc::~Geant4SimSvc
virtual ~Geant4SimSvc()
Destructor.
Definition: Geant4SimSvc.cxx:14
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
ISF::BaseSimulatorG4Tool
Definition: BaseSimulatorG4Tool.h:28
iGeant4::Geant4SimSvc::initialize
virtual StatusCode initialize() override
Athena algorithm's interface methods.
Definition: Geant4SimSvc.cxx:18