Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
Loading...
Searching...
No Matches
TrackSimple.hh
Go to the documentation of this file.
1#ifndef G_TRACK_SIMPLE_H
2#define G_TRACK_SIMPLE_H
3
4#include <vector>
5
6#include "Garfield/Track.hh"
7
8namespace Garfield {
9
11
12class TrackSimple : public Track {
13 public:
14 struct Cluster {
15 double x, y, z, t;
16 double energy;
17 };
18
20 TrackSimple() : TrackSimple(nullptr) {}
22 TrackSimple(Sensor* sensor);
24 virtual ~TrackSimple() {}
25
30
32 void SetClusterDensity(const double d);
33 double GetClusterDensity() override;
35 void SetStoppingPower(const double dedx);
36 double GetStoppingPower() override;
37
38 bool NewTrack(const double x0, const double y0, const double z0,
39 const double t0, const double dx0, const double dy0,
40 const double dz0) override;
41 const std::vector<Cluster>& GetClusters() const { return m_clusters; }
42
43 protected:
44 // Mean free path (mean spacing between adjacent clusters)
45 double m_mfp = 0.04;
46 // Average energy per cluster
47 double m_eloss = 2530.;
48
49 bool m_useEqualSpacing = false;
50
51 std::vector<Cluster> m_clusters;
52};
53} // namespace Garfield
54
55#endif
void SetEqualSpacing()
Constant distance between clusters.
const std::vector< Cluster > & GetClusters() const
TrackSimple(Sensor *sensor)
Constructor.
void SetStoppingPower(const double dedx)
Set the stopping power (dE/dx).
virtual ~TrackSimple()
Destructor.
double GetClusterDensity() override
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionizatio...
void SetExponentialSpacing()
Exponentially distributed distance between clusters.
void SetClusterDensity(const double d)
Set the cluster density (inverse mean free path).
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,...
TrackSimple()
Default constructor.
std::vector< Cluster > m_clusters
Track()=delete
Default constructor.