20 virtual bool NewTrack(
const double x0,
const double y0,
const double z0,
21 const double t0,
const double dx0,
const double dy0,
24 virtual bool GetCluster(
double& xcls,
double& ycls,
double& zcls,
25 double& tcls,
int& ncls,
double& ecls,
double& extra);
34 double m_x = 0., m_y = 0., m_z = 0., m_t = 0.;
35 double m_dx = 0., m_dy = 0., m_dz = 0.;
53 std::vector<opticalData> m_opticalDataTable;
56 std::vector<double> m_energies;
57 std::vector<double> m_cdf;
58 std::vector<double> m_rutherford;
68 std::vector<electron> m_electrons;
69 std::vector<electron> m_holes;
72 std::string m_mediumName =
"";
73 double m_mediumDensity = 0.;
74 double m_electronDensity = 0.;
76 bool SetupMedium(Medium* medium);
77 bool SetupCrossSectionTable();
79 double ComputeMaxTransfer()
const;
81 double ComputeCsTail(
const double emin,
const double emax);
82 double ComputeDeDxTail(
const double emin,
const double emax);
84 double SampleEnergyDeposit(
const double u,
double& f)
const;
85 double SampleAsymptoticCs(
double u)
const;
86 double SampleAsymptoticCsSpinZero(
const double emin,
double u)
const;
87 double SampleAsymptoticCsSpinHalf(
const double emin,
double u)
const;
88 double SampleAsymptoticCsSpinOne(
const double emin,
double u)
const;
89 double SampleAsymptoticCsElectron(
const double emin,
double u)
const;
90 double SampleAsymptoticCsPositron(
const double emin,
double u)
const;
92 double LossFunction(
const double eps1,
const double eps2)
const {
93 const double eps = eps1 * eps1 + eps2 * eps2;
94 return eps > 0. ? eps2 / eps : 0.;
Energy loss calculation using the Photoabsorption-Ionisation Model.
virtual bool GetCluster(double &xcls, double &ycls, double &zcls, double &tcls, int &ncls, double &ecls, double &extra)
virtual double GetStoppingPower()
Get the stopping power (mean energy loss [eV] per cm).
virtual bool NewTrack(const double x0, const double y0, const double z0, const double t0, const double dx0, const double dy0, const double dz0)
virtual double GetClusterDensity()
Abstract base class for track generation.