1#ifndef G_TRACK_BICHSEL_H
2#define G_TRACK_BICHSEL_H
32 bool NewTrack(
const double x0,
const double y0,
const double z0,
33 const double t0,
const double dx0,
const double dy0,
34 const double dz0)
override;
45 std::array<double, NEnergyBins + 1>
m_E;
48 std::array<double, NEnergyBins>
m_dfdE;
50 std::array<double, NEnergyBins>
m_eps1;
52 std::array<double, NEnergyBins>
m_eps2;
54 std::array<double, NEnergyBins>
m_int;
56 std::array<double, NEnergyBins>
m_k1;
59 std::array<double, NCdfBins>
m_tab;
double m_conv
Conversion from optical loss function to oscillator strength density.
std::array< double, NEnergyBins > m_int
Integral over the generalised oscillator strength density.
std::array< double, NCdfBins > m_tab
std::array< double, NEnergyBins > m_eps2
Imaginary part of the dielectric function.
double m_density
Density of silicon.
std::array< double, NEnergyBins > m_k1
Lower limit of the integral over the GOS.
std::vector< Cluster > m_clusters
const std::vector< Cluster > & GetClusters() const
std::array< double, NEnergyBins > m_dfdE
Optical oscillator strength density.
double GetClusterDensity() override
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionizatio...
static constexpr size_t NEnergyBins
double GetStoppingPower() override
Get the stopping power (mean energy loss [eV] per cm).
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,...
double m_dEdx
Stopping power [eV/cm].
double m_imfp
Inverse mean free path [cm-1].
static constexpr size_t NCdfBins
std::array< double, NEnergyBins > m_eps1
Real part of the dielectric function.
std::array< double, NEnergyBins+1 > m_E
double m_speed
Particle speed.
virtual ~TrackBichsel()
Destructor.
bool ComputeCrossSection()
TrackBichsel()
Default constructor.
TrackBichsel(Sensor *sensor)
Constructor.
Track()=delete
Default constructor.