75 virtual bool NewTrack(
const double x0,
const double y0,
const double z0,
76 const double t0,
const double dx0,
const double dy0,
77 const double dz0) = 0;
116 void PlotCluster(
const double x0,
const double y0,
const double z0);
118 static std::array<double, 3>
StepBfield(
const double dt,
const double qoverm,
119 const double vmag,
double bx,
120 double by,
double bz,
121 std::array<double, 3>& dir);
double GetMass() const
Get the mass [eV / c2] of the projectile.
double GetKineticEnergy() const
Return the kinetic energy of the projectile.
void DisablePlotting()
Switch off plotting.
double GetEnergy() const
Return the particle energy.
double GetBetaGamma() const
Return the of the projectile.
void EnablePlotting(ViewDrift *viewer)
Switch on plotting.
void SetBetaGamma(const double bg)
Set the relative momentum of the particle.
double GetBeta() const
Return the speed ( ) of the projectile.
double GetGamma() const
Return the Lorentz factor of the projectile.
double GetCharge() const
Get the charge of the projectile.
virtual double GetClusterDensity()
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionizatio...
void SetSensor(Sensor *s)
Set the sensor through which to transport the particle.
static std::array< double, 3 > StepBfield(const double dt, const double qoverm, const double vmag, double bx, double by, double bz, std::array< double, 3 > &dir)
Track(const std::string &name)
Constructor.
virtual void SetParticle(const std::string &part)
Set the type of charged particle.
void SetKineticEnergy(const double ekin)
Set the kinetic energy of the particle.
virtual ~Track()
Destructor.
void SetMomentum(const double p)
Set the particle momentum.
void EnableDebugging()
Switch on debugging messages.
std::string m_particleName
void PlotCluster(const double x0, const double y0, const double z0)
virtual bool NewTrack(const double x0, const double y0, const double z0, const double t0, const double dx0, const double dy0, const double dz0)=0
Calculate a new track starting from (x0, y0, z0) at time t0 in direction (dx0, dy0,...
void SetEnergy(const double e)
Set the particle energy.
void SetGamma(const double gamma)
Set the Lorentz factor of the particle.
Track()=delete
Default constructor.
void SetBeta(const double beta)
Set the speed ( ) of the particle.
double GetMomentum() const
Return the particle momentum.
virtual double GetStoppingPower()
Get the stopping power (mean energy loss [eV] per cm).
void DisableDebugging()
Switch off debugging messages.
void PlotNewTrack(const double x0, const double y0, const double z0)
Visualize drift lines and tracks.