Disable Trigger in RecExCommon unless really needed
The whole "flags saga" triggered by !38449 (merged) (see Issue Links in ATR-22360) uncovered that some jobs were trying to run Trigger selection algorithms when they clearly shouldn't have. Not only they were trying to run something they don't need, but also something that is deprecated (legacy trigger) and on top of that was misconfigured in these jobs.
The two cases reported in ATR-22516 and ATR-22515 were jobs starting from RDO without any Trigger content and intending to run RAWtoESD without Trigger. Instead of what was intended, these jobs were actually configuring Trigger like if they were legacy RDOtoRDOTrigger jobs rather than RAWtoESD. Another similar case was reported in ATLASRECTS-5833.
Fix this in the following way:
- Set
recAlgs.doTrigger
toFalse
by default. Add a "TODO" comment saying it should be removed once we retire legacy Trigger in r22. - Disable
rec.doTrigger
if running on POOL file without any Trigger content (like RDO) while alsorecAlgs.doTrigger=False
. This fixes the two tickets mentioned above. - Move the ESDtoAOD Run-3 Trigger setup in RecExCommon_topOptions.py under
if rec.doTrigger:
and remove Run-3 Trigger special case from ESDtoAOD transform skeleton. (ATR-19982) - Fix the fallout: clean up a bunch of cases in Trigger configuration which had either explicit or implicit assumption of
recAlgs.doTrigger
.
Multiple local tests succeeded, but running full-unit-tests on this one as the RecExCommon configuration is clearly very fragile and the number of workflows affected by !38449 (merged) was slightly beyond my expectations.