Skip to content

Disable Trigger in RecExCommon unless really needed

Rafal Bielski requested to merge rbielski/athena:recexcommon-no-trig into master

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:

  1. Set recAlgs.doTrigger to False by default. Add a "TODO" comment saying it should be removed once we retire legacy Trigger in r22.
  2. Disable rec.doTrigger if running on POOL file without any Trigger content (like RDO) while also recAlgs.doTrigger=False. This fixes the two tickets mentioned above.
  3. 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)
  4. 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.

Edited by Rafal Bielski

Merge request reports