4 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.Enums
import BeamType, MetadataCategory
11 """ Configure the TrackTools tool """
15 from TrackToCalo.TrackToCaloConfig
import ParticleCaloExtensionToolCfg
16 kwargs.setdefault(
'ParticleCaloExtensionTool', acc.popToolsAndMerge(
19 kwargs.setdefault(
'IsCollision', flags.Beam.Type
is BeamType.Collisions)
21 TrackTools = CompFactory.TileCal.TrackTools
27 """ Configure the Tile Cells Muon decorator augmentation tool """
31 from TileGeoModel.TileGMConfig
import TileGMCfg
34 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
37 kwargs.setdefault(
'name',
'TCAL1TileCellsMuonDecorator')
38 kwargs.setdefault(
'Prefix',
'TCAL1_')
39 kwargs.setdefault(
'SelectMuons', flags.Beam.Type
is BeamType.Collisions)
40 kwargs.setdefault(
'MinMuonPt', 10 * GeV)
41 kwargs.setdefault(
'MaxAbsMuonEta', 1.7)
42 kwargs.setdefault(
'IsoCone', 0.4)
43 kwargs.setdefault(
'MaxRelETrkInIsoCone', 100000)
47 TileCellsDecorator = CompFactory.DerivationFramework.TileCellsDecorator
48 kwargs.setdefault(
'CellsDecorator', TileCellsDecorator(Prefix=kwargs[
'Prefix']))
50 kwargs.setdefault(
'TracksInConeTool', CompFactory.xAOD.TrackParticlesInConeTool())
52 TileCellsMuonDecorator = CompFactory.DerivationFramework.TileCellsMuonDecorator
53 acc.addPublicTool(TileCellsMuonDecorator(**kwargs), primary =
True)
59 """Configure TCAL1 derivation framework skimming tool"""
61 prefix = kwargs.pop(
'Prefix',
'TCAL1_')
63 from TrigDecisionTool.TrigDecisionToolConfig
import TrigDecisionToolCfg
67 selectionExpression =
""
68 if flags.Beam.Type
is BeamType.Collisions:
69 selectionExpression = f
'(Muons.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500 + 0.4 * Muons.neflowisol20) / Muons.pt < 0.18 && Muons.{prefix}SelectedMuon'
71 selectionExpression =
'abs(Muons.eta) < 1.7'
73 skimmingExpression = f
'count({selectionExpression}) > 0'
75 kwargs.setdefault(
'name',
'TCAL1StringSkimmingTool')
76 kwargs.setdefault(
'expression', skimmingExpression)
77 kwargs.setdefault(
'TrigDecisionTool', tdt)
79 xAODStringSkimmingTool = CompFactory.DerivationFramework.xAODStringSkimmingTool
80 acc.addPublicTool(xAODStringSkimmingTool(**kwargs), primary =
True)
86 """Configure TCAL1 derivation framework thinning tool"""
90 kwargs[
'StreamName'] = streamName
91 kwargs.setdefault(
'name',
'TCAL1MuonTPThinningTool')
92 kwargs.setdefault(
'MuonKey',
'Muons')
93 kwargs.setdefault(
'InDetTrackParticlesKey',
'InDetTrackParticles')
95 from DerivationFrameworkInDet.InDetToolsConfig
import MuonTrackParticleThinningCfg
98 acc.addPublicTool(muonTPThinningTool, primary =
True)
104 """Configure the TCAL1 derivation framework driving algorithm (kernel)"""
108 prefix = kwargs.pop(
'Prefix',
'TCAL1_')
109 streamName = kwargs.pop(
'StreamName',
'StreamDAOD_TCAL1')
112 triggerListsHelper = kwargs.pop(
'TriggerListsHelper',
'TriggerListsHelper')
113 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
117 kwargs.setdefault(
'AugmentationTools', [cellsMuonDecorator])
120 kwargs.setdefault(
'SkimmingTools', [skimmingTool])
123 kwargs.setdefault(
'ThinningTools', [thinningTool])
125 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
132 """Configure the TCAL1 derivation framework"""
134 TCAL1Prefix =
'TCAL1_'
135 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
136 TCAL1TriggerListsHelper = TriggerListsHelper(flags)
139 acc.merge(
TCAL1KernelCfg(flags, name=
"TCAL1Kernel", StreamName=
"StreamDAOD_TCAL1", Prefix=TCAL1Prefix, TriggerListsHelper=TCAL1TriggerListsHelper))
141 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
142 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
143 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
144 TCAL1SlimmingHelper =
SlimmingHelper(
"TCAL1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
145 TCAL1SlimmingHelper.SmartCollections = [
'EventInfo',
'Muons',
'AntiKt4EMTopoJets',
'AntiKt4EMPFlowJets',
'MET_Baseline_AntiKt4EMTopo',
'MET_Baseline_AntiKt4EMPFlow',
'PrimaryVertices',
'BTagging_AntiKt4EMPFlow']
147 TCAL1ExtraVariables = f
'Muons.{TCAL1Prefix}etrkcone40'
149 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.
join([
'',
'energy',
'et',
'eta',
'phi',
'gain',
'bad',
'time',
'quality'])
150 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.
join([
'',
'sampling',
'sinTh',
'cosTh',
'cotTh',
'x',
'y',
'z'])
152 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.
join([
'',
'side',
'section',
'module',
'tower',
'sample'])
153 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_'.
join([
'',
'r',
'dx',
'dy',
'dz',
'dr',
'dphi',
'deta',
'volume'])
155 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_muon_'.
join([
'',
'dx',
'dedx',
'x',
'y',
'z',
'eta',
'phi'])
156 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_to_muon_'.
join([
'',
'dx',
'dy',
'dz',
'deta',
'dphi'])
158 for pmt
in [
'pmt1',
'pmt2']:
159 TCAL1ExtraVariables += f
'.{TCAL1Prefix}cells_{pmt}_'.
join([
'',
'ros',
'drawer',
'channel',
'energy',
'time',
'quality',
'qbit',
'bad',
'gain'])
161 TCAL1SlimmingHelper.ExtraVariables = [TCAL1ExtraVariables]
166 if flags.Trigger.EDMVersion == 2:
167 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
169 OutputContainerPrefix =
"TrigMatch_",
170 TriggerList = TCAL1TriggerListsHelper.Run2TriggerNamesTau)
172 OutputContainerPrefix =
"TrigMatch_",
173 TriggerList = TCAL1TriggerListsHelper.Run2TriggerNamesNoTau)
175 if flags.Trigger.EDMVersion == 3:
176 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
179 TCAL1ItemList = TCAL1SlimmingHelper.GetItemList()
180 acc.merge(
OutputStreamCfg(flags,
"DAOD_TCAL1", ItemList=TCAL1ItemList, AcceptAlgs=[
"TCAL1Kernel"]))
181 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_TCAL1", AcceptAlgs=[
"TCAL1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))