Skip to content

Optimisations for TriggerTower

Stewart Martin-Haugh requested to merge smh/athena:TriggerTowerOpt into master

Couple of quick fixes to speed up the floating point L1Calo simulation.

1)Although coolId() is const, the compiler does not successfully inline it, so it gets called twice by layer()/sampling(), rather than cached. Copy to a local variable. I would think that usually the compiler could make this optimisation: maybe something to do with the xAOD macros for auxstore setters/getters?

2)An eta() cut of <1.5 is fast to calculate and quite restrictive - apply that first.

These bring down the time spent in coolId() by a factor of 6:

prof_ref/text_summary:    18.86s  6.56%  6.56%     18.86s  6.56%  xAOD::TriggerTower_v2::coolId (inline)
prof_test/text_summary:     3.50s  1.27% 56.99%      3.50s  1.27%  xAOD::TriggerTower_v2::coolId (partial-inline)

over 100 events.

Part of ATR-24078

Merge request reports