19#ifndef BDSTRAJECTORYPRIMARY_H
20#define BDSTRAJECTORYPRIMARY_H
22#include "BDSTrajectory.hh"
24#include "G4Allocator.hh"
35 struct TrajectoryOptions;
54 G4bool storeTrajectoryPointsIn);
64 inline void*
operator new(size_t);
65 inline void operator delete(
void*);
103extern G4Allocator<BDSTrajectoryPrimary> bdsTrajectoryPrimaryAllocator;
105inline void* BDSTrajectoryPrimary::operator
new(size_t)
108 aTrajectory = (
void*)bdsTrajectoryPrimaryAllocator.MallocSingle();
112inline void BDSTrajectoryPrimary::operator
delete(
void* aTrajectory)
A Point in a trajectory with extra information.
Trajectory information for only the primary.
friend std::ostream & operator<<(std::ostream &out, BDSTrajectoryPrimary const &t)
Output stream.
const BDSTrajectoryPoint * LastPoint() const
Accessor.
virtual void AppendStep(const G4Step *aStep)
G4bool HasHitSomething() const
BDSTrajectoryPoint * firstHit
Point owned by this class for the first scattering point.
const BDSTrajectoryPoint * FirstHit() const
Accessor.
static G4bool hasScatteredThisTurn
BDSTrajectoryPoint * lastPoint
Point owned by this class for the last-most point.
BDSTrajectoryPrimary(BDSTrajectoryPrimary &)=delete
copy constructor is not needed
const G4bool storeTrajectoryPoints
Whether to use base class to store all points.
BDSTrajectoryPrimary()=delete
No default constructor required.
virtual G4bool IsPrimary() const
Override and return true always.
virtual void MergeTrajectory(G4VTrajectory *secondTrajectory)
Trajectory information from track including last scatter etc.
Return either G4Tubs or G4CutTubs depending on flat face.