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