ATLAS Offline Software
Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
iGeant4::Geant4SimSvc Class Reference

#include <Geant4SimSvc.h>

Inheritance diagram for iGeant4::Geant4SimSvc:
Collaboration diagram for iGeant4::Geant4SimSvc:

Public Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Public Member Functions

 Geant4SimSvc (const std::string &name, ISvcLocator *pSvcLocator)
 Constructor. More...
 
virtual ~Geant4SimSvc ()
 Destructor. More...
 
virtual StatusCode initialize () override
 Athena algorithm's interface methods. More...
 
virtual StatusCode finalize () override
 framework methods More...
 
virtual StatusCode simulate (ISF::ISFParticle &isp, McEventCollection *mcEventCollection) override
 Simulation Call
More...
 
virtual StatusCode simulateVector (const ISF::ISFParticleVector &particles, McEventCollection *mcEventCollection, McEventCollection *shadowTruth=nullptr) override
 Simulation Call for vector of ISF particles. More...
 
virtual StatusCode setupEvent () override
 Setup Event chain - in case of a begin-of event action is needed. More...
 
virtual StatusCode releaseEvent () override
 Release Event chain - in case of an end-of event action is needed. More...
 
virtual StatusCode sysInitialize () override
 Gaudi sysInitialize() methods. More...
 
std::string & simSvcDescriptor () override
 Return the simulation service descriptor. More...
 
virtual StatusCode setParticleBroker (IParticleBroker *broker) override
 Inform the SimulationSvc about the ParticleBroker svc. More...
 
const ChronoEntity * chronoStart (const IChronoSvc::ChronoTag &tag)
 wrapper call to start chrono with given tag More...
 
const ChronoEntity * chronoStop (const IChronoSvc::ChronoTag &tag)
 wrapper call to stop chrono with given tag More...
 
const StoreGateSvc_tevtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
StoreGateSvc_tevtStore ()
 
const StoreGateSvc_tdetStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
StoreGateSvc_tdetStore ()
 
template<class T >
StatusCode retrieveTool (ToolHandle< T > &thandle)
 templated Tool retrieval - gives unique handling & look and feel More...
 
template<class T >
StatusCode retrieveTools (ToolHandleArray< T > &thandleArray)
 templated Tool retrieval - gives unique handling & look and feel More...
 
template<class T >
StatusCode recordCollection (T *&coll, const std::string &collName) const
 templated record collection method, will create a new one if not existing More...
 
template<class T >
StatusCode retrieveCollection (T *&coll, const std::string &collName, bool forceBreak=true) const
 templated retrieve collection method, boolean steers that force break More...
 

Protected Attributes

std::string m_simDescr {""}
 The simulator service descriptor. More...
 
std::string m_screenOutputPrefix {"isf >> "}
 Screen output refinement - can be changed by declareProperty() More...
 
std::string m_chronoSvcName {"ChronoStatSvc"}
 Name of the timing service - can be set by declareProperty() More...
 
IChronoStatSvc * m_chrono {}
 The timing service for general usage. More...
 
IParticleBroker * m_particleBroker {}
 The particle service used to push particles into the simulation. More...
 

Private Member Functions

 Geant4SimSvc ()
 Default constructor. More...
 

Private Attributes

PublicToolHandle< ISF::ISimulatorToolm_simulatorTool {this, "SimulatorTool", "", ""}
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 

Detailed Description

Definition at line 27 of file Geant4SimSvc.h.

Member Typedef Documentation

◆ StoreGateSvc_t

Definition at line 135 of file BaseSimulationSvc.h.

Constructor & Destructor Documentation

◆ Geant4SimSvc() [1/2]

iGeant4::Geant4SimSvc::Geant4SimSvc ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Constructor.

Definition at line 9 of file Geant4SimSvc.cxx.

9  :
11 {
12 }

◆ ~Geant4SimSvc()

iGeant4::Geant4SimSvc::~Geant4SimSvc ( )
virtual

Destructor.

Definition at line 14 of file Geant4SimSvc.cxx.

15 {}

◆ Geant4SimSvc() [2/2]

iGeant4::Geant4SimSvc::Geant4SimSvc ( )
private

Default constructor.

Member Function Documentation

◆ chronoStart()

const ChronoEntity* ISF::BaseSimulationSvc::chronoStart ( const IChronoSvc::ChronoTag &  tag)
inlineinherited

wrapper call to start chrono with given tag

Definition at line 124 of file BaseSimulationSvc.h.

124  {
125  if (m_chrono) return m_chrono->chronoStart( tag);
126  return nullptr;
127  }

◆ chronoStop()

const ChronoEntity* ISF::BaseSimulationSvc::chronoStop ( const IChronoSvc::ChronoTag &  tag)
inlineinherited

wrapper call to stop chrono with given tag

Definition at line 130 of file BaseSimulationSvc.h.

130  {
131  if (m_chrono) return m_chrono->chronoStop( tag);
132  return nullptr;
133  }

◆ detStore() [1/2]

StoreGateSvc_t& ISF::BaseSimulationSvc::detStore ( )
inlineinherited

Definition at line 147 of file BaseSimulationSvc.h.

147 {return m_detStore;};

◆ detStore() [2/2]

const StoreGateSvc_t& ISF::BaseSimulationSvc::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 146 of file BaseSimulationSvc.h.

146 {return m_detStore;};

◆ evtStore() [1/2]

StoreGateSvc_t& ISF::BaseSimulationSvc::evtStore ( )
inlineinherited

Definition at line 141 of file BaseSimulationSvc.h.

141 {return m_evtStore;};

◆ evtStore() [2/2]

const StoreGateSvc_t& ISF::BaseSimulationSvc::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 140 of file BaseSimulationSvc.h.

140 {return m_evtStore;};

◆ finalize()

StatusCode iGeant4::Geant4SimSvc::finalize ( )
overridevirtual

framework methods

Definition at line 25 of file Geant4SimSvc.cxx.

26 {
27  return StatusCode::SUCCESS;
28 }

◆ initialize()

StatusCode iGeant4::Geant4SimSvc::initialize ( )
overridevirtual

Athena algorithm's interface methods.

framework methods

Definition at line 18 of file Geant4SimSvc.cxx.

19 {
20  ATH_CHECK (m_simulatorTool.retrieve());
21  return StatusCode::SUCCESS;
22 }

◆ recordCollection()

template<class T >
StatusCode ISF::BaseSimulationSvc::recordCollection ( T *&  coll,
const std::string &  collName 
) const
inlineinherited

templated record collection method, will create a new one if not existing

Definition at line 172 of file BaseSimulationSvc.h.

172  {
173  // create if necessary
174  coll = coll ? coll : new T;
175  // record
176  if (evtStore()->record( coll, collName).isFailure()){
177  ATH_MSG_FATAL( m_screenOutputPrefix << "Cannot record collection " << collName << ". Abort." );
178  return StatusCode::FAILURE;
179  } else
180  ATH_MSG_DEBUG(m_screenOutputPrefix << "Successfully recorded collection " << collName);
181  return StatusCode::SUCCESS;
182  }

◆ releaseEvent()

StatusCode iGeant4::Geant4SimSvc::releaseEvent ( )
overridevirtual

Release Event chain - in case of an end-of event action is needed.

Reimplemented from ISF::BaseSimulationSvc.

Definition at line 35 of file Geant4SimSvc.cxx.

36 {
37  return m_simulatorTool->releaseEventST();
38 }

◆ retrieveCollection()

template<class T >
StatusCode ISF::BaseSimulationSvc::retrieveCollection ( T *&  coll,
const std::string &  collName,
bool  forceBreak = true 
) const
inlineinherited

templated retrieve collection method, boolean steers that force break

Definition at line 186 of file BaseSimulationSvc.h.

186  {
187  // check for existence in the soft case
188  if (!forceBreak && !evtStore()->contains<T>(collName)) {
189  coll = 0;
190  ATH_MSG_DEBUG(m_screenOutputPrefix << "Collection does not exists (not required). Ignore.");
191  return StatusCode::SUCCESS;
192  }
193  if ( evtStore()->retrieve(coll, collName).isFailure()){
194  ATH_MSG_FATAL( m_screenOutputPrefix << "Cannot retireve collection " << collName << ". Abort." );
195  return StatusCode::FAILURE;
196  } else
197  ATH_MSG_DEBUG(m_screenOutputPrefix << "Successfully retrieved collection " << collName);
198  return StatusCode::SUCCESS;
199  }

◆ retrieveTool()

template<class T >
StatusCode ISF::BaseSimulationSvc::retrieveTool ( ToolHandle< T > &  thandle)
inlineinherited

templated Tool retrieval - gives unique handling & look and feel

Definition at line 150 of file BaseSimulationSvc.h.

150  {
151  if (!thandle.empty() && thandle.retrieve().isFailure()){
152  ATH_MSG_FATAL( m_screenOutputPrefix << "Cannot retrieve " << thandle << ". Abort.");
153  return StatusCode::FAILURE;
154  } else
155  ATH_MSG_DEBUG(m_screenOutputPrefix << "Successfully retrieved " << thandle);
156  return StatusCode::SUCCESS;
157  }

◆ retrieveTools()

template<class T >
StatusCode ISF::BaseSimulationSvc::retrieveTools ( ToolHandleArray< T > &  thandleArray)
inlineinherited

templated Tool retrieval - gives unique handling & look and feel

Definition at line 161 of file BaseSimulationSvc.h.

161  {
162  if (!thandleArray.empty() && thandleArray.retrieve().isFailure()){
163  ATH_MSG_FATAL( m_screenOutputPrefix << "Cannot retrieve " << thandleArray << ". Abort.");
164  return StatusCode::FAILURE;
165  } else
166  ATH_MSG_DEBUG(m_screenOutputPrefix << "Successfully retrieved " << thandleArray);
167  return StatusCode::SUCCESS;
168  }

◆ setParticleBroker()

virtual StatusCode ISF::BaseSimulationSvc::setParticleBroker ( IParticleBroker broker)
inlineoverridevirtualinherited

Inform the SimulationSvc about the ParticleBroker svc.

Definition at line 97 of file BaseSimulationSvc.h.

97  {
98  m_particleBroker = broker;
99  return StatusCode::SUCCESS;
100  }

◆ setupEvent()

StatusCode iGeant4::Geant4SimSvc::setupEvent ( )
overridevirtual

Setup Event chain - in case of a begin-of event action is needed.

Reimplemented from ISF::BaseSimulationSvc.

Definition at line 30 of file Geant4SimSvc.cxx.

31 {
32  return m_simulatorTool->setupEventST();
33 }

◆ simSvcDescriptor()

std::string& ISF::BaseSimulationSvc::simSvcDescriptor ( )
inlineoverrideinherited

Return the simulation service descriptor.

Definition at line 86 of file BaseSimulationSvc.h.

86 { return m_simDescr; }

◆ simulate()

StatusCode iGeant4::Geant4SimSvc::simulate ( ISF::ISFParticle isp,
McEventCollection mcEventCollection 
)
overridevirtual

Simulation Call

Simulation Call.

Reimplemented from ISF::BaseSimulationSvc.

Definition at line 41 of file Geant4SimSvc.cxx.

42 {
43  ISF::ISFParticleContainer secondaries; // filled, but not used
44  ATH_CHECK(m_simulatorTool->simulate(isp, secondaries, mcEventCollection));
45  return StatusCode::SUCCESS;
46 }

◆ simulateVector()

StatusCode iGeant4::Geant4SimSvc::simulateVector ( const ISF::ISFParticleVector particles,
McEventCollection mcEventCollection,
McEventCollection shadowTruth = nullptr 
)
overridevirtual

Simulation Call for vector of ISF particles.

Simulation Call.

Reimplemented from ISF::BaseSimulationSvc.

Definition at line 49 of file Geant4SimSvc.cxx.

50 {
51  ISF::ISFParticleContainer secondaries; // filled, but not used
52  ATH_CHECK (m_simulatorTool->simulateVector(particles,secondaries, mcEventCollection, shadowTruth));
53  return StatusCode::SUCCESS;
54 }

◆ sysInitialize()

virtual StatusCode ISF::BaseSimulationSvc::sysInitialize ( )
inlineoverridevirtualinherited

Gaudi sysInitialize() methods.

Definition at line 71 of file BaseSimulationSvc.h.

72  {
73  if ( AthService::sysInitialize().isFailure() ) {
74  ATH_MSG_FATAL( m_screenOutputPrefix << " Cannot initialize AthService! Abort.");
75  return StatusCode::FAILURE;
76  }
77  if ( serviceLocator()->service(m_chronoSvcName, m_chrono ).isFailure()){
78  ATH_MSG_FATAL( m_screenOutputPrefix << " Cannot retrieve ChronoStatSvc! Abort.");
79  return StatusCode::FAILURE;
80  }
81 
82  return StatusCode::SUCCESS;
83  }

Member Data Documentation

◆ m_chrono

IChronoStatSvc* ISF::BaseSimulationSvc::m_chrono {}
protectedinherited

The timing service for general usage.

Definition at line 223 of file BaseSimulationSvc.h.

◆ m_chronoSvcName

std::string ISF::BaseSimulationSvc::m_chronoSvcName {"ChronoStatSvc"}
protectedinherited

Name of the timing service - can be set by declareProperty()

Definition at line 220 of file BaseSimulationSvc.h.

◆ m_detStore

StoreGateSvc_t ISF::BaseSimulationSvc::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 209 of file BaseSimulationSvc.h.

◆ m_evtStore

StoreGateSvc_t ISF::BaseSimulationSvc::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 206 of file BaseSimulationSvc.h.

◆ m_particleBroker

IParticleBroker* ISF::BaseSimulationSvc::m_particleBroker {}
protectedinherited

The particle service used to push particles into the simulation.

Definition at line 226 of file BaseSimulationSvc.h.

◆ m_screenOutputPrefix

std::string ISF::BaseSimulationSvc::m_screenOutputPrefix {"isf >> "}
protectedinherited

Screen output refinement - can be changed by declareProperty()

Definition at line 217 of file BaseSimulationSvc.h.

◆ m_simDescr

std::string ISF::BaseSimulationSvc::m_simDescr {""}
protectedinherited

The simulator service descriptor.

Definition at line 214 of file BaseSimulationSvc.h.

◆ m_simulatorTool

PublicToolHandle<ISF::ISimulatorTool> iGeant4::Geant4SimSvc::m_simulatorTool {this, "SimulatorTool", "", ""}
private

Definition at line 56 of file Geant4SimSvc.h.


The documentation for this class was generated from the following files:
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition: ISFParticleContainer.h:23
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
ISF::BaseSimulationSvc::evtStore
const StoreGateSvc_t & evtStore() const
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: BaseSimulationSvc.h:140
ISF::BaseSimulationSvc::BaseSimulationSvc
BaseSimulationSvc()
Default constructor.
iGeant4::Geant4SimSvc::m_simulatorTool
PublicToolHandle< ISF::ISimulatorTool > m_simulatorTool
Definition: Geant4SimSvc.h:56
ISF::BaseSimulationSvc::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: BaseSimulationSvc.h:206
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ISF::BaseSimulationSvc::m_simDescr
std::string m_simDescr
The simulator service descriptor.
Definition: BaseSimulationSvc.h:214
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
ISF::BaseSimulationSvc::m_screenOutputPrefix
std::string m_screenOutputPrefix
Screen output refinement - can be changed by declareProperty()
Definition: BaseSimulationSvc.h:217
ISF::BaseSimulationSvc::m_chronoSvcName
std::string m_chronoSvcName
Name of the timing service - can be set by declareProperty()
Definition: BaseSimulationSvc.h:220
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ISF::BaseSimulationSvc::m_chrono
IChronoStatSvc * m_chrono
The timing service for general usage.
Definition: BaseSimulationSvc.h:223
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
ISF::BaseSimulationSvc::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: BaseSimulationSvc.h:209
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
ISF::BaseSimulationSvc::m_particleBroker
IParticleBroker * m_particleBroker
The particle service used to push particles into the simulation.
Definition: BaseSimulationSvc.h:226
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35