ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
FastSimulationBase Class Reference

#include <FastSimulationBase.h>

Inheritance diagram for FastSimulationBase:
Collaboration diagram for FastSimulationBase:

Public Member Functions

 FastSimulationBase (const std::string &type, const std::string &name, const IInterface *parent)
 
StatusCode initializeFastSim () override
 Construct and setup the fast simulation model. More...
 
virtual StatusCode BeginOfAthenaEvent () override
 Begin of an athena event - do anything that needs to be done at the beginning of each athena event. More...
 
virtual StatusCode EndOfAthenaEvent () override
 End of an athena event - do any tidying up required at the end of each athena event. More...
 

Protected Member Functions

G4Region * getRegion () const
 

Protected Attributes

Gaudi::Property< std::string > m_regionName {this, "RegionName", ""}
 The region to which this fast sim is assigned. More...
 
Gaudi::Property< bool > m_noRegions {this, "NoRegions", false}
 This Fast Simulation has no regions associated with it. More...
 

Detailed Description

Lightweight Gaudi tool base class for Geant4 fast-simulation models. It takes care of the per-thread creation of the concrete fast-simulation model and registering it for automatic Geant4 cleanup. Derived tools are responsible for implementing makeFastSimModel() and for assigning the returned model to the desired Geant4 regions, which can be accessed via the configured RegionName property or the getRegion() helper. Multi-threaded jobs will invoke initializeFastSim on every worker during detector construction, ensuring each thread instantiates its own model.

Definition at line 27 of file FastSimulationBase.h.

Constructor & Destructor Documentation

◆ FastSimulationBase()

FastSimulationBase::FastSimulationBase ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 12 of file FastSimulationBase.cxx.

13  : base_class(type,name,parent)
14 {
15 }

Member Function Documentation

◆ BeginOfAthenaEvent()

virtual StatusCode FastSimulationBase::BeginOfAthenaEvent ( )
inlineoverridevirtual

Begin of an athena event - do anything that needs to be done at the beginning of each athena event.

Definition at line 42 of file FastSimulationBase.h.

42 { return StatusCode::SUCCESS; }

◆ EndOfAthenaEvent()

virtual StatusCode FastSimulationBase::EndOfAthenaEvent ( )
inlineoverridevirtual

End of an athena event - do any tidying up required at the end of each athena event.

Definition at line 45 of file FastSimulationBase.h.

45 { return StatusCode::SUCCESS; }

◆ getRegion()

G4Region * FastSimulationBase::getRegion ( ) const
protected

Definition at line 17 of file FastSimulationBase.cxx.

18 {
19  if (m_regionName.value().empty()) {
20  return nullptr;
21  }
22  return G4RegionStore::GetInstance()->GetRegion(m_regionName.value());
23 }

◆ initializeFastSim()

StatusCode FastSimulationBase::initializeFastSim ( )
override

Construct and setup the fast simulation model.

This method invokes the makeFastSimModel of the derived concrete tool type. It is the derived class's responsibility to assign the fast simulation model to the correct regions. The fast simulation model is registered for deletion. In multi-threaded jobs, this method is called once on each geant4 worker thread during detector construction (ConstructSDandField).

Definition at line 27 of file FastSimulationBase.cxx.

27  {
28  ATH_MSG_VERBOSE( name() << "::initializeFastSim()" );
29 
30  // Instantiate the FastSimModel for this geant4 thread and register it for deletion
31  G4AutoDelete::Register(makeFastSimModel());
32 
33  return StatusCode::SUCCESS;
34 }

Member Data Documentation

◆ m_noRegions

Gaudi::Property<bool> FastSimulationBase::m_noRegions {this, "NoRegions", false}
protected

This Fast Simulation has no regions associated with it.

Definition at line 54 of file FastSimulationBase.h.

◆ m_regionName

Gaudi::Property<std::string> FastSimulationBase::m_regionName {this, "RegionName", ""}
protected

The region to which this fast sim is assigned.

Definition at line 52 of file FastSimulationBase.h.


The documentation for this class was generated from the following files:
FastSimulationBase::m_regionName
Gaudi::Property< std::string > m_regionName
The region to which this fast sim is assigned.
Definition: FastSimulationBase.h:52
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
test_pyathena.parent
parent
Definition: test_pyathena.py:15
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240