1#ifndef G_TRACK_DEGRADE_H
2#define G_TRACK_DEGRADE_H
48 bool NewTrack(
const double x0,
const double y0,
const double z0,
49 const double t0,
const double dx0,
const double dy0,
50 const double dz0)
override;
51 bool GetCluster(
double& xc,
double& yc,
double& zc,
52 double& tc,
int& ne,
double& ec,
double& extra)
override;
71 void SetParticle(
const std::string& particle)
override;
97 std::pair<std::vector<Electron>,
99 const double x0,
const double y0,
const double z0,
const double t0,
100 const double e0,
const double dx,
const double dy,
const double dz);
103 std::array<double, 6>& dP);
104 bool IsInside(
const double x,
const double y,
const double z);
Abstract base class for media.
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
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 GetCluster(double &xc, double &yc, double &zc, double &tc, int &ne, double &ec, double &extra) override
bool NewTrack(const double x0, const double y0, const double z0, const double t0, const double dx0, const double dy0, const double dz0) override
void SetParticle(const std::string &particle) override
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