Forked from
cepc / CEPCSW
1604 commits behind the upstream repository.
-
lintao@ihep.ac.cn authored8fd7ae5c
DetSimAlg.cpp 1.28 KiB
#include "DetSimAlg.h"
#include "G4RunManager.hh"
DECLARE_COMPONENT(DetSimAlg)
DetSimAlg::DetSimAlg(const std::string& name, ISvcLocator* pSvcLocator)
: Algorithm(name, pSvcLocator) {
i_event = -1;
}
StatusCode
DetSimAlg::initialize() {
StatusCode sc;
info() << "Initialize DetSimAlg... " << endmsg;
m_detsimsvc = service("DetSimSvc");
if (!m_detsimsvc) {
error() << "Failed to find DetSimSvc. " << endmsg;
return StatusCode::FAILURE;
}
// Initialize the Run Manager
G4RunManager* runmgr = m_detsimsvc->getRM();
if (!runmgr) {
error() << "Failed to get Run Manager. " << endmsg;
return StatusCode::FAILURE;
}
runmgr->SetUserInitialization((G4VUserDetectorConstruction*)0);
runmgr->SetUserInitialization((G4VUserPhysicsList*)0);
runmgr->SetUserAction((G4VUserPrimaryGeneratorAction*)0);
// after set up the user initialization and user actions, start the initialization.
m_detsimsvc->initializeRM();
return sc;
}
StatusCode
DetSimAlg::execute() {
StatusCode sc;
m_detsimsvc->simulateEvent(++i_event);
return sc;
}
StatusCode
DetSimAlg::finalize() {
StatusCode sc;
if (!m_detsimsvc) {
return StatusCode::FAILURE;
}
m_detsimsvc->finalizeRM();
return sc;
}