Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The function's catalog is a collection of built-in and ([IFunctionCatalog|http://aida.freehep.org/doc/v3.2.1/api/hep/aida/IFunctionCatalog.html
]) is to be used to register user defined functions that have been registered with itso that they can be easily created or cloned through the IFunctionFactory.

Registering User Defined Functions

After defining a function, eigher by scripting or coding it, it is possible to register it with the function's catalog by simply adding it specifying a name that will be used when creating it via the IFunctionFactory.
In the following example a function is registered with the catalog and used by name when creating a new function (the sum of a gaussian with the newly registered function):

Code Block
borderStylesolid

// The AIDA Factories
IAnalysisFactory af = IAnalysisFactory.create();
ITree = af.createTreeFactory().create();
IFunctionFactory ff = af.createFunctionFactory(tree);

// Register the function myFunc with the catalog.
// Note that there are many ways in which myFunc could have been created.
ff.catalog().add("myFunc",myFunc);

IFunction func = ff.createFunctionByName("func","g+myFunc");

Codelet

Panel
borderColor#ccc
bgColor#FFFFCE
titleBGColor#F7D6C1
titleFeedback needed
borderStyledashed

The function's codelet is a unique string that is used internally by the function's factory to uniquely identify a function and be able to create it and clone it.
When registering a user defined function, the user must provide a valid codelet for the function's factory to be able to create and clone the new function.
It is possible to create functions from:

  • scripts
  • jar files
  • URLs
  • other exising catalogs