10 #include "GaudiKernel/EventContext.h"
11 #include "GaudiKernel/ISvcLocator.h"
14 #include "Acts/Propagator/MaterialInteractor.hpp"
15 #include "Acts/Propagator/detail/SteppingLogger.hpp"
16 #include "Acts/Surfaces/PerigeeSurface.hpp"
17 #include "Acts/Utilities/Helpers.hpp"
18 #include "Acts/Definitions/Units.hpp"
19 #include "Acts/Utilities/Logger.hpp"
30 #include "CLHEP/Random/RandomEngine.h"
36 using namespace Acts::UnitLiterals;
43 std::pair<std::pair<Acts::Vector3, Acts::Vector3>, RecordedMaterial>;
47 ISvcLocator *pSvcLocator)
49 m_propStepWriterSvc(
"ActsPropStepRootWriterSvc",
name),
50 m_rndmGenSvc(
"AthRNGSvc",
name) ,
51 m_materialTrackWriterSvc(
"ActsMaterialTrackWriterSvc",
name)
66 return StatusCode::SUCCESS;
75 CLHEP::HepRandomEngine *rngEngine = rngWrapper->
getEngine(ctx);
89 double ptMin = ptRange.at(0) * 1_GeV;
90 double ptMax = ptRange.at(1) * 1_GeV;
92 double pt = rngEngine->flat() * std::abs(ptMax - ptMin) + ptMin;
99 double charge = rngEngine->flat() > 0.5 ? -1 : 1;
103 std::shared_ptr<Acts::PerigeeSurface> surface =
104 Acts::Surface::makeShared<Acts::PerigeeSurface>(
105 Acts::Vector3(0, 0, 0));
110 Acts::BoundVector
pars;
113 std::optional<Acts::BoundSquareMatrix>
cov = std::nullopt;
120 ->getNominalGeometryContext();
123 if(
output.first.size() == 0) {
132 track.first.first = Acts::Vector3(0,0,0);
142 return StatusCode::SUCCESS;
147 const std::vector<Acts::detail::Step>&
steps)
const {
152 std::stringstream lstr;
155 const auto &
pos =
step.position;
156 out <<
"v " <<
pos.x() <<
" " <<
pos.y() <<
" " <<
pos.z() << std::endl;
157 lstr <<
" " << m_objVtxCount;
163 out << lstr.str() << std::endl;