Garfield++ 4.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Visualize drift lines and tracks. More...
#include <ViewDrift.hh>
Public Member Functions | |
ViewDrift () | |
Constructor. | |
~ViewDrift ()=default | |
Destructor. | |
void | Clear () |
Delete existing drift lines, tracks and markers. | |
void | Plot (const bool twod=false, const bool axis=true) |
Draw the drift lines. | |
void | Plot2d (const bool axis) |
Make a 2D plot of the drift lines in the current viewing plane. | |
void | Plot3d (const bool axis, const bool ogl) |
Make a 3D plot of the drift lines. | |
void | EnableClusterMarkers (const bool on=true) |
Draw markers (or not) at every collision along a track. | |
void | SetClusterMarkerSize (const double size) |
Set the size of the cluster markers (see TAttMarker). | |
void | SetCollisionMarkerSize (const double size) |
Set the size of the collision markers (see TAttMarker). | |
void | SetColourElectrons (const short col) |
Set the colour with which to draw electron drift lines. | |
void | SetColourHoles (const short col) |
Set the colour with which to draw hole drift lines. | |
void | SetColourIons (const short col) |
Set the colour with which to draw ion drift lines. | |
void | SetColourTracks (const short col) |
Set the colour with which to draw charged particle tracks. | |
void | SetColourPhotons (const short col) |
Set the colour with which to draw photons. | |
void | SetColourExcitations (const short col) |
Set the colour with which to draw excitation markers. | |
void | SetColourIonisations (const short col) |
Set the colour with which to draw ionisation markers. | |
void | SetColourAttachments (const short col) |
Set the colour with which to draw attachment markers. | |
size_t | GetNumberOfDriftLines () const |
Get the number of drift lines stored. | |
void | GetDriftLine (const size_t i, std::vector< std::array< float, 3 > > &driftLine, bool &electron) const |
Retrieve the coordinates of a given drift line. | |
void | NewElectronDriftLine (const size_t np, size_t &id, const float x0, const float y0, const float z0) |
void | NewHoleDriftLine (const size_t np, size_t &id, const float x0, const float y0, const float z0) |
void | NewIonDriftLine (const size_t np, size_t &id, const float x0, const float y0, const float z0) |
void | NewChargedParticleTrack (const size_t np, size_t &id, const float x0, const float y0, const float z0) |
void | SetDriftLinePoint (const size_t iL, const size_t iP, const float x, const float y, const float z) |
void | AddDriftLinePoint (const size_t iL, const float x, const float y, const float z) |
void | SetTrackPoint (const size_t iL, const size_t iP, const float x, const float y, const float z) |
void | AddTrackPoint (const size_t iL, const float x, const float y, const float z) |
void | AddExcitation (const float x, const float y, const float z) |
void | AddIonisation (const float x, const float y, const float z) |
void | AddAttachment (const float x, const float y, const float z) |
void | AddPhoton (const float x0, const float y0, const float z0, const float x1, const float y1, const float z1) |
Public Member Functions inherited from Garfield::ViewBase | |
ViewBase ()=delete | |
Default constructor. | |
ViewBase (const std::string &name) | |
Constructor. | |
virtual | ~ViewBase ()=default |
Destructor. | |
void | SetCanvas (TPad *pad) |
Set the canvas to be painted on. | |
void | SetCanvas () |
Unset an external canvas. | |
TPad * | GetCanvas () |
Retrieve the canvas. | |
void | SetArea (const double xmin, const double ymin, const double xmax, const double ymax) |
virtual void | SetArea (const double xmin, const double ymin, const double zmin, const double xmax, const double ymax, const double zmax) |
Set a bounding box (if applicable). | |
void | SetArea () |
virtual void | SetPlane (const double fx, const double fy, const double fz, const double x0, const double y0, const double z0) |
virtual void | SetPlane (const double fx, const double fy, const double fz, const double x0, const double y0, const double z0, const double hx, const double hy, const double hz) |
Set the projection plane specifying a hint for the in-plane x axis. | |
void | Rotate (const double angle) |
Rotate the viewing plane (angle in radian). | |
void | SetPlaneXY () |
Set the viewing plane to x-y. | |
void | SetPlaneXZ () |
Set the viewing plane to x-z. | |
void | SetPlaneYZ () |
Set the viewing plane to y-z. | |
void | EnableDebugging (const bool on=true) |
Switch on/off debugging output. | |
Friends | |
class | ViewFEMesh |
Additional Inherited Members | |
Static Public Member Functions inherited from Garfield::ViewBase | |
static std::string | FindUnusedFunctionName (const std::string &s) |
Find an unused function name. | |
static std::string | FindUnusedHistogramName (const std::string &s) |
Find an unused histogram name. | |
static std::string | FindUnusedCanvasName (const std::string &s) |
Find an unused canvas name. | |
Protected Member Functions inherited from Garfield::ViewBase | |
void | UpdateProjectionMatrix () |
template<typename T > | |
void | ToPlane (const T x, const T y, const T z, T &xp, T &yp) const |
template<typename T > | |
bool | InBox (const std::array< T, 3 > &x) const |
void | Clip (const std::array< float, 3 > &x0, const std::array< float, 3 > &x1, std::array< float, 3 > &xc) const |
void | DrawLine (const std::vector< std::array< float, 3 > > &xl, const short col, const short lw) |
std::string | LabelX () |
std::string | LabelY () |
std::string | PlaneDescription () |
bool | PlotLimits (Sensor *sensor, double &xmin, double &ymin, double &xmax, double &ymax) const |
bool | PlotLimits (Component *cmp, double &xmin, double &ymin, double &xmax, double &ymax) const |
bool | PlotLimitsFromUserBox (double &xmin, double &ymin, double &xmax, double &ymax) const |
bool | PlotLimits (std::array< double, 3 > &bbmin, std::array< double, 3 > &bbmax, double &xmin, double &ymin, double &xmax, double &ymax) const |
bool | RangeSet (TPad *) |
void | SetRange (TPad *pad, const double x0, const double y0, const double x1, const double y1) |
Protected Attributes inherited from Garfield::ViewBase | |
std::string | m_className = "ViewBase" |
bool | m_debug = false |
bool | m_userPlotLimits = false |
double | m_xMinPlot = -1. |
double | m_xMaxPlot = 1. |
double | m_yMinPlot = -1. |
double | m_yMaxPlot = 1. |
bool | m_userBox = false |
double | m_xMinBox = -1. |
double | m_xMaxBox = 1. |
double | m_yMinBox = -1. |
double | m_yMaxBox = 1. |
double | m_zMinBox = -1. |
double | m_zMaxBox = 1. |
std::array< std::array< double, 3 >, 3 > | m_proj |
std::array< double, 4 > | m_plane {{0, 0, 1, 0}} |
std::array< std::array< double, 3 >, 3 > | m_prmat |
Visualize drift lines and tracks.
Definition at line 18 of file ViewDrift.hh.
Garfield::ViewDrift::ViewDrift | ( | ) |
Constructor.
Definition at line 21 of file ViewDrift.cc.
|
default |
Destructor.
void Garfield::ViewDrift::AddAttachment | ( | const float | x, |
const float | y, | ||
const float | z | ||
) |
Definition at line 179 of file ViewDrift.cc.
void Garfield::ViewDrift::AddDriftLinePoint | ( | const size_t | iL, |
const float | x, | ||
const float | y, | ||
const float | z | ||
) |
Definition at line 135 of file ViewDrift.cc.
void Garfield::ViewDrift::AddExcitation | ( | const float | x, |
const float | y, | ||
const float | z | ||
) |
Definition at line 167 of file ViewDrift.cc.
void Garfield::ViewDrift::AddIonisation | ( | const float | x, |
const float | y, | ||
const float | z | ||
) |
Definition at line 173 of file ViewDrift.cc.
void Garfield::ViewDrift::AddPhoton | ( | const float | x0, |
const float | y0, | ||
const float | z0, | ||
const float | x1, | ||
const float | y1, | ||
const float | z1 | ||
) |
Definition at line 103 of file ViewDrift.cc.
void Garfield::ViewDrift::AddTrackPoint | ( | const size_t | iL, |
const float | x, | ||
const float | y, | ||
const float | z | ||
) |
Definition at line 156 of file ViewDrift.cc.
Referenced by Garfield::Track::PlotCluster().
void Garfield::ViewDrift::Clear | ( | ) |
Delete existing drift lines, tracks and markers.
Definition at line 29 of file ViewDrift.cc.
|
inline |
Draw markers (or not) at every collision along a track.
Definition at line 36 of file ViewDrift.hh.
void Garfield::ViewDrift::GetDriftLine | ( | const size_t | i, |
std::vector< std::array< float, 3 > > & | driftLine, | ||
bool & | electron | ||
) | const |
Retrieve the coordinates of a given drift line.
Definition at line 54 of file ViewDrift.cc.
|
inline |
Get the number of drift lines stored.
Definition at line 60 of file ViewDrift.hh.
void Garfield::ViewDrift::NewChargedParticleTrack | ( | const size_t | np, |
size_t & | id, | ||
const float | x0, | ||
const float | y0, | ||
const float | z0 | ||
) |
Definition at line 111 of file ViewDrift.cc.
Referenced by Garfield::Track::PlotNewTrack().
void Garfield::ViewDrift::NewElectronDriftLine | ( | const size_t | np, |
size_t & | id, | ||
const float | x0, | ||
const float | y0, | ||
const float | z0 | ||
) |
Definition at line 68 of file ViewDrift.cc.
void Garfield::ViewDrift::NewHoleDriftLine | ( | const size_t | np, |
size_t & | id, | ||
const float | x0, | ||
const float | y0, | ||
const float | z0 | ||
) |
Definition at line 81 of file ViewDrift.cc.
void Garfield::ViewDrift::NewIonDriftLine | ( | const size_t | np, |
size_t & | id, | ||
const float | x0, | ||
const float | y0, | ||
const float | z0 | ||
) |
Definition at line 92 of file ViewDrift.cc.
void Garfield::ViewDrift::Plot | ( | const bool | twod = false , |
const bool | axis = true |
||
) |
Draw the drift lines.
Definition at line 185 of file ViewDrift.cc.
Referenced by main().
void Garfield::ViewDrift::Plot2d | ( | const bool | axis | ) |
Make a 2D plot of the drift lines in the current viewing plane.
Definition at line 193 of file ViewDrift.cc.
void Garfield::ViewDrift::Plot3d | ( | const bool | axis, |
const bool | ogl | ||
) |
Make a 3D plot of the drift lines.
Definition at line 309 of file ViewDrift.cc.
Referenced by Plot().
void Garfield::ViewDrift::SetClusterMarkerSize | ( | const double | size | ) |
Set the size of the cluster markers (see TAttMarker).
Definition at line 38 of file ViewDrift.cc.
Referenced by main().
void Garfield::ViewDrift::SetCollisionMarkerSize | ( | const double | size | ) |
Set the size of the collision markers (see TAttMarker).
Definition at line 46 of file ViewDrift.cc.
Referenced by main().
|
inline |
Set the colour with which to draw attachment markers.
Definition at line 57 of file ViewDrift.hh.
|
inline |
Set the colour with which to draw electron drift lines.
Definition at line 43 of file ViewDrift.hh.
|
inline |
Set the colour with which to draw excitation markers.
Definition at line 53 of file ViewDrift.hh.
|
inline |
Set the colour with which to draw hole drift lines.
Definition at line 45 of file ViewDrift.hh.
|
inline |
Set the colour with which to draw ionisation markers.
Definition at line 55 of file ViewDrift.hh.
|
inline |
Set the colour with which to draw ion drift lines.
Definition at line 47 of file ViewDrift.hh.
|
inline |
Set the colour with which to draw photons.
Definition at line 51 of file ViewDrift.hh.
|
inline |
Set the colour with which to draw charged particle tracks.
Definition at line 49 of file ViewDrift.hh.
void Garfield::ViewDrift::SetDriftLinePoint | ( | const size_t | iL, |
const size_t | iP, | ||
const float | x, | ||
const float | y, | ||
const float | z | ||
) |
Definition at line 124 of file ViewDrift.cc.
void Garfield::ViewDrift::SetTrackPoint | ( | const size_t | iL, |
const size_t | iP, | ||
const float | x, | ||
const float | y, | ||
const float | z | ||
) |
Definition at line 146 of file ViewDrift.cc.
|
friend |
Definition at line 91 of file ViewDrift.hh.