10 """Configure the example skimming tool"""
11 acc = ComponentAccumulator()
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
24 req_electrons =
'count( ( Electrons.pt > 15*GeV ) && ( abs(Electrons.eta) < 2.5) )>0'
25 req_muons =
'count( Muons.DFCommonMuonPassPreselection && (Muons.pt > 15*GeV) && ( abs(Muons.eta) < 2.7))>0'
26 req_photons =
'count( Photons.DFCommonPhotonsIsEMLoose && (Photons.pt > 30*GeV) ) > 0'
27 req_total =
'(' + req_electrons +
' || ' + req_muons +
' || ' + req_photons +
')'
28 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import (
29 xAODStringSkimmingToolCfg)
30 HION5StringSkimmingTool = acc.addPublicTool(acc.getPrimaryAndMerge(
31 xAODStringSkimmingToolCfg(flags, name =
"HION5StringSkimmingTool",
32 expression = req_total)))
33 filterList += [HION5StringSkimmingTool]
35 from DerivationFrameworkHI
import ListTriggers
36 triggers = ListTriggers.HION5SkimmingTriggers()
37 HION5TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(
38 name =
"HION5TriggerSkimmingTool", TriggerListOR = triggers)
39 acc.addPublicTool(HION5TriggerSkimmingTool)
40 filterList += [HION5TriggerSkimmingTool]
42 HION5SkimmingTool = CompFactory.DerivationFramework.FilterCombinationAND(
43 name=
"HION5SkimmingTool", FilterList=filterList)
44 acc.addPublicTool(HION5SkimmingTool, primary =
True)
48 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg,JetTrackParticleThinningCfg
49 acc = ComponentAccumulator()
52 from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
53 info=getTypeForRun(flags.Input.RunNumbers[0])
54 isOxygenOxygenCollision =
False
55 if (info.getBeam1Type() == 8)
or (info.getBeam2Type() == 8):
56 isOxygenOxygenCollision =
True
59 if isOxygenOxygenCollision:
62 track_thinning_expression = f
"InDetTrackParticles.pt > {pTCut}*GeV"
63 TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
65 name =
"PHYSTrackParticleThinningTool",
66 StreamName =
"StreamDAOD_HION5",
67 SelectionString = track_thinning_expression,
68 InDetTrackParticlesKey =
"InDetTrackParticles"))
70 AntiKt2HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
72 name =
"AntiKt2HIJetsThinningTool",
73 StreamName =
"StreamDAOD_HION5",
74 JetKey =
"AntiKt2HIJets",
75 SelectionString =
"AntiKt2HIJets.pt > 15*GeV",
76 InDetTrackParticlesKey =
"InDetTrackParticles"))
78 AntiKt4HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
80 name =
"AntiKt4HIJetsThinningTool",
81 StreamName =
"StreamDAOD_HION5",
82 JetKey =
"AntiKt4HIJets",
83 SelectionString =
"AntiKt4HIJets.pt > 15*GeV",
84 InDetTrackParticlesKey =
"InDetTrackParticles"))
86 acc.addPublicTool(TrackParticleThinningTool,primary =
True)
87 acc.addPublicTool(AntiKt2HIJetsThinningTool)
88 acc.addPublicTool(AntiKt4HIJetsThinningTool)
93 """Configure the derivation framework driving algorithm (kernel)
95 acc = ComponentAccumulator()
98 from JetRecConfig.StandardSmallRJets
import AntiKt4PV0Track
99 from JetRecConfig.JetRecConfig
import JetRecCfg
101 jetList = [AntiKt4PV0Track]
103 acc.merge(JetRecCfg(flags, jd))
110 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
111 from DerivationFrameworkEGamma.EGammaCommonConfig
import EGammaCommonCfg
113 acc.merge(MuonsCommonCfg(flags))
114 acc.merge(EGammaCommonCfg(flags))
127 from AssociationUtils.AssociationUtilsConfig
import OverlapRemovalToolCfg
129 outputLabel =
"DFCommonJets_passOR_HI"
133 orTool = acc.popToolsAndMerge(
134 OverlapRemovalToolCfg(
135 flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=
False
138 algOR = CompFactory.OverlapRemovalGenUseAlg(
139 "OverlapRemovalGenUseAlg",
140 OverlapLabel=outputLabel,
141 OverlapRemovalTool=orTool,
142 JetKey =
'AntiKt4HIJets',
147 acc.addEventAlgo(algOR)
157 CompFactory.DerivationFramework.DerivationKernel(
159 SkimmingTools = [skimmingTool],
160 ThinningTools = [thinningTool],
161 AugmentationTools = [],
167 acc = ComponentAccumulator()
169 from DerivationFrameworkEGamma.PhotonsCPDetailedContent
import PhotonsCPDetailedContent
170 from DerivationFrameworkEGamma.ElectronsCPDetailedContent
import ExtraElectronShowerShapes,ExtraElectronGSFVar
172 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
173 HION5TriggerListsHelper = TriggerListsHelper(flags)
175 acc.merge(
HION5KernelCfg(flags, name=
"HION5Kernel", StreamName=
"StreamDAOD_HION5", TriggerListsHelper = HION5TriggerListsHelper,))
178 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
179 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
180 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
181 from DerivationFrameworkHI
import ListSlimming
183 HION5SlimmingHelper =
SlimmingHelper(
"HION5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
184 HION5SlimmingHelper.AppendToDictionary = {
'EventInfo':
'xAOD::EventInfo',
'EventInfoAux':
'xAOD::EventAuxInfo',
185 'TruthEvents':
'xAOD::TruthEventContainer',
'TruthEventsAux':
'xAOD::TruthEventAuxContainer',
186 'MET_Truth':
'xAOD::MissingETContainer',
'MET_TruthAux':
'xAOD::MissingETAuxContainer',
187 'TruthLHEParticles':
'xAOD::TruthParticleContainer',
'TruthLHEParticlesAux':
'xAOD::TruthParticleAuxContainer',
188 'TruthElectrons':
'xAOD::TruthParticleContainer',
'TruthElectronsAux':
'xAOD::TruthParticleAuxContainer',
189 'TruthMuons':
'xAOD::TruthParticleContainer',
'TruthMuonsAux':
'xAOD::TruthParticleAuxContainer',
190 'TruthPhotons':
'xAOD::TruthParticleContainer',
'TruthPhotonsAux':
'xAOD::TruthParticleAuxContainer',
191 'TruthTaus':
'xAOD::TruthParticleContainer',
'TruthTausAux':
'xAOD::TruthParticleAuxContainer',
192 'TruthNeutrinos':
'xAOD::TruthParticleContainer',
'TruthNeutrinosAux':
'xAOD::TruthParticleAuxContainer',
193 'TruthBSM':
'xAOD::TruthParticleContainer',
'TruthBSMAux':
'xAOD::TruthParticleAuxContainer',
194 'TruthBoson':
'xAOD::TruthParticleContainer',
'TruthBosonAux':
'xAOD::TruthParticleAuxContainer',
195 'TruthBottom':
'xAOD::TruthParticleContainer',
'TruthBottomAux':
'xAOD::TruthParticleAuxContainer',
196 'TruthTop':
'xAOD::TruthParticleContainer',
'TruthTopAux':
'xAOD::TruthParticleAuxContainer',
197 'TruthForwardProtons':
'xAOD::TruthParticleContainer',
'TruthForwardProtonsAux':
'xAOD::TruthParticleAuxContainer',
198 'BornLeptons':
'xAOD::TruthParticleContainer',
'BornLeptonsAux':
'xAOD::TruthParticleAuxContainer',
199 'TruthBosonsWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBosonsWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
200 'TruthBosonsWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBosonsWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
201 'TruthBSMWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBSMWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
202 'TruthBSMWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBSMWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
203 'AntiKt4TruthDressedWZJets':
'xAOD::JetContainer',
'AntiKt4TruthDressedWZJetsAux':
'xAOD::JetAuxContainer',
204 'AntiKt10TruthSoftDropBeta100Zcut10Jets':
'xAOD::JetContainer',
'AntiKt10TruthSoftDropBeta100Zcut10JetsAux':
'xAOD::JetAuxContainer',
205 'MET_Track1000':
'xAOD::MissingETContainer',
'MET_Track1000Aux':
'xAOD::MissingETAuxContainer',
206 'MET_Track2000':
'xAOD::MissingETContainer',
'MET_Track2000Aux':
'xAOD::MissingETAuxContainer',
207 'MET_Track3000':
'xAOD::MissingETContainer',
'MET_Track3000Aux':
'xAOD::MissingETAuxContainer',
208 'MET_Track4000':
'xAOD::MissingETContainer',
'MET_Track4000Aux':
'xAOD::MissingETAuxContainer',
209 'MET_Track5000':
'xAOD::MissingETContainer',
'MET_Track5000Aux':
'xAOD::MissingETAuxContainer',
212 from DerivationFrameworkHI.TrackMET_config
import Cfg_METTrack
213 met_ptCutList = [1000,2000,3000,4000,5000]
215 for ptCut
in met_ptCutList:
216 acc.merge(Cfg_METTrack(flags, ptCut))
219 AllVariables += ListSlimming.HION5AllVariables(flags.Input.RunNumbers[0])
220 AllVariables += ListSlimming.HION5ExtraContainersTrigger()
223 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddStandardTruthContentsCfg
224 acc.merge(AddStandardTruthContentsCfg(flags))
225 AllVariables += ListSlimming.HION5AllTruthVariables()
227 HION5SlimmingHelper.SmartCollections = ListSlimming.HION5SmartCollections()
228 HION5SlimmingHelper.ExtraVariables = ListSlimming.HION5ExtraVariables()
229 HION5SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
230 HION5SlimmingHelper.ExtraVariables += ExtraElectronShowerShapes
231 HION5SlimmingHelper.ExtraVariables += ExtraElectronGSFVar
232 HION5SlimmingHelper.AllVariables = AllVariables
235 HION5SlimmingHelper.IncludeEGammaTriggerContent =
True
237 HION5SlimmingHelper.IncludeMuonTriggerContent =
True
239 HION5ItemList = HION5SlimmingHelper.GetItemList()
241 acc.merge(OutputStreamCfg(flags,
"DAOD_HION5", ItemList=HION5ItemList, AcceptAlgs=[
"HION5Kernel"]))
242 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_HION5", AcceptAlgs=[
"HION5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))