144 def makeAlgs (self, config) :
145 log = logging.getLogger('InDetTrackCalibrationConfig')
146
147 inputContainer = "InDetTrackParticles"
148 if self.inputContainer:
149 inputContainer = self.inputContainer
150 config.setSourceName (self.containerName, inputContainer)
151
152
153 if config.wantCopy (self.containerName) :
154 alg = config.createAlgorithm( 'CP::AsgShallowCopyAlg', 'InDetTrackShallowCopyAlg' )
155 alg.input = config.readName (self.containerName)
156 alg.output = config.copyName (self.containerName)
157
158
159 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'InDetTrackEtaCutAlg' )
160 alg.selectionDecoration = 'selectEta' + self.postfix + ',as_bits'
161 config.addPrivateTool( 'selectionTool', 'CP::AsgPtEtaSelectionTool' )
162 alg.selectionTool.maxEta = self.maxEta
163 alg.particles = config.readName (self.containerName)
164 alg.preselection = config.getPreselection (self.containerName, '')
165 config.addSelection (self.containerName, '', alg.selectionDecoration)
166
167
168 if config.dataType() is not DataType.Data:
169 if not self.runBiasing:
170 log.warning('Disabling the biasing tool for now. This should not '
171 'be used in an analysis.')
172 else:
173 alg = config.createAlgorithm( 'CP::InDetTrackBiasingAlg', 'InDetTrackBiasingAlg' )
174 self.makeTrackBiasingTool(config,
175 alg,
176 self.biasD0,
177 self.biasZ0,
178 self.biasQoverPsagitta,
179 self.customRunNumber,
180 self.applyD0Bias,
181 self.applyZ0Bias,
182 self.applyQoverPBias)
183 alg.inDetTracks = config.readName (self.containerName)
184 alg.inDetTracksOut = config.copyName (self.containerName)
185 alg.preselection = config.getPreselection (self.containerName, '')
186
187
188 if config.dataType() is not DataType.Data:
189 alg = config.createAlgorithm( 'CP::InDetTrackSmearingAlg', 'InDetTrackSmearingAlg' )
190 self.makeTrackSmearingTool(config,
191 alg,
192 self.calibFile)
193 alg.inDetTracks = config.readName (self.containerName)
194 alg.inDetTracksOut = config.copyName (self.containerName)
195 alg.preselection = config.getPreselection (self.containerName, '')
196
197 if self.minPt > 0 :
198 alg = config.createAlgorithm( 'CP::AsgSelectionAlg', 'InDetTrackPtCutAlg' )
199 alg.selectionDecoration = 'selectPt' + self.postfix + ',as_bits'
200 config.addPrivateTool( 'selectionTool', 'CP::AsgPtEtaSelectionTool' )
201 alg.selectionTool.minPt = self.minPt
202 alg.particles = config.readName (self.containerName)
203 alg.preselection = config.getPreselection (self.containerName, '')
204 config.addSelection (self.containerName, '', alg.selectionDecoration,
205 preselection=True)
206
207
208 alg = config.createAlgorithm( 'CP::InDetTrackExtraVarDecoratorAlg', 'ExtraVarDecorator' )
209 alg.inDetTracks = config.readName(self.containerName)
210
211 config.addOutputVar (self.containerName, 'pt_%SYS%', 'pt')
212 config.addOutputVar (self.containerName, 'eta_%SYS%', 'eta', noSys=True)
213 config.addOutputVar (self.containerName, 'phi', 'phi', noSys=True)
214 config.addOutputVar (self.containerName, 'charge_%SYS%', 'charge', noSys=True)
215 config.addOutputVar (self.containerName, 'qOverP', 'qOverP')
216 config.addOutputVar (self.containerName, 'd0', 'd0')
217 config.addOutputVar (self.containerName, 'z0', 'z0')
218 config.addOutputVar (self.containerName, 'vz', 'vz', noSys=True, auxType='float')
219
220
221 if self.outputTrackSummaryInfo:
222 config.addOutputVar (self.containerName, 'numberOfInnermostPixelLayerHits', 'numberOfInnermostPixelLayerHits', noSys=True, auxType='unsigned_char')
223 config.addOutputVar (self.containerName, 'numberOfPixelDeadSensors', 'numberOfPixelDeadSensors', noSys=True, auxType='unsigned_char')
224 config.addOutputVar (self.containerName, 'numberOfPixelHits', 'numberOfPixelHits', noSys=True, auxType='unsigned_char')
225 config.addOutputVar (self.containerName, 'numberOfPixelHoles', 'numberOfPixelHoles', noSys=True, auxType='unsigned_char')
226 config.addOutputVar (self.containerName, 'numberOfPixelSharedHits', 'numberOfPixelSharedHits', noSys=True, auxType='unsigned_char')
227 config.addOutputVar (self.containerName, 'numberOfSCTDeadSensors', 'numberOfSCTDeadSensors', noSys=True, auxType='unsigned_char')
228 config.addOutputVar (self.containerName, 'numberOfSCTHits', 'numberOfSCTHits', noSys=True, auxType='unsigned_char')
229 config.addOutputVar (self.containerName, 'numberOfSCTHoles', 'numberOfSCTHoles', noSys=True, auxType='unsigned_char')
230 config.addOutputVar (self.containerName, 'numberOfSCTSharedHits', 'numberOfSCTSharedHits', noSys=True, auxType='unsigned_char')
231 config.addOutputVar (self.containerName, 'numberOfTRTHits', 'numberOfTRTHits', noSys=True, auxType='unsigned_char')
232 config.addOutputVar (self.containerName, 'numberOfTRTOutliers', 'numberOfTRTOutliers', noSys=True, auxType='unsigned_char')
233
234