53def TRIG10KernelCfg(flags, name='TRIG10Kernel', **kwargs):
54 """Configure the derivation framework driving algorithm (kernel) for TRIG10"""
55 acc = ComponentAccumulator()
56
57
58 TRIG10StringSkimmingTool = acc.getPrimaryAndMerge(TRIG10StringSkimmingToolCfg(flags))
59 filterListLep = [TRIG10StringSkimmingTool]
60
61 if flags.Trigger.EDMVersion >= 0:
62 TRIG10LepTrigSkimmingTool = acc.getPrimaryAndMerge(TRIG10LepTrigSkimmingToolCfg(flags))
63 filterListLep += [TRIG10LepTrigSkimmingTool]
64
65 TRIG10LepTrigStringSkimmingTool = (
66 CompFactory.DerivationFramework.FilterCombinationAND(
67 name="TRIG10LepTrigStringSkimmingTool", FilterList=filterListLep))
68 acc.addPublicTool(TRIG10LepTrigStringSkimmingTool)
69 filterList = [TRIG10LepTrigStringSkimmingTool]
70
71 if flags.Trigger.EDMVersion >= 0:
72 TRIG10MetTrigSkimmingTool = acc.getPrimaryAndMerge(TRIG10MetTrigSkimmingToolCfg(flags))
73 filterList += [TRIG10MetTrigSkimmingTool]
74
75 TRIG10SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(
76 name="TRIG10SkimmingTool", FilterList=filterList)
77 acc.addPublicTool(TRIG10SkimmingTool)
78
79
80 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
81 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
82
83 from DerivationFrameworkInDet.InDetToolsConfig import MuonTrackParticleThinningCfg, EgammaTrackParticleThinningCfg, TauTrackParticleThinningCfg
84
85 muonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
86 flags,
87 name = kwargs['StreamName']+"MuonTPThinningTool",
88 StreamName = kwargs['StreamName'],
89 MuonKey = "Muons",
90 InDetTrackParticlesKey = "InDetTrackParticles"))
91
92 electronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
93 flags,
94 name = kwargs['StreamName']+"ElectronTPThinningTool",
95 StreamName = kwargs['StreamName'],
96 SGKey = "Electrons",
97 InDetTrackParticlesKey = "InDetTrackParticles"))
98
99 photonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
100 flags,
101 name = kwargs['StreamName']+"PhotonTPThinningTool",
102 StreamName = kwargs['StreamName'],
103 SGKey = "Photons",
104 InDetTrackParticlesKey = "InDetTrackParticles",
105 GSFConversionVerticesKey = "GSFConversionVertices"))
106
107 tauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
108 flags,
109 name = kwargs['StreamName']+"TauTPThinningTool",
110 StreamName = kwargs['StreamName'],
111 TauKey = "TauJets",
112 InDetTrackParticlesKey = "InDetTrackParticles",
113 DoTauTracksThinning = True,
114 TauTracksKey = "TauTracks"))
115
116 thinningTools = [muonTPThinningTool,
117 electronTPThinningTool,
118 photonTPThinningTool,
119 tauTPThinningTool]
120
121
122 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
123 acc.addEventAlgo(DerivationKernel(name="TRIG10Kernel",
124 ThinningTools = thinningTools,
125 SkimmingTools = [TRIG10SkimmingTool]))
126
127 return acc
128
129