Skip to content

filter circular data dependencies

Charles Leggett requested to merge leggett/Gaudi:dev/dev/CircDataDeps into master

First check Algorithms to see if they have explicit circular data dependencies (ie both read and write DataHandles have been declared for the same object). This is an error condition.

Also, adds a boolean Property (FilterCircularDependencies) to Algorithm to selectively filter out circular data dependencies that may have been inherited from child AlgTool. After the full set of data dependencies of the Alg and its AlgTools have been assembled by the DataHandleHolderVisitor, check again for circular dependencies. If the Property is set True, cirular deps will be filtered out by removing the Input dep. A WARNING will be issued. If set False, an ERROR will be printed, and Algorithm::initialize() will return a StatusCode::FAILURE.

Current default for the Property is True. This should be changed to False in the future.

Merge request reports