29 void Plot(
const bool twod =
false,
const bool axis =
true);
31 void Plot2d(
const bool axis);
33 void Plot3d(
const bool axis,
const bool ogl);
63 std::vector<std::array<float, 3> >& driftLine,
64 bool& electron)
const;
68 const float y0,
const float z0);
70 const float y0,
const float z0);
72 const float y0,
const float z0);
74 const float y0,
const float z0);
77 const float x,
const float y,
const float z);
81 const float x,
const float y,
const float z);
82 void AddTrackPoint(
const size_t iL,
const float x,
const float y,
84 void AddExcitation(
const float x,
const float y,
const float z);
85 void AddIonisation(
const float x,
const float y,
const float z);
86 void AddAttachment(
const float x,
const float y,
const float z);
88 void AddPhoton(
const float x0,
const float y0,
const float z0,
89 const float x1,
const float y1,
const float z1);
101 std::vector<std::pair<std::vector<std::array<float, 3> >,
102 Particle> > m_driftLines;
104 std::vector<std::vector<std::array<float, 3> > > m_tracks;
105 std::vector<std::array<std::array<float, 3>, 2> > m_photons;
107 std::vector<std::array<float, 3> > m_exc;
108 std::vector<std::array<float, 3> > m_ion;
109 std::vector<std::array<float, 3> > m_att;
111 double m_markerSizeCluster = 0.01;
112 double m_markerSizeCollision = 0.5;
114 short m_colTrack = kGreen + 3;
115 short m_colPhoton = kBlue + 1;
116 short m_colElectron = kOrange - 3;
117 short m_colHole = kRed + 1;
118 short m_colIon = kRed + 1;
119 short m_colExcitation = kGreen + 3;
120 short m_colIonisation = kOrange - 3;
121 short m_colAttachment = kCyan + 3;
123 bool m_drawClusters =
false;
125 bool SetPlotLimits2d();
126 bool SetPlotLimits3d();
Base class for visualization classes.
Visualize drift lines and tracks.
void AddIonisation(const float x, const float y, const float z)
void EnableClusterMarkers(const bool on=true)
Draw markers (or not) at every collision along a track.
void NewHoleDriftLine(const size_t np, size_t &id, const float x0, const float y0, const float z0)
void SetColourPhotons(const short col)
Set the colour with which to draw photons.
void AddDriftLinePoint(const size_t iL, const float x, const float y, const float z)
void Plot(const bool twod=false, const bool axis=true)
Draw the drift lines.
void AddTrackPoint(const size_t iL, const float x, const float y, const float z)
void SetColourExcitations(const short col)
Set the colour with which to draw excitation markers.
void NewChargedParticleTrack(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 SetColourIonisations(const short col)
Set the colour with which to draw ionisation markers.
void SetColourElectrons(const short col)
Set the colour with which to draw electron drift lines.
void SetTrackPoint(const size_t iL, const size_t iP, const float x, const float y, const float z)
void SetColourHoles(const short col)
Set the colour with which to draw hole drift lines.
void SetClusterMarkerSize(const double size)
Set the size of the cluster markers (see TAttMarker).
void SetDriftLinePoint(const size_t iL, const size_t iP, const float x, const float y, const float z)
void Plot3d(const bool axis, const bool ogl)
Make a 3D plot of the drift lines.
void Plot2d(const bool axis)
Make a 2D plot of the drift lines in the current viewing plane.
void SetColourTracks(const short col)
Set the colour with which to draw charged particle tracks.
void SetColourIons(const short col)
Set the colour with which to draw ion drift lines.
void AddAttachment(const float x, const float y, const float z)
~ViewDrift()=default
Destructor.
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 SetColourAttachments(const short col)
Set the colour with which to draw attachment markers.
void Clear()
Delete existing drift lines, tracks and markers.
void AddPhoton(const float x0, const float y0, const float z0, const float x1, const float y1, const float z1)
void NewElectronDriftLine(const size_t np, size_t &id, const float x0, const float y0, const float z0)
size_t GetNumberOfDriftLines() const
Get the number of drift lines stored.
void AddExcitation(const float x, const float y, const float z)
void SetCollisionMarkerSize(const double size)
Set the size of the collision markers (see TAttMarker).
Draw the mesh of a field-map component.