260 def makeAlgs (self, config) :
262 jetCollectionName=config.originalName(self.containerName)
263 if(config.originalName(self.containerName)==
"AnalysisJets") :
264 jetCollectionName=
"AntiKt4EMPFlowJets"
265 if(config.originalName(self.containerName)==
"AnalysisLargeRJets") :
266 jetCollectionName=
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"
269 collection_pattern = re.compile(
270 r"AntiKt(\d+)(EMTopo|EMPFlow|LCTopo|TrackCaloCluster|UFO|Track|HI)(TrimmedPtFrac5SmallR20|CSSKSoftDropBeta100Zcut10)?Jets")
271 match = collection_pattern.match(jetCollectionName)
274 "Jet collection {0} does not match expected pattern!".
format(jetCollectionName) )
275 radius =
int(match.group(1) )
276 if radius
not in [2, 4, 6, 10]:
277 raise ValueError(
"Jet collection has an unsupported radius '{0}'!".
format(radius) )
279 if (self.analysisJetSelection!=
''):
280 alg = config.createAlgorithm(
'CP::NJetDecoratorAlg',
'NJetDecoratorAlg' )
281 alg.jets = config.readName(self.containerName)
282 alg.jetSelection = self.analysisJetSelection
283 config.addOutputVar(
'EventInfo',
'Njet_%SYS%',
'Njet')
287 alg = config.createAlgorithm(
'CP::JetUncertaintiesAlg',
'JetUncertaintiesAlg' )
288 self.createUncertaintyToolSmallRJets(alg, config, jetCollectionName, doPseudoData=( self.systematicsModelJER
in [
"Full",
"All"] ))
289 alg.jets = config.readName (self.containerName)
290 alg.jetsOut = config.copyName (self.containerName)
291 alg.preselection = config.getPreselection (self.containerName,
'')
294 if self.jetInput ==
"UFO" and config.dataType()
in [DataType.FullSim, DataType.FastSim]:
295 alg = config.createAlgorithm(
'CP::JetUncertaintiesAlg',
'JetUncertaintiesAlg' )
296 self.createUncertaintyToolLargeRJets(alg, config, jetCollectionName, doPseudoData=( self.systematicsModelJER
in [
"Full",
"All"] ))
298 alg.uncertaintiesTool.JetDefinition = jetCollectionName[:-4]
301 alg.outOfValidity = 2
302 alg.outOfValidityDeco =
'outOfValidity'
304 alg.jets = config.readName (self.containerName)
305 alg.jetsOut = config.copyName (self.containerName)
306 alg.preselection = config.getPreselection (self.containerName,
'')
308 if self.jetInput !=
"UFO":
309 alg = config.createAlgorithm(
'CP::JetUncertaintiesAlg',
'JetUncertaintiesAlg' )
312 alg.outOfValidity = 2
313 alg.outOfValidityDeco =
'outOfValidity'
314 config.addPrivateTool(
'uncertaintiesTool',
'JetUncertaintiesTool' )
316 alg.uncertaintiesTool.JetDefinition = jetCollectionName[:-4]
317 alg.uncertaintiesTool.ConfigFile = \
318 "rel21/Moriond2018/R10_{0}Mass_all.config".
format(self.largeRMass)
319 alg.uncertaintiesTool.MCType =
"MC16a"
320 alg.uncertaintiesTool.IsData = (config.dataType()
is DataType.Data)
322 alg.jets = config.readName (self.containerName)
323 alg.jetsOut = config.copyName (self.containerName)
324 alg.preselection = config.getPreselection (self.containerName,
'')
325 config.addSelection (self.containerName,
'',
'outOfValidity')