175 algo, rParam, btagDiscriminators, btagInfos, patJets, labelName, btagPrefix, postfix):
178 requiredTagInfos =
list(btagInfos)
179 for btagDiscr
in btagDiscriminators :
180 for tagInfoList
in supportedBtagDiscr[btagDiscr] :
181 for requiredTagInfo
in tagInfoList :
182 tagInfoCovered =
False
183 for tagInfo
in requiredTagInfos :
184 if requiredTagInfo == tagInfo :
185 tagInfoCovered =
True
187 if not tagInfoCovered :
188 requiredTagInfos.append(requiredTagInfo)
190 if hasattr( process,
'candidateJetProbabilityComputer' ) ==
False :
192 process.load(
"RecoBTag.ImpactParameter.impactParameter_cff")
193 process.load(
"RecoBTag.SecondaryVertex.secondaryVertex_cff")
194 process.load(
"RecoBTag.SoftLepton.softLepton_cff")
195 process.load(
"RecoBTag.Combined.combinedMVA_cff")
196 process.load(
"RecoBTag.CTagging.cTagging_cff")
198 process.load(
"RecoBTag.ImpactParameter.impactParameter_EventSetup_cff")
199 process.load(
"RecoBTag.SecondaryVertex.secondaryVertex_EventSetup_cff")
200 process.load(
"RecoBTag.SoftLepton.softLepton_EventSetup_cff")
201 process.load(
"RecoBTag.Combined.combinedMVA_EventSetup_cff")
202 process.load(
"RecoBTag.CTagging.cTagging_EventSetup_cff")
208 print "-------------------------------------------------------------------"
209 print " Warning: For a complete switch to the legacy tight b-tag track"
210 print " selection, please also enable the \'runIVF\' switch."
211 print "-------------------------------------------------------------------"
213 print "-------------------------------------------------------------------"
214 print " Warning: With the tight b-tag track selection enabled, it is"
215 print " advisable to set \'btagPrefix\' to a non-empty string to"
216 print " avoid unintentional modifications to the default"
217 print " b tagging setup that might be loaded in the same job."
218 print "-------------------------------------------------------------------"
222 svSourceCvsL = copy.deepcopy(svSource)
223 svSourceCvsL.setModuleLabel(svSource.getModuleLabel()+
'CvsL')
226 runIVFforCTagOnly =
False
227 ivfcTagInfos = [
'pfInclusiveSecondaryVertexFinderCvsLTagInfos',
'pfInclusiveSecondaryVertexFinderNegativeCvsLTagInfos']
229 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices' and any(i
in requiredTagInfos
for i
in ivfcTagInfos)
and not runIVF:
230 runIVFforCTagOnly =
True
232 print "-------------------------------------------------------------------"
233 print " Info: To run c tagging on MiniAOD, c-tag-specific IVF secondary"
234 print " vertices will be remade."
235 print "-------------------------------------------------------------------"
237 if runIVF
and btagPrefix !=
'':
238 if runIVFforCTagOnly:
239 svSourceCvsL.setModuleLabel(btagPrefix+svSourceCvsL.getModuleLabel())
241 svSource.setModuleLabel(btagPrefix+svSource.getModuleLabel())
242 svSourceCvsL.setModuleLabel(btagPrefix+svSourceCvsL.getModuleLabel())
247 acceptedTagInfos =
list()
248 for btagInfo
in requiredTagInfos:
249 if hasattr(btag,btagInfo):
250 if btagInfo ==
'pfImpactParameterTagInfos':
251 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfImpactParameterTagInfos.clone(jets = jetSource,primaryVertex=pvSource,candidates=pfCandidates))
253 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
254 _btagInfo.explicitJTA = cms.bool(explicitJTA)
256 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
257 _btagInfo.minimumNumberOfPixelHits = cms.int32(2)
258 _btagInfo.minimumNumberOfHits = cms.int32(8)
259 if btagInfo ==
'pfImpactParameterAK8TagInfos':
260 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfImpactParameterAK8TagInfos.clone(jets = jetSource,primaryVertex=pvSource,candidates=pfCandidates))
262 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
263 _btagInfo.explicitJTA = cms.bool(explicitJTA)
265 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
266 _btagInfo.minimumNumberOfPixelHits = cms.int32(2)
267 _btagInfo.minimumNumberOfHits = cms.int32(8)
268 if btagInfo ==
'pfImpactParameterCA15TagInfos':
269 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfImpactParameterCA15TagInfos.clone(jets = jetSource,primaryVertex=pvSource,candidates=pfCandidates))
271 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
272 _btagInfo.explicitJTA = cms.bool(explicitJTA)
274 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
275 _btagInfo.minimumNumberOfPixelHits = cms.int32(2)
276 _btagInfo.minimumNumberOfHits = cms.int32(8)
277 if btagInfo ==
'pfSecondaryVertexTagInfos':
278 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfSecondaryVertexTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix)))
280 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
281 _btagInfo.trackSelection.pixelHitsMin = cms.uint32(2)
282 _btagInfo.trackSelection.totalHitsMin = cms.uint32(8)
283 if btagInfo ==
'pfDeepCSVTagInfos':
284 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCSVTagInfos.clone(svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderTagInfos'+labelName+postfix)))
285 if svClustering
or fatJets != cms.InputTag(
''):
286 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
287 if btagInfo ==
'pfDeepCSVNegativeTagInfos':
288 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCSVNegativeTagInfos.clone(svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderNegativeTagInfos'+labelName+postfix)))
289 if svClustering
or fatJets != cms.InputTag(
''):
290 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
291 if btagInfo ==
'pfDeepCSVPositiveTagInfos':
292 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCSVPositiveTagInfos.clone(svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderTagInfos'+labelName+postfix)))
293 if svClustering
or fatJets != cms.InputTag(
''):
294 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
295 if btagInfo ==
'pfDeepCMVATagInfos':
296 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCMVATagInfos.clone(pfDeepCSVTagInfos = cms.InputTag(btagPrefix+
'pfDeepCSVTagInfos'+labelName+postfix), ipInfoSrc = cms.InputTag(btagPrefix+
"pfImpactParameterTagInfos"+labelName+postfix), muInfoSrc = cms.InputTag(btagPrefix+
"softPFMuonsTagInfos"+labelName+postfix), elInfoSrc = cms.InputTag(btagPrefix+
"softPFElectronsTagInfos"+labelName+postfix)))
297 if svClustering
or fatJets != cms.InputTag(
''):
298 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
299 if btagInfo ==
'pfDeepCMVANegativeTagInfos':
300 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCMVATagInfos.clone(pfDeepCSVTagInfos = cms.InputTag(btagPrefix+
'pfDeepCSVTagInfos'+labelName+postfix), ipInfoSrc = cms.InputTag(btagPrefix+
"pfImpactParameterTagInfos"+labelName+postfix), muInfoSrc = cms.InputTag(btagPrefix+
"softPFMuonsTagInfos"+labelName+postfix), elInfoSrc = cms.InputTag(btagPrefix+
"softPFElectronsTagInfos"+labelName+postfix)))
301 if svClustering
or fatJets != cms.InputTag(
''):
302 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
303 if btagInfo ==
'pfDeepCMVAPositiveTagInfos':
304 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCMVATagInfos.clone(pfDeepCSVTagInfos = cms.InputTag(btagPrefix+
'pfDeepCSVTagInfos'+labelName+postfix), ipInfoSrc = cms.InputTag(btagPrefix+
"pfImpactParameterTagInfos"+labelName+postfix), muInfoSrc = cms.InputTag(btagPrefix+
"softPFMuonsTagInfos"+labelName+postfix), elInfoSrc = cms.InputTag(btagPrefix+
"softPFElectronsTagInfos"+labelName+postfix)))
305 if svClustering
or fatJets != cms.InputTag(
''):
306 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
307 if btagInfo ==
'pfInclusiveSecondaryVertexFinderTagInfos':
308 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfInclusiveSecondaryVertexFinderTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix), extSVCollection=svSource))
309 if svClustering
or fatJets != cms.InputTag(
''):
310 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
311 if btagInfo ==
'pfInclusiveSecondaryVertexFinderAK8TagInfos':
312 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfInclusiveSecondaryVertexFinderAK8TagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterAK8TagInfos'+labelName+postfix), extSVCollection=svSource))
313 if svClustering
or fatJets != cms.InputTag(
''):
314 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
315 if btagInfo ==
'pfBoostedDoubleSVAK8TagInfos':
316 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfBoostedDoubleSVAK8TagInfos.clone(svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderAK8TagInfos'+labelName+postfix)))
317 if btagInfo ==
'pfInclusiveSecondaryVertexFinderCA15TagInfos':
318 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfInclusiveSecondaryVertexFinderCA15TagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterCA15TagInfos'+labelName+postfix), extSVCollection=svSource))
319 if svClustering
or fatJets != cms.InputTag(
''):
320 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
321 if btagInfo ==
'pfBoostedDoubleSVCA15TagInfos':
322 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfBoostedDoubleSVCA15TagInfos.clone(svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderCA15TagInfos'+labelName+postfix)))
323 if btagInfo ==
'pfInclusiveSecondaryVertexFinderCvsLTagInfos':
324 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfInclusiveSecondaryVertexFinderCvsLTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix), extSVCollection=svSourceCvsL))
325 if svClustering
or fatJets != cms.InputTag(
''):
326 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
327 if btagInfo ==
'pfInclusiveSecondaryVertexFinderNegativeCvsLTagInfos':
328 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfInclusiveSecondaryVertexFinderNegativeCvsLTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix), extSVCollection=svSourceCvsL))
329 if svClustering
or fatJets != cms.InputTag(
''):
330 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
331 if btagInfo ==
'pfSecondaryVertexNegativeTagInfos':
332 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfSecondaryVertexNegativeTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix)))
334 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
335 _btagInfo.trackSelection.pixelHitsMin = cms.uint32(2)
336 _btagInfo.trackSelection.totalHitsMin = cms.uint32(8)
337 if btagInfo ==
'pfInclusiveSecondaryVertexFinderNegativeTagInfos':
338 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.pfInclusiveSecondaryVertexFinderNegativeTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix), extSVCollection=svSource))
339 if svClustering
or fatJets != cms.InputTag(
''):
340 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
341 if btagInfo ==
'impactParameterTagInfos':
342 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.impactParameterTagInfos.clone(jetTracks = cms.InputTag(
'jetTracksAssociatorAtVertex'+labelName+postfix), primaryVertex=pvSource))
343 if btagInfo ==
'secondaryVertexTagInfos':
344 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.secondaryVertexTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)))
345 if btagInfo ==
'inclusiveSecondaryVertexFinderTagInfos':
346 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.inclusiveSecondaryVertexFinderTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)))
347 if svClustering
or fatJets != cms.InputTag(
''):
348 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
349 if btagInfo ==
'inclusiveSecondaryVertexFinderFilteredTagInfos':
350 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.inclusiveSecondaryVertexFinderFilteredTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)))
351 if svClustering
or fatJets != cms.InputTag(
''):
352 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
353 if btagInfo ==
'secondaryVertexNegativeTagInfos':
354 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.secondaryVertexNegativeTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)))
355 if btagInfo ==
'inclusiveSecondaryVertexFinderNegativeTagInfos':
356 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.inclusiveSecondaryVertexFinderNegativeTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)))
357 if svClustering
or fatJets != cms.InputTag(
''):
358 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
359 if btagInfo ==
'inclusiveSecondaryVertexFinderFilteredNegativeTagInfos':
360 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.inclusiveSecondaryVertexFinderFilteredNegativeTagInfos.clone(trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)))
361 if svClustering
or fatJets != cms.InputTag(
''):
362 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
363 if btagInfo ==
'softMuonTagInfos':
364 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.softMuonTagInfos.clone(jets = jetSource, primaryVertex=pvSource))
365 if btagInfo ==
'softPFMuonsTagInfos':
366 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.softPFMuonsTagInfos.clone(jets = jetSource, primaryVertex=pvSource, muons=muSource))
367 if btagInfo ==
'softPFElectronsTagInfos':
368 setattr(process, btagPrefix+btagInfo+labelName+postfix, btag.softPFElectronsTagInfos.clone(jets = jetSource, primaryVertex=pvSource, electrons=elSource))
369 acceptedTagInfos.append(btagInfo)
370 elif hasattr(toptag, btagInfo) :
371 acceptedTagInfos.append(btagInfo)
373 print ' --> %s ignored, since not available via RecoBTag.Configuration.RecoBTag_cff!'%(btagInfo)
375 acceptedBtagDiscriminators =
list()
376 for discriminator_name
in btagDiscriminators :
377 btagDiscr = discriminator_name.split(
':')[0]
379 if hasattr(btag,btagDiscr):
380 newDiscr = btagPrefix+btagDiscr+labelName+postfix
381 if hasattr(process, newDiscr):
382 print 'skipping %s as it has already been loaded in the process' % newDiscr
384 elif hasattr(getattr(btag, btagDiscr),
'tagInfos'):
387 getattr(btag, btagDiscr).
clone(
388 tagInfos = cms.VInputTag(
389 *[ cms.InputTag(btagPrefix+x+labelName+postfix) \
390 for x
in supportedBtagDiscr[discriminator_name][0] ]
394 elif hasattr(getattr(btag, btagDiscr),
'src'):
397 getattr(btag, btagDiscr).
clone(
398 src = cms.InputTag(btagPrefix+supportedBtagDiscr[discriminator_name][0][0]+labelName+postfix)
402 raise ValueError(
'I do not know how to update %s it does not have neither "tagInfos" nor "src" attributes' % btagDiscr)
403 acceptedBtagDiscriminators.append(discriminator_name)
405 print ' --> %s ignored, since not available via RecoBTag.Configuration.RecoBTag_cff!'%(btagDiscr)
407 patJets.tagInfoSources = cms.VInputTag( *[ cms.InputTag(btagPrefix+x+labelName+postfix)
for x
in acceptedTagInfos ] )
408 patJets.discriminatorSources = cms.VInputTag(*[
409 cms.InputTag(btagPrefix+x+labelName+postfix) \
410 if ':' not in x
else \
411 cms.InputTag(btagPrefix+x.split(
':')[0]+labelName+postfix+
':'+x.split(
':')[1]) \
412 for x
in acceptedBtagDiscriminators
414 if len(acceptedBtagDiscriminators) > 0 :
415 patJets.addBTagInfo =
True
418 if not tightBTagNTkHits:
419 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices':
424 ivfbTagInfos = [
'pfInclusiveSecondaryVertexFinderTagInfos',
'pfInclusiveSecondaryVertexFinderAK8TagInfos',
'pfInclusiveSecondaryVertexFinderCA15TagInfos']
425 if any(i
in acceptedTagInfos
for i
in ivfbTagInfos)
and not runIVFforCTagOnly:
426 if not hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinder' ):
427 loadWithPrefix(process,
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff', btagPrefix)
429 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinder' ):
430 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinder')
431 _temp.minHits = cms.uint32(8)
433 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices':
434 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinder' ):
435 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinder')
436 _temp.primaryVertices = pvSource
437 _temp.tracks = pfCandidates
438 if hasattr( process, btagPrefix+
'candidateVertexArbitrator' ):
439 _temp = getattr(process, btagPrefix+
'candidateVertexArbitrator')
440 _temp.primaryVertices = pvSource
441 _temp.tracks = pfCandidates
442 _temp.trackMinLayers = cms.int32(0)
443 if hasattr( process, btagPrefix+
'inclusiveCandidateSecondaryVertices' )
and not hasattr( process, svSource.getModuleLabel() ):
444 setattr(process, svSource.getModuleLabel(), getattr(process, btagPrefix+
'inclusiveCandidateSecondaryVertices').
clone() )
445 if any(i
in acceptedTagInfos
for i
in ivfcTagInfos):
446 if not hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL' ):
447 loadWithPrefix(process,
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff', btagPrefix)
449 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL' ):
450 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL')
451 _temp.minHits = cms.uint32(8)
453 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices':
454 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL' ):
455 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL')
456 _temp.primaryVertices = pvSource
457 _temp.tracks = pfCandidates
458 if hasattr( process, btagPrefix+
'candidateVertexArbitratorCvsL' ):
459 _temp = getattr(process, btagPrefix+
'candidateVertexArbitratorCvsL')
460 _temp.primaryVertices = pvSource
461 _temp.tracks = pfCandidates
462 _temp.trackMinLayers = cms.int32(0)
463 if hasattr( process, btagPrefix+
'inclusiveCandidateSecondaryVerticesCvsL' )
and not hasattr( process, svSourceCvsL.getModuleLabel() ):
464 setattr(process, svSourceCvsL.getModuleLabel(), getattr(process, btagPrefix+
'inclusiveCandidateSecondaryVerticesCvsL').
clone() )
465 if 'inclusiveSecondaryVertexFinderTagInfos' in acceptedTagInfos:
466 if not hasattr( process,
'inclusiveVertexing' ):
467 process.load(
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff' )
468 if 'inclusiveSecondaryVertexFinderFilteredTagInfos' in acceptedTagInfos:
469 if not hasattr( process,
'inclusiveVertexing' ):
470 process.load(
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff' )
471 if 'inclusiveSecondaryVertexFinderFilteredTagInfos' in acceptedTagInfos:
472 if not hasattr( process,
'inclusiveSecondaryVerticesFiltered' ):
473 process.load(
'RecoBTag.SecondaryVertex.inclusiveSecondaryVerticesFiltered_cfi' )
474 if not hasattr( process,
'bToCharmDecayVertexMerged' ):
475 process.load(
'RecoBTag.SecondaryVertex.bToCharmDecayVertexMerger_cfi' )
476 if 'caTopTagInfos' in acceptedTagInfos :
477 patJets.addTagInfos =
True
478 if not hasattr( process,
'caTopTagInfos' )
and not hasattr( process,
'caTopTagInfosAK8' ):
479 process.load(
'RecoJets.JetProducers.caTopTaggers_cff' )