197 def makeAlgs (self, config) :
198 log = logging.getLogger('InDetTrackCalibrationConfig')
199
200 inputContainer = "InDetTrackParticles"
201 if self.inputContainer:
202 inputContainer = self.inputContainer
203 config.setSourceName (self.containerName, inputContainer)
204
205
206 if config.wantCopy (self.containerName) :
207 alg = config.createAlgorithm( 'CP::AsgShallowCopyAlg', 'InDetTrackShallowCopyAlg' )
208 alg.input = config.readName (self.containerName)
209 alg.output = config.copyName (self.containerName)
210
211
212 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'InDetTrackEtaCutAlg' )
213 alg.selectionDecoration = 'selectEta' + self.postfix + ',as_bits'
214 config.addPrivateTool( 'selectionTool', 'CP::AsgPtEtaSelectionTool' )
215 alg.selectionTool.maxEta = self.maxEta
216 alg.particles = config.readName (self.containerName)
217 alg.preselection = config.getPreselection (self.containerName, '')
218 config.addSelection (self.containerName, '', alg.selectionDecoration)
219
220
221 if config.dataType() is not DataType.Data:
222 if not self.runBiasing:
223 log.warning('Disabling the biasing tool for now. This should not '
224 'be used in an analysis.')
225 else:
226 alg = config.createAlgorithm( 'CP::InDetTrackBiasingAlg', 'InDetTrackBiasingAlg' )
227 self.makeTrackBiasingTool(config,
228 alg,
229 self.biasD0,
230 self.biasZ0,
231 self.biasQoverPsagitta,
232 self.customRunNumber,
233 self.applyD0Bias,
234 self.applyZ0Bias,
235 self.applyQoverPBias)
236 alg.inDetTracks = config.readName (self.containerName)
237 alg.inDetTracksOut = config.copyName (self.containerName)
238 alg.preselection = config.getPreselection (self.containerName, '')
239
240
241 if config.dataType() is not DataType.Data:
242 alg = config.createAlgorithm( 'CP::InDetTrackSmearingAlg', 'InDetTrackSmearingAlg' )
243 self.makeTrackSmearingTool(config,
244 alg,
245 self.smearingToolSeed,
246 self.calibFile)
247 alg.inDetTracks = config.readName (self.containerName)
248 alg.inDetTracksOut = config.copyName (self.containerName)
249 alg.preselection = config.getPreselection (self.containerName, '')
250
251 if self.minPt > 0 :
252 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'InDetTrackPtCutAlg' )
253 alg.selectionDecoration = 'selectPt' + self.postfix + ',as_bits'
254 config.addPrivateTool( 'selectionTool', 'CP::AsgPtEtaSelectionTool' )
255 alg.selectionTool.minPt = self.minPt
256 alg.particles = config.readName (self.containerName)
257 alg.preselection = config.getPreselection (self.containerName, '')
258 config.addSelection (self.containerName, '', alg.selectionDecoration,
259 preselection=True)
260
261
262 alg = config.createAlgorithm( 'CP::InDetTrackExtraVarDecoratorAlg', 'ExtraVarDecorator' )
263 alg.inDetTracks = config.readName(self.containerName)
264
265 config.addOutputVar (self.containerName, 'pt_%SYS%', 'pt')
266 config.addOutputVar (self.containerName, 'eta_%SYS%', 'eta', noSys=True)
267 config.addOutputVar (self.containerName, 'phi', 'phi', noSys=True)
268 config.addOutputVar (self.containerName, 'charge_%SYS%', 'charge', noSys=True)
269 config.addOutputVar (self.containerName, 'qOverP', 'qOverP')
270 config.addOutputVar (self.containerName, 'd0', 'd0')
271 config.addOutputVar (self.containerName, 'z0', 'z0')
272 config.addOutputVar (self.containerName, 'vz', 'vz', noSys=True, auxType='float')
273
274
275 if self.outputTrackSummaryInfo:
276 config.addOutputVar (self.containerName, 'numberOfInnermostPixelLayerHits', 'numberOfInnermostPixelLayerHits', noSys=True, auxType='unsigned_char')
277 config.addOutputVar (self.containerName, 'numberOfPixelDeadSensors', 'numberOfPixelDeadSensors', noSys=True, auxType='unsigned_char')
278 config.addOutputVar (self.containerName, 'numberOfPixelHits', 'numberOfPixelHits', noSys=True, auxType='unsigned_char')
279 config.addOutputVar (self.containerName, 'numberOfPixelHoles', 'numberOfPixelHoles', noSys=True, auxType='unsigned_char')
280 config.addOutputVar (self.containerName, 'numberOfPixelSharedHits', 'numberOfPixelSharedHits', noSys=True, auxType='unsigned_char')
281 config.addOutputVar (self.containerName, 'numberOfSCTDeadSensors', 'numberOfSCTDeadSensors', noSys=True, auxType='unsigned_char')
282 config.addOutputVar (self.containerName, 'numberOfSCTHits', 'numberOfSCTHits', noSys=True, auxType='unsigned_char')
283 config.addOutputVar (self.containerName, 'numberOfSCTHoles', 'numberOfSCTHoles', noSys=True, auxType='unsigned_char')
284 config.addOutputVar (self.containerName, 'numberOfSCTSharedHits', 'numberOfSCTSharedHits', noSys=True, auxType='unsigned_char')
285 config.addOutputVar (self.containerName, 'numberOfTRTHits', 'numberOfTRTHits', noSys=True, auxType='unsigned_char')
286 config.addOutputVar (self.containerName, 'numberOfTRTOutliers', 'numberOfTRTOutliers', noSys=True, auxType='unsigned_char')
287
288