Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

UNDER CONSTRUCTION

One will find below the diagram of the CalRecon algorithms at the end of 2004. Apart from the usual historical inconsistencies with class names, I was mainly worrying about the fact that CalClustersAlg has three attributes corresponding to the three concrete classes deriving from IEnergyCorr. The flexibility given by IEnergyCorr is partially frozen by such a predefined number of components.

Image Removed

The first step of refactoring was concerning the clustering classes. It was the easiest door to the package, with much duplicated code. The diagram below illustrates the result. The change appears small as compared to the previous diagram, but this hides many code moved here and there.

Image Removed

Second step was about the energy corrections. As suggested before, main task was to replace the three predefined attributes of CalClustersAlg with a single generic list. This was requiring some work to enforce a real common interface to all tools (there was three predefined attributes because the abstract interface was not appropriate).

Image Removed

While searching for the perfect IEnergyCorr, we finally break the obstacles by using a kind of "proxy" class which were centralizing all the access to the TDS and Gaudi services. We called it the "kernel". As a side effect, centralizing all the Gaudi-like access stuff has considerably reduced the rest of the code and made it clearer. Since kernel was to be shared by all algo-like objects of the package (let's call them "actors"), we made it a Gaudi tool, and we put the code to access this tool in a CalReconActor class to be inherited by all actors. This is what is described below. And this is what is more or less the current state of the code.

Image Removed

Image Removed

Image RemovedTo Be Erased