ATLAS Offline Software
BphysicsChainConfiguration.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 
8 from AthenaCommon.Logging import logging
9 logging.getLogger().info("Importing %s",__name__)
10 log = logging.getLogger(__name__)
11 from ..Config.ChainConfigurationBase import ChainConfigurationBase
12 from ..Muon.MuonChainConfiguration import MuonChainConfiguration
13 
14 from ..Muon.MuonMenuSequences import mul2IOOvlpRmSequenceGenCfg, mul2mtCBOvlpRmSequenceGenCfg, muEFCBSequenceGenCfg
15 
16 from .BphysicsMenuSequences import dimuL2SequenceGenCfg, dimuEFSequenceGenCfg, bmumuxSequenceGenCfg
17 from TrigBphysHypo.TrigMultiTrkComboHypoConfig import StreamerDimuL2ComboHypoCfg, StreamerDimuL2IOComboHypoCfg, StreamerDimuL2MTComboHypoCfg, DimuEFComboHypoCfg, BmutrkComboHypoCfg, StreamerDimuEFComboHypoCfg, TrigMultiTrkComboHypoToolFromDict
18 from TrigBphysHypo.TrigBmumuxComboHypoConfig import BmumuxComboHypoCfg, TrigBmumuxComboHypoToolFromDict
19 from TrigBphysHypo.TrigBmuxComboHypoConfig import BmuxComboHypoCfg
20 
21 
22 
25 
27 
28  def __init__(self, chainDict):
29  ChainConfigurationBase.__init__(self,chainDict)
30 
31  # ----------------------
32  # Assemble the chain depending on information from chainName
33  # ----------------------
34  def assembleBphysChain(self, flags):
35 
36  log.debug("Assembling chain for %s", self.chainName)
37 
38  stepDictionary = self.getBphysStepDictionary()
39  key = self.getBphysKey()
40  steps=stepDictionary[key]
41 
42  chainSteps = []
43  for step_level in steps:
44  for step in step_level:
45  chainStep = getattr(self, step)(flags)
46  chainSteps+=[chainStep]
47 
48  chain = self.buildChain(chainSteps)
49  return chain
50 
52 
53  stepDictionary = {
54  'dimu' : [['getmuFast', 'getDimuL2'], ['getmuEFSA', 'getmuEFCB', 'getDimuEF']],
55  'bmumux' : [['getmuFast', 'getDimuL2'], ['getmuEFSA', 'getDimuEFCB', 'getBmumux']],
56  'bmutrk' : [['getmuFast', 'getmuCombIO'], ['getmuEFSA', 'getmuEFCB', 'getBmutrk']],
57  'bmux' : [['getmuFast', 'getmuCombIO'], ['getmuEFSA', 'getmuEFCB', 'getBmux']],
58  }
59  return stepDictionary
60 
61  def getBphysKey(self):
62 
63  the_topo = self.dict['topo'][0]
64 
65  topo_dict = {
66  'bJpsimumu' : 'dimu',
67  'bJpsi' : 'dimu',
68  'bJpsimutrk' : 'bmutrk',
69  'bUpsimumu' : 'dimu',
70  'bUpsi' : 'dimu',
71  'bBmumu' : 'dimu',
72  'bDimu' : 'dimu',
73  'bDimu2700' : 'dimu',
74  'bDimu6000' : 'dimu',
75  'bPhi' : 'dimu',
76  'bTau' : 'dimu',
77  'b3mu' : 'dimu',
78  'bBmux' : 'bmux',
79  'bBmumux' : 'bmumux',
80  'b0dRAB12vtx20' : 'dimu',
81  'b0dRAB207invmAB22vtx20' : 'dimu',
82  'b0dRAB127invmAB22vtx20' : 'dimu',
83  'b7invmAB22vtx20' : 'dimu',
84  }
85 
86  return topo_dict[the_topo]
87 
88  def getDimuL2(self, flags):
89  if 'noL2Comb' in self.chainPart['extra']:
90  return self.getStep(flags, 'dimuL2', [dimuL2SequenceGenCfg], comboHypoCfg=StreamerDimuL2ComboHypoCfg)
91  elif 'l2mt' in self.chainPart['l2AlgInfo']:
92  return self.getStep(flags, 'dimuL2MT', [mul2mtCBOvlpRmSequenceGenCfg], comboHypoCfg=StreamerDimuL2MTComboHypoCfg)
93  else:
94  return self.getStep(flags, 'dimuL2IO', [mul2IOOvlpRmSequenceGenCfg], comboHypoCfg=StreamerDimuL2IOComboHypoCfg)
95 
96  def getDimuEF(self, flags):
97  return self.getStep(flags, 'dimuEF', [dimuEFSequenceGenCfg], comboHypoCfg=DimuEFComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict])
98 
99  def getDimuEFCB(self, flags):
100  return self.getStep(flags, 'dimuEFCB', [muEFCBSequenceGenCfg], comboHypoCfg=StreamerDimuEFComboHypoCfg)
101 
102  def getBmux(self, flags):
103  return self.getStep(flags, 'bmux', [bmumuxSequenceGenCfg], comboHypoCfg=BmuxComboHypoCfg, comboTools=[TrigBmumuxComboHypoToolFromDict])
104 
105  def getBmumux(self, flags):
106  return self.getStep(flags, 'bmumux', [bmumuxSequenceGenCfg], comboHypoCfg=BmumuxComboHypoCfg, comboTools=[TrigBmumuxComboHypoToolFromDict])
107 
108  def getBmutrk(self, flags):
109  return self.getStep(flags, 'bmutrk', [bmumuxSequenceGenCfg], comboHypoCfg=BmutrkComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict])
grepfile.info
info
Definition: grepfile.py:38
python.HLT.Muon.MuonChainConfiguration.MuonChainConfiguration
Class/function to configure muon chains.
Definition: MuonChainConfiguration.py:31
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getBmumux
def getBmumux(self, flags)
Definition: BphysicsChainConfiguration.py:105
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration
Class/function to configure muon chains.
Definition: BphysicsChainConfiguration.py:26
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.__init__
def __init__(self, chainDict)
Definition: BphysicsChainConfiguration.py:28
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getBphysKey
def getBphysKey(self)
Definition: BphysicsChainConfiguration.py:61
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getDimuEF
def getDimuEF(self, flags)
Definition: BphysicsChainConfiguration.py:96
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getBmutrk
def getBmutrk(self, flags)
Definition: BphysicsChainConfiguration.py:108
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getDimuEFCB
def getDimuEFCB(self, flags)
Definition: BphysicsChainConfiguration.py:99
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.assembleBphysChain
def assembleBphysChain(self, flags)
Definition: BphysicsChainConfiguration.py:34
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getBmux
def getBmux(self, flags)
Definition: BphysicsChainConfiguration.py:102
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getBphysStepDictionary
def getBphysStepDictionary(self)
Definition: BphysicsChainConfiguration.py:51
python.HLT.Bphysics.BphysicsChainConfiguration.BphysicsChainConfiguration.getDimuL2
def getDimuL2(self, flags)
Definition: BphysicsChainConfiguration.py:88