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