74 biasQoverPsagitta : float=
None,
75 customRunNumber : int=
None) :
76 toolName =
"biasingTool"
77 config.addPrivateTool(toolName,
"InDet::InDetTrackBiasingTool")
78 if config.geometry()
is LHCPeriod.Run3:
79 raise ValueError (
'Recommendations are not yet available in Run 3.')
80 elif config.geometry()
is not LHCPeriod.Run2:
81 raise ValueError (
'No recommendations found for geometry \"'
82 + config.geometry().value +
'\". Please check '
85 alg.biasingTool.biasD0 = biasD0
87 alg.biasingTool.biasZ0 = biasZ0
89 alg.biasingTool.biasQoverPsagitta = biasQoverPsagitta
91 alg.biasingTool.runNumber = customRunNumber
98 calibFile : str=
None) :
99 toolName =
"smearingTool"
100 config.addPrivateTool(toolName,
"InDet::InDetTrackSmearingTool")
102 alg.smearingTool.Seed = seed
104 alg.tackSmearingTool.calibFileIP_CTIDE = calibFile
106 if config.geometry()
is LHCPeriod.Run2:
108 alg.smearingTool.calibFileIP_CTIDE =
"InDetTrackSystematicsTools/CalibData_22.0_2022-v00/d0z0_smearing_factors_Run2_v2.root"
109 elif config.geometry()
is LHCPeriod.Run3:
110 if config.campaign()
is Campaign.MC23a:
112 alg.smearingTool.calibFileIP_CTIDE =
"InDetTrackSystematicsTools/CalibData_25.2_2025-v00/2022_d0z0_smearing_factors_v2.root"
113 elif config.campaign()
is Campaign.MC23d:
115 alg.smearingTool.calibFileIP_CTIDE =
"InDetTrackSystematicsTools/CalibData_25.2_2025-v00/2023_d0z0_smearing_factors_v2.root"
116 elif config.campaign()
is Campaign.MC23e:
118 alg.smearingTool.calibFileIP_CTIDE =
"InDetTrackSystematicsTools/CalibData_25.2_2025-v00/2024_d0z0_smearing_factors.root"
120 raise ValueError (
'No recommendations found for campaign \"'
121 + config.campaign().value +
'\" in Run 3. '
122 'Please check that the recommendations exist.')
124 raise ValueError (
'No recommendations found for geometry \"'
125 + config.geometry().value +
'\". Please check '
126 'the configuration.')
130 log = logging.getLogger(
'InDetTrackCalibrationConfig')
132 inputContainer =
"InDetTrackParticles"
139 alg = config.createAlgorithm(
'CP::AsgShallowCopyAlg',
'InDetTrackShallowCopyAlg' )
144 alg = config.createAlgorithm(
'CP::AsgSelectionAlg',
'InDetTrackEtaCutAlg' )
145 alg.selectionDecoration =
'selectEta' + self.postfix +
',as_bits'
146 config.addPrivateTool(
'selectionTool',
'CP::AsgPtEtaSelectionTool' )
147 alg.selectionTool.maxEta = self.maxEta
149 alg.preselection = config.getPreselection (self.
containerName,
'')
150 config.addSelection (self.
containerName,
'', alg.selectionDecoration)
153 if config.dataType()
is not DataType.Data:
155 log.warning(
'Disabling the biasing tool for now. This should not '
156 'be used in an analysis.')
158 alg = config.createAlgorithm(
'CP::InDetTrackBiasingAlg',
'InDetTrackBiasingAlg' )
167 alg.preselection = config.getPreselection (self.
containerName,
'')
170 if config.dataType()
is not DataType.Data:
171 alg = config.createAlgorithm(
'CP::InDetTrackSmearingAlg',
'InDetTrackSmearingAlg' )
178 alg.preselection = config.getPreselection (self.
containerName,
'')
181 alg = config.createAlgorithm(
'CP::AsgSelectionAlg',
'InDetTrackPtCutAlg' )
182 alg.selectionDecoration =
'selectPt' + self.postfix +
',as_bits'
183 config.addPrivateTool(
'selectionTool',
'CP::AsgPtEtaSelectionTool' )
184 alg.selectionTool.minPt = self.minPt
186 alg.preselection = config.getPreselection (self.
containerName,
'')
187 config.addSelection (self.
containerName,
'', alg.selectionDecoration,
191 alg = config.createAlgorithm(
'CP::InDetTrackExtraVarDecoratorAlg',
'ExtraVarDecorator' )
195 config.addOutputVar (self.
containerName,
'eta_%SYS%',
'eta', noSys=
True)
196 config.addOutputVar (self.
containerName,
'phi',
'phi', noSys=
True)
197 config.addOutputVar (self.
containerName,
'charge_%SYS%',
'charge', noSys=
True)
201 config.addOutputVar (self.
containerName,
'vz',
'vz', noSys=
True)
205 config.addOutputVar (self.
containerName,
'numberOfInnermostPixelLayerHits',
'numberOfInnermostPixelLayerHits', noSys=
True)
206 config.addOutputVar (self.
containerName,
'numberOfPixelDeadSensors',
'numberOfPixelDeadSensors', noSys=
True)
207 config.addOutputVar (self.
containerName,
'numberOfPixelHits',
'numberOfPixelHits', noSys=
True)
208 config.addOutputVar (self.
containerName,
'numberOfPixelHoles',
'numberOfPixelHoles', noSys=
True)
209 config.addOutputVar (self.
containerName,
'numberOfPixelSharedHits',
'numberOfPixelSharedHits', noSys=
True)
210 config.addOutputVar (self.
containerName,
'numberOfSCTDeadSensors',
'numberOfSCTDeadSensors', noSys=
True)
211 config.addOutputVar (self.
containerName,
'numberOfSCTHits',
'numberOfSCTHits', noSys=
True)
212 config.addOutputVar (self.
containerName,
'numberOfSCTHoles',
'numberOfSCTHoles', noSys=
True)
213 config.addOutputVar (self.
containerName,
'numberOfSCTSharedHits',
'numberOfSCTSharedHits', noSys=
True)
214 config.addOutputVar (self.
containerName,
'numberOfTRTHits',
'numberOfTRTHits', noSys=
True)
215 config.addOutputVar (self.
containerName,
'numberOfTRTOutliers',
'numberOfTRTOutliers', noSys=
True)