6#include <G4Navigator.hh>
7#include <G4ThreeVector.hh>
13class G4VPhysicalVolume;
68 [[nodiscard]]
RayScan scan(
const G4ThreeVector& origin,
const G4ThreeVector& direction)
const;
71 G4VPhysicalVolume* m_world{
nullptr};
72 mutable G4Navigator m_navigator;
Straight-line material scanner over a Geant4 geometry.
Definition G4RayScanner.h:46
G4RayScanner(G4RayScanner &&)=delete
RayScan scan(const G4ThreeVector &origin, const G4ThreeVector &direction) const
Ordered material segments from origin (mm) along direction (normalised internally) up to the world bo...
Definition G4RayScanner.cpp:52
G4RayScanner & operator=(const G4RayScanner &)=delete
G4RayScanner(const G4RayScanner &)=delete
~G4RayScanner()
Re-opens the scanned tree and removes the private placement (skipped if another Geant4 user already c...
Definition G4RayScanner.cpp:38
G4RayScanner & operator=(G4RayScanner &&)=delete
Definition G4RayScanner.h:15
Result of a ray scan: where the ray entered the world and what it crossed.
Definition G4RayScanner.h:24
std::vector< RaySegment > segments
ordered material segments (mm)
Definition G4RayScanner.h:27
double entry
distance (mm) from the ray origin to the start of the first segment
Definition G4RayScanner.h:25
One material segment along a straight ray, in Geant4 native units (mm).
Definition G4RayScanner.h:18
double length
mm
Definition G4RayScanner.h:20
const G4Material * material
borrowed from the Geant4 geometry
Definition G4RayScanner.h:19