ATLAS Offline Software
TrigDiTauHypoTool.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 import re
3 from AthenaCommon.SystemOfUnits import GeV
4 
5 from AthenaCommon.Logging import logging
6 log = logging.getLogger('TrigHLTDiTauHypoTool')
7 
8 
9 def TrigDiTauHypoToolFromDict(flags, chainDict):
10  name = chainDict['chainName']
11  chainPart = chainDict['chainParts'][0]
12  cut_pt = float(chainPart['threshold']) * GeV
13  ditau_tag_str = chainPart['ditauTag']
14  pattern = r"ditauOmni([0-9]+)Trk([0-9])"
15  match = re.match(pattern, ditau_tag_str)
16  if match is None:
17  log.error(f"Invalid ditau tag: {ditau_tag_str}")
18  raise ValueError(f"Invalid ditau tag: {ditau_tag_str}")
19  id_cut = float(f'0.{match.group(1)}')
20  n_trk = int(match.group(2))
21  if n_trk < 3:
22  log.error(f"Invalid ditau tag: {ditau_tag_str}")
23  log.error("it doesn't make sense to require less than 3 tracks in a ditau subjet")
24  raise ValueError(f"Invalid ditau tag: {ditau_tag_str}")
25 
26  from AthenaConfiguration.ComponentFactory import CompFactory
27  currentHypo = CompFactory.TrigDiTauHypoTool(
28  name,
29  ditau_pt_threshold=cut_pt,
30  ditau_id_score=id_cut,
31  ditau_lead_max_trk=n_trk,
32  ditau_subl_max_trk=n_trk,
33  )
34 
35  return currentHypo
SystemOfUnits
TrigDiTauHypoTool.TrigDiTauHypoToolFromDict
def TrigDiTauHypoToolFromDict(flags, chainDict)
Definition: TrigDiTauHypoTool.py:9
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65