+ * The trigger menu symbol is used to either label a TObject variable found in
+ * one of the input data blocks or create a constant object that can be used in
+ * various trigger menu expressions.
+ * It essentially represents a C++ variable with a name and type. This is filled
+ * with the information found in an input TObject, as specified by the
+ * <i>AssignExpression()</i> method. If nothing can be assigned because an
+ * appropriate TObject cannot be found, then a default value is used.
+ * The correct TObject is found by searching for a TObject with a matching class
+ * type as given by <i>ObjectClass()</i> from the input data blocks. The input
+ * data block must also have the data block type and specification match those
+ * given in the <i>BlockType()</i> method.
+ *
+ * The symbol name should normally be a valid C++ symbol name. This normally
+ * excludes the minus sign from being used in the name. However, since CTP trigger
+ * names use the minus sign extensively, the minus sign is also allowed in HLT
+ * trigger menu symbol names. This is implicitly converted to an underscore in the
+ * name. However, the original name with minus signs is retained and available
+ * with the <i>RealName()</i> method. In addition, the <i>RealName</i> is used
+ * for display purposes.
+ * \note Trigger menu symbols names that use minus signs are synonymous to those
+ * that use understores in the same locations. For this reason it is better to use
+ * one or the other form, but not both at the same time.
+ * \note The following symbol names are reserved and should not be used:
+ * _domain_
+ * _description_
+ * _item_result_
+ * _group_result_
+ * _previous_match_
+ * _trigger_matched_
+ * FillFromMenu
+ * NewEvent
+ * Add
+ * CalculateTriggerDecision
+ * GetCounters
+ * SetCounters
+ * CreateNew