ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <geant4/tree/geant4-10.6-release/source/externals/clhep/include/CLHEP/Evaluator/Evaluator.h>
Public Member Functions | |
Evaluator () | |
~Evaluator () | |
double | evaluate (const char *expression) |
int | status () const |
int | error_position () const |
void | print_error () const |
std::string | error_name () const |
void | setVariable (const char *name, double value) |
void | setVariable (const char *name, const char *expression) |
void | setFunction (const char *name, double(*fun)()) |
void | setFunction (const char *name, double(*fun)(double)) |
void | setFunction (const char *name, double(*fun)(double, double)) |
void | setFunction (const char *name, double(*fun)(double, double, double)) |
void | setFunction (const char *name, double(*fun)(double, double, double, double)) |
void | setFunction (const char *name, double(*fun)(double, double, double, double, double)) |
bool | findVariable (const char *name) const |
bool | findFunction (const char *name, int npar) const |
void | removeVariable (const char *name) |
void | removeFunction (const char *name, int npar) |
void | clear () |
void | setStdMath () |
void | setSystemOfUnits (double meter=1.0, double kilogram=1.0, double second=1.0, double ampere=1.0, double kelvin=1.0, double mole=1.0, double candela=1.0) |
Private Member Functions | |
Evaluator (const Evaluator &) | |
Evaluator & | operator= (const Evaluator &) |
Private Attributes | |
void * | p |
Evaluator of arithmetic expressions with an extendable dictionary. Example:
Definition at line 25 of file Evaluator.h.
View newest version in sPHENIX GitHub at line 25 of file Evaluator.h
anonymous enum |
List of possible statuses. Status of the last operation can be obtained with status(). In case if status() is an ERROR the corresponding error message can be printed with print_error().
Definition at line 38 of file Evaluator.h.
View newest version in sPHENIX GitHub at line 38 of file Evaluator.h
HepTool::Evaluator::Evaluator | ( | ) |
Constructor.
Definition at line 598 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 598 of file Evaluator.cc
References OK, Struct::theExpression, Struct::thePosition, Struct::theResult, and Struct::theStatus.
HepTool::Evaluator::~Evaluator | ( | ) |
Destructor.
Definition at line 608 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 608 of file Evaluator.cc
|
private |
Clear all settings.
Definition at line 764 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 764 of file Evaluator.cc
References OK, Struct::theDictionary, Struct::theExpression, Struct::thePosition, Struct::theResult, and Struct::theStatus.
Referenced by G4GDMLEvaluator::Clear(), and G4GDMLEvaluator::G4GDMLEvaluator().
std::string HepTool::Evaluator::error_name | ( | ) | const |
get a string defining the error name
Definition at line 652 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 652 of file Evaluator.cc
References ERROR_CALCULATION_ERROR, ERROR_EMPTY_PARAMETER, ERROR_NOT_A_NAME, ERROR_SYNTAX_ERROR, ERROR_UNEXPECTED_SYMBOL, ERROR_UNKNOWN_FUNCTION, ERROR_UNKNOWN_VARIABLE, ERROR_UNPAIRED_PARENTHESIS, and Struct::theStatus.
Referenced by print_error().
int HepTool::Evaluator::error_position | ( | ) | const |
Returns position in the input string where the problem occured.
Definition at line 638 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 638 of file Evaluator.cc
double HepTool::Evaluator::evaluate | ( | const char * | expression | ) |
Evaluates the arithmetic expression given as character string. The expression may consist of numbers, variables and functions separated by arithmetic (+, - , /, *, ^, **) and logical operators (==, !=, >, >=, <, <=, &&, ||).
expression | input expression. |
Definition at line 613 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 613 of file Evaluator.cc
References engine, Struct::theDictionary, Struct::theExpression, Struct::thePosition, Struct::theResult, Struct::theStatus, and WARNING_BLANK_STRING.
Referenced by G4GDMLEvaluator::Evaluate(), and G4tgrUtils::GetDouble().
bool HepTool::Evaluator::findFunction | ( | const char * | name, |
int | npar | ||
) | const |
Finds the function in the dictionary.
name | name of the function to be unset. |
npar | number of parameters of the function. |
Definition at line 734 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 734 of file Evaluator.cc
References MAX_N_PAR, n, REMOVE_BLANKS, sss, and Struct::theDictionary.
bool HepTool::Evaluator::findVariable | ( | const char * | name | ) | const |
Finds the variable in the dictionary.
name | name of the variable. |
Definition at line 723 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 723 of file Evaluator.cc
References n, REMOVE_BLANKS, and Struct::theDictionary.
Referenced by G4GDMLEvaluator::DefineConstant(), G4GDMLEvaluator::DefineVariable(), and G4GDMLEvaluator::GetConstant().
void HepTool::Evaluator::print_error | ( | ) | const |
Prints error message if status() is an ERROR.
Definition at line 643 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 643 of file Evaluator.cc
References error_name(), OK, and Struct::theStatus.
Referenced by G4GDMLEvaluator::Evaluate(), and G4tgrEvaluator::print_error().
Removes the function from the dictionary.
name | name of the function to be unset. |
npar | number of parameters of the function. |
Definition at line 754 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 754 of file Evaluator.cc
References MAX_N_PAR, n, REMOVE_BLANKS, sss, and Struct::theDictionary.
void HepTool::Evaluator::removeVariable | ( | const char * | name | ) |
Removes the variable from the dictionary.
name | name of the variable. |
Definition at line 745 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 745 of file Evaluator.cc
References n, REMOVE_BLANKS, and Struct::theDictionary.
void HepTool::Evaluator::setFunction | ( | const char * | name, |
double(*)() | fun | ||
) |
Adds to the dictionary a function without parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.
name | function name. |
fun | pointer to the real function in the user code. |
Definition at line 698 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 698 of file Evaluator.cc
References setItem().
Referenced by G4tgrEvaluator::AddCommonFunctions(), and setStdMath().
void HepTool::Evaluator::setFunction | ( | const char * | name, |
double(*)(double) | fun | ||
) |
Adds to the dictionary a function with one parameter. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.
name | function name. |
fun | pointer to the real function in the user code. |
Definition at line 702 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 702 of file Evaluator.cc
References setItem().
void HepTool::Evaluator::setFunction | ( | const char * | name, |
double(*)(double, double) | fun | ||
) |
Adds to the dictionary a function with two parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.
name | function name. |
fun | pointer to the real function in the user code. |
Definition at line 706 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 706 of file Evaluator.cc
References setItem().
void HepTool::Evaluator::setFunction | ( | const char * | name, |
double(*)(double, double, double) | fun | ||
) |
Adds to the dictionary a function with three parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.
name | function name. |
fun | pointer to the real function in the user code. |
Definition at line 710 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 710 of file Evaluator.cc
References setItem().
void HepTool::Evaluator::setFunction | ( | const char * | name, |
double(*)(double, double, double, double) | fun | ||
) |
Adds to the dictionary a function with four parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.
name | function name. |
fun | pointer to the real function in the user code. |
Definition at line 714 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 714 of file Evaluator.cc
References setItem().
void HepTool::Evaluator::setFunction | ( | const char * | name, |
double(*)(double, double, double, double, double) | fun | ||
) |
Adds to the dictionary a function with five parameters. If such a function already exist in the dictionary, then status will be set to WARNING_EXISTING_FUNCTION.
name | function name. |
fun | pointer to the real function in the user code. |
Definition at line 718 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 718 of file Evaluator.cc
References setItem().
void HepTool::Evaluator::setStdMath | ( | ) |
Sets standard mathematical functions and constants.
Definition at line 29 of file setStdMath.cc.
View newest version in sPHENIX GitHub at line 29 of file setStdMath.cc
References eval_abs(), eval_acos(), eval_asin(), eval_atan(), eval_atan2(), eval_cos(), eval_cosh(), eval_exp(), eval_log(), eval_log10(), eval_max(), eval_min(), eval_pow(), eval_sin(), eval_sinh(), eval_sqrt(), eval_tan(), eval_tanh(), setFunction(), and setVariable().
Referenced by G4GDMLEvaluator::Clear(), and G4GDMLEvaluator::G4GDMLEvaluator().
void HepTool::Evaluator::setSystemOfUnits | ( | double | meter = 1.0 , |
double | kilogram = 1.0 , |
||
double | second = 1.0 , |
||
double | ampere = 1.0 , |
||
double | kelvin = 1.0 , |
||
double | mole = 1.0 , |
||
double | candela = 1.0 |
||
) |
Sets system of units. Default is the SI system of units. To set the CGS (Centimeter-Gram-Second) system of units one should call: setSystemOfUnits(100., 1000., 1.0, 1.0, 1.0, 1.0, 1.0);
To set system of units accepted in the GEANT4 simulation toolkit one should call:
The basic units in GEANT4 are:
Definition at line 8 of file setSystemOfUnits.cc.
View newest version in sPHENIX GitHub at line 8 of file setSystemOfUnits.cc
References A(), ampere, bar, barn, Bq, C(), candela, cd, cm, deg, e, e_SI, eV, F, Acts::UnitConstants::g, H, kelvin, kg, kilogram, km, L, m, meter, mm, mole, N, ohm, pi, rad, S(), second, setVariable(), sr, and T.
Referenced by G4GDMLEvaluator::Clear(), and G4GDMLEvaluator::G4GDMLEvaluator().
void HepTool::Evaluator::setVariable | ( | const char * | name, |
double | value | ||
) |
Adds to the dictionary a variable with given value. If a variable with such a name already exist in the dictionary, then status will be set to WARNING_EXISTING_VARIABLE.
name | name of the variable. |
value | value assigned to the variable. |
Definition at line 689 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 689 of file Evaluator.cc
References setItem().
Referenced by G4GDMLEvaluator::DefineConstant(), G4GDMLEvaluator::DefineVariable(), setStdMath(), setSystemOfUnits(), and G4GDMLEvaluator::SetVariable().
void HepTool::Evaluator::setVariable | ( | const char * | name, |
const char * | expression | ||
) |
Adds to the dictionary a variable with an arithmetic expression assigned to it. If a variable with such a name already exist in the dictionary, then status will be set to WARNING_EXISTING_VARIABLE.
name | name of the variable. |
expression | arithmetic expression. |
Definition at line 692 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 692 of file Evaluator.cc
References setItem().
int HepTool::Evaluator::status | ( | ) | const |
Returns status of the last operation with the evaluator.
Definition at line 633 of file Evaluator.cc.
View newest version in sPHENIX GitHub at line 633 of file Evaluator.cc
Referenced by G4GDMLEvaluator::Evaluate(), and G4tgrUtils::GetDouble().
|
private |
Definition at line 256 of file Evaluator.h.
View newest version in sPHENIX GitHub at line 256 of file Evaluator.h