30 void Plot(
const bool twod =
false,
const bool axis =
true,
31 const bool snapshot =
false);
33 void Plot2d(
const bool axis =
true,
const bool snapshot =
false);
35 void Plot3d(
const bool axis =
true,
const bool ogl =
true,
36 const bool snapshot =
false);
66 std::vector<std::array<float, 3> >& driftLine,
67 bool& electron)
const;
71 const float x0,
const float y0,
const float z0);
73 const float y0,
const float z0);
76 const float x,
const float y,
const float z);
80 const float x,
const float y,
const float z);
81 void AddTrackPoint(
const size_t iL,
const float x,
const float y,
83 void AddExcitation(
const float x,
const float y,
const float z);
84 void AddIonisation(
const float x,
const float y,
const float z);
85 void AddAttachment(
const float x,
const float y,
const float z);
87 void AddPhoton(
const float x0,
const float y0,
const float z0,
88 const float x1,
const float y1,
const float z1);
95 std::vector<std::pair<std::vector<std::array<float, 3> >,
98 std::vector<std::vector<std::array<float, 3> > > m_tracks;
99 std::vector<std::array<std::array<float, 3>, 2> > m_photons;
101 std::vector<std::array<float, 3> > m_exc;
102 std::vector<std::array<float, 3> > m_ion;
103 std::vector<std::array<float, 3> > m_att;
105 double m_markerSizeCluster = 0.01;
106 double m_markerSizeCollision = 0.5;
108 short m_colTrack = kGreen + 3;
109 short m_colPhoton = kBlue + 1;
110 short m_colElectron = kOrange - 3;
111 short m_colHole = kRed + 1;
112 short m_colIon = kRed + 1;
113 short m_colExcitation = kGreen + 3;
114 short m_colIonisation = kOrange - 3;
115 short m_colAttachment = kCyan + 3;
117 bool m_drawClusters =
false;
119 bool SetPlotLimits2d();
120 bool SetPlotLimits3d();
121 void DrawMarkers2d(
const std::vector<std::array<float, 3> >& points,
122 const short col,
const double size);
123 void DrawMarkers3d(
const std::vector<std::array<float, 3> >& points,
124 const short col,
const double size);
ViewBase()=delete
Default constructor.
void AddIonisation(const float x, const float y, const float z)
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 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 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 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 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).
void SetDriftLinePoint(const size_t iL, const size_t iP, const float x, const float y, const float z)
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)
~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)
size_t NewDriftLine(const Particle particle, const size_t np, 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).