ATLAS Offline Software
LooperKillerTool.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 "LooperKillerTool.h"
6 
7 namespace G4UA
8 {
9 
10  //---------------------------------------------------------------------------
11  // Constructor
12  //---------------------------------------------------------------------------
13  LooperKillerTool::LooperKillerTool(const std::string& type, const std::string& name,
14  const IInterface* parent)
16  {
17  declareProperty("MaxSteps", m_config.MaxSteps);
18  declareProperty("PrintSteps",m_config.PrintSteps);
19  declareProperty("VerboseLevel", m_config.VerboseLevel);
20  declareProperty("AbortEvent", m_config.AbortEvent);
21  declareProperty("SetError", m_config.SetError);
22  }
23 
24  //---------------------------------------------------------------------------
25  // Initialize - temporarily here for debugging
26  //---------------------------------------------------------------------------
28  {
29  ATH_MSG_DEBUG("initialize");
30  return StatusCode::SUCCESS;
31  }
32 
34  {
35  ATH_MSG_DEBUG("finalize");
36 
37  // Accumulate the results across threads
41 
42  ATH_MSG_INFO( "******* Report from "<< name()<< " *******");
43  ATH_MSG_INFO(" Set to kill tracks over " << m_config.MaxSteps << " steps");
44  ATH_MSG_INFO(" and give " << m_config.PrintSteps << " steps of verbose output");
45  ATH_MSG_INFO(" We killed " << report.killed_tracks << " tracks this run.");
46  ATH_MSG_INFO(" Was set to " << (m_config.AbortEvent?"":"not ") << "abort events and ");
47  ATH_MSG_INFO( (m_config.SetError?"":"not ") << "set an error state." );
48 
49  return StatusCode::SUCCESS;
50  }
51 
52 
53  //---------------------------------------------------------------------------
54  // Create the action on request
55  //---------------------------------------------------------------------------
56  std::unique_ptr<LooperKiller>
58  {
59  ATH_MSG_DEBUG("Making a LooperKiller action");
60  auto action = std::make_unique<LooperKiller>(m_config);
61  actionList.steppingActions.push_back( action.get() );
62  return action;
63  }
64 
65 }
G4UA::G4AtlasUserActions
Struct for passing around user actions.
Definition: IUserActionTool.h:32
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
G4UA
for nSW
Definition: CalibrationDefaultProcessing.h:19
G4UA::LooperKiller::Config::AbortEvent
bool AbortEvent
Definition: LooperKiller.h:32
checkTP.report
report
Definition: checkTP.py:127
G4UA::ThreadSpecificUserAction::accumulate
void accumulate(ResultType &result, Mapper mapOp, Reducer reduceOp)
Accumulate results across user actions with specified operations.
Definition: ThreadSpecificUserAction.h:88
G4UA::LooperKillerTool::m_config
G4UA::LooperKiller::Config m_config
Configuration parameters.
Definition: LooperKillerTool.h:48
LooperKillerTool.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
G4UA::UserActionToolBase< LooperKiller >::m_actions
ThreadSpecificUserAction< LooperKiller > m_actions
Thread-specific storage of the user action.
Definition: UserActionToolBase.h:63
G4UA::LooperKillerTool::LooperKillerTool
LooperKillerTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition: LooperKillerTool.cxx:13
test_pyathena.parent
parent
Definition: test_pyathena.py:15
G4UA::LooperKiller::Report::merge
void merge(const Report &rep)
Definition: LooperKiller.h:39
G4UA::LooperKiller::Config::PrintSteps
int PrintSteps
Definition: LooperKiller.h:30
G4UA::LooperKillerTool::makeAndFillAction
virtual std::unique_ptr< LooperKiller > makeAndFillAction(G4AtlasUserActions &) override final
Create action for this thread.
Definition: LooperKillerTool.cxx:57
G4UA::LooperKiller::Config::VerboseLevel
int VerboseLevel
Definition: LooperKiller.h:31
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
G4UA::LooperKillerTool::finalize
virtual StatusCode finalize() override
Definition: LooperKillerTool.cxx:33
G4UA::UserActionToolBase
abstract template utility base-class for G4 user-action tools.
Definition: UserActionToolBase.h:33
G4UA::LooperKiller::getReport
const Report & getReport() const
Retrieve results.
Definition: LooperKiller.h:48
python.CaloScaleNoiseConfig.action
action
Definition: CaloScaleNoiseConfig.py:77
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
G4UA::LooperKiller::Config::SetError
bool SetError
Definition: LooperKiller.h:33
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
G4UA::LooperKiller::Report
Definition: LooperKiller.h:37
G4UA::G4AtlasUserActions::steppingActions
std::vector< G4UserSteppingAction * > steppingActions
Definition: IUserActionTool.h:36
G4UA::LooperKiller
A user action to kill looping tracks.
Definition: LooperKiller.h:23
G4UA::LooperKillerTool::initialize
virtual StatusCode initialize() override
Definition: LooperKillerTool.cxx:27
G4UA::LooperKiller::Config::MaxSteps
int MaxSteps
Definition: LooperKiller.h:29