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']
19 acc.addSequence(
seqAND(
"HION5Sequence") )
20 acc.getSequence(
"HION5Sequence").ExtraDataForDynamicConsumers = ExtraData
21 acc.getSequence(
"HION5Sequence").ProcessDynamicDataDependencies =
True
23 from DerivationFrameworkHI
import ListTriggers
25 triggers = ListTriggers.HION5SkimmingTriggers()
27 req_electrons =
'count( Electrons.DFCommonElectronsLHLoose && ( Electrons.pt > 15*GeV ))>0'
28 req_muons =
'count( Muons.DFCommonMuonPassPreselection && (Muons.pt > 15*GeV) && ( abs(Muons.eta) < 2.7))>0'
29 req_photons =
'count( Photons.DFCommonPhotonsIsEMLoose && (Photons.pt > 30*GeV) ) > 0'
30 req_total =
'(' + req_electrons +
' || ' + req_muons +
' || ' + req_photons +
')'
32 expression =
' ( ' +
' || '.
join(triggers) +
' ) && ' + req_total
35 from TrigDecisionTool.TrigDecisionToolConfig
import TrigDecisionToolCfg
37 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"HION5StringSkimmingTool",
38 expression = expression,
39 TrigDecisionTool=tdt),
45 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg,JetTrackParticleThinningCfg
48 track_thinning_expression =
"InDetTrackParticles.pt > 0.9*GeV"
51 name =
"PHYSTrackParticleThinningTool",
52 StreamName =
"streamDAOD_HION5",
53 SelectionString = track_thinning_expression,
54 InDetTrackParticlesKey =
"InDetTrackParticles"))
58 name =
"AntiKt2HIJetsThinningTool",
59 StreamName =
"streamDAOD_HION5",
60 JetKey =
"AntiKt2HIJets",
61 SelectionString =
"AntiKt2HIJets.pt > 15*GeV",
62 InDetTrackParticlesKey =
"InDetTrackParticles"))
66 name =
"AntiKt4HIJetsThinningTool",
67 StreamName =
"streamDAOD_HION5",
68 JetKey =
"AntiKt4HIJets",
69 SelectionString =
"AntiKt4HIJets.pt > 15*GeV",
70 InDetTrackParticlesKey =
"InDetTrackParticles"))
72 acc.addPublicTool(TrackParticleThinningTool,primary =
True)
73 acc.addPublicTool(AntiKt2HIJetsThinningTool)
74 acc.addPublicTool(AntiKt4HIJetsThinningTool)
79 """Configure the derivation framework driving algorithm (kernel)
84 from JetRecConfig.StandardSmallRJets
import AntiKt4PV0Track
85 from JetRecConfig.JetRecConfig
import JetRecCfg
87 jetList = [AntiKt4PV0Track]
96 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
97 from DerivationFrameworkEGamma.EGammaCommonConfig
import EGammaCommonCfg
113 from AssociationUtils.AssociationUtilsConfig
import OverlapRemovalToolCfg
115 outputLabel =
"DFCommonJets_passOR_HI"
119 orTool = acc.popToolsAndMerge(
121 flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=
False
124 algOR = CompFactory.OverlapRemovalGenUseAlg(
125 "OverlapRemovalGenUseAlg",
126 OverlapLabel=outputLabel,
127 OverlapRemovalTool=orTool,
128 JetKey =
'AntiKt4HIJets',
133 acc.addEventAlgo(algOR)
143 CompFactory.DerivationFramework.DerivationKernel(
145 SkimmingTools = [skimmingTool],
146 ThinningTools = [thinningTool],
147 AugmentationTools = [],
155 from DerivationFrameworkEGamma.PhotonsCPDetailedContent
import PhotonsCPDetailedContent
156 from DerivationFrameworkEGamma.ElectronsCPDetailedContent
import ExtraElectronShowerShapes,ExtraElectronGSFVar
158 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
159 HION5TriggerListsHelper = TriggerListsHelper(flags)
161 acc.merge(
HION5KernelCfg(flags, name=
"HION5Kernel", StreamName=
"StreamDAOD_HION5", TriggerListsHelper = HION5TriggerListsHelper,))
164 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
165 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
166 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
167 from DerivationFrameworkHI
import ListSlimming
169 HION5SlimmingHelper =
SlimmingHelper(
"HION5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
170 HION5SlimmingHelper.AppendToDictionary = {
'EventInfo':
'xAOD::EventInfo',
'EventInfoAux':
'xAOD::EventAuxInfo',
171 'TruthEvents':
'xAOD::TruthEventContainer',
'TruthEventsAux':
'xAOD::TruthEventAuxContainer',
172 'MET_Truth':
'xAOD::MissingETContainer',
'MET_TruthAux':
'xAOD::MissingETAuxContainer',
173 'TruthLHEParticles':
'xAOD::TruthParticleContainer',
'TruthLHEParticlesAux':
'xAOD::TruthParticleAuxContainer',
174 'TruthElectrons':
'xAOD::TruthParticleContainer',
'TruthElectronsAux':
'xAOD::TruthParticleAuxContainer',
175 'TruthMuons':
'xAOD::TruthParticleContainer',
'TruthMuonsAux':
'xAOD::TruthParticleAuxContainer',
176 'TruthPhotons':
'xAOD::TruthParticleContainer',
'TruthPhotonsAux':
'xAOD::TruthParticleAuxContainer',
177 'TruthTaus':
'xAOD::TruthParticleContainer',
'TruthTausAux':
'xAOD::TruthParticleAuxContainer',
178 'TruthNeutrinos':
'xAOD::TruthParticleContainer',
'TruthNeutrinosAux':
'xAOD::TruthParticleAuxContainer',
179 'TruthBSM':
'xAOD::TruthParticleContainer',
'TruthBSMAux':
'xAOD::TruthParticleAuxContainer',
180 'TruthBoson':
'xAOD::TruthParticleContainer',
'TruthBosonAux':
'xAOD::TruthParticleAuxContainer',
181 'TruthBottom':
'xAOD::TruthParticleContainer',
'TruthBottomAux':
'xAOD::TruthParticleAuxContainer',
182 'TruthTop':
'xAOD::TruthParticleContainer',
'TruthTopAux':
'xAOD::TruthParticleAuxContainer',
183 'TruthForwardProtons':
'xAOD::TruthParticleContainer',
'TruthForwardProtonsAux':
'xAOD::TruthParticleAuxContainer',
184 'BornLeptons':
'xAOD::TruthParticleContainer',
'BornLeptonsAux':
'xAOD::TruthParticleAuxContainer',
185 'TruthBosonsWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBosonsWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
186 'TruthBosonsWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBosonsWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
187 'TruthBSMWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBSMWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
188 'TruthBSMWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBSMWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
189 'AntiKt4TruthDressedWZJets':
'xAOD::JetContainer',
'AntiKt4TruthDressedWZJetsAux':
'xAOD::JetAuxContainer',
190 'AntiKt10TruthSoftDropBeta100Zcut10Jets':
'xAOD::JetContainer',
'AntiKt10TruthSoftDropBeta100Zcut10JetsAux':
'xAOD::JetAuxContainer',
191 'MET_Track1000':
'xAOD::MissingETContainer',
'MET_Track1000Aux':
'xAOD::MissingETAuxContainer',
192 'MET_Track2000':
'xAOD::MissingETContainer',
'MET_Track2000Aux':
'xAOD::MissingETAuxContainer',
193 'MET_Track3000':
'xAOD::MissingETContainer',
'MET_Track3000Aux':
'xAOD::MissingETAuxContainer',
194 'MET_Track4000':
'xAOD::MissingETContainer',
'MET_Track4000Aux':
'xAOD::MissingETAuxContainer',
195 'MET_Track5000':
'xAOD::MissingETContainer',
'MET_Track5000Aux':
'xAOD::MissingETAuxContainer',
198 from DerivationFrameworkHI.TrackMET_config
import Cfg_METTrack
199 met_ptCutList = [1000,2000,3000,4000,5000]
201 for ptCut
in met_ptCutList:
205 AllVariables += ListSlimming.HION5AllVariables()
206 AllVariables += ListSlimming.HION5ExtraContainersTrigger()
209 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddStandardTruthContentsCfg
211 AllVariables += ListSlimming.HION5AllTruthVariables()
213 HION5SlimmingHelper.SmartCollections = ListSlimming.HION5SmartCollections()
214 HION5SlimmingHelper.ExtraVariables = ListSlimming.HION5ExtraVariables()
215 HION5SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
216 HION5SlimmingHelper.ExtraVariables += ExtraElectronShowerShapes
217 HION5SlimmingHelper.ExtraVariables += ExtraElectronGSFVar
218 HION5SlimmingHelper.AllVariables = AllVariables
221 HION5SlimmingHelper.IncludeEGammaTriggerContent =
True
223 HION5SlimmingHelper.IncludeMuonTriggerContent =
True
225 HION5ItemList = HION5SlimmingHelper.GetItemList()
227 acc.merge(
OutputStreamCfg(flags,
"DAOD_HION5", ItemList=HION5ItemList, AcceptAlgs=[
"HION5Kernel"]))
228 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_HION5", AcceptAlgs=[
"HION5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))