29 void Plot(
const bool twod =
false,
const bool axis =
true,
30 const bool snapshot =
false);
32 void Plot2d(
const bool axis =
true,
const bool snapshot =
false);
34 void Plot3d(
const bool axis =
true,
const bool ogl =
true,
35 const bool snapshot =
false);
69 std::vector<std::array<float, 3> >& driftLine,
70 bool& electron)
const;
74 const float x0,
const float y0,
const float z0);
76 const float x0,
const float y0,
const float z0);
79 const float x,
const float y,
const float z);
82 void SetTrackPoint(
const std::size_t iL,
const std::size_t iP,
const float x,
83 const float y,
const float z);
90 void AddPhoton(
const float x0,
const float y0,
const float z0,
const float x1,
91 const float y1,
const float z1);
98 std::vector<std::pair<std::vector<std::array<float, 3> >,
Particle> >
101 std::vector<std::vector<std::array<float, 3> > >
m_tracks;
102 std::vector<std::array<std::array<float, 3>, 2> >
m_photons;
104 std::vector<std::array<float, 3> >
m_exc;
105 std::vector<std::array<float, 3> >
m_ion;
106 std::vector<std::array<float, 3> >
m_att;
128 const short col,
const double size);
130 const short col,
const double size);
ViewBase()=delete
Default constructor.
void AddIonisation(const float x, const float y, const float z)
std::vector< std::array< float, 3 > > m_exc
std::size_t NewDriftLine(const Particle particle, const std::size_t np, const float x0, const float y0, const float z0)
void Plot2d(const bool axis=true, const bool snapshot=false)
Make a 2D plot of the drift lines in the current viewing plane.
void EnableClusterMarkers(const bool on=true)
Draw markers (or not) at every collision along a track.
void SetDriftLinePoint(const std::size_t iL, const std::size_t iP, const float x, const float y, const float z)
void AddTrackPoint(const std::size_t iL, const float x, const float y, const float z)
void DrawMarkers3d(const std::vector< std::array< float, 3 > > &points, const short col, const double size)
void SetColourNegativeIons(const short col)
Set the colour with which to draw negative ion drift lines.
void SetColourPhotons(const short col)
Set the colour with which to draw photons.
std::vector< std::array< std::array< float, 3 >, 2 > > m_photons
std::vector< std::array< float, 3 > > m_att
std::vector< std::pair< std::vector< std::array< float, 3 > >, Particle > > m_driftLines
void SetColourExcitations(const short col)
Set the colour with which to draw excitation markers.
std::size_t GetNumberOfDriftLines() const
Get the number of drift lines stored.
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.
double m_markerSizeCluster
void SetTrackPoint(const std::size_t iL, const std::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 DrawMarkers2d(const std::vector< std::array< float, 3 > > &points, const short col, const double size)
void Plot(const bool twod=false, const bool axis=true, const bool snapshot=false)
Draw the drift lines.
void SetClusterMarkerSize(const double size)
Set the size of the cluster markers (see TAttMarker).
std::vector< std::vector< std::array< float, 3 > > > m_tracks
double m_markerSizeCollision
void SetElectronsToFront()
Put electron drift lines on top of the ion/hole drift lines.
void Plot3d(const bool axis=true, const bool ogl=true, const bool snapshot=false)
Make a 3D plot of the drift lines.
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)
std::vector< std::array< float, 3 > > m_ion
~ViewDrift()=default
Destructor.
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 GetDriftLine(const std::size_t i, std::vector< std::array< float, 3 > > &driftLine, bool &electron) const
Retrieve the coordinates of a given drift line.
void AddExcitation(const float x, const float y, const float z)
void AddDriftLinePoint(const std::size_t iL, const float x, const float y, const float z)
void SetCollisionMarkerSize(const double size)
Set the size of the collision markers (see TAttMarker).
void NewChargedParticleTrack(const std::size_t np, std::size_t &id, const float x0, const float y0, const float z0)