4 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.Enums
import MetadataCategory
7 from AthenaCommon.CFElements
import seqAND
10 """Configure the example skimming tool"""
14 ExtraData += [
'xAOD::MuonContainer/Muons']
15 ExtraData += [
'xAOD::ElectronContainer/Electrons']
16 ExtraData += [
'xAOD::PhotonContainer/Photons']
17 ExtraData += [
'xAOD::TrackParticleContainer/InDetTrackParticles']
18 ExtraData += [
'xAOD::TrackParticleContainer/InDetTrackPaasdasdrticles']
20 acc.addSequence(
seqAND(
"HION5Sequence") )
21 acc.getSequence(
"HION5Sequence").ExtraDataForDynamicConsumers = ExtraData
22 acc.getSequence(
"HION5Sequence").ProcessDynamicDataDependencies =
True
24 from DerivationFrameworkHI
import ListTriggers
26 triggers = ListTriggers.HION5SkimmingTriggers()
28 req_electrons =
'count( Electrons.DFCommonElectronsLHLoose && ( Electrons.pt > 15*GeV ))>0'
29 req_muons =
'count( Muons.DFCommonMuonPassPreselection && (Muons.pt > 15*GeV) && ( abs(Muons.eta) < 2.7))>0'
30 req_photons =
'count( Photons.DFCommonPhotonsIsEMLoose && (Photons.pt > 30*GeV) ) > 0'
31 req_total =
'(' + req_electrons +
' || ' + req_muons +
' || ' + req_photons +
')'
33 expression =
' ( ' +
' || '.
join(triggers) +
' ) && ' + req_total
36 from TrigDecisionTool.TrigDecisionToolConfig
import TrigDecisionToolCfg
38 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"HION5StringSkimmingTool",
39 expression = expression,
40 TrigDecisionTool=tdt),
46 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg,JetTrackParticleThinningCfg
49 track_thinning_expression =
"InDetTrackParticles.pt > 0.9*GeV"
52 name =
"PHYSTrackParticleThinningTool",
53 StreamName =
"streamDAOD_HION5",
54 SelectionString = track_thinning_expression,
55 InDetTrackParticlesKey =
"InDetTrackParticles"))
59 name =
"AntiKt2HIJetsThinningTool",
60 StreamName =
"streamDAOD_HION5",
61 JetKey =
"AntiKt2HIJets",
62 SelectionString =
"AntiKt2HIJets.pt > 15*GeV",
63 InDetTrackParticlesKey =
"InDetTrackParticles"))
67 name =
"AntiKt4HIJetsThinningTool",
68 StreamName =
"streamDAOD_HION5",
69 JetKey =
"AntiKt4HIJets",
70 SelectionString =
"AntiKt4HIJets.pt > 15*GeV",
71 InDetTrackParticlesKey =
"InDetTrackParticles"))
73 acc.addPublicTool(TrackParticleThinningTool,primary =
True)
74 acc.addPublicTool(AntiKt2HIJetsThinningTool)
75 acc.addPublicTool(AntiKt4HIJetsThinningTool)
80 """Configure the derivation framework driving algorithm (kernel)
85 from JetRecConfig.StandardSmallRJets
import AntiKt4PV0Track
86 from JetRecConfig.JetRecConfig
import JetRecCfg
88 jetList = [AntiKt4PV0Track]
97 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
98 from DerivationFrameworkEGamma.EGammaCommonConfig
import EGammaCommonCfg
114 from AssociationUtils.AssociationUtilsConfig
import OverlapRemovalToolCfg
116 outputLabel =
"DFCommonJets_passOR"
120 orTool = acc.popToolsAndMerge(
122 flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=
False
125 algOR = CompFactory.OverlapRemovalGenUseAlg(
126 "OverlapRemovalGenUseAlg",
127 OverlapLabel=outputLabel,
128 OverlapRemovalTool=orTool,
129 JetKey =
'AntiKt4HIJets',
134 acc.addEventAlgo(algOR)
144 CompFactory.DerivationFramework.DerivationKernel(
146 SkimmingTools = [skimmingTool],
147 ThinningTools = [thinningTool],
148 AugmentationTools = [],
156 from DerivationFrameworkEGamma.PhotonsCPDetailedContent
import PhotonsCPDetailedContent
157 from DerivationFrameworkEGamma.ElectronsCPDetailedContent
import ExtraElectronShowerShapes,ExtraElectronGSFVar
159 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
160 HION5TriggerListsHelper = TriggerListsHelper(flags)
162 acc.merge(
HION5KernelCfg(flags, name=
"HION5Kernel", StreamName=
"StreamDAOD_HION5", TriggerListsHelper = HION5TriggerListsHelper,))
165 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
166 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
167 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
168 from DerivationFrameworkHI
import ListSlimming
170 HION5SlimmingHelper =
SlimmingHelper(
"HION5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
173 AllVariables += ListSlimming.HION5AllVariables()
174 AllVariables += ListSlimming.HION5ExtraContainersTrigger()
176 HION5SlimmingHelper.SmartCollections = ListSlimming.HION5SmartCollections()
177 HION5SlimmingHelper.ExtraVariables = ListSlimming.HION5Extravariables()
178 HION5SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
179 HION5SlimmingHelper.ExtraVariables += ExtraElectronShowerShapes
180 HION5SlimmingHelper.ExtraVariables += ExtraElectronGSFVar
181 HION5SlimmingHelper.AllVariables = AllVariables
184 HION5SlimmingHelper.IncludeEGammaTriggerContent =
True
186 HION5SlimmingHelper.IncludeMuonTriggerContent =
True
188 HION5ItemList = HION5SlimmingHelper.GetItemList()
190 acc.merge(
OutputStreamCfg(flags,
"DAOD_HION5", ItemList=HION5ItemList, AcceptAlgs=[
"HION5Kernel"]))
191 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_HION5", AcceptAlgs=[
"HION5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))