add detector simulation
This commit is contained in:
43
src/HEP/Geant/DetectorActionInitialization.cpp
Normal file
43
src/HEP/Geant/DetectorActionInitialization.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#include "DetectorActionInitialization.hh"
|
||||
#include "EmitterPrimary.hh"
|
||||
#include "DetectorSteppingAction.hh"
|
||||
|
||||
namespace uLib {
|
||||
namespace Geant {
|
||||
|
||||
DetectorActionInitialization::DetectorActionInitialization(EmitterPrimary *emitter,
|
||||
Vector<MuonEvent> *output,
|
||||
const Vector<HLine3f> &planes,
|
||||
int verbosity)
|
||||
: G4VUserActionInitialization(),
|
||||
m_Emitter(emitter),
|
||||
m_Output(output),
|
||||
m_Planes(planes),
|
||||
m_Verbosity(verbosity)
|
||||
{}
|
||||
|
||||
DetectorActionInitialization::~DetectorActionInitialization() {}
|
||||
|
||||
void DetectorActionInitialization::BuildForMaster() const {}
|
||||
|
||||
void DetectorActionInitialization::Build() const {
|
||||
if (m_Verbosity > 0) {
|
||||
std::cout << "[Geant] Worker thread Building actions... Output ptr: " << m_Output
|
||||
<< ", Planes count: " << m_Planes.size() << std::endl;
|
||||
}
|
||||
if (m_Emitter) {
|
||||
SetUserAction(m_Emitter->Clone());
|
||||
} else {
|
||||
SetUserAction(new EmitterPrimary());
|
||||
}
|
||||
|
||||
if (m_Output) {
|
||||
DetectorSteppingAction *sa = new DetectorSteppingAction(m_Output, m_Planes);
|
||||
sa->SetVerbosity(m_Verbosity);
|
||||
SetUserAction(static_cast<G4UserSteppingAction*>(sa));
|
||||
SetUserAction(static_cast<G4UserEventAction*>(sa));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Geant
|
||||
} // namespace uLib
|
||||
Reference in New Issue
Block a user