ATLAS Offline Software
Loading...
Searching...
No Matches
G4UA::CelerOffloadTool Class Reference

#include <CelerOffloadTool.h>

Inheritance diagram for G4UA::CelerOffloadTool:
Collaboration diagram for G4UA::CelerOffloadTool:

Public Member Functions

 CelerOffloadTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual StatusCode fillUserAction (G4AtlasUserActions &actionLists) override final
 Fill the user action lists.
StatusCode BeginOfAthenaEvent (HitCollectionMap &) override
 Calls BeginOfAthenaEvent.
StatusCode EndOfAthenaEvent (HitCollectionMap &) override
 Calls EndOfAthenaEvent.

Protected Member Functions

virtual std::unique_ptr< CelerOffloadmakeAndFillAction (G4AtlasUserActions &) override final
 Make the action and push onto the lists.

Protected Attributes

ThreadSpecificUserAction< CelerOffloadm_actions
 Thread-specific storage of the user action.

Private Types

using SetupOptions = celeritas::SetupOptions

Private Attributes

Gaudi::Property< std::string > m_geometry_output_file {this, "geometry_output_file", {}, "Filename to dump a GDML file for debugging inside frameworks"}
Gaudi::Property< SetupOptions::size_type > m_max_num_tracks {this, "max_num_tracks", {}, "Number of track 'slots' to be transported simultaneously"}
Gaudi::Property< SetupOptions::size_type > m_max_steps {this, "max_steps", SetupOptions::no_max_steps(), "Limit on number of steps per track before killing"}
Gaudi::Property< SetupOptions::size_type > m_max_step_iters {this, "max_step_iters", SetupOptions::no_max_steps(), "Limit on number of step iterations before aborting"}
Gaudi::Property< SetupOptions::size_type > m_initializer_capacity {this, "initializer_capacity", {}, "Maximum number of track initializers (primaries+secondaries)"}
Gaudi::Property< SetupOptions::VecString > m_ignore_processes {this, "ignore_processes", {}, "Do not use Celeritas physics for the given Geant4 process names"}
Gaudi::Property< SetupOptions::size_type > m_cuda_stack_size {this, "cuda_stack_size", {}, "Per-thread stack size (may be needed for VecGeom)"}
Gaudi::Property< SetupOptions::size_type > m_cuda_heap_size {this, "cuda_heap_size", {}, "Dynamic heap size (may be needed for VecGeom)"}
Gaudi::Property< bool > m_action_times {this, "action_times", false, "Sync the GPU at every kernel for timing"}

Detailed Description

Definition at line 12 of file CelerOffloadTool.h.

Member Typedef Documentation

◆ SetupOptions

using G4UA::CelerOffloadTool::SetupOptions = celeritas::SetupOptions
private

Definition at line 26 of file CelerOffloadTool.h.

Constructor & Destructor Documentation

◆ CelerOffloadTool()

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

Definition at line 5 of file CelerOffloadTool.cxx.

6 : UserActionToolBase<CelerOffload>(type, name, parent) {}
UserActionToolBase(const std::string &type, const std::string &name, const IInterface *parent)

Member Function Documentation

◆ BeginOfAthenaEvent()

StatusCode G4UA::UserActionToolBase< CelerOffload >::BeginOfAthenaEvent ( HitCollectionMap & )
inlineoverrideinherited

Calls BeginOfAthenaEvent.

Definition at line 59 of file UserActionToolBase.h.

59{return StatusCode::SUCCESS;};
abstract template utility base-class for G4 user-action tools.

◆ EndOfAthenaEvent()

StatusCode G4UA::UserActionToolBase< CelerOffload >::EndOfAthenaEvent ( HitCollectionMap & )
inlineoverrideinherited

Calls EndOfAthenaEvent.

Definition at line 61 of file UserActionToolBase.h.

61{return StatusCode::SUCCESS;};

◆ fillUserAction()

virtual StatusCode G4UA::UserActionToolBase< CelerOffload >::fillUserAction ( G4AtlasUserActions & actionLists)
inlinefinaloverridevirtualinherited

Fill the user action lists.

Definition at line 47 of file UserActionToolBase.h.

48 {
50 if(myAction == nullptr) {
51 ATH_MSG_ERROR( "Failed to construct user action in " << name() );
53 }
56 }
#define ATH_MSG_ERROR(x)
virtual std::unique_ptr< CelerOffload > makeAndFillAction(G4AtlasUserActions &actionLists)=0

◆ finalize()

StatusCode G4UA::CelerOffloadTool::finalize ( )
overridevirtual

Definition at line 16 of file CelerOffloadTool.cxx.

16 {
17 ATH_MSG_INFO("CelerOffload::finalize " << name());
18 return StatusCode::SUCCESS;
19 }
#define ATH_MSG_INFO(x)

◆ initialize()

StatusCode G4UA::CelerOffloadTool::initialize ( )
overridevirtual

Definition at line 8 of file CelerOffloadTool.cxx.

8 {
9 ATH_MSG_INFO("CelerOffload::initialize " << name());
10
11 // Celeritas initialization done in the PhysicsList
12
13 return StatusCode::SUCCESS;
14 }

◆ makeAndFillAction()

std::unique_ptr< CelerOffload > G4UA::CelerOffloadTool::makeAndFillAction ( G4AtlasUserActions & actionLists)
finaloverrideprotectedvirtual

Make the action and push onto the lists.

Implements G4UA::UserActionToolBase< CelerOffload >.

Definition at line 21 of file CelerOffloadTool.cxx.

21 {
22 ATH_MSG_INFO("CelerOffload::makeAction " << name());
23 auto action = std::make_unique<CelerOffload>();
24 actionList.runActions.push_back( action.get() );
25 actionList.runActionsMaster.push_back( action.get() );
26 return action;
27 }

Member Data Documentation

◆ m_action_times

Gaudi::Property<bool> G4UA::CelerOffloadTool::m_action_times {this, "action_times", false, "Sync the GPU at every kernel for timing"}
private

Definition at line 62 of file CelerOffloadTool.h.

62{this, "action_times", false, "Sync the GPU at every kernel for timing"};

◆ m_actions

Thread-specific storage of the user action.

Definition at line 70 of file UserActionToolBase.h.

◆ m_cuda_heap_size

Gaudi::Property<SetupOptions::size_type> G4UA::CelerOffloadTool::m_cuda_heap_size {this, "cuda_heap_size", {}, "Dynamic heap size (may be needed for VecGeom)"}
private

Definition at line 61 of file CelerOffloadTool.h.

61{this, "cuda_heap_size", {}, "Dynamic heap size (may be needed for VecGeom)"};

◆ m_cuda_stack_size

Gaudi::Property<SetupOptions::size_type> G4UA::CelerOffloadTool::m_cuda_stack_size {this, "cuda_stack_size", {}, "Per-thread stack size (may be needed for VecGeom)"}
private

Definition at line 60 of file CelerOffloadTool.h.

60{this, "cuda_stack_size", {}, "Per-thread stack size (may be needed for VecGeom)"};

◆ m_geometry_output_file

Gaudi::Property<std::string> G4UA::CelerOffloadTool::m_geometry_output_file {this, "geometry_output_file", {}, "Filename to dump a GDML file for debugging inside frameworks"}
private

Definition at line 32 of file CelerOffloadTool.h.

32{this, "geometry_output_file", {}, "Filename to dump a GDML file for debugging inside frameworks"};

◆ m_ignore_processes

Gaudi::Property<SetupOptions::VecString> G4UA::CelerOffloadTool::m_ignore_processes {this, "ignore_processes", {}, "Do not use Celeritas physics for the given Geant4 process names"}
private

Definition at line 56 of file CelerOffloadTool.h.

56{this, "ignore_processes", {}, "Do not use Celeritas physics for the given Geant4 process names"};

◆ m_initializer_capacity

Gaudi::Property<SetupOptions::size_type> G4UA::CelerOffloadTool::m_initializer_capacity {this, "initializer_capacity", {}, "Maximum number of track initializers (primaries+secondaries)"}
private

Definition at line 38 of file CelerOffloadTool.h.

38{this, "initializer_capacity", {}, "Maximum number of track initializers (primaries+secondaries)"};

◆ m_max_num_tracks

Gaudi::Property<SetupOptions::size_type> G4UA::CelerOffloadTool::m_max_num_tracks {this, "max_num_tracks", {}, "Number of track 'slots' to be transported simultaneously"}
private

Definition at line 35 of file CelerOffloadTool.h.

35{this, "max_num_tracks", {}, "Number of track 'slots' to be transported simultaneously"};

◆ m_max_step_iters

Gaudi::Property<SetupOptions::size_type> G4UA::CelerOffloadTool::m_max_step_iters {this, "max_step_iters", SetupOptions::no_max_steps(), "Limit on number of step iterations before aborting"}
private

Definition at line 37 of file CelerOffloadTool.h.

37{this, "max_step_iters", SetupOptions::no_max_steps(), "Limit on number of step iterations before aborting"};

◆ m_max_steps

Gaudi::Property<SetupOptions::size_type> G4UA::CelerOffloadTool::m_max_steps {this, "max_steps", SetupOptions::no_max_steps(), "Limit on number of steps per track before killing"}
private

Definition at line 36 of file CelerOffloadTool.h.

36{this, "max_steps", SetupOptions::no_max_steps(), "Limit on number of steps per track before killing"};

The documentation for this class was generated from the following files: