#include <FastCaloSimTool.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...
|
|
|
ServiceHandle< ISF::IFastCaloSimParamSvc > | m_FastCaloSimSvc {this, "ISF_FastCaloSimV2ParamSvc", "ISF_FastCaloSimV2ParamSvc"} |
|
PublicToolHandle< IFastCaloSimCaloTransportation > | m_FastCaloSimCaloTransportation {this, "FastCaloSimCaloTransportation", "FastCaloSimCaloTransportation", ""} |
|
PublicToolHandle< IFastCaloSimCaloExtrapolation > | m_FastCaloSimCaloExtrapolation {this, "FastCaloSimCaloExtrapolation", "FastCaloSimCaloExtrapolation", ""} |
|
PublicToolHandle< IG4CaloTransportTool > | m_G4CaloTransportTool {this, "G4CaloTransportTool", "G4CaloTransportTool", ""} |
|
ServiceHandle< IAthRNGSvc > | m_rndmGenSvc {this, "RandomSvc", "AthRNGSvc", ""} |
|
Gaudi::Property< std::string > | m_randomEngineName {this, "RandomStream", ""} |
|
Gaudi::Property< std::string > | m_CaloCellContainerSDName {this, "CaloCellContainerSDName", "", "Name of the associated CaloCellContainerSD"} |
|
Gaudi::Property< bool > | m_doG4Transport {this, "doG4Transport", false, "Flag to enable G4 transportation"} |
|
G4VFastSimulationModel * | m_FastSimModel {} |
| The Fast Simulation Model to which this thing corresponds. More...
|
|
Definition at line 23 of file FastCaloSimTool.h.
◆ FastCaloSimTool()
FastCaloSimTool::FastCaloSimTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~FastCaloSimTool()
FastCaloSimTool::~FastCaloSimTool |
( |
| ) |
|
|
inline |
◆ BeginOfAthenaEvent()
StatusCode FastCaloSimTool::BeginOfAthenaEvent |
( |
| ) |
|
|
finaloverridevirtual |
Begin of an athena event - do any thing that needs to be done at the beginning of each athena event.
Reimplemented from FastSimulationBase.
Definition at line 16 of file FastCaloSimTool.cxx.
18 const EventContext& ctx = Gaudi::Hive::currentContext();
21 ATH_MSG_ERROR (
"BeginOfAthenaEvent: FastSimModel was never created!");
22 return StatusCode::FAILURE;
26 if(!localFastSimModel){
27 ATH_MSG_ERROR (
"BeginOfAthenaEvent: Failed to cast m_FastSimModel into G4VFastSimulationModel.");
28 return StatusCode::FAILURE;
33 return StatusCode::SUCCESS;
◆ deleteFastSimModel()
void FastSimulationBase::deleteFastSimModel |
( |
| ) |
|
|
privateinherited |
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()
StatusCode FastCaloSimTool::EndOfAthenaEvent |
( |
| ) |
|
|
finaloverridevirtual |
End of an athena event - do any thing that needs to be done at the end of each athena event.
Reimplemented from FastSimulationBase.
Definition at line 36 of file FastCaloSimTool.cxx.
39 const EventContext& ctx = Gaudi::Hive::currentContext();
42 ATH_MSG_ERROR (
"EndOfAthenaEvent: FastSimModel was never created!");
43 return StatusCode::FAILURE;
47 if(!localFastSimModel){
48 ATH_MSG_ERROR (
"EndOfAthenaEvent: Failed to cast m_FastSimModel into G4VFastSimulationModel.");
49 return StatusCode::FAILURE;
54 return StatusCode::SUCCESS;
◆ getFastSimModel()
G4VFastSimulationModel * FastSimulationBase::getFastSimModel |
( |
| ) |
|
|
protectedinherited |
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 |
( |
| ) |
|
|
overrideinherited |
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;
◆ makeFastSimModel()
G4VFastSimulationModel * FastCaloSimTool::makeFastSimModel |
( |
| ) |
|
|
finaloverrideprotectedvirtual |
Method to make the actual fast simulation model itself, which will be owned by the tool.
Must be implemented in all concrete base classes.
Definition at line 58 of file FastCaloSimTool.cxx.
◆ setFastSimModel()
void FastSimulationBase::setFastSimModel |
( |
G4VFastSimulationModel * |
fastsimmodel | ) |
|
|
privateinherited |
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_CaloCellContainerSDName
Gaudi::Property<std::string> FastCaloSimTool::m_CaloCellContainerSDName {this, "CaloCellContainerSDName", "", "Name of the associated CaloCellContainerSD"} |
|
private |
◆ m_doG4Transport
Gaudi::Property<bool> FastCaloSimTool::m_doG4Transport {this, "doG4Transport", false, "Flag to enable G4 transportation"} |
|
private |
◆ m_FastCaloSimCaloExtrapolation
◆ m_FastCaloSimCaloTransportation
◆ m_FastCaloSimSvc
◆ m_FastSimModel
G4VFastSimulationModel* FastSimulationBase::m_FastSimModel {} |
|
privateinherited |
◆ m_G4CaloTransportTool
◆ m_noRegions
Gaudi::Property<bool> FastSimulationBase::m_noRegions {this, "NoRegions", false} |
|
protectedinherited |
◆ m_randomEngineName
Gaudi::Property<std::string> FastCaloSimTool::m_randomEngineName {this, "RandomStream", ""} |
|
private |
◆ m_regionNames
Gaudi::Property<std::vector<std::string> > FastSimulationBase::m_regionNames {this, "RegionNames", {}} |
|
protectedinherited |
◆ m_rndmGenSvc
The documentation for this class was generated from the following files: