33#include <TLorentzVector.h>
39#include "Framework/EventGen/GeomAnalyzerI.h"
40#include "Framework/EventGen/PathLengthList.h"
41#include "Framework/ParticleData/PDGCodeList.h"
47class IGeometryService;
73 GeomAnalyzer(std::shared_ptr<SHiP::IGeometryService> geometry,
74 std::string
const& top_volume,
G4Teardown teardown);
89 return max_path_lengths_;
103 TLorentzVector
const& x, TLorentzVector
const& p)
override;
105 TLorentzVector
const& p,
int tgtpdg)
override;
109 std::unique_ptr<Impl> impl_;
112 void init(std::shared_ptr<SHiP::IGeometryService> geometry,
113 std::string
const& top_volume);
114 static void teardown_geant4(Impl& impl);
116 ::genie::GFluxI* scanner_flux_ =
nullptr;
117 int scanner_particles_ = 10000;
118 double safety_factor_ = 1.1;
120 ::genie::PDGCodeList targets_;
121 ::genie::PathLengthList path_lengths_;
122 ::genie::PathLengthList max_path_lengths_;
Definition geom_analyzer.hpp:52
GeomAnalyzer & operator=(GeomAnalyzer &&)=delete
Extents const & extents() const
Definition geom_analyzer.hpp:97
::genie::PathLengthList const & ComputePathLengths(TLorentzVector const &x, TLorentzVector const &p) override
Definition geom_analyzer.cpp:239
::genie::PathLengthList const & ComputeMaxPathLengths() override
Definition geom_analyzer.cpp:265
~GeomAnalyzer() override
Definition geom_analyzer.cpp:235
GeomAnalyzer & operator=(GeomAnalyzer const &)=delete
void SetScannerFlux(::genie::GFluxI *flux)
Definition geom_analyzer.hpp:85
GeomAnalyzer(GeomAnalyzer const &)=delete
void SetMaxPlSafetyFactor(double sf)
Definition geom_analyzer.hpp:87
G4Teardown
Definition geom_analyzer.hpp:54
void SetScannerNParticles(int n)
Definition geom_analyzer.hpp:86
TVector3 const & GenerateVertex(TLorentzVector const &x, TLorentzVector const &p, int tgtpdg) override
Definition geom_analyzer.cpp:294
GeomAnalyzer(GeomAnalyzer &&)=delete
::genie::PathLengthList const & GetMaxPathLengths() const
Definition geom_analyzer.hpp:88
::genie::PDGCodeList const & ListOfTargetNuclei() override
Definition geom_analyzer.hpp:100
Definition flux_driver.cpp:15
Definition flux_driver.cpp:15
Definition genie_driver_setup.hpp:26
Definition geom_analyzer.hpp:94
TVector3 lo
Definition geom_analyzer.hpp:95
TVector3 hi
Definition geom_analyzer.hpp:95