34def METTriggerDerivationKernelCfg(ConfigFlags, name, **kwargs):
35
36 acc = ComponentAccumulator()
37
38 from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg, MuonTrackParticleThinningCfg, EgammaTrackParticleThinningCfg, TauTrackParticleThinningCfg
39
40 thinning_expression = "InDetTrackParticles.pt > {0}".format(kwargs['trackThreshold'])
41 if kwargs['trackSel'] is not None:
42 thinning_expression = "("+thinning_expression+" || (InDetTrackParticles.DFMETTrig"+kwargs['trackSel']+"))"
43
44 trackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
45 ConfigFlags,
46 name = kwargs['StreamName']+"TrackParticleThinningTool",
47 StreamName = kwargs['StreamName'],
48 SelectionString = thinning_expression,
49 InDetTrackParticlesKey = "InDetTrackParticles"))
50
51 muonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
52 ConfigFlags,
53 name = kwargs['StreamName']+"MuonTPThinningTool",
54 StreamName = kwargs['StreamName'],
55 MuonKey = "Muons",
56 InDetTrackParticlesKey = "InDetTrackParticles"))
57
58 electronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
59 ConfigFlags,
60 name = kwargs['StreamName']+"ElectronTPThinningTool",
61 StreamName = kwargs['StreamName'],
62 SGKey = "Electrons",
63 InDetTrackParticlesKey = "InDetTrackParticles"))
64
65 photonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
66 ConfigFlags,
67 name = kwargs['StreamName']+"PhotonTPThinningTool",
68 StreamName = kwargs['StreamName'],
69 SGKey = "Photons",
70 InDetTrackParticlesKey = "InDetTrackParticles",
71 GSFConversionVerticesKey = "GSFConversionVertices"))
72
73 tauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
74 ConfigFlags,
75 name = kwargs['StreamName']+"TauTPThinningTool",
76 StreamName = kwargs['StreamName'],
77 TauKey = "TauJets",
78 InDetTrackParticlesKey = "InDetTrackParticles",
79 DoTauTracksThinning = True,
80 TauTracksKey = "TauTracks"))
81
82 thinningTools = [trackParticleThinningTool,
83 muonTPThinningTool,
84 electronTPThinningTool,
85 photonTPThinningTool,
86 tauTPThinningTool]
87
88 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
89 acc.addEventAlgo(DerivationKernel(name,
90 ThinningTools = thinningTools,
91 SkimmingTools = kwargs['skimmingTools']))
92
93 return acc
94
95