ATLAS Offline Software
FastSimulationMasterTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Base class
7 
8 // For the process setup
9 #include "G4ParticleTable.hh"
10 #include "G4FastSimulationManagerProcess.hh"
11 #include "G4ProcessManager.hh"
12 
13 FastSimulationMasterTool::FastSimulationMasterTool(const std::string& type, const std::string& name, const IInterface* parent)
14  : base_class(type,name,parent)
15 {
16 }
17 
19  ATH_MSG_VERBOSE( name() << "::initializeFastSims()" );
20  // Loop through list of fast simulations and retrieve them
21  // This forces a call to initialize() for each of them
22  ATH_MSG_INFO( "Initializing list of " << m_FastSimList.size() << " fast simulation tools in " << name() );
23  CHECK( m_FastSimList.retrieve() );
24 
25  // Initialize the SDs
26  for (auto& ifs : m_FastSimList){
27  CHECK(ifs->initializeFastSim());
28  }
29 
30  return StatusCode::SUCCESS;
31 }
32 
34  return !m_FastSimList.empty();
35 }
36 
38  // Method that gets called at the beginning of every *athena* event
39  for (auto& ifs : m_FastSimList){
40  CHECK(ifs->BeginOfAthenaEvent());
41  }
42  return StatusCode::SUCCESS;
43 }
44 
46  // Method that gets called at the end of every *athena* event
47  for (auto& ifs : m_FastSimList){
48  CHECK(ifs->EndOfAthenaEvent());
49  }
50  return StatusCode::SUCCESS;
51 }
FastSimulationMasterTool::initializeFastSims
StatusCode initializeFastSims() override final
Definition: FastSimulationMasterTool.cxx:18
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FastSimulationMasterTool::EndOfAthenaEvent
StatusCode EndOfAthenaEvent() override final
!< Base class method that calls BeginOfAthenaEvent for all fast simulation models.
Definition: FastSimulationMasterTool.cxx:45
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
FastSimulationMasterTool::BeginOfAthenaEvent
StatusCode BeginOfAthenaEvent() override final
!< Base class method to check if we have any fast simulation models
Definition: FastSimulationMasterTool.cxx:37
FastSimulationMasterTool.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FastSimulationMasterTool::m_FastSimList
ToolHandleArray< IFastSimulation > m_FastSimList
!< Base class method that calls EndOfAthenaEvent for all fast simulation models.
Definition: FastSimulationMasterTool.h:29
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
FastSimulationMasterTool::HasFastSimulationModels
bool HasFastSimulationModels() const override final
!< Base class method to initialize all the fast simulation models
Definition: FastSimulationMasterTool.cxx:33
FastSimulationMasterTool::FastSimulationMasterTool
FastSimulationMasterTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: FastSimulationMasterTool.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240