#include <FastCaloSimTool.h>
|
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...
|
|
|
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", ""} |
|
PublicToolHandle< IPunchThroughSimWrapper > | m_PunchThroughSimWrapper {this, "PunchThroughSimWrapper", "PunchThroughSimWrapper", ""} |
|
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"} |
|
Gaudi::Property< bool > | m_doPunchThrough {this, "doPunchThrough", true, "Run punchthrough simulation for particle entering Calo-MS boundary"} |
|
G4VFastSimulationModel * | m_FastSimModel {} |
| The Fast Simulation Model to which this thing corresponds. More...
|
|
Definition at line 26 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 78 of file FastSimulationBase.cxx.
80 #ifdef G4MULTITHREADED
81 for(
auto& threadMapPair : m_fastsimmodelThreadMap)
83 auto fastSimModel = threadMapPair.second;
87 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 52 of file FastSimulationBase.cxx.
54 #ifdef G4MULTITHREADED
56 const auto tid = std::this_thread::get_id();
58 auto fastsimmodelPair = m_fastsimmodelThreadMap.find(tid);
59 if(fastsimmodelPair == m_fastsimmodelThreadMap.end())
return nullptr;
60 return fastsimmodelPair->second;
◆ getRegion()
G4Region * FastSimulationBase::getRegion |
( |
| ) |
const |
|
protectedinherited |
◆ 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 32 of file FastSimulationBase.cxx.
37 ATH_MSG_ERROR(
"Trying to create a Fast Simulation Model which already exists!");
38 return StatusCode::FAILURE;
42 auto* fastsimmodel = makeFastSimModel();
49 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.
63 return new FastCaloSim(
name(),
getRegion(),
m_rndmGenSvc,
m_randomEngineName,
m_FastCaloSimCaloTransportation,
m_FastCaloSimCaloExtrapolation,
m_G4CaloTransportTool,
m_PunchThroughSimWrapper,
m_FastCaloSimSvc,
m_CaloCellContainerSDName,
m_doG4Transport,
m_doPunchThrough,
this);
◆ setFastSimModel()
void FastSimulationBase::setFastSimModel |
( |
G4VFastSimulationModel * |
fastsimmodel | ) |
|
|
privateinherited |
Set the current model. In hive, this gets assigned as the thread-local model.
Definition at line 66 of file FastSimulationBase.cxx.
68 #ifdef G4MULTITHREADED
70 const auto tid = std::this_thread::get_id();
71 ATH_MSG_DEBUG(
"Creating and registering FastSimModel " << fastsimmodel <<
" in thread " << tid);
72 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_doPunchThrough
Gaudi::Property<bool> FastCaloSimTool::m_doPunchThrough {this, "doPunchThrough", true, "Run punchthrough simulation for particle entering Calo-MS boundary"} |
|
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_PunchThroughSimWrapper
◆ m_randomEngineName
Gaudi::Property<std::string> FastCaloSimTool::m_randomEngineName {this, "RandomStream", ""} |
|
private |
◆ m_regionName
Gaudi::Property<std::string> FastSimulationBase::m_regionName {this, "RegionName", ""} |
|
protectedinherited |
◆ m_rndmGenSvc
The documentation for this class was generated from the following files: