5from AthenaConfiguration.Enums
import BeamType, MetadataCategory
10 """ Configure the TrackTools tool """
12 acc = ComponentAccumulator()
14 from TrackToCalo.TrackToCaloConfig
import ParticleCaloExtensionToolCfg
15 kwargs.setdefault(
'ParticleCaloExtensionTool', acc.popToolsAndMerge(
16 ParticleCaloExtensionToolCfg(flags)))
18 kwargs.setdefault(
'IsCollision', flags.Beam.Type
is BeamType.Collisions)
20 TrackTools = CompFactory.TileCal.TrackTools
81 """ Configure the Tile Cells Muon decorator augmentation tool """
83 acc = ComponentAccumulator()
85 from TileGeoModel.TileGMConfig
import TileGMCfg
86 acc.merge(TileGMCfg(flags))
88 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
89 acc.merge(TileCablingSvcCfg(flags))
91 kwargs.setdefault(
'name',
'TCAL1TileCellsMuonDecorator')
92 prefix = kwargs.pop(
'Prefix',
'TCAL1_')
93 kwargs.setdefault(
'IsoCone', 0.4)
94 kwargs.setdefault(
'DeltaRCones', [0.2, 0.4])
95 kwargs.setdefault(
'MuonContainer',
'Muons')
96 kwargs.setdefault(
'ClusterContainer',
"CaloCalTopoClusters")
98 kwargs.setdefault(
"SelectedMuon", prefix +
"SelectedMuon")
99 kwargs.setdefault(
"Etrkcone", prefix +
"etrkcone" + str(int(kwargs[
'IsoCone'] * 100)))
100 kwargs.setdefault(
"CellsMuonX", prefix +
"cells_muon_x")
101 kwargs.setdefault(
"CellsMuonY", prefix +
"cells_muon_y")
102 kwargs.setdefault(
"CellsMuonZ", prefix +
"cells_muon_z")
103 kwargs.setdefault(
"CellsMuonEta", prefix +
"cells_muon_eta")
104 kwargs.setdefault(
"CellsMuonPhi", prefix +
"cells_muon_phi")
105 kwargs.setdefault(
"CellsToMuonDx", prefix +
"cells_to_muon_dx")
106 kwargs.setdefault(
"CellsToMuonDy", prefix +
"cells_to_muon_dy")
107 kwargs.setdefault(
"CellsToMuonDz", prefix +
"cells_to_muon_dz")
108 kwargs.setdefault(
"CellsToMuonDeta", prefix +
"cells_to_muon_deta")
109 kwargs.setdefault(
"CellsToMuonDphi", prefix +
"cells_to_muon_dphi")
110 kwargs.setdefault(
"CellsMuonDx", prefix +
"cells_muon_dx")
111 kwargs.setdefault(
"CellsMuonDeDx", prefix +
"cells_muon_dedx")
112 if len(kwargs[
'ClusterContainer']) > 0:
113 kwargs.setdefault(
"LArEnergyInCone", [f
"{kwargs['MuonContainer']}.{prefix}elarcone{str(int(x*100))}" for x
in kwargs[
'DeltaRCones']])
115 kwargs.setdefault(
'SelectMuons', flags.Beam.Type
is BeamType.Collisions)
116 kwargs.setdefault(
'MinMuonPt', 10 * GeV)
117 kwargs.setdefault(
'MaxAbsMuonEta', 1.7)
118 kwargs.setdefault(
'MaxRelETrkInIsoCone', 100000)
124 kwargs.setdefault(
'TracksInConeTool', CompFactory.xAOD.TrackParticlesInConeTool())
126 TileCellsMuonDecorator = CompFactory.DerivationFramework.TileCellsMuonDecorator
127 acc.addPublicTool(TileCellsMuonDecorator(**kwargs), primary =
True)
133 """Configure TCAL1 derivation framework skimming tool"""
135 prefix = kwargs.pop(
'Prefix',
'TCAL1_')
137 from TrigDecisionTool.TrigDecisionToolConfig
import TrigDecisionToolCfg
138 acc = ComponentAccumulator()
139 tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
141 selectionExpression =
""
142 if flags.Beam.Type
is BeamType.Collisions:
143 selectionExpression = f
'(Muons.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500 + 0.4 * Muons.neflowisol20) / Muons.pt < 0.18 && Muons.{prefix}SelectedMuon'
145 selectionExpression =
'abs(Muons.eta) < 1.7'
147 skimmingExpression = f
'count({selectionExpression}) > 0'
149 kwargs.setdefault(
'name',
'TCAL1StringSkimmingTool')
150 kwargs.setdefault(
'expression', skimmingExpression)
151 kwargs.setdefault(
'TrigDecisionTool', tdt)
153 xAODStringSkimmingTool = CompFactory.DerivationFramework.xAODStringSkimmingTool
154 acc.addPublicTool(xAODStringSkimmingTool(**kwargs), primary =
True)
160 """Configure TCAL1 derivation framework thinning tool"""
162 acc = ComponentAccumulator()
164 kwargs[
'StreamName'] = streamName
165 kwargs.setdefault(
'name',
'TCAL1MuonTPThinningTool')
166 kwargs.setdefault(
'MuonKey',
'Muons')
167 kwargs.setdefault(
'InDetTrackParticlesKey',
'InDetTrackParticles')
169 from DerivationFrameworkInDet.InDetToolsConfig
import MuonTrackParticleThinningCfg
170 muonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(flags, **kwargs))
172 acc.addPublicTool(muonTPThinningTool, primary =
True)
178 """Configure the TCAL1 derivation framework driving algorithm (kernel)"""
180 acc = ComponentAccumulator()
182 prefix = kwargs.pop(
'Prefix',
'TCAL1_')
183 streamName = kwargs.pop(
'StreamName',
'StreamDAOD_TCAL1')
186 triggerListsHelper = kwargs.pop(
'TriggerListsHelper',
'TriggerListsHelper')
187 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
188 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = triggerListsHelper))
190 deltaRCones = kwargs.pop(
'DeltaRCones', [0.2, 0.4])
192 kwargs.setdefault(
'AugmentationTools', [cellsMuonDecorator])
195 kwargs.setdefault(
'SkimmingTools', [skimmingTool])
198 kwargs.setdefault(
'ThinningTools', [thinningTool])
200 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
201 acc.addEventAlgo(DerivationKernel(name, **kwargs))
207 """Configure the TCAL1 derivation framework"""
209 TCAL1Prefix =
'TCAL1_'
210 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
211 TCAL1TriggerListsHelper = TriggerListsHelper(flags)
213 deltaRCones = [0.2, 0.4]
214 acc = ComponentAccumulator()
215 acc.merge(
TCAL1KernelCfg(flags, name=
"TCAL1Kernel", StreamName=
"StreamDAOD_TCAL1", Prefix=TCAL1Prefix, TriggerListsHelper=TCAL1TriggerListsHelper, DeltaRCones=deltaRCones))
217 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
218 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
219 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
220 TCAL1SlimmingHelper =
SlimmingHelper(
"TCAL1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
221 TCAL1SlimmingHelper.SmartCollections = [
'EventInfo',
'Muons',
'AntiKt4EMTopoJets',
'AntiKt4EMPFlowJets',
'MET_Baseline_AntiKt4EMTopo',
'MET_Baseline_AntiKt4EMPFlow',
'PrimaryVertices']
223 TCAL1ExtraVariables = f
'Muons.{TCAL1Prefix}etrkcone40'
225 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.join([
'',
'energy',
'et',
'eta',
'phi',
'gain',
'bad',
'time',
'quality'])
226 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.join([
'',
'sampling',
'sinTh',
'cosTh',
'cotTh',
'x',
'y',
'z'])
228 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.join([
'',
'side',
'section',
'module',
'tower',
'sample'])
229 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.join([
'',
'r',
'dx',
'dy',
'dz',
'dr',
'dphi',
'deta',
'volume'])
231 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_muon_'.join([
'',
'dx',
'dedx',
'x',
'y',
'z',
'eta',
'phi'])
232 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_to_muon_'.join([
'',
'dx',
'dy',
'dz',
'deta',
'dphi'])
234 for pmt
in [
'pmt1',
'pmt2']:
235 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_{pmt}_'.join([
'',
'ros',
'drawer',
'channel',
'energy',
'time',
'quality',
'qbit',
'bad',
'gain'])
237 for drCone
in deltaRCones:
238 TCAL1ExtraVariables += f
'.{TCAL1Prefix}elarcone{int(drCone*100)}'
240 TCAL1SlimmingHelper.ExtraVariables = [TCAL1ExtraVariables]
244 if flags.Trigger.EDMVersion == 2:
245 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
246 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TCAL1SlimmingHelper,
247 OutputContainerPrefix =
"TrigMatch_",
248 TriggerList = TCAL1TriggerListsHelper.Run2TriggerNamesTau)
249 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TCAL1SlimmingHelper,
250 OutputContainerPrefix =
"TrigMatch_",
251 TriggerList = TCAL1TriggerListsHelper.Run2TriggerNamesNoTau)
253 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
254 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
255 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(TCAL1SlimmingHelper)
257 TCAL1ItemList = TCAL1SlimmingHelper.GetItemList()
258 acc.merge(OutputStreamCfg(flags,
"DAOD_TCAL1", ItemList=TCAL1ItemList, AcceptAlgs=[
"TCAL1Kernel"]))
259 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_TCAL1", AcceptAlgs=[
"TCAL1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))