11 """Configure the example skimming tool"""
12 acc = ComponentAccumulator()
15 JetColl = flags.HeavyIon.HIJetPrefix
18 ExtraData += [
'xAOD::MuonContainer/Muons']
19 ExtraData += [
'xAOD::ElectronContainer/Electrons']
20 ExtraData += [
'xAOD::PhotonContainer/Photons']
21 ExtraData += [
'xAOD::TrackParticleContainer/InDetTrackParticles']
22 ExtraData += [
'xAOD::JetContainer/'+JetColl+
'AntiKt2HIJets']
23 ExtraData += [
'xAOD::JetContainer/'+JetColl+
'AntiKt4HIJets']
25 acc.addSequence( seqAND(
"HION5Sequence") )
26 acc.getSequence(
"HION5Sequence").ExtraDataForDynamicConsumers = ExtraData
27 acc.getSequence(
"HION5Sequence").ProcessDynamicDataDependencies =
True
30 req_electrons =
'count( ( Electrons.pt > 15*GeV ) && ( abs(Electrons.eta) < 2.5) )>0'
31 req_muons =
'count( Muons.DFCommonMuonPassPreselection && (Muons.pt > 15*GeV) && ( abs(Muons.eta) < 2.7))>0'
32 req_photons =
'count( Photons.DFCommonPhotonsIsEMLoose && (Photons.pt > 30*GeV) ) > 0'
33 req_total =
'(' + req_electrons +
' || ' + req_muons +
' || ' + req_photons +
')'
34 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import (
35 xAODStringSkimmingToolCfg)
36 HION5StringSkimmingTool = acc.addPublicTool(acc.getPrimaryAndMerge(
37 xAODStringSkimmingToolCfg(flags, name =
"HION5StringSkimmingTool",
38 expression = req_total)))
39 filterList += [HION5StringSkimmingTool]
41 from DerivationFrameworkHI
import ListTriggers
42 triggers = ListTriggers.HION5SkimmingTriggers()
43 HION5TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(
44 name =
"HION5TriggerSkimmingTool", TriggerListOR = triggers)
45 acc.addPublicTool(HION5TriggerSkimmingTool)
46 filterList += [HION5TriggerSkimmingTool]
48 HION5SkimmingTool = CompFactory.DerivationFramework.FilterCombinationAND(
49 name=
"HION5SkimmingTool", FilterList=filterList)
50 acc.addPublicTool(HION5SkimmingTool, primary =
True)
54 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg,JetTrackParticleThinningCfg
55 acc = ComponentAccumulator()
58 JetColl = flags.HeavyIon.HIJetPrefix
61 from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
62 info=getTypeForRun(flags.Input.RunNumbers[0])
63 isOxygenOxygenCollision =
False
64 if (info.getBeam1Type() == 8)
or (info.getBeam2Type() == 8):
65 isOxygenOxygenCollision =
True
68 if isOxygenOxygenCollision:
71 track_thinning_expression = f
"InDetTrackParticles.pt > {pTCut}*GeV"
72 TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
74 name =
"PHYSTrackParticleThinningTool",
75 StreamName =
"StreamDAOD_HION5",
76 SelectionString = track_thinning_expression,
77 InDetTrackParticlesKey =
"InDetTrackParticles"))
79 AntiKt2HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
81 name =
"AntiKt2HIJetsThinningTool",
82 StreamName =
"StreamDAOD_HION5",
83 JetKey = JetColl+
"AntiKt2HIJets",
84 SelectionString = JetColl+
"AntiKt2HIJets.pt > 15*GeV",
85 InDetTrackParticlesKey =
"InDetTrackParticles"))
87 AntiKt4HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
89 name =
"AntiKt4HIJetsThinningTool",
90 StreamName =
"StreamDAOD_HION5",
91 JetKey = JetColl+
"AntiKt4HIJets",
92 SelectionString = JetColl+
"AntiKt4HIJets.pt > 15*GeV",
93 InDetTrackParticlesKey =
"InDetTrackParticles"))
95 acc.addPublicTool(TrackParticleThinningTool,primary =
True)
96 acc.addPublicTool(AntiKt2HIJetsThinningTool)
97 acc.addPublicTool(AntiKt4HIJetsThinningTool)
102 """Configure the example augmentation tool"""
103 acc = ComponentAccumulator()
108 caloClusterKey =
"CaloCalTopoClusters"
109 from AthenaConfiguration.Enums
import HIMode
110 if flags.Reco.HIMode == HIMode.HI:
114 cutLevelNames = [
"HILoose",
"HITight"]
115 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig
import (
116 InDetTrackSelectionTool_HILoose_Cfg,
117 InDetTrackSelectionTool_HITight_Cfg
120 InDetTrackSelectionTool_HILoose = acc.popToolsAndMerge(
121 InDetTrackSelectionTool_HILoose_Cfg(flags))
122 acc.addPublicTool(InDetTrackSelectionTool_HILoose, primary=
False)
123 InDetTrackSelectionTool_HITight = acc.popToolsAndMerge(
124 InDetTrackSelectionTool_HITight_Cfg(flags))
125 acc.addPublicTool(InDetTrackSelectionTool_HITight, primary=
False)
128 augmentation_tool = CompFactory.DerivationFramework.HIGlobalAugmentationTool(name=
"HION5AugmentationTool",
130 doTopoClusDec = doTopoClus,
131 CaloClusterKey = caloClusterKey,
132 TrackSelectionTools = [InDetTrackSelectionTool_HILoose, InDetTrackSelectionTool_HITight],
133 cutLevels = cutLevelNames
135 acc.addPublicTool(augmentation_tool, primary=
True)
161 """Configure the derivation framework driving algorithm (kernel)
163 acc = ComponentAccumulator()
166 JetColl = flags.HeavyIon.HIJetPrefix
167 JetKey = JetColl +
'AntiKt4HIJets'
170 from JetRecConfig.StandardSmallRJets
import AntiKt4PV0Track
171 from JetRecConfig.JetRecConfig
import JetRecCfg
172 jetList = [AntiKt4PV0Track]
174 acc.merge(JetRecCfg(flags, jd))
178 from DerivationFrameworkHI.HION7
import PhysAugmentationsHION7Cfg
179 acc.merge(PhysAugmentationsHION7Cfg(flags))
183 from HIJetRec.HIJetRecConfigCA
import HIJetRecCfg
184 acc.merge(HIJetRecCfg(flags))
187 if flags.HeavyIon.doHIBTagging:
188 from BTagging.FlavorTaggingConfig
import FlavorTaggingCfg
189 acc.merge(FlavorTaggingCfg(flags, JetColl+
"AntiKt4HIJets"))
190 from FlavorTagDiscriminants.TrackLeptonConfig
import TrackLeptonDecorationCfg
191 acc.merge(TrackLeptonDecorationCfg(flags))
199 from AssociationUtils.AssociationUtilsConfig
import OverlapRemovalToolCfg
201 outputLabel =
"DFCommonJets_passOR_HI"
205 orTool = acc.popToolsAndMerge(
206 OverlapRemovalToolCfg(
207 flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=
False
210 algOR = CompFactory.ORUtils.OverlapRemovalGenUseAlg(
211 "OverlapRemovalGenUseAlg",
212 OverlapLabel=outputLabel,
213 OverlapRemovalTool=orTool,
219 acc.addEventAlgo(algOR, sequenceName=
"HION5Sequence")
226 augmentationTools = [globalAugmentationTool]
227 from AthenaConfiguration.Enums
import HIMode
228 if flags.Reco.HIMode != HIMode.HI:
230 augmentationTools = [globalAugmentationTool,jetAugmentationTool]
234 CompFactory.DerivationFramework.DerivationKernel(
236 SkimmingTools = [skimmingTool],
237 ThinningTools = [thinningTool],
238 AugmentationTools = augmentationTools,
240 sequenceName=
"HION5Sequence")
245 acc = ComponentAccumulator()
247 JetColl = flags.HeavyIon.HIJetPrefix
249 from DerivationFrameworkEGamma.PhotonsCPDetailedContent
import PhotonsCPDetailedContent
250 from DerivationFrameworkEGamma.ElectronsCPDetailedContent
import ExtraElectronShowerShapes,ExtraElectronGSFVar
252 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
253 HION5TriggerListsHelper = TriggerListsHelper(flags)
255 acc.merge(
HION5KernelCfg(flags, name=
"HION5Kernel", StreamName=
"StreamDAOD_HION5", TriggerListsHelper = HION5TriggerListsHelper,))
258 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
259 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
260 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
261 from DerivationFrameworkHI
import ListSlimming
263 HION5SlimmingHelper =
SlimmingHelper(
"HION5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
264 HION5SlimmingHelper.AppendToDictionary = {
'EventInfo':
'xAOD::EventInfo',
'EventInfoAux':
'xAOD::EventAuxInfo',
265 'TruthEvents':
'xAOD::TruthEventContainer',
'TruthEventsAux':
'xAOD::TruthEventAuxContainer',
266 'MET_Truth':
'xAOD::MissingETContainer',
'MET_TruthAux':
'xAOD::MissingETAuxContainer',
267 'TruthLHEParticles':
'xAOD::TruthParticleContainer',
'TruthLHEParticlesAux':
'xAOD::TruthParticleAuxContainer',
268 'TruthElectrons':
'xAOD::TruthParticleContainer',
'TruthElectronsAux':
'xAOD::TruthParticleAuxContainer',
269 'TruthMuons':
'xAOD::TruthParticleContainer',
'TruthMuonsAux':
'xAOD::TruthParticleAuxContainer',
270 'TruthPhotons':
'xAOD::TruthParticleContainer',
'TruthPhotonsAux':
'xAOD::TruthParticleAuxContainer',
271 'TruthTaus':
'xAOD::TruthParticleContainer',
'TruthTausAux':
'xAOD::TruthParticleAuxContainer',
272 'TruthNeutrinos':
'xAOD::TruthParticleContainer',
'TruthNeutrinosAux':
'xAOD::TruthParticleAuxContainer',
273 'TruthBSM':
'xAOD::TruthParticleContainer',
'TruthBSMAux':
'xAOD::TruthParticleAuxContainer',
274 'TruthBoson':
'xAOD::TruthParticleContainer',
'TruthBosonAux':
'xAOD::TruthParticleAuxContainer',
275 'TruthBottom':
'xAOD::TruthParticleContainer',
'TruthBottomAux':
'xAOD::TruthParticleAuxContainer',
276 'TruthTop':
'xAOD::TruthParticleContainer',
'TruthTopAux':
'xAOD::TruthParticleAuxContainer',
277 'TruthForwardProtons':
'xAOD::TruthParticleContainer',
'TruthForwardProtonsAux':
'xAOD::TruthParticleAuxContainer',
278 'BornLeptons':
'xAOD::TruthParticleContainer',
'BornLeptonsAux':
'xAOD::TruthParticleAuxContainer',
279 'TruthBosonsWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBosonsWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
280 'TruthBosonsWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBosonsWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
281 'TruthBSMWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBSMWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
282 'TruthBSMWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBSMWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
283 'AntiKt4TruthDressedWZJets':
'xAOD::JetContainer',
'AntiKt4TruthDressedWZJetsAux':
'xAOD::JetAuxContainer',
284 'AntiKt10TruthSoftDropBeta100Zcut10Jets':
'xAOD::JetContainer',
'AntiKt10TruthSoftDropBeta100Zcut10JetsAux':
'xAOD::JetAuxContainer',
285 'MET_Track1000':
'xAOD::MissingETContainer',
'MET_Track1000Aux':
'xAOD::MissingETAuxContainer',
286 'MET_Track2000':
'xAOD::MissingETContainer',
'MET_Track2000Aux':
'xAOD::MissingETAuxContainer',
287 'MET_Track3000':
'xAOD::MissingETContainer',
'MET_Track3000Aux':
'xAOD::MissingETAuxContainer',
288 'MET_Track4000':
'xAOD::MissingETContainer',
'MET_Track4000Aux':
'xAOD::MissingETAuxContainer',
289 'MET_Track5000':
'xAOD::MissingETContainer',
'MET_Track5000Aux':
'xAOD::MissingETAuxContainer',
292 from DerivationFrameworkHI.TrackMET_config
import Cfg_METTrack
293 met_ptCutList = [1000,2000,3000,4000,5000]
295 for ptCut
in met_ptCutList:
296 acc.merge(Cfg_METTrack(flags, ptCut))
299 AllVariables += ListSlimming.HION5AllVariables(flags.Input.RunNumbers[0])
300 AllVariables += ListSlimming.HION5ExtraContainersTrigger()
303 from DerivationFrameworkFlavourTag
import FtagBaseContent
308 AllVariables += ListSlimming.HION5AllTruthVariables()
309 if flags.HeavyIon.doHIBTagging:
311 FtagBaseContent.add_truth_to_slimming_helper(HION5SlimmingHelper)
314 if flags.HeavyIon.doHIBTagging:
315 AllVariables += ListSlimming.HION7AllVarFromFTAG1()
317 HION5SlimmingHelper.SmartCollections = ListSlimming.HION5SmartCollections()
318 HION5SlimmingHelper.ExtraVariables = ListSlimming.HION5ExtraVariables(JetColl)
319 HION5SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
320 HION5SlimmingHelper.ExtraVariables += ExtraElectronShowerShapes
321 HION5SlimmingHelper.ExtraVariables += ExtraElectronGSFVar
324 if flags.HeavyIon.doHIBTagging:
325 from DerivationFrameworkFlavourTag.FtagBaseContent
import add_common_augmentation
326 add_common_augmentation(flags, acc, HION5SlimmingHelper, JetColl+
"AntiKt4HIJets")
328 extra_AppendToDictionary = {}
329 FtagBaseContent.update_append_to_dictionary_in_slimming_helper(flags, HION5SlimmingHelper, extra_AppendToDictionary)
331 HION5SlimmingHelper.ExtraVariables += ListSlimming.HION7ExtraVarForBtag(JetColl)
332 FtagBaseContent.add_extra_variables_to_slimming_helper(flags, HION5SlimmingHelper)
334 HION5SlimmingHelper.AllVariables = AllVariables
337 HION5SlimmingHelper.IncludeEGammaTriggerContent =
True
339 HION5SlimmingHelper.IncludeMuonTriggerContent =
True
341 HION5ItemList = HION5SlimmingHelper.GetItemList()
344 HIJetRemovedBranches = ListSlimming.makeHIJetRemovedBranchList()
345 jet_var_str =
'.-'.join([
''] + HIJetRemovedBranches)
347 jetRlist = flags.HeavyIon.Jet.RValues
348 for jetR
in jetRlist:
349 output = [
"xAOD::JetContainer#"+JetColl+
"AntiKt"+str(jetR)+
"HIJets",
350 "xAOD::JetAuxContainer#"+JetColl+
"AntiKt"+str(jetR)+
"HIJetsAux.-PseudoJet"+jet_var_str]
351 HION5ItemList += output
353 acc.merge(OutputStreamCfg(flags,
"DAOD_HION5", ItemList=HION5ItemList, AcceptAlgs=[
"HION5Kernel"]))
354 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_HION5", AcceptAlgs=[
"HION5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))