InDetTrigTrackSlimmer: Use ITrackSlimmingTool::slimCopy().
Change TrigTrackSlimmer to use the slimCopy() method of ITrackSlimmingTool rather than slim.
Avoids thread-safety issues.
Merge request reports
Activity
added InnerDetector Trigger master review-pending-level-1 labels
CI Result SUCCESS (hash 02be99f3)Athena AthSimulation AnalysisBase AthGeneration externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthGeneration: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 15329]I don't know how the slimmed tracks are being used (are they needed at all in the trigger?). In the offline reconstruction there was the problem that element links between muons and tracks got broken due to slimming (muon reconstruction uses unslimmed tracks). Nobody came up with a good solution. So, in the end the track slimmer in offline reconstruction only sets slimming hints (configurable) which are used by the output converter to select the content that is written out.
This solutions is not thread safe, since the slimming hints are currently not atomic (I think). There is presumably also no robust mechanism to refer to slimmed tracks, and the current solution relies on the output streamer being executed after everything else. There is another potential problem which however was not considered to be relevant. The unslimmed tracks contain extra information which could be used by algorithms which are supposed to see only slimmed tracks. Thus, these algorithms may perform differently if they are run in the ESDtoAOD step rather than RAWtoALL. Moreover, cycling through all the irrelevant content of unslimmed tracks may require more CPU. I am not aware of any issues caused by these shortcomings. So, they are presumably academic.
So, maybe the better solution would be to make the slimming hints atomic and use "decoration handles" ?
added review-user-action-required label
- Resolved by Christos Anastopoulos
The motivation here is that due to an oversight, the thread-safety checker was not properly checking virtual calls. When this is fixed, we get a warning because slim() is marked NOT_THREAD_SAFE. This avoids the warning.
I'd like to get the warnings cleaned up before pushing in the fix for the checker, so unless this is making things worse, i'd like to go ahead and merge this.
removed review-pending-level-1 label
added review-pending-level-1 label and removed review-user-action-required label
CI Result SUCCESS (hash 02be99f3)Athena AthSimulation AnalysisBase AthGeneration externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthGeneration: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 16694]added review-approved label and removed review-pending-level-1 label
mentioned in commit f3dd4505
added sweep:ignore label