61      G4String error_msg = 
"Redefinition of constant or variable: "+
name;
    62      G4Exception(
"G4GDMLEvaluator::DefineConstant()", 
"InvalidExpression",
    72      G4String error_msg = 
"Redefinition of constant or variable: "+
name;
    73      G4Exception(
"G4GDMLEvaluator::DefineVariable()", 
"InvalidExpression",
    82                                          std::vector<G4double> valueList)
    84    const G4int size = valueList.size();
    88      G4String error_msg = 
"Matrix '"+name+
"' is empty!";
    89      G4Exception(
"G4GDMLEvaluator::DefineMatrix()", 
"InvalidSize",
   103    if (size % coldim != 0)
   105      G4String error_msg = 
"Matrix '" + name + 
"' is not filled correctly!";
   106      G4Exception(
"G4GDMLEvaluator::DefineMatrix()", 
"InvalidSize",
   110    if ((size == coldim) || (coldim == 1))   
   112       for (
G4int i=0;i<size;i++)
   114          std::stringstream MatrixElementNameStream;
   115          MatrixElementNameStream << name << 
"_" << i;
   121       const G4int rowdim = size/coldim;
   123       for (
G4int i=0;i<rowdim;i++)
   125         for (
G4int j=0;j<coldim;j++)
   127           std::stringstream MatrixElementNameStream;
   128           MatrixElementNameStream << name << 
"_" << i << 
"_" << j;
   129           DefineConstant(MatrixElementNameStream.str(),valueList[coldim*i+j]);
   139      G4String error_msg = 
"Variable '" + name + 
"' is not defined!";
   140      G4Exception(
"G4GDMLEvaluator::SetVariable()", 
"InvalidSetup",
   150    for (
size_t i=0;i<variableCount;i++)
   160    std::string::size_type full  = in.size();
   161    std::string::size_type 
open  = in.find(
"[",0);
   162    std::string::size_type 
close = in.find(
"]",0);
   164    if (open==close) { 
return in; }
   166    if ((open>close) || (open==std::string::npos) || (close==std::string::npos))
   168      G4String error_msg = 
"Bracket mismatch: " + 
in;
   169      G4Exception(
"G4GDMLEvaluator::SolveBrackets()", 
"InvalidExpression",
   174    std::string::size_type begin = 
open;
   175    std::string::size_type end = 0;
   176    std::string::size_type end1 = 0;
   178    out.append(in,0,open);
   184        end = in.find(
",",begin+1);
   185        end1= in.find(
"]",begin+1);
   186        if (end>end1)                { end = end1; }
   187        if (end==std::string::npos)  { end = 
close;}
   189        std::stringstream indexStream;
   190        indexStream << 
"_" << 
EvaluateInteger(in.substr(begin+1,end-begin-1))-1;
   192        out.append(indexStream.str());
   198      if (full==close) { 
return out; }
   200      open  = in.find(
"[",begin);
   201      close = in.find(
"]",begin+1);
   203      if (open==close) { out.
append(in.substr(end+1,full-end-1)); 
return out; }
   204      out.
append(in.substr(end+1,open-end-1));
   208    } 
while (close<full);
   219    if (!expression.empty())
   226          G4String error_msg = 
"Error in expression: " + expression;
   227          G4Exception(
"G4GDMLEvaluator::Evaluate()", 
"InvalidExpression",
   248      G4String error_msg = 
"Expression '" + expression
   249                         + 
"' is expected to have an integer value!";
   250      G4Exception(
"G4GDMLEvaluator::EvaluateInteger()", 
"InvalidExpression",
   260      G4String error_msg = 
"Constant '" + name
   261                         + 
"' is not defined! It is a variable!";
   262      G4Exception(
"G4GDMLEvaluator::GetConstant()", 
"InvalidSetup",
   267      G4String error_msg = 
"Constant '" + name + 
"' is not defined!";
   268      G4Exception(
"G4GDMLEvaluator::GetConstant()", 
"InvalidSetup",
   278      G4String error_msg = 
"Variable '" + name + 
"' is not a defined!";
   279      G4Exception(
"G4GDMLEvaluator::GetVariable()", 
"InvalidSetup",
   287    std::ostringstream os;
   295    std::ostringstream os;
 G4int EvaluateInteger(const G4String &)
 
G4double GetConstant(const G4String &)
 
void DefineConstant(const G4String &, G4double)
 
static const double candela
 
std::vector< G4String > variableList
 
static const double meter
 
G4String ConvertToString(G4int ival)
 
static const double second
 
void DefineMatrix(const G4String &, G4int, std::vector< G4double >)
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
static const double kelvin
 
G4String SolveBrackets(const G4String &)
 
void SetVariable(const G4String &, G4double)
 
static const double kilogram
 
G4String & append(const G4String &)
 
G4double GetVariable(const G4String &)
 
void DefineVariable(const G4String &, G4double)
 
G4bool IsVariable(const G4String &) const
 
static const double ampere
 
G4double Evaluate(const G4String &)