Querying The Trigger API

Last update: 25 Sep 2024 [History] [Edit]

Trigger API

The Trigger API provides an interface for querying which triggers were defined and (for the case of a Good Runs List) were active at Point 1. It can run over:

  • A Good Runs List (GRL) - where it will fetch and detail the triggers and their prescale-weighted live fraction for the luminosity blocks in each run of the GRL, or the GRL as a whole.
  • Menu JSON files, as produced by running the trigger.
  • An RDO_TRIG, ESD, AOD or DAOD containing menu JSONs as in-file metadata.
  • A previously saved Trigger API Session (using the --save option).

The Trigger API has chains and runs modes to list information on all or selected chains and to list available runs for GRL based queries.

Lowest Unprescaled

The Trigger API contains logic to classify each chain by type and to parse the lowest unprescaled chain for each trigger type (and for combinations of trigger types for multi-leg chains). For a GRL query the unprescaled requirement is based on the prescale-weighted live fraction of the chain being above a lower cut off, whereas for a Menu JSON or AOD (etc.) driven query it is based on the chain being part of either a Primary or a TagAndProbe chain group.

For example, in 2023 all of HLT_e26_lhtight_ivarloose_L1eEM26M, HLT_e60_lhmedium_L1eEM26M, HLT_e140_lhloose_noringer_L1eEM26M and HLT_e300_etcut_L1eEM26M are classified as lowest unprescaled for the el_single trigger type for an all-year GRL due to their differing (loosening) electron identification requirements.

Two-leg chains are also supported, for the combined el_single|mu_single trigger type over an all-year 2023 GRL the Trigger API will return both HLT_e17_lhloose_mu14_L1eEM18L_MU8F and HLT_e26_lhmedium_mu8noL1_L1eEM26M.

Available commands are getLowestUnprescaled, getLowestUnprescaledByRun, and getLowerUnprescaled to locate a looser unprescaled variant of a given chain.

Using the API

Please see the class help pages for details on how to use the API. It is suggested to use a recent nightly or release of Athena from the main branch.

from TriggerMenuMT.TriggerAPI import TriggerAPISession,TriggerType
help(TriggerAPISession)

A command line interface exists as well

tapis --help