#include <FastSimulationBase.h>
|
Gaudi::Property< std::vector< std::string > > | m_regionNames {this, "RegionNames", {}} |
| All the regions 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...
|
|
- Todo:
- TODO needs class documentation
Definition at line 26 of file FastSimulationBase.h.
◆ FastSimulationBase()
FastSimulationBase::FastSimulationBase |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~FastSimulationBase()
FastSimulationBase::~FastSimulationBase |
( |
| ) |
|
|
virtual |
◆ 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.
Reimplemented in FastCaloSimTool.
Definition at line 41 of file FastSimulationBase.h.
41 {
return StatusCode::SUCCESS; }
◆ deleteFastSimModel()
void FastSimulationBase::deleteFastSimModel |
( |
| ) |
|
|
private |
Delete the current model.
Definition at line 99 of file FastSimulationBase.cxx.
101 #ifdef G4MULTITHREADED
102 for(
auto& threadMapPair : m_fastsimmodelThreadMap)
104 auto fastSimModel = threadMapPair.second;
108 m_fastsimmodelThreadMap.clear();
◆ EndOfAthenaEvent()
virtual StatusCode FastSimulationBase::EndOfAthenaEvent |
( |
| ) |
|
|
inlineoverridevirtual |
◆ getFastSimModel()
G4VFastSimulationModel * FastSimulationBase::getFastSimModel |
( |
| ) |
|
|
protected |
Retrieve the current Fast Simulation Model.
In MT, this means the thread-local Fast Simulation Model. Otherwise, it is simply the single Fast Simulation Model.
Definition at line 73 of file FastSimulationBase.cxx.
75 #ifdef G4MULTITHREADED
77 const auto tid = std::this_thread::get_id();
79 auto fastsimmodelPair = m_fastsimmodelThreadMap.find(tid);
80 if(fastsimmodelPair == m_fastsimmodelThreadMap.end())
return nullptr;
81 return fastsimmodelPair->second;
◆ initializeFastSim()
StatusCode FastSimulationBase::initializeFastSim |
( |
| ) |
|
|
override |
Construct and setup the fast simulation model.
This method invokes the makeFastSimModel of the derived concrete tool type and assigns the configured regions. Errors are reported if regions are missing. In multi-threading jobs, this method is called once per worker thread.
Definition at line 23 of file FastSimulationBase.cxx.
28 ATH_MSG_ERROR(
"Trying to create a Fast Simulation Model which already exists!");
29 return StatusCode::FAILURE;
33 auto* fastsimmodel = makeFastSimModel();
41 G4RegionStore* regionStore = G4RegionStore::GetInstance();
42 bool missedOne =
false;
45 for (
auto* areg : *regionStore){
46 if (myreg.data()==areg->GetName()){
48 G4FastSimulationManager* theFastSimulationManager = areg->GetFastSimulationManager();
51 if ( theFastSimulationManager == 0 ) theFastSimulationManager =
new G4FastSimulationManager(areg);
53 theFastSimulationManager->ActivateFastSimulationModel(
getFastSimModel()->GetName());
66 ATH_MSG_ERROR(
"Failed to assign at least one volume to Fast Simulation Model " <<
name() );
67 return StatusCode::FAILURE;
70 return StatusCode::SUCCESS;
◆ setFastSimModel()
void FastSimulationBase::setFastSimModel |
( |
G4VFastSimulationModel * |
fastsimmodel | ) |
|
|
private |
Set the current model. In hive, this gets assigned as the thread-local model.
Definition at line 87 of file FastSimulationBase.cxx.
89 #ifdef G4MULTITHREADED
91 const auto tid = std::this_thread::get_id();
92 ATH_MSG_DEBUG(
"Creating and registering FastSimModel " << fastsimmodel <<
" in thread " << tid);
93 m_fastsimmodelThreadMap.insert( std::make_pair(tid, fastsimmodel) );
◆ m_FastSimModel
G4VFastSimulationModel* FastSimulationBase::m_FastSimModel {} |
|
private |
◆ m_noRegions
Gaudi::Property<bool> FastSimulationBase::m_noRegions {this, "NoRegions", false} |
|
protected |
◆ m_regionNames
Gaudi::Property<std::vector<std::string> > FastSimulationBase::m_regionNames {this, "RegionNames", {}} |
|
protected |
The documentation for this class was generated from the following files: