12def STDM13KernelCfg(flags, name='STDM13Kernel', **kwargs):
13 """Configure the derivation framework driving algorithm (kernel) for STDM13"""
14 acc = ComponentAccumulator()
15
16
17 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
18 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
19
20
21
22 from BTagging.FlavorTaggingConfig import FlavorTaggingCfg
23 acc.merge(FlavorTaggingCfg(flags, "AntiKt4EMPFlowJets"))
24
25
26
27
28 from DerivationFrameworkMCTruth.HFClassificationCommonConfig import HFClassificationCommonCfg
29 acc.merge(HFClassificationCommonCfg(flags))
30
31 from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
32
33
34 lepton_skimming_expression = 'count( (Muons.pt > 25*GeV) && (0 == Muons.muonType || 1 == Muons.muonType || 4 == Muons.muonType) ) + count(( Electrons.pt > 25*GeV) && ((Electrons.Loose) || (Electrons.DFCommonElectronsLHLoose))) >= 1'
35
36 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
37 xAODStringSkimmingToolCfg)
38 STDM13StringSkimmingTool = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
39 flags, name = "STDM13StringSkimmingTool", expression = lepton_skimming_expression))
40
41 tp_thinning_expression = "abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 6.0*mm"
42 STDM13TPThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
43 flags,
44 name = "STDM13TPThinningTool",
45 StreamName = kwargs['StreamName'],
46 SelectionString = tp_thinning_expression,
47 InDetTrackParticlesKey = "InDetTrackParticles"))
48
49 thinningTools = [ STDM13TPThinningTool ]
50 skimmingTools = [ STDM13StringSkimmingTool ]
51
52 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
53 acc.addEventAlgo(DerivationKernel(name, SkimmingTools = skimmingTools, ThinningTools = thinningTools))
54 return acc
55
56