Geant4-11
Public Member Functions | Protected Attributes
G4VScoreColorMap Class Referenceabstract

#include <G4VScoreColorMap.hh>

Inheritance diagram for G4VScoreColorMap:
G4DefaultLinearColorMap G4ScoreLogColorMap

Public Member Functions

virtual void DrawColorChart (G4int nPoint=5)
 
virtual void DrawColorChartBar (G4int nPoint)
 
virtual void DrawColorChartText (G4int nPoint)
 
 G4VScoreColorMap (G4String mName)
 
virtual void GetMapColor (G4double val, G4double color[4])=0
 
G4double GetMax () const
 
G4double GetMin () const
 
G4String GetName () const
 
G4bool IfFloatMinMax () const
 
void SetFloatingMinMax (G4bool vl=true)
 
void SetMinMax (G4double minVal, G4double maxVal)
 
void SetPSName (G4String &psName)
 
void SetPSUnit (G4String &unit)
 
virtual ~G4VScoreColorMap ()
 

Protected Attributes

G4double fMaxVal
 
G4double fMinVal
 
G4String fName
 
G4String fPSName
 
G4String fPSUnit
 
G4VVisManagerfVisManager
 
G4bool ifFloat
 

Detailed Description

Definition at line 36 of file G4VScoreColorMap.hh.

Constructor & Destructor Documentation

◆ G4VScoreColorMap()

G4VScoreColorMap::G4VScoreColorMap ( G4String  mName)

Definition at line 42 of file G4VScoreColorMap.cc.

43 : fName(mName)
44 , ifFloat(true)
45 , fMinVal(0.)
47 , fVisManager(nullptr)
48{
49 ;
50}
G4VVisManager * fVisManager
#define DBL_MAX
Definition: templates.hh:62

◆ ~G4VScoreColorMap()

G4VScoreColorMap::~G4VScoreColorMap ( )
virtual

Definition at line 52 of file G4VScoreColorMap.cc.

52{ ; }

Member Function Documentation

◆ DrawColorChart()

void G4VScoreColorMap::DrawColorChart ( G4int  nPoint = 5)
virtual

Definition at line 54 of file G4VScoreColorMap.cc.

55{
57 if(!fVisManager)
58 {
59 G4cerr << "G4VScoringMesh::DrawColorChart(): no visualization system"
60 << G4endl;
61 return;
62 }
63
64 DrawColorChartBar(_nPoint);
65 DrawColorChartText(_nPoint);
66}
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57
virtual void DrawColorChartText(G4int nPoint)
virtual void DrawColorChartBar(G4int nPoint)
static G4VVisManager * GetConcreteInstance()

References DrawColorChartBar(), DrawColorChartText(), fVisManager, G4cerr, G4endl, and G4VVisManager::GetConcreteInstance().

Referenced by G4ScoringBox::Draw(), G4ScoringCylinder::Draw(), G4ScoringBox::DrawColumn(), and G4ScoringCylinder::DrawColumn().

◆ DrawColorChartBar()

void G4VScoreColorMap::DrawColorChartBar ( G4int  nPoint)
virtual

Reimplemented in G4ScoreLogColorMap.

Definition at line 68 of file G4VScoreColorMap.cc.

69{
70 G4double min = this->GetMin();
71 G4double max = this->GetMax();
72 G4double smin = -0.89, smax = smin + 0.05 * (_nPoint) *0.83, step = 0.001;
73 G4double c[4];
74
76
77 for(G4double y = smin; y < smax; y += step)
78 {
79 G4double ra = (y - smin) / (smax - smin), rb = 1. - ra;
80 G4Polyline line;
81 line.push_back(G4Point3D(-0.96, y, 0.));
82 line.push_back(G4Point3D(-0.91, y, 0.));
83 this->GetMapColor((ra * max + rb * min) / (ra + rb), c);
84 G4Colour col(c[0], c[1], c[2]);
85 G4VisAttributes att(col);
86 line.SetVisAttributes(&att);
87 fVisManager->Draw2D(line);
88 }
89
91}
HepGeom::Point3D< G4double > G4Point3D
Definition: G4Point3D.hh:34
double G4double
Definition: G4Types.hh:83
G4double GetMax() const
G4double GetMin() const
virtual void GetMapColor(G4double val, G4double color[4])=0
virtual void Draw2D(const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())=0
virtual void EndDraw2D()=0
virtual void BeginDraw2D(const G4Transform3D &objectTransformation=G4Transform3D())=0
void SetVisAttributes(const G4VisAttributes *)
Definition: G4Visible.cc:96
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments

References G4VVisManager::BeginDraw2D(), G4VVisManager::Draw2D(), G4VVisManager::EndDraw2D(), fVisManager, GetMapColor(), GetMax(), GetMin(), G4INCL::Math::max(), G4INCL::Math::min(), and G4Visible::SetVisAttributes().

Referenced by DrawColorChart().

◆ DrawColorChartText()

void G4VScoreColorMap::DrawColorChartText ( G4int  nPoint)
virtual

Reimplemented in G4ScoreLogColorMap.

Definition at line 93 of file G4VScoreColorMap.cc.

94{
95 G4double min = this->GetMin();
96 G4double max = this->GetMax();
97 G4double c[4];
98 G4Colour black(0.1, 0.1, 0.1, 0.8);
99
101
102 for(int n = 0; n < _nPoint; n++)
103 {
104 G4double a = n / (_nPoint - 1.), b = 1. - a;
105 G4double v = (a * max + b * min) / (a + b);
106 // background color
107
108 for(int l = 0; l < 21; l++)
109 {
110 G4Polyline line;
111 line.push_back(G4Point3D(-0.9, -0.905 + 0.05 * n + 0.002 * l, 0.));
112 line.push_back(G4Point3D(-0.75, -0.905 + 0.05 * n + 0.002 * l, 0.));
113 G4VisAttributes attblack(black);
114 line.SetVisAttributes(&attblack);
115 fVisManager->Draw2D(line);
116 }
117
118 // text
119 // char cstring[80];
120 // std::sprintf(cstring, "%8.2e", v);
121 // G4String value(cstring);
122 std::ostringstream oss;
123 oss << std::setw(8) << std::setprecision(1) << std::scientific << v;
124 std::string str = oss.str();
125 G4String value = str; //.c_str());
126
127 G4Text text(value, G4Point3D(-0.9, -0.9 + 0.05 * n, 0.4));
128 G4double size = 12.;
129 text.SetScreenSize(size);
130 this->GetMapColor(v, c);
131 G4Colour color(c[0], c[1], c[2], 1.);
132 G4VisAttributes att(color);
133 text.SetVisAttributes(&att);
134
135 fVisManager->Draw2D(text);
136 }
137
138 // draw ps name
139 // background
140 G4double lpsname = 2. + fPSName.size() * 0.95;
141 if(lpsname > 0)
142 {
143 for(int l = 0; l < 22; l++)
144 {
145 G4Polyline line;
146 line.push_back(G4Point3D(-0.92, -0.965 + 0.002 * l, 0.));
147 line.push_back(
148 G4Point3D(-0.92 + 0.025 * lpsname, -0.965 + 0.002 * l, 0.));
149 G4VisAttributes attblack(black);
150 // G4VisAttributes attblack(G4Colour(.5, .5, 1.));
151 line.SetVisAttributes(&attblack);
152 fVisManager->Draw2D(line);
153 }
154
155 // ps name
156 G4Text txtpsname(fPSName, G4Point3D(-0.9, -0.96, 0.1));
157 G4double size = 12.;
158 txtpsname.SetScreenSize(size);
159 G4Colour color(1., 1., 1.);
160 G4VisAttributes att(color);
161 txtpsname.SetVisAttributes(&att);
162 fVisManager->Draw2D(txtpsname);
163 }
164
165 // draw unit
166 // background
167 G4double len = 2. + fPSUnit.size();
168 if(len > 0)
169 {
170 for(int l = 0; l < 21; l++)
171 {
172 G4Polyline line;
173 line.push_back(G4Point3D(-0.7, -0.9 + 0.002 * l, 0.));
174 line.push_back(G4Point3D(-0.7 + 0.025 * len, -0.9 + 0.002 * l, 0.));
175 G4VisAttributes attblack(black);
176 // G4VisAttributes attblack(G4Colour(.5, .5, .5));
177 line.SetVisAttributes(&attblack);
178 fVisManager->Draw2D(line);
179 }
180
181 // unit
182 G4String psunit = "[" + fPSUnit + "]";
183 G4Text txtunit(psunit, G4Point3D(-0.69, -0.9, 0.1));
184 G4double size = 12.;
185 txtunit.SetScreenSize(size);
186 G4Colour color(1., 1., 1.);
187 G4VisAttributes att(color);
188 txtunit.SetVisAttributes(&att);
189 fVisManager->Draw2D(txtunit);
190 }
191
193}
Definition: G4Text.hh:72

References G4VVisManager::BeginDraw2D(), G4VVisManager::Draw2D(), G4VVisManager::EndDraw2D(), fPSName, fPSUnit, fVisManager, GetMapColor(), GetMax(), GetMin(), G4INCL::Math::max(), G4INCL::Math::min(), CLHEP::detail::n, G4VMarker::SetScreenSize(), and G4Visible::SetVisAttributes().

Referenced by DrawColorChart().

◆ GetMapColor()

virtual void G4VScoreColorMap::GetMapColor ( G4double  val,
G4double  color[4] 
)
pure virtual

◆ GetMax()

G4double G4VScoreColorMap::GetMax ( ) const
inline

Definition at line 66 of file G4VScoreColorMap.hh.

66{ return fMaxVal; }

References fMaxVal.

Referenced by DrawColorChartBar(), and DrawColorChartText().

◆ GetMin()

G4double G4VScoreColorMap::GetMin ( ) const
inline

Definition at line 65 of file G4VScoreColorMap.hh.

65{ return fMinVal; }

References fMinVal.

Referenced by DrawColorChartBar(), and DrawColorChartText().

◆ GetName()

G4String G4VScoreColorMap::GetName ( ) const
inline

Definition at line 46 of file G4VScoreColorMap.hh.

46{ return fName; }

References fName.

Referenced by G4ScoringManager::G4ScoringManager(), and G4ScoringManager::RegisterScoreColorMap().

◆ IfFloatMinMax()

G4bool G4VScoreColorMap::IfFloatMinMax ( ) const
inline

◆ SetFloatingMinMax()

void G4VScoreColorMap::SetFloatingMinMax ( G4bool  vl = true)
inline

Definition at line 47 of file G4VScoreColorMap.hh.

47{ ifFloat = vl; }

References ifFloat.

Referenced by G4ScoringMessenger::SetNewValue().

◆ SetMinMax()

void G4VScoreColorMap::SetMinMax ( G4double  minVal,
G4double  maxVal 
)
inline

Definition at line 49 of file G4VScoreColorMap.hh.

50 {
51 if(minVal >= maxVal)
52 {
53 G4cerr << "WARNING: G4VScoreColoMap::SetMinMax() : minimum is larger "
54 "than or equal to maximum. Verify values you set, ["
55 << minVal << ", " << maxVal << "]" << G4endl;
56 fMinVal = maxVal;
57 fMaxVal = minVal;
58 }
59 else
60 {
61 fMinVal = minVal;
62 fMaxVal = maxVal;
63 }
64 }

References fMaxVal, fMinVal, G4cerr, and G4endl.

Referenced by G4ScoringBox::Draw(), G4ScoringCylinder::Draw(), G4ScoringBox::DrawColumn(), G4ScoringCylinder::DrawColumn(), and G4ScoringMessenger::SetNewValue().

◆ SetPSName()

void G4VScoreColorMap::SetPSName ( G4String psName)
inline

◆ SetPSUnit()

void G4VScoreColorMap::SetPSUnit ( G4String unit)
inline

Field Documentation

◆ fMaxVal

G4double G4VScoreColorMap::fMaxVal
protected

◆ fMinVal

G4double G4VScoreColorMap::fMinVal
protected

◆ fName

G4String G4VScoreColorMap::fName
protected

Definition at line 79 of file G4VScoreColorMap.hh.

Referenced by GetName().

◆ fPSName

G4String G4VScoreColorMap::fPSName
protected

◆ fPSUnit

G4String G4VScoreColorMap::fPSUnit
protected

◆ fVisManager

G4VVisManager* G4VScoreColorMap::fVisManager
protected

◆ ifFloat

G4bool G4VScoreColorMap::ifFloat
protected

Definition at line 80 of file G4VScoreColorMap.hh.

Referenced by IfFloatMinMax(), and SetFloatingMinMax().


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