Geant4-11
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
G4UnitDefinition Class Reference

#include <G4UnitsTable.hh>

Public Member Functions

 G4UnitDefinition (const G4String &name, const G4String &symbol, const G4String &category, G4double value)
 
const G4StringGetName () const
 
const G4StringGetSymbol () const
 
G4double GetValue () const
 
G4bool operator!= (const G4UnitDefinition &) const
 
G4bool operator== (const G4UnitDefinition &) const
 
void PrintDefinition ()
 
 ~G4UnitDefinition ()
 

Static Public Member Functions

static void BuildUnitsTable ()
 
static void ClearUnitsTable ()
 
static G4String GetCategory (const G4String &)
 
static G4UnitsTableGetUnitsTable ()
 
static G4double GetValueOf (const G4String &)
 
static G4bool IsUnitDefined (const G4String &)
 
static void PrintUnitsTable ()
 

Private Member Functions

 G4UnitDefinition (const G4UnitDefinition &)
 
G4UnitDefinitionoperator= (const G4UnitDefinition &)
 

Private Attributes

std::size_t CategoryIndex = 0
 
G4String Name
 
G4String SymbolName
 
G4double Value = 0.0
 

Static Private Attributes

static G4ThreadLocal G4UnitsTablepUnitsTable = nullptr
 
static G4ThreadLocal G4bool unitsTableDestroyed = false
 

Detailed Description

Definition at line 74 of file G4UnitsTable.hh.

Constructor & Destructor Documentation

◆ G4UnitDefinition() [1/2]

G4UnitDefinition::G4UnitDefinition ( const G4String name,
const G4String symbol,
const G4String category,
G4double  value 
)

Definition at line 64 of file G4UnitsTable.cc.

66 : Name(name)
67 , SymbolName(symbol)
68 , Value(value)
69{
70 if(pUnitsTable == nullptr)
71 {
73 {
74 G4Exception("G4UnitDefinition::G4UnitDefinition", "UnitsTable0000",
75 FatalException, "G4UnitsTable had already deleted.");
76 }
78#ifdef G4MULTITHREADED
80 {
81 pUnitsTableShadow = pUnitsTable;
82 }
83#endif
84 }
85
86 // Does the Category objet already exist ?
87 //
88 std::size_t nbCat = pUnitsTable->size();
89 std::size_t i = 0;
90 while((i < nbCat) && ((*pUnitsTable)[i]->GetName() != category))
91 {
92 ++i;
93 }
94 if(i == nbCat)
95 {
96 pUnitsTable->push_back(new G4UnitsCategory(category));
97 }
98 CategoryIndex = i;
99
100 // Insert this Unit in the Units table
101 //
102 ((*pUnitsTable)[CategoryIndex]->GetUnitsList()).push_back(this);
103
104 // Update string max length for name and symbol
105 //
106 (*pUnitsTable)[i]->UpdateNameMxLen((G4int) name.length());
107 (*pUnitsTable)[i]->UpdateSymbMxLen((G4int) symbol.length());
108}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
int G4int
Definition: G4Types.hh:85
std::vector< G4UnitsCategory * > G4UnitsTable
Definition: G4UnitsTable.hh:68
std::size_t CategoryIndex
static G4ThreadLocal G4bool unitsTableDestroyed
static G4ThreadLocal G4UnitsTable * pUnitsTable
const G4String & GetName() const
const char * name(G4int ptype)
G4bool IsMasterThread()
Definition: G4Threading.cc:124

References CategoryIndex, FatalException, G4Exception(), GetName(), G4Threading::IsMasterThread(), G4InuclParticleNames::name(), pUnitsTable, and unitsTableDestroyed.

Referenced by BuildUnitsTable().

◆ ~G4UnitDefinition()

G4UnitDefinition::~G4UnitDefinition ( )

Definition at line 112 of file G4UnitsTable.cc.

112{}

◆ G4UnitDefinition() [2/2]

G4UnitDefinition::G4UnitDefinition ( const G4UnitDefinition right)
private

Definition at line 116 of file G4UnitsTable.cc.

117{
118 *this = right;
119}

Member Function Documentation

◆ BuildUnitsTable()

void G4UnitDefinition::BuildUnitsTable ( )
static

Definition at line 254 of file G4UnitsTable.cc.

255{
256 // Length
257 new G4UnitDefinition("parsec", "pc", "Length", parsec);
258 new G4UnitDefinition("kilometer", "km", "Length", kilometer);
259 new G4UnitDefinition("meter", "m", "Length", meter);
260 new G4UnitDefinition("centimeter", "cm", "Length", centimeter);
261 new G4UnitDefinition("millimeter", "mm", "Length", millimeter);
262 new G4UnitDefinition("micrometer", "um", "Length", micrometer);
263 new G4UnitDefinition("nanometer", "nm", "Length", nanometer);
264 new G4UnitDefinition("angstrom", "Ang", "Length", angstrom);
265 new G4UnitDefinition("fermi", "fm", "Length", fermi);
266
267 // Surface
268 new G4UnitDefinition("kilometer2", "km2", "Surface", kilometer2);
269 new G4UnitDefinition("meter2", "m2", "Surface", meter2);
270 new G4UnitDefinition("centimeter2", "cm2", "Surface", centimeter2);
271 new G4UnitDefinition("millimeter2", "mm2", "Surface", millimeter2);
272 new G4UnitDefinition("barn", "barn", "Surface", barn);
273 new G4UnitDefinition("millibarn", "mbarn", "Surface", millibarn);
274 new G4UnitDefinition("microbarn", "mubarn", "Surface", microbarn);
275 new G4UnitDefinition("nanobarn", "nbarn", "Surface", nanobarn);
276 new G4UnitDefinition("picobarn", "pbarn", "Surface", picobarn);
277
278 // Volume
279 new G4UnitDefinition("kilometer3", "km3", "Volume", kilometer3);
280 new G4UnitDefinition("meter3", "m3", "Volume", meter3);
281 new G4UnitDefinition("centimeter3", "cm3", "Volume", centimeter3);
282 new G4UnitDefinition("millimeter3", "mm3", "Volume", millimeter3);
283
284 new G4UnitDefinition("liter", "L", "Volume", liter);
285 new G4UnitDefinition("dL", "dL", "Volume", dL);
286 new G4UnitDefinition("cL", "cL", "Volume", cL);
287 new G4UnitDefinition("mL", "mL", "Volume", mL);
288
289 // Angle
290 new G4UnitDefinition("radian", "rad", "Angle", radian);
291 new G4UnitDefinition("milliradian", "mrad", "Angle", milliradian);
292 new G4UnitDefinition("degree", "deg", "Angle", degree);
293
294 // Solid angle
295 new G4UnitDefinition("steradian", "sr", "Solid angle", steradian);
296 new G4UnitDefinition("millisteradian", "msr", "Solid angle",
297 steradian * 0.001);
298
299 // Time
300 new G4UnitDefinition("second", "s", "Time", second);
301 new G4UnitDefinition("millisecond", "ms", "Time", millisecond);
302 new G4UnitDefinition("microsecond", "us", "Time", microsecond);
303 new G4UnitDefinition("nanosecond", "ns", "Time", nanosecond);
304 new G4UnitDefinition("picosecond", "ps", "Time", picosecond);
305 new G4UnitDefinition("minute", "min", "Time", minute);
306 new G4UnitDefinition("hour", "h", "Time", hour);
307 new G4UnitDefinition("day", "d", "Time", day);
308 new G4UnitDefinition("year", "y", "Time", year);
309
310 // Frequency
311 new G4UnitDefinition("hertz", "Hz", "Frequency", hertz);
312 new G4UnitDefinition("kilohertz", "kHz", "Frequency", kilohertz);
313 new G4UnitDefinition("megahertz", "MHz", "Frequency", megahertz);
314
315 // Velocity
316 new G4UnitDefinition("cm/ns", "cm/ns", "Velocity", cm/ns);
317 new G4UnitDefinition("mm/ns", "mm/ns", "Velocity", mm/ns);
318 new G4UnitDefinition("cm/us", "cm/us", "Velocity", cm/us);
319 new G4UnitDefinition("km/s" , "km/s" , "Velocity", km/s);
320 new G4UnitDefinition("cm/ms", "cm/ms", "Velocity", cm/ms);
321 new G4UnitDefinition( "m/s" , "m/s" , "Velocity", m/s);
322 new G4UnitDefinition("cm/s" , "cm/s" , "Velocity", cm/s);
323 new G4UnitDefinition("mm/s" , "mm/s" , "Velocity", mm/s);
324
325 // Electric charge
326 new G4UnitDefinition("eplus", "e+", "Electric charge", eplus);
327 new G4UnitDefinition("coulomb", "C", "Electric charge", coulomb);
328
329 // Energy
330 new G4UnitDefinition("electronvolt", "eV", "Energy", electronvolt);
331 new G4UnitDefinition("kiloelectronvolt", "keV", "Energy", kiloelectronvolt);
332 new G4UnitDefinition("megaelectronvolt", "MeV", "Energy", megaelectronvolt);
333 new G4UnitDefinition("gigaelectronvolt", "GeV", "Energy", gigaelectronvolt);
334 new G4UnitDefinition("teraelectronvolt", "TeV", "Energy", teraelectronvolt);
335 new G4UnitDefinition("petaelectronvolt", "PeV", "Energy", petaelectronvolt);
336 new G4UnitDefinition("millielectronVolt", "meV", "Energy", millielectronvolt);
337 new G4UnitDefinition("joule", "J", "Energy", joule);
338
339 //Momentum
340 new G4UnitDefinition( "eV/c", "eV/c", "Momentum", eV);
341 new G4UnitDefinition("keV/c", "keV/c", "Momentum", keV);
342 new G4UnitDefinition("MeV/c", "MeV/c", "Momentum", MeV);
343 new G4UnitDefinition("GeV/c", "GeV/c", "Momentum", GeV);
344 new G4UnitDefinition("TeV/c", "TeV/c", "Momentum", TeV);
345
346 // Energy/Length
347 new G4UnitDefinition("GeV/cm", "GeV/cm", "Energy/Length", GeV / cm);
348 new G4UnitDefinition("MeV/cm", "MeV/cm", "Energy/Length", MeV / cm);
349 new G4UnitDefinition("keV/cm", "keV/cm", "Energy/Length", keV / cm);
350 new G4UnitDefinition("eV/cm", "eV/cm", "Energy/Length", eV / cm);
351
352 // Mass
353 new G4UnitDefinition("milligram", "mg", "Mass", milligram);
354 new G4UnitDefinition("gram", "g", "Mass", gram);
355 new G4UnitDefinition("kilogram", "kg", "Mass", kilogram);
356
357 // Volumic Mass
358 new G4UnitDefinition("g/cm3", "g/cm3", "Volumic Mass", g / cm3);
359 new G4UnitDefinition("mg/cm3", "mg/cm3", "Volumic Mass", mg / cm3);
360 new G4UnitDefinition("kg/m3", "kg/m3", "Volumic Mass", kg / m3);
361
362 // Mass/Surface
363 new G4UnitDefinition("g/cm2", "g/cm2", "Mass/Surface", g / cm2);
364 new G4UnitDefinition("mg/cm2", "mg/cm2", "Mass/Surface", mg / cm2);
365 new G4UnitDefinition("kg/cm2", "kg/cm2", "Mass/Surface", kg / cm2);
366
367 // Surface/Mass
368 new G4UnitDefinition("cm2/g", "cm2/g", "Surface/Mass", cm2 / g);
369
370 // Energy.Surface/Mass
371 new G4UnitDefinition("eV*cm2/g", " eV*cm2/g", "Energy*Surface/Mass",
372 eV * cm2 / g);
373 new G4UnitDefinition("keV*cm2/g", "keV*cm2/g", "Energy*Surface/Mass",
374 keV * cm2 / g);
375 new G4UnitDefinition("MeV*cm2/g", "MeV*cm2/g", "Energy*Surface/Mass",
376 MeV * cm2 / g);
377 new G4UnitDefinition("GeV*cm2/g", "GeV*cm2/g", "Energy*Surface/Mass",
378 GeV * cm2 / g);
379
380 // Power
381 new G4UnitDefinition("watt", "W", "Power", watt);
382
383 // Force
384 new G4UnitDefinition("newton", "N", "Force", newton);
385
386 // Pressure
387 new G4UnitDefinition("pascal", "Pa", "Pressure", hep_pascal);
388 new G4UnitDefinition("bar", "bar", "Pressure", bar);
389 new G4UnitDefinition("atmosphere", "atm", "Pressure", atmosphere);
390
391 // Electric current
392 new G4UnitDefinition("ampere", "A", "Electric current", ampere);
393 new G4UnitDefinition("milliampere", "mA", "Electric current", milliampere);
394 new G4UnitDefinition("microampere", "muA", "Electric current", microampere);
395 new G4UnitDefinition("nanoampere", "nA", "Electric current", nanoampere);
396
397 // Electric potential
398 new G4UnitDefinition("volt", "V", "Electric potential", volt);
399 new G4UnitDefinition("kilovolt", "kV", "Electric potential", kilovolt);
400 new G4UnitDefinition("megavolt", "MV", "Electric potential", megavolt);
401
402 // Electric field
403 new G4UnitDefinition("volt/m", "V/m", "Electric field", volt / m);
404 new G4UnitDefinition("kilovolt/m", "kV/m", "Electric field", kilovolt / m);
405 new G4UnitDefinition("megavolt/m", "MV/m", "Electric field", megavolt / m);
406
407 // Magnetic flux
408 new G4UnitDefinition("weber", "Wb", "Magnetic flux", weber);
409
410 // Magnetic flux density
411 new G4UnitDefinition("tesla", "T", "Magnetic flux density", tesla);
412 new G4UnitDefinition("kilogauss", "kG", "Magnetic flux density", kilogauss);
413 new G4UnitDefinition("gauss", "G", "Magnetic flux density", gauss);
414
415 // Temperature
416 new G4UnitDefinition("kelvin", "K", "Temperature", kelvin);
417
418 // Amount of substance
419 new G4UnitDefinition("mole", "mol", "Amount of substance", mole);
420 new G4UnitDefinition("g/mole", "g/mol", "Molar mass", g / mole);
421
422 // Activity
423 new G4UnitDefinition("becquerel", "Bq", "Activity", becquerel);
424 new G4UnitDefinition("curie", "Ci", "Activity", curie);
425
426 // Dose
427 new G4UnitDefinition("gray", "Gy", "Dose", gray);
428}
static constexpr double centimeter
Definition: G4SIunits.hh:70
static constexpr double kilogauss
Definition: G4SIunits.hh:263
static constexpr double centimeter3
Definition: G4SIunits.hh:72
static constexpr double newton
Definition: G4SIunits.hh:215
static constexpr double steradian
Definition: G4SIunits.hh:126
static constexpr double petaelectronvolt
Definition: G4SIunits.hh:196
static constexpr double nanoampere
Definition: G4SIunits.hh:177
static constexpr double picobarn
Definition: G4SIunits.hh:89
static constexpr double megaelectronvolt
Definition: G4SIunits.hh:193
static constexpr double kelvin
Definition: G4SIunits.hh:274
static constexpr double millisecond
Definition: G4SIunits.hh:139
static constexpr double micrometer
Definition: G4SIunits.hh:80
static constexpr double volt
Definition: G4SIunits.hh:233
static constexpr double mL
Definition: G4SIunits.hh:107
static constexpr double kg
Definition: G4SIunits.hh:167
static constexpr double gauss
Definition: G4SIunits.hh:262
static constexpr double ampere
Definition: G4SIunits.hh:174
static constexpr double milliradian
Definition: G4SIunits.hh:123
static constexpr double megahertz
Definition: G4SIunits.hh:150
static constexpr double electronvolt
Definition: G4SIunits.hh:191
static constexpr double us
Definition: G4SIunits.hh:156
static constexpr double ms
Definition: G4SIunits.hh:155
static constexpr double millimeter3
Definition: G4SIunits.hh:68
static constexpr double gray
Definition: G4SIunits.hh:302
static constexpr double gram
Definition: G4SIunits.hh:163
static constexpr double kilogram
Definition: G4SIunits.hh:162
static constexpr double mole
Definition: G4SIunits.hh:279
static constexpr double cm3
Definition: G4SIunits.hh:101
static constexpr double milliampere
Definition: G4SIunits.hh:175
static constexpr double minute
Definition: G4SIunits.hh:143
static constexpr double meter3
Definition: G4SIunits.hh:64
static constexpr double kilometer
Definition: G4SIunits.hh:74
static constexpr double m
Definition: G4SIunits.hh:109
static constexpr double gigaelectronvolt
Definition: G4SIunits.hh:194
static constexpr double coulomb
Definition: G4SIunits.hh:182
static constexpr double joule
Definition: G4SIunits.hh:189
static constexpr double hertz
Definition: G4SIunits.hh:148
static constexpr double teraelectronvolt
Definition: G4SIunits.hh:195
static constexpr double tesla
Definition: G4SIunits.hh:259
static constexpr double kilohertz
Definition: G4SIunits.hh:149
static constexpr double hep_pascal
Definition: G4SIunits.hh:222
static constexpr double watt
Definition: G4SIunits.hh:210
static constexpr double nanobarn
Definition: G4SIunits.hh:88
static constexpr double kilovolt
Definition: G4SIunits.hh:232
static constexpr double liter
Definition: G4SIunits.hh:103
static constexpr double barn
Definition: G4SIunits.hh:85
static constexpr double day
Definition: G4SIunits.hh:145
static constexpr double millimeter
Definition: G4SIunits.hh:66
static constexpr double meter
Definition: G4SIunits.hh:62
static constexpr double curie
Definition: G4SIunits.hh:285
static constexpr double microsecond
Definition: G4SIunits.hh:140
static constexpr double cm2
Definition: G4SIunits.hh:100
static constexpr double megavolt
Definition: G4SIunits.hh:231
static constexpr double parsec
Definition: G4SIunits.hh:78
static constexpr double angstrom
Definition: G4SIunits.hh:82
static constexpr double microbarn
Definition: G4SIunits.hh:87
static constexpr double s
Definition: G4SIunits.hh:154
static constexpr double millibarn
Definition: G4SIunits.hh:86
static constexpr double mm
Definition: G4SIunits.hh:95
static constexpr double eplus
Definition: G4SIunits.hh:184
static constexpr double second
Definition: G4SIunits.hh:137
static constexpr double keV
Definition: G4SIunits.hh:202
static constexpr double fermi
Definition: G4SIunits.hh:83
static constexpr double m3
Definition: G4SIunits.hh:111
static constexpr double picosecond
Definition: G4SIunits.hh:141
static constexpr double atmosphere
Definition: G4SIunits.hh:225
static constexpr double eV
Definition: G4SIunits.hh:201
static constexpr double nanosecond
Definition: G4SIunits.hh:138
static constexpr double centimeter2
Definition: G4SIunits.hh:71
static constexpr double km
Definition: G4SIunits.hh:113
static constexpr double g
Definition: G4SIunits.hh:168
static constexpr double milligram
Definition: G4SIunits.hh:164
static constexpr double cL
Definition: G4SIunits.hh:106
static constexpr double kiloelectronvolt
Definition: G4SIunits.hh:192
static constexpr double nanometer
Definition: G4SIunits.hh:81
static constexpr double mg
Definition: G4SIunits.hh:169
static constexpr double GeV
Definition: G4SIunits.hh:203
static constexpr double microampere
Definition: G4SIunits.hh:176
static constexpr double millielectronvolt
Definition: G4SIunits.hh:197
static constexpr double MeV
Definition: G4SIunits.hh:200
static constexpr double degree
Definition: G4SIunits.hh:124
static constexpr double dL
Definition: G4SIunits.hh:105
static constexpr double year
Definition: G4SIunits.hh:146
static constexpr double bar
Definition: G4SIunits.hh:224
static constexpr double weber
Definition: G4SIunits.hh:254
static constexpr double becquerel
Definition: G4SIunits.hh:284
static constexpr double cm
Definition: G4SIunits.hh:99
static constexpr double hour
Definition: G4SIunits.hh:144
static constexpr double TeV
Definition: G4SIunits.hh:204
static constexpr double radian
Definition: G4SIunits.hh:122
static constexpr double millimeter2
Definition: G4SIunits.hh:67
static constexpr double kilometer2
Definition: G4SIunits.hh:75
static constexpr double meter2
Definition: G4SIunits.hh:63
static constexpr double kilometer3
Definition: G4SIunits.hh:76
G4UnitDefinition(const G4String &name, const G4String &symbol, const G4String &category, G4double value)
Definition: G4UnitsTable.cc:64
#define ns
Definition: xmlparse.cc:614

References ampere, angstrom, atmosphere, bar, barn, becquerel, centimeter, centimeter2, centimeter3, cL, cm, cm2, cm3, coulomb, curie, day, degree, dL, electronvolt, eplus, eV, fermi, g, G4UnitDefinition(), gauss, GeV, gigaelectronvolt, gram, gray, hep_pascal, hertz, hour, joule, kelvin, keV, kg, kiloelectronvolt, kilogauss, kilogram, kilohertz, kilometer, kilometer2, kilometer3, kilovolt, km, liter, m, m3, megaelectronvolt, megahertz, megavolt, meter, meter2, meter3, MeV, mg, microampere, microbarn, micrometer, microsecond, milliampere, millibarn, millielectronvolt, milligram, millimeter, millimeter2, millimeter3, milliradian, millisecond, minute, mL, mm, mole, ms, nanoampere, nanobarn, nanometer, nanosecond, newton, ns, parsec, petaelectronvolt, picobarn, picosecond, radian, s, second, steradian, teraelectronvolt, tesla, TeV, us, volt, watt, weber, and year.

Referenced by export_G4UnitsTable(), GetUnitsTable(), and G4DimensionedTypeUtils::GetUnitValue().

◆ ClearUnitsTable()

void G4UnitDefinition::ClearUnitsTable ( )
static

Definition at line 447 of file G4UnitsTable.cc.

448{
449#ifdef G4MULTITHREADED
450 delete pUnitsTable;
451 pUnitsTable = nullptr;
453 {
454 pUnitsTableShadow = nullptr;
455 }
456#else
457 for(std::size_t i = 0; i < pUnitsTable->size(); ++i)
458 {
459 delete(*pUnitsTable)[i];
460 }
461 pUnitsTable->clear();
462#endif
463 unitsTableDestroyed = true;
464}

References G4Threading::IsMasterThread(), pUnitsTable, and unitsTableDestroyed.

Referenced by G4RunManagerKernel::~G4RunManagerKernel().

◆ GetCategory()

G4String G4UnitDefinition::GetCategory ( const G4String str)
static

Definition at line 218 of file G4UnitsTable.cc.

219{
220 G4String name, symbol;
221 for(std::size_t i = 0; i < (GetUnitsTable()).size(); ++i)
222 {
223 G4UnitsContainer& units = (*pUnitsTable)[i]->GetUnitsList();
224 for(std::size_t j = 0; j < units.size(); ++j)
225 {
226 name = units[j]->GetName();
227 symbol = units[j]->GetSymbol();
228 if(str == name || str == symbol)
229 {
230 return (*pUnitsTable)[i]->GetName();
231 }
232 }
233 }
234 std::ostringstream message;
235 message << "The unit '" << str << "' does not exist in the Units Table!";
236 G4Exception("G4UnitDefinition::GetCategory()", "InvalidUnit", FatalException,
237 message);
238 name = "None";
239 return name;
240}
std::vector< G4UnitDefinition * > G4UnitsContainer
static G4UnitsTable & GetUnitsTable()

References FatalException, G4Exception(), GetUnitsTable(), G4InuclParticleNames::name(), and pUnitsTable.

Referenced by G4GDMLReadMaterials::AtomRead(), G4GDMLReadParamvol::Box_dimensionsRead(), G4GDMLReadSolids::BoxRead(), G4UIcommand::CategoryOf(), G4VPrimitiveScorer::CheckAndSetUnit(), G4GDMLReadParamvol::Cone_dimensionsRead(), G4GDMLReadSolids::ConeRead(), G4GDMLReadSolids::CutTubeRead(), G4GDMLReadStructure::DivisionvolRead(), G4GDMLReadMaterials::DRead(), G4GDMLReadSolids::ElconeRead(), G4GDMLReadParamvol::Ellipsoid_dimensionsRead(), G4GDMLReadSolids::EllipsoidRead(), G4GDMLReadSolids::EltubeRead(), export_G4UnitsTable(), G4GDMLReadSolids::GenericPolyconeRead(), G4GDMLReadSolids::GenericPolyhedraRead(), G4GDMLReadSolids::GenTrapRead(), G4GDMLReadParamvol::Hype_dimensionsRead(), G4GDMLReadSolids::HypeRead(), G4GDMLParser::ImportRegions(), G4GDMLReadMaterials::MEERead(), G4GDMLReadParamvol::Orb_dimensionsRead(), G4GDMLReadSolids::OrbRead(), G4GDMLReadParamvol::Para_dimensionsRead(), G4GDMLReadSolids::ParaboloidRead(), G4GDMLReadSolids::ParaRead(), G4GDMLReadParamvol::Polycone_dimensionsRead(), G4GDMLReadSolids::PolyconeRead(), G4GDMLReadParamvol::Polyhedra_dimensionsRead(), G4GDMLReadSolids::PolyhedraRead(), G4GDMLReadDefine::PositionRead(), G4GDMLReadMaterials::PRead(), G4VVisCommand::ProvideValueOfUnit(), G4GDMLReadSolids::QuadrangularRead(), G4GDMLReadStructure::QuantityRead(), G4GDMLReadSolids::ReflectedSolidRead(), G4GDMLReadDefine::RotationRead(), G4GDMLReadParamvol::Sphere_dimensionsRead(), G4GDMLReadSolids::SphereRead(), G4AttCheck::Standard(), G4GDMLReadSolids::TetRead(), G4GDMLReadParamvol::Torus_dimensionsRead(), G4GDMLReadSolids::TorusRead(), G4GDMLReadParamvol::Trap_dimensionsRead(), G4GDMLReadSolids::TrapRead(), G4GDMLReadParamvol::Trd_dimensionsRead(), G4GDMLReadSolids::TrdRead(), G4GDMLReadMaterials::TRead(), G4GDMLReadSolids::TriangularRead(), G4GDMLReadParamvol::Tube_dimensionsRead(), G4GDMLReadSolids::TubeRead(), G4GDMLReadSolids::TwistedboxRead(), G4GDMLReadSolids::TwistedtrapRead(), G4GDMLReadSolids::TwistedtrdRead(), G4GDMLReadSolids::TwistedtubsRead(), and G4GDMLReadSolids::XtruRead().

◆ GetName()

const G4String & G4UnitDefinition::GetName ( ) const
inline

◆ GetSymbol()

const G4String & G4UnitDefinition::GetSymbol ( ) const
inline

◆ GetUnitsTable()

G4UnitsTable & G4UnitDefinition::GetUnitsTable ( )
static

◆ GetValue()

G4double G4UnitDefinition::GetValue ( ) const
inline

Referenced by export_G4UnitsTable().

◆ GetValueOf()

G4double G4UnitDefinition::GetValueOf ( const G4String str)
static

Definition at line 193 of file G4UnitsTable.cc.

194{
195 G4String name, symbol;
196 for(std::size_t i = 0; i < (GetUnitsTable()).size(); ++i)
197 {
198 G4UnitsContainer& units = (*pUnitsTable)[i]->GetUnitsList();
199 for(std::size_t j = 0; j < units.size(); ++j)
200 {
201 name = units[j]->GetName();
202 symbol = units[j]->GetSymbol();
203 if(str == name || str == symbol)
204 {
205 return units[j]->GetValue();
206 }
207 }
208 }
209 std::ostringstream message;
210 message << "The unit '" << str << "' does not exist in the Units Table!";
211 G4Exception("G4UnitDefinition::GetValueOf()", "InvalidUnit", FatalException,
212 message);
213 return 0.;
214}

References FatalException, G4Exception(), GetUnitsTable(), and G4InuclParticleNames::name().

Referenced by G4GDMLReadMaterials::AtomRead(), G4GDMLReadParamvol::Box_dimensionsRead(), G4GDMLReadSolids::BoxRead(), G4VPrimitiveScorer::CheckAndSetUnit(), G4GDMLReadParamvol::Cone_dimensionsRead(), G4GDMLReadSolids::ConeRead(), G4GDMLReadSolids::CutTubeRead(), G4GDMLReadStructure::DivisionvolRead(), G4GDMLReadMaterials::DRead(), G4GDMLReadSolids::ElconeRead(), G4GDMLReadParamvol::Ellipsoid_dimensionsRead(), G4GDMLReadSolids::EllipsoidRead(), G4GDMLReadSolids::EltubeRead(), export_G4UnitsTable(), G4ScoreQuantityMessenger::FParticleWithEnergyCommand(), G4GDMLReadSolids::GenericPolyconeRead(), G4GDMLReadSolids::GenericPolyhedraRead(), G4GDMLReadSolids::GenTrapRead(), G4tgrUtils::GetDouble(), G4Analysis::GetUnitValue(), G4GDMLReadParamvol::Hype_dimensionsRead(), G4GDMLReadSolids::HypeRead(), G4GDMLParser::ImportRegions(), G4GDMLReadMaterials::MEERead(), G4GDMLReadParamvol::Orb_dimensionsRead(), G4GDMLReadSolids::OrbRead(), G4GDMLReadParamvol::Para_dimensionsRead(), G4GDMLReadSolids::ParaboloidRead(), G4GDMLReadSolids::ParaRead(), G4GDMLReadParamvol::Polycone_dimensionsRead(), G4GDMLReadSolids::PolyconeRead(), G4GDMLReadParamvol::Polyhedra_dimensionsRead(), G4GDMLReadSolids::PolyhedraRead(), G4GDMLReadDefine::PositionRead(), G4GDMLReadMaterials::PRead(), G4VVisCommand::ProvideValueOfUnit(), G4GDMLReadSolids::QuadrangularRead(), G4GDMLReadStructure::QuantityRead(), G4GDMLReadDefine::QuantityRead(), G4GDMLReadSolids::ReflectedSolidRead(), G4GDMLReadDefine::RotationRead(), G4AdjointSimMessenger::SetNewValue(), G4ScoreQuantityMessenger::SetNewValue(), G4GDMLReadParamvol::Sphere_dimensionsRead(), G4GDMLReadSolids::SphereRead(), G4AttCheck::Standard(), G4GDMLReadSolids::TetRead(), G4GDMLReadParamvol::Torus_dimensionsRead(), G4GDMLReadSolids::TorusRead(), G4GDMLReadParamvol::Trap_dimensionsRead(), G4GDMLReadSolids::TrapRead(), G4GDMLReadParamvol::Trd_dimensionsRead(), G4GDMLReadSolids::TrdRead(), G4GDMLReadMaterials::TRead(), G4GDMLReadSolids::TriangularRead(), G4GDMLReadParamvol::Tube_dimensionsRead(), G4GDMLReadSolids::TubeRead(), G4GDMLReadSolids::TwistedboxRead(), G4GDMLReadSolids::TwistedtrapRead(), G4GDMLReadSolids::TwistedtrdRead(), G4GDMLReadSolids::TwistedtubsRead(), G4UIcommand::ValueOf(), G4GDMLReadDefine::VectorRead(), and G4GDMLReadSolids::XtruRead().

◆ IsUnitDefined()

G4bool G4UnitDefinition::IsUnitDefined ( const G4String str)
static

Definition at line 172 of file G4UnitsTable.cc.

173{
174 G4String name, symbol;
175 for(std::size_t i = 0; i < (GetUnitsTable()).size(); ++i)
176 {
177 G4UnitsContainer& units = (*pUnitsTable)[i]->GetUnitsList();
178 for(std::size_t j = 0; j < units.size(); ++j)
179 {
180 name = units[j]->GetName();
181 symbol = units[j]->GetSymbol();
182 if(str == name || str == symbol)
183 {
184 return true;
185 }
186 }
187 }
188 return false;
189}

References GetUnitsTable(), and G4InuclParticleNames::name().

Referenced by G4VVisCommand::ConvertToDoublePair(), and G4VVisCommand::ProvideValueOfUnit().

◆ operator!=()

G4bool G4UnitDefinition::operator!= ( const G4UnitDefinition right) const

Definition at line 144 of file G4UnitsTable.cc.

145{
146 return (this != (G4UnitDefinition*) &right);
147}

◆ operator=()

G4UnitDefinition & G4UnitDefinition::operator= ( const G4UnitDefinition right)
private

Definition at line 123 of file G4UnitsTable.cc.

124{
125 if(this != &right)
126 {
127 Name = right.Name;
128 SymbolName = right.SymbolName;
129 Value = right.Value;
131 }
132 return *this;
133}

References CategoryIndex, Name, SymbolName, and Value.

◆ operator==()

G4bool G4UnitDefinition::operator== ( const G4UnitDefinition right) const

Definition at line 137 of file G4UnitsTable.cc.

138{
139 return (this == (G4UnitDefinition*) &right);
140}

◆ PrintDefinition()

void G4UnitDefinition::PrintDefinition ( )

Definition at line 244 of file G4UnitsTable.cc.

245{
246 G4int nameL = (*pUnitsTable)[CategoryIndex]->GetNameMxLen();
247 G4int symbL = (*pUnitsTable)[CategoryIndex]->GetSymbMxLen();
248 G4cout << std::setw(nameL) << Name << " (" << std::setw(symbL) << SymbolName
249 << ") = " << Value << G4endl;
250}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout

References CategoryIndex, G4cout, G4endl, Name, SymbolName, and Value.

Referenced by export_G4UnitsTable().

◆ PrintUnitsTable()

void G4UnitDefinition::PrintUnitsTable ( )
static

Definition at line 432 of file G4UnitsTable.cc.

433{
434 G4cout << "\n ----- The Table of Units ----- \n";
435 if(pUnitsTable == nullptr)
436 {
438 }
439 for(std::size_t i = 0; i < pUnitsTable->size(); ++i)
440 {
441 (*pUnitsTable)[i]->PrintCategory();
442 }
443}

References G4cout, and pUnitsTable.

Referenced by export_G4UnitsTable(), and G4UnitsMessenger::SetNewValue().

Field Documentation

◆ CategoryIndex

std::size_t G4UnitDefinition::CategoryIndex = 0
private

Definition at line 112 of file G4UnitsTable.hh.

Referenced by G4UnitDefinition(), operator=(), and PrintDefinition().

◆ Name

G4String G4UnitDefinition::Name
private

Definition at line 105 of file G4UnitsTable.hh.

Referenced by operator=(), and PrintDefinition().

◆ pUnitsTable

G4ThreadLocal G4UnitsTable * G4UnitDefinition::pUnitsTable = nullptr
staticprivate

◆ SymbolName

G4String G4UnitDefinition::SymbolName
private

Definition at line 106 of file G4UnitsTable.hh.

Referenced by operator=(), and PrintDefinition().

◆ unitsTableDestroyed

G4ThreadLocal G4bool G4UnitDefinition::unitsTableDestroyed = false
staticprivate

Definition at line 110 of file G4UnitsTable.hh.

Referenced by ClearUnitsTable(), and G4UnitDefinition().

◆ Value

G4double G4UnitDefinition::Value = 0.0
private

Definition at line 107 of file G4UnitsTable.hh.

Referenced by operator=(), and PrintDefinition().


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