129def ConfigurationComboHypo(flags, trigSequenceName = 'Dimu', **kwargs):
130
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}
140 try:
141 value = trigLevelDict[trigLevel]
142 log.debug('TrigMultiTrkComboHypo.trigLevel = %s ', value)
143 except KeyError:
144 raise Exception('TrigMultiTrkComboHypo.trigLevel should be L2, L2IO, L2MT or EF, but %s provided.', trigLevel)
145
146 baseName = 'Streamer'+trigSequenceName+trigLevel if kwargs['isStreamer'] else trigSequenceName+trigLevel
147
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),
163 **kwargs)
164 acc.addEventAlgo(alg, primary=True)
165 return acc
166 else:
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),
176 **kwargs)
177
178 acc.addEventAlgo(alg, primary=True)
179 return acc
180