205 """Configure the derivation framework driving algorithm (kernel)
207 acc = ComponentAccumulator()
210 from JetRecConfig.StandardSmallRJets
import AntiKt4PV0Track
211 from JetRecConfig.JetRecConfig
import JetRecCfg
213 jetList = [AntiKt4PV0Track]
215 acc.merge(JetRecCfg(flags, jd))
222 from DerivationFrameworkInDet.InDetCommonConfig
import InDetCommonCfg
223 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
224 from DerivationFrameworkEGamma.EGammaCommonConfig
import EGammaCommonCfg
226 TrackingFlags = flags.Tracking
230 DoVertexFinding=TrackingFlags.doVertexFinding,
231 AddPseudoTracks=TrackingFlags.doPseudoTracking,
233 DoR3LargeD0=flags.Tracking.doLargeD0,
234 StoreSeparateLargeD0Container=TrackingFlags.storeSeparateLargeD0Container,
238 acc.merge(MuonsCommonCfg(flags))
239 acc.merge(EGammaCommonCfg(flags))
252 from AssociationUtils.AssociationUtilsConfig
import OverlapRemovalToolCfg
254 outputLabel =
"DFCommonJets_passOR_HI"
258 orTool = acc.popToolsAndMerge(
259 OverlapRemovalToolCfg(
260 flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=
False
263 algOR = CompFactory.OverlapRemovalGenUseAlg(
264 "OverlapRemovalGenUseAlg",
265 OverlapLabel=outputLabel,
266 OverlapRemovalTool=orTool,
267 JetKey =
'AntiKt4HIJets',
272 acc.addEventAlgo(algOR)
275 augmentationTools = []
281 acc.addPublicTool(EGAM11ZeeMassTool1)
282 augmentationTools.append(EGAM11ZeeMassTool1)
285 acc.addPublicTool(EGAM11ZeeMassTool2)
286 augmentationTools.append(EGAM11ZeeMassTool2)
289 acc.addPublicTool(EGAM11ZeeMassTool3)
290 augmentationTools.append(EGAM11ZeeMassTool3)
293 acc.addPublicTool(EGAM11ZegMassTool)
294 augmentationTools.append(EGAM11ZegMassTool)
298 streamName = kwargs[
"StreamName"]
301 if flags.Derivation.Egamma.doTrackThinning:
302 from DerivationFrameworkInDet.InDetToolsConfig
import (
303 TrackParticleThinningCfg,
304 MuonTrackParticleThinningCfg,
305 TauTrackParticleThinningCfg,
308 TrackThinningKeepElectronTracks =
True
309 TrackThinningKeepPhotonTracks =
True
310 TrackThinningKeepAllElectronTracks =
True
311 TrackThinningKeepJetTracks =
False
312 TrackThinningKeepMuonTracks =
False
313 TrackThinningKeepTauTracks =
False
314 TrackThinningKeepPVTracks =
True
317 if TrackThinningKeepElectronTracks:
318 EGAM11ElectronTPThinningTool = (
319 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
320 name=
"EGAM11ElectronTPThinningTool",
321 StreamName=streamName,
323 GSFTrackParticlesKey=
"GSFTrackParticles",
324 InDetTrackParticlesKey=
"InDetTrackParticles",
325 SelectionString=
"Electrons.pt > 0*GeV",
330 acc.addPublicTool(EGAM11ElectronTPThinningTool)
331 thinningTools.append(EGAM11ElectronTPThinningTool)
335 if TrackThinningKeepAllElectronTracks:
336 EGAM11ElectronTPThinningTool2 = (
337 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
338 name=
"EGAM11ElectronTPThinningTool2",
339 StreamName=streamName,
341 GSFTrackParticlesKey=
"GSFTrackParticles",
342 InDetTrackParticlesKey=
"InDetTrackParticles",
343 SelectionString=
"Electrons.pt > 4*GeV",
348 acc.addPublicTool(EGAM11ElectronTPThinningTool2)
349 thinningTools.append(EGAM11ElectronTPThinningTool2)
352 if TrackThinningKeepPhotonTracks:
353 EGAM11PhotonTPThinningTool = (
354 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
355 name=
"EGAM11PhotonTPThinningTool",
356 StreamName=streamName,
358 GSFTrackParticlesKey=
"GSFTrackParticles",
359 InDetTrackParticlesKey=
"InDetTrackParticles",
360 GSFConversionVerticesKey=
"GSFConversionVertices",
361 SelectionString=
"Photons.pt > 0*GeV",
366 acc.addPublicTool(EGAM11PhotonTPThinningTool)
367 thinningTools.append(EGAM11PhotonTPThinningTool)
370 if TrackThinningKeepJetTracks:
371 EGAM11JetTPThinningTool = (
372 CompFactory.DerivationFramework.JetTrackParticleThinning(
373 name=
"EGAM11JetTPThinningTool",
374 StreamName=streamName,
375 JetKey=
"AntiKt4EMTopoJets",
376 InDetTrackParticlesKey=
"InDetTrackParticles",
379 acc.addPublicTool(EGAM11JetTPThinningTool)
380 thinningTools.append(EGAM11JetTPThinningTool)
383 if TrackThinningKeepMuonTracks:
384 EGAM11MuonTPThinningTool = acc.getPrimaryAndMerge(
385 MuonTrackParticleThinningCfg(
387 name=
"EGAM11MuonTPThinningTool",
388 StreamName=streamName,
390 InDetTrackParticlesKey=
"InDetTrackParticles",
393 thinningTools.append(EGAM11MuonTPThinningTool)
396 if TrackThinningKeepTauTracks:
397 EGAM11TauTPThinningTool = acc.getPrimaryAndMerge(
398 TauTrackParticleThinningCfg(
400 name=
"EGAM11TauTPThinningTool",
401 StreamName=streamName,
404 InDetTrackParticlesKey=
"InDetTrackParticles",
405 DoTauTracksThinning=
True,
406 TauTracksKey=
"TauTracks",
409 thinningTools.append(EGAM11TauTPThinningTool)
412 thinning_expression =
" && ".join(
414 "(InDetTrackParticles.DFCommonTightPrimary)",
415 "(abs(InDetTrackParticles.DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta)<3*mm)",
416 "(InDetTrackParticles.pt>10*GeV)",
419 if TrackThinningKeepPVTracks:
420 EGAM11TPThinningTool = acc.getPrimaryAndMerge(
421 TrackParticleThinningCfg(
423 name=
"EGAM11TPThinningTool",
424 StreamName=streamName,
425 SelectionString=thinning_expression,
426 InDetTrackParticlesKey=
"InDetTrackParticles",
429 thinningTools.append(EGAM11TPThinningTool)
432 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
433 CaloClusterThinningCfg,
436 EGAM11CCTCThinningTool = acc.getPrimaryAndMerge(
437 CaloClusterThinningCfg(
439 name=
"EGAM11CCTCThinningTool",
440 StreamName=streamName,
442 SelectionString=
"Electrons.pt>4*GeV",
443 TopoClCollectionSGKey=
"SubtractedCaloCalTopoClusters",
447 thinningTools.append(EGAM11CCTCThinningTool)
452 truth_cond_WZH =
"(TruthParticles.isW || TruthParticles.isZ || TruthParticles.isHiggs)"
454 truth_cond_lep =
"(TruthParticles.isLepton)"
456 truth_cond_top =
"(TruthParticles.isTop)"
458 truth_cond_gam =
" && ".join(
459 [
"(TruthParticles.isPhoton)",
"(TruthParticles.pt > 1*GeV)"]
462 truth_cond_finalState =
"(TruthParticles.isGenStable)"
477 + truth_cond_finalState
480 print(
"EGAM11 truth thinning expression: ", truth_expression)
482 EGAM11TruthThinningTool = CompFactory.DerivationFramework.GenericTruthThinning(
483 name=
"EGAM11TruthThinningTool",
484 StreamName=streamName,
485 ParticleSelectionString=truth_expression,
486 PreserveDescendants=
False,
487 PreserveGeneratorDescendants=
True,
488 PreserveAncestors=
True,
490 acc.addPublicTool(EGAM11TruthThinningTool)
491 thinningTools.append(EGAM11TruthThinningTool)
498 CompFactory.DerivationFramework.DerivationKernel(
500 SkimmingTools=[skimmingTool],
501 AugmentationTools=augmentationTools,
502 ThinningTools=thinningTools,
510 acc = ComponentAccumulator()
512 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
513 EGAM11TriggerListsHelper = TriggerListsHelper(flags)
520 StreamName=
"StreamDAOD_EGAM11",
521 TriggerListsHelper=EGAM11TriggerListsHelper,
526 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
527 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
528 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
531 "EGAM11SlimmingHelper",
532 NamesAndTypes=flags.Input.TypedCollections,
541 EGAM11SlimmingHelper.AllVariables = [
550 if flags.Trigger.EDMVersion == 2:
552 elif flags.Trigger.EDMVersion == 3:
555 EGAM11SlimmingHelper.AllVariables += ExtraContainersTrigger[MenuType]
556 EGAM11SlimmingHelper.AllVariables += ExtraContainersElectronTrigger[MenuType]
560 EGAM11SlimmingHelper.AllVariables += [
564 "egammaTruthParticles",
575 EGAM11SlimmingHelper.SmartCollections = [
579 "InDetTrackParticles"
582 EGAM11SlimmingHelper.SmartCollections += [
584 "AntiKt4TruthDressedWZJets",
590 EGAM11SlimmingHelper.ExtraVariables += [
591 "Muons.ptcone20.ptcone30.ptcone40.etcone20.etcone30.etcone40"
595 EGAM11SlimmingHelper.ExtraVariables += [
596 "GSFConversionVertices.x.y.z.px.py.pz.pt1.pt2.etaAtCalo.phiAtCalo",
597 "GSFConversionVertices.trackParticleLinks",
601 EGAM11SlimmingHelper.ExtraVariables += [
"PrimaryVertices.sumPt2"]
604 EGAM11SlimmingHelper.ExtraVariables += [
605 "AntiKt4PV0TrackJets.pt.eta.phi.e.m.constituentLinks"
609 EGAM11SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
613 EGAM11SlimmingHelper.ExtraVariables += [
614 "MuonTruthParticles.e.px.py.pz.status.pdgId.truthClassification.truthOrigin.truthType"
617 EGAM11SlimmingHelper.ExtraVariables += [
618 "Photons.truthClassification.truthOrigin.truthType.truthParticleLink"
622 if flags.Derivation.Egamma.doEventInfoSlimming:
623 EGAM11SlimmingHelper.SmartCollections.append(
"EventInfo")
625 EGAM11SlimmingHelper.AllVariables += [
"EventInfo"]
628 EGAM11SlimmingHelper.AllVariables += [
"HIEventShape"]
629 EGAM11SlimmingHelper.AllVariables += [
"CaloSums"]
633 EGAM11ItemList = EGAM11SlimmingHelper.GetItemList()
638 ItemList=EGAM11ItemList,
639 AcceptAlgs=[
"EGAM11Kernel"],
643 SetupMetaDataForStreamCfg(
646 AcceptAlgs=[
"EGAM11Kernel"],
648 MetadataCategory.CutFlowMetaData,
649 MetadataCategory.TruthMetaData,