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
8
namespace
Garfield
{
9
11
12
class
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
27
void
SetEqualSpacing
() {
m_useEqualSpacing
=
true
; }
29
void
SetExponentialSpacing
() {
m_useEqualSpacing
=
false
; }
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
Track.hh
Garfield::TrackSimple::m_mfp
double m_mfp
Definition
TrackSimple.hh:45
Garfield::TrackSimple::SetEqualSpacing
void SetEqualSpacing()
Constant distance between clusters.
Definition
TrackSimple.hh:27
Garfield::TrackSimple::GetClusters
const std::vector< Cluster > & GetClusters() const
Definition
TrackSimple.hh:41
Garfield::TrackSimple::TrackSimple
TrackSimple(Sensor *sensor)
Constructor.
Garfield::TrackSimple::SetStoppingPower
void SetStoppingPower(const double dedx)
Set the stopping power (dE/dx).
Garfield::TrackSimple::m_useEqualSpacing
bool m_useEqualSpacing
Definition
TrackSimple.hh:49
Garfield::TrackSimple::~TrackSimple
virtual ~TrackSimple()
Destructor.
Definition
TrackSimple.hh:24
Garfield::TrackSimple::GetClusterDensity
double GetClusterDensity() override
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionizatio...
Garfield::TrackSimple::SetExponentialSpacing
void SetExponentialSpacing()
Exponentially distributed distance between clusters.
Definition
TrackSimple.hh:29
Garfield::TrackSimple::SetClusterDensity
void SetClusterDensity(const double d)
Set the cluster density (inverse mean free path).
Garfield::TrackSimple::GetStoppingPower
double GetStoppingPower() override
Get the stopping power (mean energy loss [eV] per cm).
Garfield::TrackSimple::m_eloss
double m_eloss
Definition
TrackSimple.hh:47
Garfield::TrackSimple::NewTrack
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,...
Garfield::TrackSimple::TrackSimple
TrackSimple()
Default constructor.
Definition
TrackSimple.hh:20
Garfield::TrackSimple::m_clusters
std::vector< Cluster > m_clusters
Definition
TrackSimple.hh:51
Garfield::Track::Track
Track()=delete
Default constructor.
Garfield
Definition
AvalancheGrid.hh:9
Garfield::TrackSimple::Cluster
Definition
TrackSimple.hh:14
Garfield::TrackSimple::Cluster::y
double y
Definition
TrackSimple.hh:15
Garfield::TrackSimple::Cluster::t
double t
Definition
TrackSimple.hh:15
Garfield::TrackSimple::Cluster::z
double z
Definition
TrackSimple.hh:15
Garfield::TrackSimple::Cluster::x
double x
Definition
TrackSimple.hh:15
Garfield::TrackSimple::Cluster::energy
double energy
Definition
TrackSimple.hh:16
Include
Garfield
TrackSimple.hh
Generated by
1.14.0