PyConf-generated TES locations lead to avoidable(?) functor cache misses
The way that PyConf generates TES locations automatically from algorithm names (/Event/AlgName/Output
, /Event/AlgName#1/Output
etc.) means that slightly different options files will have different locations for "the same" container.
For example, a configuration that runs trigger lines A
and B
(two_lines.py
) may have different TES locations for the components of A
than a configuration that runs line A
on its own (one_line.py
).
This leads to functor cache misses that may be avoidable -- in the previous example then generating a functor cache with two_lines.py
is not always enough to avoid cache misses when running one_line.py
, even if the configuration of A
is the same in both cases. This is because TES location strings appear in the functor expressions and are, therefore, baked into the cache.
This is not very nice, because it means that tweaking one line among many (think HLT2...) could lead to the TES locations changing inside many/all lines, potentially making most/all of the precompiled cache useless. If we could avoid this behaviour then changing one line would only cause [some of] the functors in that line to be just-in-time compiled.