Calculate avalanches in a uniform electric field using avalanche statistics.
More...
#include <AvalancheGrid.hh>
|
| | AvalancheGrid () |
| | Default constructor.
|
| | AvalancheGrid (Sensor *sensor) |
| | Constructor.
|
| | ~AvalancheGrid ()=default |
| | Destructor.
|
| void | SetSensor (Sensor *sensor) |
| | Set the sensor.
|
| void | StartGridAvalanche () |
| | Start grid based avalanche simulation.
|
| void | SetElectronVelocity (const double vx, const double vy, const double vz) |
| | Set the electron drift velocity (in cm / ns).
|
| void | SetElectronTownsend (const double town) |
| | Set the electron Townsend coefficient (in 1 / cm).
|
| void | SetElectronAttachment (const double att) |
| | Set the electron attachment coefficient (in 1 / cm).
|
| void | SetMaxAvalancheSize (const double size) |
| | Set the maximum avalanche size (1e7 by default).
|
| void | AddElectron (const double x, const double y, const double z, const double t=0, const int n=1) |
| | Add an electron to the initial configuration.
|
| void | AddElectrons (AvalancheMicroscopic *avmc) |
| | Import electrons from AvalancheMicroscopic object.
|
| void | SetGrid (const double xmin, const double xmax, const int xsteps, const double ymin, const double ymax, const int ysteps, const double zmin, const double zmax, const int zsteps) |
| | Set the grid.
|
| int | GetAmountOfStartingElectrons () |
| | Returns the initial number of electrons in the avalanche.
|
| int | GetAvalancheSize () |
| | Returns the final number of electrons in the avalanche.
|
| void | EnableDebugging () |
| void | Reset () |
Calculate avalanches in a uniform electric field using avalanche statistics.
Definition at line 16 of file AvalancheGrid.hh.
◆ AvalancheGrid() [1/2]
| Garfield::AvalancheGrid::AvalancheGrid |
( |
| ) |
|
|
inline |
Default constructor.
Definition at line 19 of file AvalancheGrid.hh.
AvalancheGrid()
Default constructor.
◆ AvalancheGrid() [2/2]
| Garfield::AvalancheGrid::AvalancheGrid |
( |
Sensor * | sensor | ) |
|
◆ ~AvalancheGrid()
| Garfield::AvalancheGrid::~AvalancheGrid |
( |
| ) |
|
|
default |
◆ AddElectron()
| void Garfield::AvalancheGrid::AddElectron |
( |
const double | x, |
|
|
const double | y, |
|
|
const double | z, |
|
|
const double | t = 0, |
|
|
const int | n = 1 ) |
Add an electron to the initial configuration.
- Parameters
-
| x | x-coordinate of initial electron. |
| y | y-coordinate of initial electron. |
| z | t-coordinate of initial electron. |
| t | starting time of avalanche. |
| n | number of electrons at this point. |
◆ AddElectrons()
◆ DeactivateNode()
| void Garfield::AvalancheGrid::DeactivateNode |
( |
AvalancheNode & | node | ) |
|
|
private |
◆ EnableDebugging()
| void Garfield::AvalancheGrid::EnableDebugging |
( |
| ) |
|
|
inline |
◆ GetAmountOfStartingElectrons()
| int Garfield::AvalancheGrid::GetAmountOfStartingElectrons |
( |
| ) |
|
|
inline |
Returns the initial number of electrons in the avalanche.
Definition at line 75 of file AvalancheGrid.hh.
◆ GetAvalancheSize()
| int Garfield::AvalancheGrid::GetAvalancheSize |
( |
| ) |
|
|
inline |
Returns the final number of electrons in the avalanche.
Definition at line 77 of file AvalancheGrid.hh.
int m_nTotal
Total amount of charge.
◆ GetParameters()
| bool Garfield::AvalancheGrid::GetParameters |
( |
AvalancheNode & | node | ) |
|
|
private |
◆ NextAvalancheGridPoint()
| void Garfield::AvalancheGrid::NextAvalancheGridPoint |
( |
| ) |
|
|
private |
◆ Reset()
| void Garfield::AvalancheGrid::Reset |
( |
| ) |
|
◆ SetElectronAttachment()
| void Garfield::AvalancheGrid::SetElectronAttachment |
( |
const double | att | ) |
|
|
inline |
Set the electron attachment coefficient (in 1 / cm).
Definition at line 44 of file AvalancheGrid.hh.
◆ SetElectronTownsend()
| void Garfield::AvalancheGrid::SetElectronTownsend |
( |
const double | town | ) |
|
|
inline |
Set the electron Townsend coefficient (in 1 / cm).
Definition at line 42 of file AvalancheGrid.hh.
◆ SetElectronVelocity()
| void Garfield::AvalancheGrid::SetElectronVelocity |
( |
const double | vx, |
|
|
const double | vy, |
|
|
const double | vz ) |
|
inline |
Set the electron drift velocity (in cm / ns).
Definition at line 31 of file AvalancheGrid.hh.
31 {
32 double vel = std::sqrt(vx * vx + vy * vy + vz * vz);
33 if (vel != std::abs(vx) && vel != std::abs(vy) && vel != std::abs(vz))
34 return;
35 int nx = (int)vx / vel;
36 int ny = (int)vy / vel;
37 int nz = (int)vz / vel;
40 }
std::vector< int > m_velNormal
◆ SetGrid()
| void Garfield::AvalancheGrid::SetGrid |
( |
const double | xmin, |
|
|
const double | xmax, |
|
|
const int | xsteps, |
|
|
const double | ymin, |
|
|
const double | ymax, |
|
|
const int | ysteps, |
|
|
const double | zmin, |
|
|
const double | zmax, |
|
|
const int | zsteps ) |
Set the grid.
- Parameters
-
| xmin,xmax | x-coordinate range of the grid [cm]. |
| xsteps | number of x-coordinate points in the grid. |
| ymin,ymax | y-coordinate range of the grid [cm]. |
| ysteps | number of y-coordinate points in the grid. |
| zmin,zmax | z-coordinate range of the grid [cm]. |
| zsteps | number of z-coordinate points in the grid. |
◆ SetMaxAvalancheSize()
| void Garfield::AvalancheGrid::SetMaxAvalancheSize |
( |
const double | size | ) |
|
|
inline |
Set the maximum avalanche size (1e7 by default).
Definition at line 46 of file AvalancheGrid.hh.
◆ SetSensor()
| void Garfield::AvalancheGrid::SetSensor |
( |
Sensor * | sensor | ) |
|
|
inline |
◆ SnapToGrid()
| bool Garfield::AvalancheGrid::SnapToGrid |
( |
const double | x, |
|
|
const double | y, |
|
|
const double | z, |
|
|
const double | v, |
|
|
const int | n = 1 ) |
|
private |
◆ StartGridAvalanche()
| void Garfield::AvalancheGrid::StartGridAvalanche |
( |
| ) |
|
Start grid based avalanche simulation.
◆ m_activeNodes
| std::vector<AvalancheNode> Garfield::AvalancheGrid::m_activeNodes = {} |
|
private |
◆ m_Attachment
| double Garfield::AvalancheGrid::m_Attachment = -1 |
|
private |
◆ m_className
| std::string Garfield::AvalancheGrid::m_className = "AvalancheGrid" |
|
private |
◆ m_debug
| bool Garfield::AvalancheGrid::m_debug = false |
|
private |
◆ m_gridset
| bool Garfield::AvalancheGrid::m_gridset = false |
|
private |
◆ m_MaxSize
| double Garfield::AvalancheGrid::m_MaxSize = 1.6e7 |
|
private |
◆ m_nestart
| int Garfield::AvalancheGrid::m_nestart = 0. |
|
private |
◆ m_nLayer
| std::vector<double> Garfield::AvalancheGrid::m_nLayer |
|
private |
◆ m_nTotal
| int Garfield::AvalancheGrid::m_nTotal = 0 |
|
private |
◆ m_printPar
| bool Garfield::AvalancheGrid::m_printPar = false |
|
private |
◆ m_run
| bool Garfield::AvalancheGrid::m_run = true |
|
private |
Tracking if the charges are still in the drift gap.
Definition at line 122 of file AvalancheGrid.hh.
◆ m_Saturated
| bool Garfield::AvalancheGrid::m_Saturated = false |
|
private |
◆ m_SaturationTime
| double Garfield::AvalancheGrid::m_SaturationTime = -1. |
|
private |
◆ m_sensor
| Sensor* Garfield::AvalancheGrid::m_sensor = nullptr |
|
private |
◆ m_time
| double Garfield::AvalancheGrid::m_time = 0 |
|
private |
◆ m_Townsend
| double Garfield::AvalancheGrid::m_Townsend = -1 |
|
private |
◆ m_velNormal
| std::vector<int> Garfield::AvalancheGrid::m_velNormal = {0, 0, 0} |
|
private |
◆ m_Velocity
| double Garfield::AvalancheGrid::m_Velocity = 0. |
|
private |
◆ m_xgrid
| std::vector<double> Garfield::AvalancheGrid::m_xgrid |
|
private |
◆ m_xStepSize
| double Garfield::AvalancheGrid::m_xStepSize = 0. |
|
private |
◆ m_ygrid
| std::vector<double> Garfield::AvalancheGrid::m_ygrid |
|
private |
◆ m_yStepSize
| double Garfield::AvalancheGrid::m_yStepSize = 0. |
|
private |
◆ m_zgrid
| std::vector<double> Garfield::AvalancheGrid::m_zgrid |
|
private |
◆ m_zStepSize
| double Garfield::AvalancheGrid::m_zStepSize = 0. |
|
private |
The documentation for this class was generated from the following file: