24 bool ReadFile(
const std::string& file,
const unsigned int nIons = 0,
25 const unsigned int nSkip = 0);
65 bool NewTrack(
const double x0,
const double y0,
const double z0,
66 const double t0,
const double dx0,
const double dy0,
67 const double dz0)
override;
68 bool GetCluster(
double& xc,
double& yc,
double& zc,
double& tc,
int& nc,
69 double& ec,
double& extra)
override;
85 std::vector<std::vector<std::array<float, 6> > >
m_ions;
99 void AddIon(
const std::vector<float>& x,
const std::vector<float>& y,
100 const std::vector<float>& z,
const std::vector<float>& dedx,
101 const std::vector<float>& ekin);
double m_ekin
Projectile energy [eV].
void EnableStepSizeLimit(const double dmax)
Set a max. distance between subsequent steps.
size_t m_cluster
Index of the next cluster to be returned.
void SetParticle(const std::string &part) override
void AddIon(const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z, const std::vector< float > &dedx, const std::vector< float > &ekin)
double GetWorkFunction() const
Get the W value [eV].
TrackTrim()
Default constructor.
void DisableStepSizeLimit()
Do not reduce the steps with respect to the TRIM input file (default).
std::vector< Cluster > m_clusters
Clusters on the current track.
bool m_fset
Has the Fano factor been set?
double m_fano
Fano factor [-] of the target.
void DisableEnergyLossLimit()
void SetWorkFunction(const double w)
Set the W value [eV].
size_t m_ion
Index of the current track.
void EnableEnergyLossLimit(const double emax)
Set a max. energy loss per cluster.
virtual ~TrackTrim()
Destructor.
double m_work
Work function [eV] of the target.
bool GetCluster(double &xc, double &yc, double &zc, double &tc, int &nc, double &ec, double &extra) override
void Print()
Print a summary of the available TRIM data.
const std::vector< Cluster > & GetClusters() const
void SetFanoFactor(const double f)
Set the Fano factor.
void SetCharge(const double q)
Set the projectile charge [-].
void UnsetFanoFactor()
Use the default Fano factor.
double m_maxLossPerStep
Energy loss limit per step.
double GetFanoFactor() const
Get the Fano factor.
bool ReadFile(const std::string &file, const unsigned int nIons=0, const unsigned int nSkip=0)
Load data from an EXYZ.txt file.
double m_maxStepSize
Step size limit.
bool NewTrack(const double x0, const double y0, const double z0, const double t0, const double dx0, const double dy0, const double dz0) override
std::vector< std::vector< std::array< float, 6 > > > m_ions
List of tracks.
Track()=delete
Default constructor.
double energy
Energy spent to make the cluster.
int n
Number of electrons in this cluster.
double ekin
Ion energy when cluster was created.