4from TrigBphysHypo.TrigMultiTrkComboHypoMonitoringConfig
import TrigMultiTrkComboHypoMonitoring, TrigMultiTrkComboHypoToolMonitoring
131 kwargs.setdefault(
"isStreamer",
False)
132 kwargs.setdefault(
"trigLevel",
'L2')
133 kwargs.setdefault(
"TrackCollectionKey",
'')
134 kwargs.setdefault(
"TrigBphysCollectionKey",
'TrigBphysContainer')
135 kwargs.setdefault(
"CheckMultiplicityMap",
False)
136 kwargs.setdefault(
"doElectrons",
False)
137 trigLevel = kwargs[
'trigLevel']
138 acc = ComponentAccumulator()
139 trigLevelDict = {
'L2':0,
'L2IO':1,
'L2MT':2,
'EF':3}
141 value = trigLevelDict[trigLevel]
142 log.debug(
'TrigMultiTrkComboHypo.trigLevel = %s ', value)
144 raise Exception(
'TrigMultiTrkComboHypo.trigLevel should be L2, L2IO, L2MT or EF, but %s provided.', trigLevel)
146 baseName =
'Streamer'+trigSequenceName+trigLevel
if kwargs[
'isStreamer']
else trigSequenceName+trigLevel
148 from TrigBphysHypo.TrigBPhyCommonConfig
import TrigBPHY_TrkVKalVrtFitterCfg
149 from InDetConfig.InDetConversionFinderToolsConfig
import BPHY_VertexPointEstimatorCfg
150 from TrkConfig.TrkVertexAnalysisUtilsConfig
import V0ToolsCfg
151 if kwargs[
"doElectrons"]:
152 kwargs.setdefault(
"nTracks", [ 2 ])
153 kwargs.setdefault(
"trackPtThresholds", [ [ -1., -1. ] ])
154 kwargs.setdefault(
"massRange", [ (100., 20000.) ])
155 kwargs.setdefault(
"mergedElectronChains", [
'BPH-0DR3-EM7J15',
'HLT_e5_lhvloose_bBeeM6000',
'HLT_e5_lhvloose_L1eEM5_bBeeM6000',
'HLT_e5_lhvloose_L1EM3_bBeeM6000' ])
156 kwargs.setdefault(
"caloClusterEtThreshold", 3.)
157 alg = CompFactory.TrigMultiTrkComboHypo(
158 name = baseName+
'ComboHypo',
159 VertexFitter = acc.popToolsAndMerge(TrigBPHY_TrkVKalVrtFitterCfg(flags, baseName)),
160 VertexPointEstimator = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags,
'VertexPointEstimator_'+baseName)),
161 V0Tools = acc.popToolsAndMerge(V0ToolsCfg(flags,
'V0Tools_'+baseName)),
162 MonTool = TrigMultiTrkComboHypoMonitoring(flags,
'TrigMultiTrkComboHypoMonitoring_'+baseName),
164 acc.addEventAlgo(alg, primary=
True)
167 kwargs.setdefault(
"nTracks", [ 2, 3 ])
168 kwargs.setdefault(
"trackPtThresholds", [ [ 3650., 3650. ], [ 3650., 3650., 3650. ] ])
169 kwargs.setdefault(
"massRange", [ (100., 20000.), (0., 11000.) ])
170 alg = CompFactory.TrigMultiTrkComboHypo(
171 name = baseName+
'ComboHypo',
172 VertexFitter = acc.popToolsAndMerge(TrigBPHY_TrkVKalVrtFitterCfg(flags, baseName)),
173 VertexPointEstimator = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags,
'VertexPointEstimator_'+baseName)),
174 V0Tools = acc.popToolsAndMerge(V0ToolsCfg(flags,
'V0Tools_'+baseName)),
175 MonTool = TrigMultiTrkComboHypoMonitoring(flags,
'TrigMultiTrkComboHypoMonitoring_'+baseName),
178 acc.addEventAlgo(alg, primary=
True)
183 tool = CompFactory.TrigMultiTrkComboHypoTool(chainDict[
'chainName'])
186 topo = chainDict[
'topo'][0]
187 value = trigMultiTrkComboHypoToolDict[topo]
188 tool.massRange = value[
'massRange']
189 tool.chi2 = value[
'chi2']
190 tool.nTrk = value[
'nTrk']
if 'nTrk' in value
else 2
191 tool.totalCharge = value[
'charge']
if 'charge' in value
else 0
192 if 'deltaRMin' in value:
193 tool.deltaRMin = value[
'deltaRMin']
194 if 'deltaRMax' in value:
195 tool.deltaRMax = value[
'deltaRMax']
197 raise Exception(
'TrigMultiTrkComboHypo misconfigured for \'%s\': topo \'%s\' is not supported.', chainDict[
'chainName'], topo)
199 if 'nocut' in chainDict[
'topo']:
200 tool.AcceptAll =
True
202 if 'noos' in chainDict[
'topo']:
203 tool.totalCharge = -100
205 if 'Lxy0' in chainDict[
'topo']:
208 if 'sigmaLxy3' in chainDict[
'topo']:
209 tool.sigmaLxyCut = 3.
211 electronMultiplicity = [int(chainPart[
'multiplicity'])
for chainPart
in chainDict[
'chainParts']
if chainPart[
'signature']==
'Electron']
212 if len(electronMultiplicity) == 1
and electronMultiplicity[0] == 1:
213 tool.isMergedElectronChain =
True
215 if 'bJpsimutrk' in chainDict[
'topo']:
216 tool.isMuonTrkPEB =
True
218 tool.trackPtThresholds = [-1., 2000.]
if 'lowpt' in chainDict[
'topo']
else [-1., 3000.]
220 if 'bTau' in chainDict[
'topo']:
221 tool.nTrk = sum(int(chainPart[
'multiplicity'])
for chainPart
in chainDict[
'chainParts'])
222 tool.totalCharge = 1
if tool.nTrk == 3
else -1
224 signatures = chainDict[
'signatures']
225 tool.isCombinedChain = (signatures.count(signatures[0]) != len(signatures))
226 tool.legMultiplicities = chainDict[
'chainMultiplicities']
228 monGroups = [
'bphysMon:online']
229 if any(group
in monGroups
for group
in chainDict[
'monGroups']):
230 tool.MonTool = TrigMultiTrkComboHypoToolMonitoring(flags,
'MonTool')