78 itsBeamline_m(beamline),
79 itsBunch_m(nullptr) {}
82 :
AbstractTracker(beamline, backBeam, backTrack), itsBeamline_m(beamline), itsBunch_m(&bunch) {}
88 throw OpalException(
"Tracker::getBunch",
"No particle bunch is attached to this tracker.");
94 *
gmsg <<
"passed OpalParticle argument not used in Tracker::addToBunch" << endl;
105 "Tracker::visitComponent",
106 "Missing particle reference data in active particle container.");
Template PIC bunch: IPPL PicManager, shared field mesh/solver, and multiple particle containers.
Track particles or bunches.
An abstract sequence of beam line components.
virtual void trackBunch(PartBunch_t &bunch, const PartData &, bool revBeam, bool revTrack) const
Track a borrowed particle bunch through a non-standard component.
const PartData * getReference() const
virtual void visitComponent(const Component &)
Store the bunch.
void addToBunch(const OpalParticle &)
Add particle to bunch.
PartBunch_t & getBunch() const
Return the currently attached borrowed bunch.
PartBunch_t * itsBunch_m
The bunch of particles to be tracked. Borrowed; lifetime is managed by TrackRun.