79def HION14KernelCfg(flags, name='HION14Kernel', **kwargs):
80 """Configure the derivation framework driving algorithm (kernel)"""
81 acc = ComponentAccumulator()
82 skimmingTool = []
83
84 if not flags.Input.isMC:
85 triggers = acc.getPrimaryAndMerge(HION14SkimmingToolCfg(flags))
86 skimmingTool += [triggers]
87
88
89 thinningTool = []
90
91
92 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig import (
93 InDetTrackSelectionTool_HILoose_Cfg)
94
95 HILooseTrackSelector = acc.popToolsAndMerge(InDetTrackSelectionTool_HILoose_Cfg(flags,
96 name = "HION14TrackSelectionToolLoose",
97 minPt = 100
98 )
99 )
100
101 acc.addPublicTool(HILooseTrackSelector)
102
103 HION14TrackThinningTool = CompFactory.DerivationFramework.HITrackParticleThinningTool(name="HION14TrackThinningTool",
104
105 PrimaryVertexKey="PrimaryVertices",
106 PrimaryVertexSelection="sumPt2",
107 TrackSelectionTool=HILooseTrackSelector
108 )
109
110 acc.addPublicTool(HION14TrackThinningTool)
111 thinningTool += [HION14TrackThinningTool]
112
113
114 muonThinningTool = CompFactory.DerivationFramework.MuonTrackParticleThinning(name="HION14MuonThinningTool",
115 MuonKey = "Muons",
116 InDetTrackParticlesKey = "InDetTrackParticles")
117
118 acc.addPublicTool(muonThinningTool)
119 thinningTool += [muonThinningTool]
120
121
122 if flags.Input.isMC:
123 truth_thinning_expression = "(TruthParticles.isStable) && ( (TruthParticles.pdgId != 2112 && TruthParticles.pdgId != 2212) || TruthParticles.pt > 0.1 )"
124
125 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import GenericTruthThinningCfg
126
127 HION14TruthThinningTool = acc.getPrimaryAndMerge(GenericTruthThinningCfg(flags,
128 name="HION14TruthThinningTool",
129 StreamName=kwargs['StreamName'],
130 ParticleSelectionString=truth_thinning_expression
131 )
132 )
133
134 thinningTool += [HION14TruthThinningTool]
135
136
138 globalAugmentationTool = acc.getPrimaryAndMerge(HION14GlobalAugmentationToolCfg(flags))
139 tightAugmentationTool = acc.getPrimaryAndMerge(HION14TightAugmentationToolCfg(flags))
140 centralityAugmentatioTool = acc.getPrimaryAndMerge(HION14CentralityAugmentationToolCfg(flags))
141 augmentationTool = [globalAugmentationTool, tightAugmentationTool, centralityAugmentatioTool]
142
143 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
144 acc.addEventAlgo(DerivationKernel(name,
145 SkimmingTools= skimmingTool,
146 ThinningTools=thinningTool,
147 AugmentationTools=augmentationTool
148 ),
149 )
150
151 return acc
152