1#ifndef G_TRACK_DEGRADE_H
2#define G_TRACK_DEGRADE_H
49 bool NewTrack(
const double x0,
const double y0,
const double z0,
50 const double t0,
const double dx0,
const double dy0,
51 const double dz0)
override;
56 bool Initialise(Medium* medium,
const bool verbose =
false);
95 std::pair<std::vector<Electron>, std::vector<Excitation> >
97 const double t0,
const double e0,
const double dx,
98 const double dy,
const double dz);
101 std::array<double, 6>& dP);
102 bool IsInside(
const double x,
const double y,
const double z);
virtual ~TrackDegrade()
Destructor.
std::array< double, 6 > m_dPenning
void SetThresholdEnergy(const double eth)
Set the energy down to which electrons are tracked (default: 2 eV).
void EnableFullCascade(const bool on=true)
Enable or disable detailed simulation of the deexcitation cascade.
double GetClusterDensity() override
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionizatio...
std::pair< std::vector< Electron >, std::vector< Excitation > > TransportDeltaElectron(const double x0, const double y0, const double z0, const double t0, const double e0, const double dx, const double dy, const double dz)
std::vector< Cluster > m_clusters
double GetStoppingPower() override
Get the stopping power (mean energy loss [eV] per cm).
TrackDegrade()
Default constructor.
void EnableBremsstrahlung(const bool on=true)
Enable or disable bremsstrahlung.
void SetupPenning(Medium *medium, std::array< double, 6 > &rP, std::array< double, 6 > &dP)
std::array< double, 6 > m_rPenning
bool NewTrack(const double x0, const double y0, const double z0, const double t0, const double dx0, const double dy0, const double dz0) override
Calculate a new track starting from (x0, y0, z0) at time t0 in direction (dx0, dy0,...
TrackDegrade(Sensor *sensor)
Constructor.
void SetParticle(const std::string &particle) override
Set the type of charged particle.
bool IsInside(const double x, const double y, const double z)
const std::vector< Cluster > & GetClusters() const
bool Initialise(Medium *medium, const bool verbose=false)
void StoreExcitations(const bool on=true, const double thr=4.)
Store excitations in the cluster or not (off by default).
Track()=delete
Default constructor.
std::vector< Electron > electrons
std::vector< Electron > deltaElectrons
std::vector< Excitation > excitations