Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
Loading...
Searching...
No Matches
Garfield::ViewGeometry Class Reference

Visualize a geometry defined using the "native" shapes. More...

#include <ViewGeometry.hh>

Inheritance diagram for Garfield::ViewGeometry:
Garfield::ViewBase

Public Member Functions

 ViewGeometry ()
 Default constructor.
 ViewGeometry (GeometrySimple *geo)
 Constructor.
 ~ViewGeometry ()
 Destructor.
void SetGeometry (GeometrySimple *geo)
 Set the geometry to be drawn.
void Plot (const bool twod=false)
 Draw the geometry.
void Plot2d ()
 Draw a cut through the geometry at the current viewing plane.
void Plot3d ()
 Draw a three-dimensional view of the geometry.
void PlotPanels ()
 Draw the surface panels.
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)
 Set the x- and y-axis limits (in local coordinates of the current viewing plane, if applicable).
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 ()
 Use default x- and y-axis limits (based on the bounding box of the sensor/component, if applicable).
virtual void SetPlane (const double fx, const double fy, const double fz, const double x0, const double y0, const double z0)
 Set the projection (viewing plane), if applicable.
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 SetPlaneZX ()
 Set the viewing plane to z-x.
void SetPlaneZY ()
 Set the viewing plane to z-y.
void EnableDebugging (const bool on=true)
 Switch on/off debugging output.

Private Member Functions

void Reset ()

Private Attributes

GeometrySimplem_geometry = nullptr
std::vector< TGeoVolume * > m_volumes
std::vector< TGeoMedium * > m_media
std::unique_ptr< TGeoManager > m_geoManager

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
Static Protected Member Functions inherited from Garfield::ViewBase
static bool RangeSet (TVirtualPad *)
static void SetRange (TVirtualPad *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

Detailed Description

Visualize a geometry defined using the "native" shapes.

Definition at line 17 of file ViewGeometry.hh.

Constructor & Destructor Documentation

◆ ViewGeometry() [1/2]

Garfield::ViewGeometry::ViewGeometry ( )
inline

Default constructor.

Definition at line 20 of file ViewGeometry.hh.

20: ViewGeometry(nullptr) {}
ViewGeometry()
Default constructor.

◆ ViewGeometry() [2/2]

Garfield::ViewGeometry::ViewGeometry ( GeometrySimple * geo)

Constructor.

◆ ~ViewGeometry()

Garfield::ViewGeometry::~ViewGeometry ( )

Destructor.

Member Function Documentation

◆ Plot()

void Garfield::ViewGeometry::Plot ( const bool twod = false)

Draw the geometry.

◆ Plot2d()

void Garfield::ViewGeometry::Plot2d ( )

Draw a cut through the geometry at the current viewing plane.

◆ Plot3d()

void Garfield::ViewGeometry::Plot3d ( )

Draw a three-dimensional view of the geometry.

◆ PlotPanels()

void Garfield::ViewGeometry::PlotPanels ( )

Draw the surface panels.

◆ Reset()

void Garfield::ViewGeometry::Reset ( )
private

◆ SetGeometry()

void Garfield::ViewGeometry::SetGeometry ( GeometrySimple * geo)

Set the geometry to be drawn.

Member Data Documentation

◆ m_geoManager

std::unique_ptr<TGeoManager> Garfield::ViewGeometry::m_geoManager
private

Definition at line 43 of file ViewGeometry.hh.

◆ m_geometry

GeometrySimple* Garfield::ViewGeometry::m_geometry = nullptr
private

Definition at line 38 of file ViewGeometry.hh.

◆ m_media

std::vector<TGeoMedium*> Garfield::ViewGeometry::m_media
private

Definition at line 41 of file ViewGeometry.hh.

◆ m_volumes

std::vector<TGeoVolume*> Garfield::ViewGeometry::m_volumes
private

Definition at line 40 of file ViewGeometry.hh.


The documentation for this class was generated from the following file: