Class RMGGeomBench

Inheritance Relationships

Base Type

Class Documentation

class RMGGeomBench : public RMGVGenerator

Primary generator that benchmarks geometry navigation on a regular 3D grid.

Shoots geantinos from pixels of three orthogonal sampling planes covering the world volume and measures how long the geometry navigator takes to step through each pixel. Per-pixel timings are aggregated and written by RMGGeomBenchOutputScheme.

Public Functions

RMGGeomBench()
~RMGGeomBench()
RMGGeomBench(RMGGeomBench const&) = delete
RMGGeomBench &operator=(RMGGeomBench const&) = delete
RMGGeomBench(RMGGeomBench&&) = delete
RMGGeomBench &operator=(RMGGeomBench&&) = delete
virtual void GeneratePrimaries(G4Event *event) override

Shoot a geantino from the pixel currently being benchmarked.

inline virtual void SetParticlePosition(G4ThreeVector) override

No-op: vertex sampling is driven by the benchmark grid.

void RecordBatchTime(int pixel_idx, double batch_time)

Append a batch timing to the running median for the given pixel.

void SaveAllPixels()

Flush per-pixel median timings to the benchmark output scheme.

virtual void BeginOfRunAction(const G4Run *r) override

Compute the sampling grid from the user-specified increments and widths.

virtual void EndOfRunAction(const G4Run *r) override

Save aggregated timings to the output scheme.