8 from AthenaCommon.Logging
import logging
9 logging.getLogger().
info(
"Importing %s",__name__)
10 log = logging.getLogger(__name__)
12 from ..Config.ChainConfigurationBase
import ChainConfigurationBase
14 from .MuonMenuSequences
import (
15 muFastSequenceGenCfg, muFastCalibSequenceGenCfg, mul2mtSAOvlpRmSequenceGenCfg,
16 muCombSequenceGenCfg, muCombOvlpRmSequenceGenCfg, mul2mtCBOvlpRmSequenceGenCfg,
17 mul2IOOvlpRmSequenceGenCfg, muCombLRTSequenceGenCfg, muEFSASequenceGenCfg,
18 muEFSAFSSequenceGenCfg, efLateMuSequenceGenCfg, muEFCBSequenceGenCfg,
19 muEFCBl2ioSequenceGenCfg, muEFCBl2mtSequenceGenCfg, muEFCBidReuseSequenceGenCfg,
20 muEFCBIDperfSequenceGenCfg, muEFCBLRTSequenceGenCfg, muEFCBLRTIDperfSequenceGenCfg,
21 muEFCBFSSequenceGenCfg, muEFIDtpSequenceGenCfg, muEFIsoSequenceGenCfg,
22 muEFMSIsoSequenceGenCfg, efLateMuRoISequenceGenCfg, muRoiClusterSequenceGenCfg )
24 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFInvMassHypoToolFromDict
25 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFIdtpInvMassHypoToolFromDict
35 ChainConfigurationBase.__init__(self,chainDict)
46 is_probe_leg = self.chainPart[
'tnpInfo']==
"probe"
47 key = self.chainPart[
'extra']
49 steps=stepDictionary[key]
53 chainstep = getattr(self, step)(flags, is_probe_leg=is_probe_leg)
54 chainSteps+=[chainstep]
56 myChain = self.buildChain(chainSteps)
64 doMSonly =
'msonly' in self.chainPart[
'msonlyInfo']
65 muCombStep =
'getmuComb'
66 efCBStep =
'getmuEFCB'
67 if self.chainPart[
'isoInfo']:
68 isoStep =
'getmuEFIso'
70 isoStep =
'getmuEFMSIso'
73 muCombStep =
'getmuMSEmpty'
74 efCBStep =
'getEFCBEmpty'
80 muCombStep =
'getmuMSEmpty'
84 "":[
'getmuFast', muCombStep,
'getmuEFSA',efCBStep, isoStep],
85 "noL1":[
'getFSmuEFSA']
if doMSonly
else [
'getFSmuEFSA',
'getFSmuEFCB'],
86 "lateMu":[
'getLateMuRoI',
'getLateMu'],
87 "muoncalib":[
'getmuFast'],
88 "vtx":[
'getmuRoiClu'],
89 "mucombTag":[
'getmuFast', muCombStep],
98 if 'muoncalib' in self.chainPart[
'extra']:
99 return self.getStep(flags,
"mufastcalib", [muFastCalibSequenceGenCfg], is_probe_leg=is_probe_leg )
100 elif 'l2mt' in self.chainPart[
'l2AlgInfo']:
101 return self.getStep(flags,
"mufastl2mt", [mul2mtSAOvlpRmSequenceGenCfg], is_probe_leg=is_probe_leg )
103 return self.getStep(flags,
"mufast", [muFastSequenceGenCfg], is_probe_leg=is_probe_leg )
110 if self.chainPart[
'signature'] ==
'Bphysics':
114 elif len( self.dict[
'signatures'] )>1
and not self.chainPart[
'extra']:
121 if 'fT' in self.chainPart[
'addInfo']:
122 trkMode =
"fastTracking"
125 if 'l2mt' in self.chainPart[
'l2AlgInfo']:
126 return self.getStep(flags, f
"muCombl2mt{stepSuffix}", [mul2mtCBOvlpRmSequenceGenCfg], is_probe_leg=is_probe_leg, trackingMode=trkMode)
127 elif 'l2io' in self.chainPart[
'l2AlgInfo']:
128 return self.getStep(flags, f
'muCombIO{stepSuffix}', [mul2IOOvlpRmSequenceGenCfg], is_probe_leg=is_probe_leg, trackingMode=trkMode)
130 return self.getStep(flags, f
'muCombOVR{stepSuffix}', [muCombOvlpRmSequenceGenCfg], is_probe_leg=is_probe_leg, trackingMode=trkMode )
131 elif "LRT" in self.chainPart[
'addInfo']:
132 return self.getStep(flags, f
'muCombLRT{stepSuffix}', [muCombLRTSequenceGenCfg], is_probe_leg=is_probe_leg, trackingMode=trkMode )
134 return self.getStep(flags, f
'muComb{stepSuffix}', [muCombSequenceGenCfg], is_probe_leg=is_probe_leg, trackingMode=trkMode )
138 return self.getStep(flags,
'muCombIO', [mul2IOOvlpRmSequenceGenCfg], is_probe_leg=is_probe_leg )
142 return self.getStep(flags,
'muEFSA',[ muEFSASequenceGenCfg], is_probe_leg=is_probe_leg)
146 if 'invm' in self.chainPart[
'invMassInfo']:
147 return self.getStep(flags,
'EFCB', [muEFCBSequenceGenCfg], comboTools=[TrigMuonEFInvMassHypoToolFromDict], is_probe_leg=is_probe_leg)
148 elif "LRT" in self.chainPart[
'addInfo']:
149 if "idperf" in self.chainPart[
'addInfo']:
150 return self.getStep(flags,
'EFCBLRTIDPERF', [muEFCBLRTIDperfSequenceGenCfg], is_probe_leg=is_probe_leg)
152 return self.getStep(flags,
'EFCBLRT', [muEFCBLRTSequenceGenCfg], is_probe_leg=is_probe_leg)
153 elif "idperf" in self.chainPart[
'addInfo']:
154 return self.getStep(flags,
'EFCBIDPERF', [muEFCBIDperfSequenceGenCfg], is_probe_leg=is_probe_leg)
155 elif "idtp" in self.chainPart[
'addInfo']:
156 return self.getStep(flags,
'EFIDTP', [muEFIDtpSequenceGenCfg], is_probe_leg=is_probe_leg)
158 if flags.Muon.enableTrigIDtrackReuse
or "idReuse" in self.chainPart[
'addInfo']:
159 if "l2io" in self.chainPart[
'l2AlgInfo']:
160 return self.getStep(flags,
'EFCBl2io', [muEFCBl2ioSequenceGenCfg], is_probe_leg=is_probe_leg)
161 elif "l2mt" in self.chainPart[
'l2AlgInfo']:
162 return self.getStep(flags,
'EFCBl2mt', [muEFCBl2mtSequenceGenCfg], is_probe_leg=is_probe_leg)
164 return self.getStep(flags,
'EFCBidReuse', [muEFCBidReuseSequenceGenCfg], is_probe_leg=is_probe_leg)
166 return self.getStep(flags,
'EFCB', [muEFCBSequenceGenCfg], is_probe_leg=is_probe_leg)
170 return self.getStep(flags,
'FSmuEFSA', [muEFSAFSSequenceGenCfg], is_probe_leg=is_probe_leg)
174 if 'invm' in self.chainPart[
'invMassInfo']:
175 return self.getStep(flags,
'FSmuEFCB', [muEFCBFSSequenceGenCfg],comboTools=[TrigMuonEFInvMassHypoToolFromDict], is_probe_leg=is_probe_leg)
177 return self.getStep(flags,
'FSmuEFCB', [muEFCBFSSequenceGenCfg], is_probe_leg=is_probe_leg)
181 if any(x
in self.dict[
'topo']
for x
in [
'b7invmAB9vtx20',
'b11invmAB60vtx20',
'b11invmAB24vtx20',
'b24invmAB60vtx20']):
182 from TrigBphysHypo.TrigMultiTrkComboHypoConfig
import DrellYanComboHypoCfg, TrigMultiTrkComboHypoToolFromDict
183 return self.getStep(flags,
'muEFIsoDY', [muEFIsoSequenceGenCfg], comboHypoCfg=DrellYanComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
185 return self.getStep(flags,
'muEFIso', [muEFIsoSequenceGenCfg], is_probe_leg=is_probe_leg)
189 return self.getStep(flags,
'muEFMSIso',[ muEFMSIsoSequenceGenCfg], is_probe_leg=is_probe_leg)
193 return self.getEmptyStep(
'muMS_empty')
197 return self.getEmptyStep(
'muFast_empty')
201 return self.getEmptyStep(
'muefCB_Empty')
205 return self.getStep(flags,
'muEFLateRoI',[efLateMuRoISequenceGenCfg], is_probe_leg=is_probe_leg)
209 return self.getStep(flags,
'muEFLate',[efLateMuSequenceGenCfg], is_probe_leg=is_probe_leg)
213 return self.getStep(flags,
'muRoiClu',[muRoiClusterSequenceGenCfg])