9 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
10 from AthenaConfiguration.ComponentFactory
import CompFactory
11 from AthenaConfiguration.Enums
import MetadataCategory
16 """Configure the derivation framework driving algorithm (kernel) for SUSY20"""
23 augmentationTools = []
27 from DerivationFrameworkBPhys.V0ToolConfig
import BPHY_Reco_V0FinderCfg
as Reco_V0Finder
28 SUSY20_RecoV0_Finder = acc.popToolsAndMerge(Reco_V0Finder(
30 derivation =
"SUSY20",
32 V0ContainerName =
"SUSY20RecoV0Candidates",
33 KshortContainerName =
"SUSY20RecoKshortCandidates",
34 LambdaContainerName =
"SUSY20RecoLambdaCandidates",
35 LambdabarContainerName =
"SUSY20RecoLambdabarCandidates",
36 CheckVertexContainers = [
"PrimaryVertices"]
38 acc.addPublicTool(SUSY20_RecoV0_Finder)
39 augmentationTools.append(SUSY20_RecoV0_Finder)
42 from VrtSecInclusive.VrtSecInclusiveConfig
import VrtSecInclusiveCfg
45 name =
"SUSY20_VrtSecInclusiveTool",
51 SelTrkMaxCutoff = 2000,
52 a0TrkPVDstMinCut = 0.0,
57 DoTruth = flags.Input.isMC,
58 doAugmentDVimpactParametersToMuons =
True,
59 doAugmentDVimpactParametersToElectrons =
True
63 from xAODPrimitives.xAODIso
import xAODIso
as isoPar
64 deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20]
65 deco_ptcones_suffix = [
"ptcone40",
"ptcone30",
"ptcone20",
"topoetcone40",
"topoetcone30",
"topoetcone20"]
66 deco_prefix =
'SUSY20_'
68 from IsolationAlgs.IsoToolsConfig
import TrackIsolationToolCfg
71 name =
"SUSY20TrackIsoTool",
73 SUSY20TrackIsoTool.TrackSelectionTool.maxZ0SinTheta = 1.5
74 SUSY20TrackIsoTool.TrackSelectionTool.maxD0 = 1.5
75 SUSY20TrackIsoTool.TrackSelectionTool.minPt = 1000
76 SUSY20TrackIsoTool.TrackSelectionTool.CutLevel =
"TightPrimary"
77 acc.addPublicTool(SUSY20TrackIsoTool)
79 from IsolationAlgs.IsoToolsConfig
import CaloIsolationToolCfg
80 from CaloIdentifier
import SUBCALO
83 name =
"SUSY20CaloIsoTool",
84 EMCaloNums = [SUBCALO.LAREM],
85 HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
87 UseCaloExtensionCaching =
False,
88 saveOnlyRequestedCorrections =
True
90 acc.addPublicTool(SUSY20CaloIsoTool)
92 from DerivationFrameworkInDet.InDetToolsConfig
import IsolationTrackDecoratorCfg
95 name =
"SUSY20IDTrackDecoratorTool",
96 TrackIsolationTool = SUSY20TrackIsoTool,
97 CaloIsolationTool = SUSY20CaloIsoTool,
98 TargetContainer =
"InDetTrackParticles",
99 SelectionString =
"InDetTrackParticles.pt > 0.5*GeV",
101 isoSuffix = deco_ptcones_suffix,
102 Prefix = deco_prefix,
104 acc.addPublicTool(SUSY20IDTrackDecoratorTool)
105 augmentationTools.append(SUSY20IDTrackDecoratorTool)
108 '''# Electron TrackParticles isolation
109 SUSY20ElectronDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(
111 name = "SUSY20ElectronDecoratorTool",
112 TrackIsolationTool = SUSY20TrackIsoTool,
113 CaloIsolationTool = SUSY20CaloIsoTool,
114 TargetContainer = "Electrons",
115 iso = [isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
116 isoSuffix = ["topoetcone40", "topoetcone30", "topoetcone20"],
117 Prefix = deco_prefix,
119 acc.addPublicTool(SUSY20ElectronDecorator)
120 augmentationTools.append(SUSY20ElectronDecorator)
122 # Muon TrackParticles isolation
123 SUSY20MuonDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(
125 name = "SUSY20MuonDecoratorTool",
126 TrackIsolationTool = SUSY20TrackIsoTool,
127 CaloIsolationTool = SUSY20CaloIsoTool,
128 TargetContainer = "Muons",
129 iso = [isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
130 isoSuffix = ["topoetcone40", "topoetcone30", "topoetcone20"],
131 Prefix = deco_prefix,
133 acc.addPublicTool(SUSY20MuonDecorator)
134 augmentationTools.append(SUSY20MuonDecorator)
136 # Photon TrackParticles isolation
137 SUSY20PhotonDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(
139 name = "SUSY20PhotonDecoratorTool",
140 TrackIsolationTool = SUSY20TrackIsoTool,
141 CaloIsolationTool = SUSY20CaloIsoTool,
142 TargetContainer = "Photons",
143 iso = [isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
144 isoSuffix = ["topoetcone40", "topoetcone30", "topoetcone20"],
145 Prefix = deco_prefix,
147 acc.addPublicTool(SUSY20PhotonDecorator)
148 augmentationTools.append(SUSY20PhotonDecorator)'''
151 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
156 from DerivationFrameworkSUSY.SUSYToolsConfig
import SUSY20EventCleaningToolCfg
160 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
161 contNames = [
"Muons",
"Electrons",
"Photons"]
165 containerNames = contNames,
167 stream_name = kwargs[
'StreamName']
171 from DerivationFrameworkFlavourTag.FtagDerivationConfig
import FtagJetCollectionsCfg
175 from DerivationFrameworkInDet.InDetToolsConfig
import InDetTrackSelectionToolWrapperCfg
178 name =
"SUSY20TrackSelection",
179 ContainerName =
"InDetTrackParticles",
180 DecorationName =
"DFLoose"
182 SUSY20TrackSelection.TrackSelectionTool.CutLevel =
"Loose"
183 acc.addPublicTool(SUSY20TrackSelection)
184 augmentationTools.append(SUSY20TrackSelection)
190 thinningExpression =
"InDetTrackParticles.DFLoose && (InDetTrackParticles.pt > 0.5*GeV) && (abs( DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta) ) < 3.0*mm)"
193 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg
196 name =
"SUSY20TrackParticleThinningTool",
197 StreamName = kwargs[
'StreamName'],
198 SelectionString = thinningExpression,
199 InDetTrackParticlesKey =
"InDetTrackParticles"
201 acc.addPublicTool(SUSY20TrackParticleThinningTool)
202 thinningTools.append(SUSY20TrackParticleThinningTool)
205 from DerivationFrameworkInDet.InDetToolsConfig
import MuonTrackParticleThinningCfg
208 name =
"SUSY20MuonTPThinningTool",
209 StreamName = kwargs[
'StreamName'],
211 InDetTrackParticlesKey =
"InDetTrackParticles"
213 acc.addPublicTool(SUSY20MuonTPThinningTool)
214 thinningTools.append(SUSY20MuonTPThinningTool)
217 from DerivationFrameworkInDet.InDetToolsConfig
import EgammaTrackParticleThinningCfg
220 name =
"SUSY20ElectronTPThinningTool",
221 StreamName = kwargs[
'StreamName'],
223 InDetTrackParticlesKey =
"InDetTrackParticles"
225 acc.addPublicTool(SUSY20ElectronTPThinningTool)
226 thinningTools.append(SUSY20ElectronTPThinningTool)
229 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import GenericObjectThinningCfg
232 name =
"SUSY20PhotonThinningTool",
233 StreamName = kwargs[
'StreamName'],
234 ContainerName =
"Photons",
235 SelectionString =
"Photons.pt > 10*GeV"
237 acc.addPublicTool(SUSY20PhotonThinningTool)
238 thinningTools.append(SUSY20PhotonThinningTool)
243 name =
"SUSY20PhotonTPThinningTool",
244 StreamName = kwargs[
'StreamName'],
246 InDetTrackParticlesKey =
"InDetTrackParticles",
247 GSFConversionVerticesKey =
"GSFConversionVertices"
249 acc.addPublicTool(SUSY20PhotonTPThinningTool)
250 thinningTools.append(SUSY20PhotonTPThinningTool)
254 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import MenuTruthThinningCfg
257 name =
"SUSY20TruthThinningTool",
258 WritePartons =
False,
260 WriteBHadrons =
True,
262 GeantPhotonPtThresh = 20000,
264 PartonPtThresh = -1.0,
267 WriteBosonProducts =
False,
268 WriteBSMProducts =
True,
269 WriteTopAndDecays =
True,
270 WriteEverything =
False,
271 WriteAllLeptons =
True,
272 WriteLeptonsNotFromHadrons =
False,
273 WriteStatusNotPhysical =
False,
275 PreserveAncestors =
True,
276 PreserveGeneratorDescendants =
True
278 acc.addPublicTool(SUSY20TruthThinningTool)
279 thinningTools.append(SUSY20TruthThinningTool)
287 from DerivationFrameworkSUSY.SUSYToolsConfig
import SUSY20DTTriggerSkimmingToolCfg
290 name =
"SUSY20TriggerSkimmingTool"
292 acc.addPublicTool(SUSY20TriggerSkimmingTool_DT)
295 jetRequirements_DT =
"AntiKt4EMPFlowJets.pt > 200*GeV && abs(AntiKt4EMPFlowJets.eta) < 2.8"
296 jetSelection_DT =
"(count(" + jetRequirements_DT +
") >= 1)"
298 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import xAODStringSkimmingToolCfg
301 name =
"SUSY20JetSkimmingTool_DT",
302 expression = jetSelection_DT
304 acc.addPublicTool(SUSY20JetSkimmingTool_DT)
307 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import FilterCombinationANDCfg
310 name =
"SUSY20SkimmingTool_DT",
311 FilterList = [SUSY20JetSkimmingTool_DT, SUSY20TriggerSkimmingTool_DT]
313 acc.addPublicTool(SUSY20xAODSkimmingTool_DT)
314 skimmingTools.append(SUSY20xAODSkimmingTool_DT)
319 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
322 SkimmingTools = skimmingTools,
323 ThinningTools = thinningTools,
324 AugmentationTools = augmentationTools,
325 RunSkimmingFirst =
True
332 stream_name =
'StreamDAOD_SUSY20'
338 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
339 SUSY20TriggerListsHelper = TriggerListsHelper(flags)
342 acc.merge(
SUSY20KernelCfg(flags, name =
"SUSY20Kernel", StreamName = stream_name, TriggerListsHelper = SUSY20TriggerListsHelper))
346 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
347 acc.merge(
IsoCloseByAlgsCfg(flags, suff =
"_SUSY20", isPhysLite =
False, stream_name = stream_name))
352 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
353 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
354 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
356 SUSY20SlimmingHelper =
SlimmingHelper(
"SUSY20SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
359 SUSY20SlimmingHelper.SmartCollections = [
364 "InDetTrackParticles",
367 "AntiKt4EMPFlowJets",
368 "BTagging_AntiKt4EMPFlow",
369 "MET_Baseline_AntiKt4EMPFlow",
374 SUSY20SlimmingHelper.ExtraVariables += [
375 "EventInfo.DFCommonJets_eventClean_TightBad.DFCommonJets_jetClean_TightBad",
376 "Electrons.DFCommonElectronsLHVeryLoose.DFCommonElectronsLHLoose.DFCommonElectronsLHLooseBL.DFCommonElectronsLHMedium.DFCommonElectronsLHTight.DFCommonElectronsLHVeryLooseIsEMValue.DFCommonElectronsLHLooseIsEMValue.DFCommonElectronsLHLooseBLIsEMValue.DFCommonElectronsLHMediumIsEMValue.DFCommonElectronsLHTightIsEMValue",
378 "Muons.ptcone40.ptcone30.ptcone20.charge.quality.InnerDetectorPt.MuonSpectrometerPt.CaloLRLikelihood.CaloMuonIDTag.eta_sampl.phi_sampl",
380 "Photons.DFCommonPhotonsIsEMLoose.DFCommonPhotonsIsEMTight",
382 "InDetTrackParticles.TRTdEdx.TRTdEdxUsedHits.hitPattern.numberOfContribPixelLayers.numberOfGangedFlaggedFakes.numberOfIBLOverflowsdEdx.numberOfPixelOutliers.numberOfPixelSplitHits.numberOfPixelSpoiltHits.numberOfSCTOutliers.numberOfSCTSpoiltHits.numberOfTRTDeadStraws.numberOfTRTHits.numberOfTRTHoles.numberOfTRTOutliers.numberOfTRTSharedHits.numberOfUsedHitsdEdx.pixeldEdx",
383 "InDetTrackParticles.chiSquared.d0.definingParametersCovMatrix.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberDoF.numberOfInnermostPixelLayerHits.numberOfNextToInnermostPixelLayerHits.numberOfPixelDeadSensors.numberOfPixelHits.numberOfPixelHoles.numberOfPixelSharedHits.numberOfSCTDeadSensors.numberOfSCTHits.numberOfSCTHoles.numberOfSCTSharedHits.phi.qOverP.theta.z0",
384 "InDetTrackParticles.numberOfInnermostPixelLayerOutliers.numberOfInnermostPixelLayerSharedHits.numberOfInnermostPixelLayerSplitHits.numberOfNextToInnermostPixelLayerOutliers.numberOfNextToInnermostPixelLayerSharedHits.numberOfNextToInnermostPixelLayerSplitHits.numberOfGangedPixels.numberOfSCTDoubleHoles.numberOfTRTHighThresholdHits.numberOfTRTHighThresholdHitsTotal.numberOfTRTHighThresholdOutliers.numberOfTRTTubeHits.numberOfTRTXenonHits.numberOfOutliersOnTrack.standardDeviationOfChi2OS.eProbabilityHT.eProbabilityComb.TRTTrackOccupancy",
385 "InDetTrackParticles.SUSY20_ptcone20.SUSY20_ptcone30.SUSY20_ptcone40",
387 "InDetTrackParticles.SUSY20_topoetcone20.SUSY20_topoetcone30.SUSY20_topoetcone40.SUSY20_topoetcone20NonCoreCone.SUSY20_topoetcone30NonCoreCone.SUSY20_topoetcone40NonCoreCone",
388 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights",
389 "InDetTrackParticles.vertexLink.vz",
397 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
400 SUSY20SlimmingHelper.AllVariables += [
411 'TruthBosonsWithDecayParticles',
412 'TruthBosonsWithDecayVertices',
413 'TruthBSMWithDecayParticles',
414 'TruthBSMWithDecayVertices',
415 'TruthTausWithDecayParticles',
416 'TruthTausWithDecayVertices',
418 'HardScatterParticles',
419 'HardScatterVertices'
421 SUSY20SlimmingHelper.ExtraVariables += [
422 "Electrons.TruthLink",
425 "TruthEvents.Q.XF1.XF2.PDGID1.PDGID2.PDFID1.PDFID2.X1.X2.crossSection",
426 "InDetTrackParticles.TruthLink.truthMatchProbability.truthOrigin.truthType.truthParticleLink"
432 for containerName
in [
"SUSY20RecoV0Candidates",
"SUSY20RecoKshortCandidates",
"SUSY20RecoLambdaCandidates",
"SUSY20RecoLambdabarCandidates"]:
434 "xAOD::VertexContainer#%s"%containerName,
435 "xAOD::VertexAuxContainer#%sAux"%containerName
436 +
".-vxTrackAtVertex"
438 +
".-neutralParticleLinks"
445 +
".-gamma_massError"
446 +
".-gamma_probability",
450 VSITrackVars = [
"is_selected",
"is_associated",
"is_svtrk_final",
"pt_wrtSV",
"eta_wrtSV",
"phi_wrtSV",
"d0_wrtSV",
"z0_wrtSV",
"errP_wrtSV",
"errd0_wrtSV",
"errz0_wrtSV",
"chi2_toSV"]
451 SUSY20SlimmingHelper.ExtraVariables += [
"InDetTrackParticles." +
".".
join( VSITrackVars )]
454 'xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices',
455 'xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVerticesAux'
456 +
'.-vxTrackAtVertex'
458 +
'.-neutralParticleLinks'
459 +
'.-trackParticleLinks'
463 SUSY20SlimmingHelper.StaticContent = StaticContent
466 from IsolationSelection.IsolationSelectionConfig
import setupIsoCloseBySlimmingVariables
470 SUSY20SlimmingHelper.IncludeTriggerNavigation =
False
471 SUSY20SlimmingHelper.IncludeMuonTriggerContent =
False
472 SUSY20SlimmingHelper.IncludeEGammaTriggerContent =
False
473 SUSY20SlimmingHelper.IncludeEtMissTriggerContent =
False
474 SUSY20SlimmingHelper.IncludeJetTriggerContent =
False
475 SUSY20SlimmingHelper.IncludeBJetTriggerContent =
False
476 SUSY20SlimmingHelper.IncludeBPhysTriggerContent =
False
477 SUSY20SlimmingHelper.IncludeTauTriggerContent =
False
478 SUSY20SlimmingHelper.IncludeMinBiasTriggerContent =
False
482 if flags.Trigger.EDMVersion == 2:
483 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
485 SlimmingHelper = SUSY20SlimmingHelper,
486 OutputContainerPrefix =
"TrigMatch_",
487 TriggerList = SUSY20TriggerListsHelper.Run2TriggerNamesTau
490 SlimmingHelper = SUSY20SlimmingHelper,
491 OutputContainerPrefix =
"TrigMatch_",
492 TriggerList = SUSY20TriggerListsHelper.Run2TriggerNamesNoTau
495 if flags.Trigger.EDMVersion == 3:
496 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
500 SUSY20ItemList = SUSY20SlimmingHelper.GetItemList()
501 acc.merge(
OutputStreamCfg(flags,
"DAOD_SUSY20", ItemList = SUSY20ItemList, AcceptAlgs = [
"SUSY20Kernel"]))
502 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_SUSY20", AcceptAlgs = [
"SUSY20Kernel"], createMetadata = [MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))