Stdlib + Utilities
PythiaStdlib
only exists as a header file, collecting
some simple declarations and inline utilities. Using them may save
some time. If you have an #include "Pythia.h"
in the
beginning of your main program you automatically have access to them.
PythiaStdlib
collects all the include
and
using
statements that are required by most other classes
to access the C++ Stdlib
containers and methods, such as
string
, vector
, map
, some
mathematical functions, and input/output streams and formats.
It defines M_PI
if this is not already done.
Further, a complex
data type is defined by a
typedef std::complex<double>
.
There are also a few inlined functions. On the mathematics side these
include pow2(x)
, pow3(x)
, pow4(x)
and pow5(x)
for small integer powers, and
sqrtpos(x)
where a max(0., x)
ensures that
one does not take the square root of a negative number.
On the string manipulation side tolower(string)
converts
a whole string to lowercase characters (extending on the
tolower
function for a single character). The
boolString(string)
method takes a string as input and
converts it to a bool
, so that there are several
alternative ways to say yes ("true", "1", "on", "yes", "ok", also in
uppercase).
Some methods ease the task of reading XML input. Assume you have an
line that somewhere contains an attribute="value"
.
Then attributeValue(string line, string attribute)
will return a string corresponding to the value
field,
or an empty string if the attribute
is not found.
The boolAttributeValue
, intAttributeValue
and doubleAttributeValue
methods convert the
value
field into the corresponding type, with
value false
or 0 if the attribute
is not
found.