ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkG4Components
TrkG4UserActions
src
EnergyLossRecorderTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrkG4UserActions/EnergyLossRecorderTool.h
"
6
#include "
TrkValInterfaces/IPositionMomentumWriter.h
"
7
8
namespace
G4UA
9
{
10
11
EnergyLossRecorderTool::EnergyLossRecorderTool
(
const
std::string&
type
,
12
const
std::string& name,
13
const
IInterface* parent)
14
:
UserActionToolBase
<
EnergyLossRecorder
>(
type
, name, parent),
15
m_pmWriter
(
""
)
16
{
17
declareProperty(
"PositionMomentumWriter"
,
m_pmWriter
,
""
);
18
}
19
20
StatusCode
EnergyLossRecorderTool::initialize
()
21
{
22
if
(!
m_pmWriter
.empty()) {
23
ATH_CHECK
(
m_pmWriter
.retrieve());
24
// FIXME: thread-unsafe usage of a component in a thread-local action?
25
// See ATLASSIM-3562.
26
m_config
.pmWriter = &(*m_pmWriter);
27
}
28
return
StatusCode::SUCCESS;
29
}
30
31
std::unique_ptr<EnergyLossRecorder>
32
EnergyLossRecorderTool::makeAndFillAction
(
G4AtlasUserActions
& actionList)
33
{
34
ATH_MSG_DEBUG
(
"Constructing an EnergyLossRecorder action"
);
35
auto
action = std::make_unique<EnergyLossRecorder>(
m_config
);
36
actionList.
runActions
.push_back( action.get() );
37
actionList.
eventActions
.push_back( action.get() );
38
actionList.
steppingActions
.push_back( action.get() );
39
return
action;
40
}
41
42
}
// namespace G4UA
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
EnergyLossRecorderTool.h
IPositionMomentumWriter.h
G4UA::EnergyLossRecorderTool::m_config
EnergyLossRecorder::Config m_config
stores the config obtained from the python side
Definition
EnergyLossRecorderTool.h:44
G4UA::EnergyLossRecorderTool::initialize
virtual StatusCode initialize() override final
Athena initialize method.
Definition
EnergyLossRecorderTool.cxx:20
G4UA::EnergyLossRecorderTool::makeAndFillAction
virtual std::unique_ptr< EnergyLossRecorder > makeAndFillAction(G4AtlasUserActions &) override final
creates the instance for this thread
Definition
EnergyLossRecorderTool.cxx:32
G4UA::EnergyLossRecorderTool::m_pmWriter
ToolHandle< Trk::IPositionMomentumWriter > m_pmWriter
Definition
EnergyLossRecorderTool.h:45
G4UA::EnergyLossRecorderTool::EnergyLossRecorderTool
EnergyLossRecorderTool(const std::string &type, const std::string &name, const IInterface *parent)
standard tool ctor
Definition
EnergyLossRecorderTool.cxx:11
G4UA::EnergyLossRecorder
Definition
EnergyLossRecorder.h:40
G4UA::UserActionToolBase< EnergyLossRecorder >::UserActionToolBase
UserActionToolBase(const std::string &type, const std::string &name, const IInterface *parent)
Definition
UserActionToolBase.h:40
G4UA
for nSW
Definition
CalibrationDefaultProcessing.h:19
G4UA::G4AtlasUserActions
Struct for passing around user actions.
Definition
IUserActionTool.h:35
G4UA::G4AtlasUserActions::steppingActions
std::vector< G4UserSteppingAction * > steppingActions
Definition
IUserActionTool.h:41
G4UA::G4AtlasUserActions::eventActions
std::vector< G4UserEventAction * > eventActions
Definition
IUserActionTool.h:39
G4UA::G4AtlasUserActions::runActions
std::vector< G4UserRunAction * > runActions
Definition
IUserActionTool.h:36
type
Generated on
for ATLAS Offline Software by
1.17.0