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