// This code implementation is the intellectual property of // the RD44 GEANT4 collaboration. // // By copying, distributing or modifying the Program (or any work // based on the Program) you indicate your acceptance of this statement, // and all its terms. // // $Id: G4UnitsTable.hh,v 2.3 1998/12/02 09:50:21 asaim Exp $ // GEANT4 tag $Name: geant4-00 $ // // // ----------------------------------------------------------------- // GEANT 4 class header file // // For information related to this code contact: // CERN, CN Division, ASD group // // ------------------- class G4UnitsTable ----------------- // // 17-05-98: first version, M.Maire // 13-10-98: Units and symbols printed in fxed length //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #ifndef G4UnitsTable_HH #define G4UnitsTable_HH #include "globals.hh" #include class G4UnitsCategory; typedef RWTPtrOrderedVector G4UnitsTable; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... class G4UnitDefinition { public: G4UnitDefinition(G4String name, G4String symbol,G4String category, G4double value); ~G4UnitDefinition(); G4int operator==(const G4UnitDefinition&) const; G4int operator!=(const G4UnitDefinition&) const; private: G4UnitDefinition(G4UnitDefinition&); const G4UnitDefinition & operator=(const G4UnitDefinition&); public: G4String GetName() {return Name;}; G4String GetSymbol() {return SymbolName;}; G4double GetValue() {return Value;}; void PrintDefinition(); static void BuildUnitsTable(); static void PrintUnitsTable(); static G4UnitsTable& GetUnitsTable() {return theUnitsTable;}; static G4double GetValueOf (G4String); static G4String GetCategory(G4String); private: G4String Name; // SI name G4String SymbolName; // SI symbol G4double Value; // value in the internal system of units static G4UnitsTable theUnitsTable; // table of Units size_t CategoryIndex; // category index of this unit }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... typedef RWTPtrOrderedVector G4UnitsContainer; class G4UnitsCategory { public: G4UnitsCategory(G4String name); ~G4UnitsCategory(); G4int operator==(const G4UnitsCategory&) const; G4int operator!=(const G4UnitsCategory&) const; private: G4UnitsCategory(G4UnitsCategory&); const G4UnitsCategory & operator=(const G4UnitsCategory&); public: G4String GetName() {return Name;}; G4UnitsContainer& GetUnitsList() {return UnitsList;}; G4int GetNameMxLen() {return NameMxLen;}; G4int GetSymbMxLen() {return SymbMxLen;}; void UpdateNameMxLen(G4int len) {if (NameMxLen