19#include "BDSBeamline.hh"
20#include "BDSBeamlineElement.hh"
21#include "BDSTrajectoryPoint.hh"
22#include "BDSTrajectoryPrimary.hh"
25#include "G4Allocator.hh"
28#include "G4TrajectoryContainer.hh"
33G4Allocator<BDSTrajectoryPrimary> bdsTrajectoryPrimaryAllocator;
39 G4bool storeTrajectoryPointsIn):
45 storeTrajectoryPoints(storeTrajectoryPointsIn)
48BDSTrajectoryPrimary::~BDSTrajectoryPrimary()
56 if (aStep->GetTrack()->GetTrackStatus() != G4TrackStatus::fAlive)
93 if (prim->LastPoint())
105 {out <<
"First hit: " << t.
firstHit << G4endl;}
107 {out <<
"No first hit" << G4endl;}
109 {out <<
"Last point: " << t.
lastPoint << G4endl;}
111 {out <<
"No last point" << G4endl;}
A Point in a trajectory with extra information.
G4bool IsScatteringPoint() const
Trajectory information for only the primary.
virtual void AppendStep(const G4Step *aStep)
BDSTrajectoryPoint * firstHit
Point owned by this class for the first scattering point.
static G4bool hasScatteredThisTurn
BDSTrajectoryPoint * lastPoint
Point owned by this class for the last-most point.
const G4bool storeTrajectoryPoints
Whether to use base class to store all points.
BDSTrajectoryPrimary()=delete
No default constructor required.
virtual void MergeTrajectory(G4VTrajectory *secondTrajectory)
Trajectory information from track including last scatter etc.
virtual void MergeTrajectory(G4VTrajectory *secondTrajectory)
Merge another trajectory into this one.
virtual void AppendStep(const G4Step *aStep)