Gaudi Feature
|
Use
|
Why we want to use it
|
Why this feature may not be necessary
|
Common Framework
|
Base classes for Algorithms, Services, and Tools
|
Forces a disparate team to follow certain structural
rules
|
We could follow a similar structure without having
to use Gaudi.
|
Ability to load shared libraries
dynamically
|
allows easy creation/modification of tools |
Tools can be jobOptions files
|
Tools defined in Review document have limited scope
- hard to see how this would be used in production version of Standard Analysis
Environment. This environment would be quite different from any other
HEA mission.
|
allows easy swapping of libraries
|
Easy to try out new code.
|
By production release, the choices of algorithms we
provide should be limited. Similar algortihms will likely be included
in the same shareable library, so may not be any advantage to specifying
libraries at run time.
|
Data sharing through TDS
|
data memory management
|
Just have to register objects.
|
Don't expect memory management to be that complicated
for our tools.
|
provide data store
|
Do not need to pass pointers to all methods that use
the data.
|
Couldn't we do the same thing with a hash of pointers
to objects?
|
Messaging service
|
multi level output which is locally specifyable
|
Can make messages based on a run-time settable noisiness
parameter
|
The same functionality is provided by HEAdas, which
is providing a C++ stream interface.
|
Chrono service
|
timing performance of code blocks
|
Can find the performance bottlenecks easily
|
This will not be very useful in production mode. Besides,
there are other ways to get at timing the code.
|
Memory Auditor
|
chart memory usage
|
helps develop efficient use of memory.
|
Not very useful in production mode. We can do the same
thing in development with tools like Insure or Purify.
|
Incident service
|
call sepcial code when incidents happen.
|
Allows special code for software events to be run automatically
|
Is this necessary? This is usually desired in
a processing loop, where it would not be difficult to insert checks for this
conditional code call.
|
Object Persitence through ROOT
|
method for storing objects for later use
|
Already defined method for storing rereadable
objects
|
Why would we store something on disk? If this is a
file that will be passed to another tool, we would also like the ablility
to save the data in FITS/ROOT format so other external tools can read them.
If host memory is an issue, we can easily use virtual memory on disk.
|
Modularity and Flexibility
|
modify processing chain |
allows users to modify processing at a deep level without
touching code. |
The same functionality could be provided with a scripting
extension and a reasonable code design. The much discussed GUI should
also provide a lot of this service.
|