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