Internally, variable names are stored as a series of strings separated by
periods. The first part of the name is the class, followed by the
name followed by an optional attribute (class.name[.attribute]).
(Attributes are usually not used in the definition files described in
section 6.2)
The class names for what has been discussed so far are event,
parm, and test. For example, the variable proton
is stored internally as parm.proton. It is important to note that
in the source code, one continues to use the variable name proton.
Similarly, in the input files for parameters, tests and histograms, the
variable name without the class may be generally used. When these files
are interpreted, assumptions are made about the variable class by context
rules. The assumptions may be overridden by writing out the variable name
with the class identifier included.
When a variable is registered, a number of attributes of this variable are saved along with the pointer to the actual value of the variable. These attributes are