Skip to content

Reorder TrackingGeometry deps for serial athena ( = without Scheduler)

This is to satisfy the "artificial" dependencies of the SiDetElementCondAlgs, which exist only to restrict the lifetime of these SiDetElements in the CondStore to the lifetime of the TrackingGeometry.

For AthenaMT the AvalancheScheduler automatically resolves the ordering problem, for Single Threaded Athena this is not the case, which is why this MR exists. The changes in this MR manually edit the order of the conditions algorithms, such that the dependencies are satisfied. For the old config this is relatively straight forward, moving entries im a list around.

For the new config, this seems to be much more brittle, as there seems to be ownership of c++ instances within the list of condAlgs (please correct me if I'm wrong), which means copying elements can lead to algs running out of scope if the latest copy goes out of scope. Additionally, the reordering only works AFTER adding the primary=True module (here the TrackingGoemetryCondAlg), otherwise there are two primary modules (I think).

If you think "all this is a terrible idea" we are on the same page, which is also why this is a Draft MR, but I don't know a better solution. If you can come up with one, I'll be very happy to discuss.

Edited by Robert Johannes Langenberg

Merge request reports