358 vector<G4AttValue>::const_iterator iValue;
360 const G4String& valueName = iValue->GetName();
361 const G4String& value = iValue->GetValue();
362 map<G4String,G4AttDef>::const_iterator iDef =
367 const G4String& category = iDef->second.GetCategory();
368 const G4String& extra = iDef->second.GetExtra();
369 const G4String& valueType = iDef->second.GetValueType();
371 (category ==
"Physics" &&
fUnits->find(extra) ==
fUnits->end()) ||
375 if (category !=
"Physics") {
376 standardValues->push_back(*iValue);
377 (*standardDefinitions)[valueName] =
381 if (valueType ==
"G4ThreeVector") {
385 (standardValues,standardDefinitions,
386 valueName,valueName+
"-X",
390 (standardValues,standardDefinitions,
391 valueName,valueName+
"-Y",
395 (standardValues,standardDefinitions,
396 valueName,valueName+
"-Z",
400 standardValues->push_back(*iValue);
401 (*standardDefinitions)[valueName] =
407 if (extra ==
"G4BestUnit") {
408 valueAndUnit = value;
409 valueAndUnit = valueAndUnit.
strip();
410 unit = valueAndUnit.substr(valueAndUnit.rfind(
' ')+1);
412 valueAndUnit = value +
' ' + extra;
413 valueAndUnit = valueAndUnit.
strip();
418 G4String standardUnit = (*fStandardUnits)[unitCategory];
422 if (valueType ==
"G4ThreeVector") {
426 (standardValues,standardDefinitions,
427 valueName,valueName+
"-X",
429 (internalValue.
x()/valueOfStandardUnit),
433 (standardValues,standardDefinitions,
434 valueName,valueName+
"-Y",
436 (internalValue.
y()/valueOfStandardUnit),
440 (standardValues,standardDefinitions,
441 valueName,valueName+
"-Z",
443 (internalValue.
z()/valueOfStandardUnit),
450 (standardValues,standardDefinitions,
453 (internalValue/valueOfStandardUnit),
463 G4cerr <<
"G4AttCheck::Standard: Conversion error." <<
G4endl;
void AddValuesAndDefs(std::vector< G4AttValue > *newValues, std::map< G4String, G4AttDef > *newDefinitions, const G4String &oldName, const G4String &name, const G4String &value, const G4String &extra, const G4String &description="") const
const std::vector< G4AttValue > * fpValues
G4String strip(G4int strip_Type=trailing, char c=' ')
const std::map< G4String, G4AttDef > * fpDefinitions
static G4String ConvertToString(G4bool boolVal)
static G4ThreeVector ConvertTo3Vector(const char *st)
static G4ThreadLocal std::set< G4String > * fValueTypes
static G4double ConvertToDimensionedDouble(const char *st)
static G4double GetValueOf(const G4String &)
static G4ThreadLocal std::set< G4String > * fCategories
static G4ThreadLocal std::set< G4String > * fUnits
static G4String GetCategory(const G4String &)
static PROLOG_HANDLER error
static G4ThreadLocal std::set< G4String > * fUnitCategories
G4GLOB_DLL std::ostream G4cerr
static G4ThreeVector ConvertToDimensioned3Vector(const char *st)