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 STDM13StringSkimmingTool = CompFactory.DerivationFramework.xAODStringSkimmingTool(
37 name = "STDM13StringSkimmingTool",
38 expression = lepton_skimming_expression )
39 acc.addPublicTool(STDM13StringSkimmingTool)
40 STDM13SkimmingTool = CompFactory.DerivationFramework.FilterCombinationAND("STDM13SkimmingTool", FilterList = [STDM13StringSkimmingTool])
41
42 acc.addPublicTool(STDM13SkimmingTool, primary = True)
43 tp_thinning_expression = "abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 6.0*mm"
44 STDM13TPThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
45 flags,
46 name = "STDM13TPThinningTool",
47 StreamName = kwargs['StreamName'],
48 SelectionString = tp_thinning_expression,
49 InDetTrackParticlesKey = "InDetTrackParticles"))
50
51 thinningTools = [ STDM13TPThinningTool ]
52 skimmingTools = [ STDM13SkimmingTool ]
53
54 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
55 acc.addEventAlgo(DerivationKernel(name, SkimmingTools = skimmingTools, ThinningTools = thinningTools))
56 return acc
57
58