Features in Gaudi that the LAT team has found useful (according to the GLAST LAT Software Web pages)

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.