235 algo, rParam, btagDiscriminators, btagInfos, patJets, labelName, btagPrefix, postfix):
241 requiredTagInfos =
list(btagInfos)
242 for btagDiscr
in btagDiscriminators :
243 for tagInfoList
in supportedBtagDiscr[btagDiscr] :
244 for requiredTagInfo
in tagInfoList :
245 tagInfoCovered =
False 246 for tagInfo
in requiredTagInfos :
247 if requiredTagInfo == tagInfo :
248 tagInfoCovered =
True 250 if not tagInfoCovered :
251 requiredTagInfos.append(requiredTagInfo)
253 if hasattr( process,
'candidateJetProbabilityComputer' ) ==
False :
255 process.load(
"RecoBTag.ImpactParameter.impactParameter_cff")
256 task.add(process.impactParameterTask)
257 process.load(
"RecoBTag.SecondaryVertex.secondaryVertex_cff")
258 task.add(process.secondaryVertexTask)
259 process.load(
"RecoBTag.SoftLepton.softLepton_cff")
260 task.add(process.softLeptonTask)
261 process.load(
"RecoBTag.Combined.combinedMVA_cff")
262 task.add(process.combinedMVATask)
263 process.load(
"RecoBTag.CTagging.cTagging_cff")
264 task.add(process.cTaggingTask)
266 process.load(
"RecoBTag.ImpactParameter.impactParameter_EventSetup_cff")
267 process.load(
"RecoBTag.SecondaryVertex.secondaryVertex_EventSetup_cff")
268 process.load(
"RecoBTag.SoftLepton.softLepton_EventSetup_cff")
269 process.load(
"RecoBTag.Combined.combinedMVA_EventSetup_cff")
270 process.load(
"RecoBTag.CTagging.cTagging_EventSetup_cff")
276 sys.stderr.write(
"-------------------------------------------------------------------\n")
277 sys.stderr.write(
" Warning: For a complete switch to the legacy tight b-tag track\n")
278 sys.stderr.write(
" selection, please also enable the \'runIVF\' switch.\n")
279 sys.stderr.write(
"-------------------------------------------------------------------\n")
281 sys.stderr.write(
"-------------------------------------------------------------------\n")
282 sys.stderr.write(
" Warning: With the tight b-tag track selection enabled, it is\n")
283 sys.stderr.write(
" advisable to set \'btagPrefix\' to a non-empty string to\n")
284 sys.stderr.write(
" avoid unintentional modifications to the default\n")
285 sys.stderr.write(
" b tagging setup that might be loaded in the same job.\n")
286 sys.stderr.write(
"-------------------------------------------------------------------\n")
290 svSourceCvsL = copy.deepcopy(svSource)
291 svSourceCvsL.setModuleLabel(svSource.getModuleLabel()+
'CvsL')
294 runIVFforCTagOnly =
False 295 ivfcTagInfos = [
'pfInclusiveSecondaryVertexFinderCvsLTagInfos',
'pfInclusiveSecondaryVertexFinderNegativeCvsLTagInfos']
297 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices' and any(i
in requiredTagInfos
for i
in ivfcTagInfos)
and not runIVF:
298 runIVFforCTagOnly =
True 300 sys.stderr.write(
"-------------------------------------------------------------------\n")
301 sys.stderr.write(
" Info: To run c tagging on MiniAOD, c-tag-specific IVF secondary\n")
302 sys.stderr.write(
" vertices will be remade.\n")
303 sys.stderr.write(
"-------------------------------------------------------------------\n")
305 if runIVF
and btagPrefix !=
'':
306 if runIVFforCTagOnly:
307 svSourceCvsL.setModuleLabel(btagPrefix+svSourceCvsL.getModuleLabel())
309 svSource.setModuleLabel(btagPrefix+svSource.getModuleLabel())
310 svSourceCvsL.setModuleLabel(btagPrefix+svSourceCvsL.getModuleLabel())
315 acceptedTagInfos =
list()
316 for btagInfo
in requiredTagInfos:
317 if hasattr(btag,btagInfo):
318 if btagInfo ==
'pfImpactParameterTagInfos':
320 btag.pfImpactParameterTagInfos.clone(jets = jetSource,primaryVertex=pvSource,candidates=pfCandidates),
323 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
324 _btagInfo.explicitJTA = cms.bool(explicitJTA)
326 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
327 _btagInfo.minimumNumberOfPixelHits = cms.int32(2)
328 _btagInfo.minimumNumberOfHits = cms.int32(8)
329 if btagInfo ==
'pfImpactParameterAK8TagInfos':
331 btag.pfImpactParameterAK8TagInfos.clone(jets = jetSource,primaryVertex=pvSource,candidates=pfCandidates),
334 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
335 _btagInfo.explicitJTA = cms.bool(explicitJTA)
337 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
338 _btagInfo.minimumNumberOfPixelHits = cms.int32(2)
339 _btagInfo.minimumNumberOfHits = cms.int32(8)
340 if btagInfo ==
'pfImpactParameterCA15TagInfos':
342 btag.pfImpactParameterCA15TagInfos.clone(jets = jetSource,primaryVertex=pvSource,candidates=pfCandidates),
345 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
346 _btagInfo.explicitJTA = cms.bool(explicitJTA)
348 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
349 _btagInfo.minimumNumberOfPixelHits = cms.int32(2)
350 _btagInfo.minimumNumberOfHits = cms.int32(8)
351 if btagInfo ==
'pfSecondaryVertexTagInfos':
353 btag.pfSecondaryVertexTagInfos.clone(
354 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix)),
357 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
358 _btagInfo.trackSelection.pixelHitsMin = cms.uint32(2)
359 _btagInfo.trackSelection.totalHitsMin = cms.uint32(8)
360 if btagInfo ==
'pfDeepCSVTagInfos':
362 btag.pfDeepCSVTagInfos.clone(
363 svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderTagInfos'+labelName+postfix)),
365 if svClustering
or fatJets != cms.InputTag(
''):
366 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
367 if btagInfo ==
'pfDeepCSVNegativeTagInfos':
369 btag.pfDeepCSVNegativeTagInfos.clone(
370 svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderNegativeTagInfos'+labelName+postfix)),
372 if svClustering
or fatJets != cms.InputTag(
''):
373 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
374 if btagInfo ==
'pfDeepCSVPositiveTagInfos':
376 btag.pfDeepCSVPositiveTagInfos.clone(
377 svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderTagInfos'+labelName+postfix)),
379 if svClustering
or fatJets != cms.InputTag(
''):
380 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
381 if btagInfo ==
'pfDeepCMVATagInfos':
383 btag.pfDeepCMVATagInfos.clone(
384 deepNNTagInfos = cms.InputTag(btagPrefix+
'pfDeepCSVTagInfos'+labelName+postfix),
385 ipInfoSrc = cms.InputTag(btagPrefix+
"pfImpactParameterTagInfos"+labelName+postfix),
386 muInfoSrc = cms.InputTag(btagPrefix+
"softPFMuonsTagInfos"+labelName+postfix),
387 elInfoSrc = cms.InputTag(btagPrefix+
"softPFElectronsTagInfos"+labelName+postfix)),
389 if svClustering
or fatJets != cms.InputTag(
''):
390 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
391 if btagInfo ==
'pfDeepCMVANegativeTagInfos':
393 btag.pfDeepCMVATagInfos.clone(
394 deepNNTagInfos = cms.InputTag(btagPrefix+
'pfDeepCSVTagInfos'+labelName+postfix),
395 ipInfoSrc = cms.InputTag(btagPrefix+
"pfImpactParameterTagInfos"+labelName+postfix),
396 muInfoSrc = cms.InputTag(btagPrefix+
"softPFMuonsTagInfos"+labelName+postfix),
397 elInfoSrc = cms.InputTag(btagPrefix+
"softPFElectronsTagInfos"+labelName+postfix)),
399 if svClustering
or fatJets != cms.InputTag(
''):
400 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
401 if btagInfo ==
'pfDeepCMVAPositiveTagInfos':
403 btag.pfDeepCMVATagInfos.clone(
404 deepNNTagInfos = cms.InputTag(btagPrefix+
'pfDeepCSVTagInfos'+labelName+postfix),
405 ipInfoSrc = cms.InputTag(btagPrefix+
"pfImpactParameterTagInfos"+labelName+postfix),
406 muInfoSrc = cms.InputTag(btagPrefix+
"softPFMuonsTagInfos"+labelName+postfix),
407 elInfoSrc = cms.InputTag(btagPrefix+
"softPFElectronsTagInfos"+labelName+postfix)),
409 if svClustering
or fatJets != cms.InputTag(
''):
410 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
411 if btagInfo ==
'pfInclusiveSecondaryVertexFinderTagInfos':
413 btag.pfInclusiveSecondaryVertexFinderTagInfos.clone(
414 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix),
415 extSVCollection=svSource),
417 if svClustering
or fatJets != cms.InputTag(
''):
418 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
419 if btagInfo ==
'pfInclusiveSecondaryVertexFinderAK8TagInfos':
421 btag.pfInclusiveSecondaryVertexFinderAK8TagInfos.clone(
422 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterAK8TagInfos'+labelName+postfix),
423 extSVCollection=svSource),
425 if svClustering
or fatJets != cms.InputTag(
''):
426 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
427 if btagInfo ==
'pfBoostedDoubleSVAK8TagInfos':
429 btag.pfBoostedDoubleSVAK8TagInfos.clone(
430 svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderAK8TagInfos'+labelName+postfix)),
432 if btagInfo ==
'pfInclusiveSecondaryVertexFinderCA15TagInfos':
434 btag.pfInclusiveSecondaryVertexFinderCA15TagInfos.clone(
435 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterCA15TagInfos'+labelName+postfix),
436 extSVCollection=svSource),
438 if svClustering
or fatJets != cms.InputTag(
''):
439 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
440 if btagInfo ==
'pfBoostedDoubleSVCA15TagInfos':
442 btag.pfBoostedDoubleSVCA15TagInfos.clone(
443 svTagInfos = cms.InputTag(btagPrefix+
'pfInclusiveSecondaryVertexFinderCA15TagInfos'+labelName+postfix)),
445 if btagInfo ==
'pfInclusiveSecondaryVertexFinderCvsLTagInfos':
447 btag.pfInclusiveSecondaryVertexFinderCvsLTagInfos.clone(
448 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix),
449 extSVCollection=svSourceCvsL),
451 if svClustering
or fatJets != cms.InputTag(
''):
452 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
453 if btagInfo ==
'pfInclusiveSecondaryVertexFinderNegativeCvsLTagInfos':
455 btag.pfInclusiveSecondaryVertexFinderNegativeCvsLTagInfos.clone(
456 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix),
457 extSVCollection=svSourceCvsL),
459 if svClustering
or fatJets != cms.InputTag(
''):
460 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
461 if btagInfo ==
'pfGhostTrackVertexTagInfos':
463 btag.pfGhostTrackVertexTagInfos.clone(
464 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix)),
466 if btagInfo ==
'pfSecondaryVertexNegativeTagInfos':
468 btag.pfSecondaryVertexNegativeTagInfos.clone(
469 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix)),
472 _btagInfo = getattr(process, btagPrefix+btagInfo+labelName+postfix)
473 _btagInfo.trackSelection.pixelHitsMin = cms.uint32(2)
474 _btagInfo.trackSelection.totalHitsMin = cms.uint32(8)
475 if btagInfo ==
'pfInclusiveSecondaryVertexFinderNegativeTagInfos':
477 btag.pfInclusiveSecondaryVertexFinderNegativeTagInfos.clone(
478 trackIPTagInfos = cms.InputTag(btagPrefix+
'pfImpactParameterTagInfos'+labelName+postfix),
479 extSVCollection=svSource),
481 if svClustering
or fatJets != cms.InputTag(
''):
482 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
483 if btagInfo ==
'impactParameterTagInfos':
485 btag.impactParameterTagInfos.clone(
486 jetTracks = cms.InputTag(
'jetTracksAssociatorAtVertex'+labelName+postfix),
487 primaryVertex=pvSource),
489 if btagInfo ==
'secondaryVertexTagInfos':
491 btag.secondaryVertexTagInfos.clone(
492 trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)),
494 if btagInfo ==
'inclusiveSecondaryVertexFinderTagInfos':
496 btag.inclusiveSecondaryVertexFinderTagInfos.clone(
497 trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)),
499 if svClustering
or fatJets != cms.InputTag(
''):
500 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
501 if btagInfo ==
'inclusiveSecondaryVertexFinderFilteredTagInfos':
503 btag.inclusiveSecondaryVertexFinderFilteredTagInfos.clone(
504 trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)),
506 if svClustering
or fatJets != cms.InputTag(
''):
507 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
508 if btagInfo ==
'secondaryVertexNegativeTagInfos':
510 btag.secondaryVertexNegativeTagInfos.clone(
511 trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)),
513 if btagInfo ==
'inclusiveSecondaryVertexFinderNegativeTagInfos':
515 btag.inclusiveSecondaryVertexFinderNegativeTagInfos.clone(
516 trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)),
518 if svClustering
or fatJets != cms.InputTag(
''):
519 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
520 if btagInfo ==
'inclusiveSecondaryVertexFinderFilteredNegativeTagInfos':
522 btag.inclusiveSecondaryVertexFinderFilteredNegativeTagInfos.clone(
523 trackIPTagInfos = cms.InputTag(btagPrefix+
'impactParameterTagInfos'+labelName+postfix)),
525 if svClustering
or fatJets != cms.InputTag(
''):
526 setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets)
527 if btagInfo ==
'softMuonTagInfos':
529 btag.softMuonTagInfos.clone(jets = jetSource, primaryVertex=pvSource),
531 if btagInfo ==
'softPFMuonsTagInfos':
533 btag.softPFMuonsTagInfos.clone(jets = jetSource, primaryVertex=pvSource, muons=muSource),
535 if btagInfo ==
'softPFElectronsTagInfos':
537 btag.softPFElectronsTagInfos.clone(jets = jetSource, primaryVertex=pvSource, electrons=elSource),
539 acceptedTagInfos.append(btagInfo)
540 elif hasattr(toptag, btagInfo) :
541 acceptedTagInfos.append(btagInfo)
543 print ' --> %s ignored, since not available via RecoBTag.Configuration.RecoBTag_cff!'%(btagInfo)
545 acceptedBtagDiscriminators =
list()
546 for discriminator_name
in btagDiscriminators :
547 btagDiscr = discriminator_name.split(
':')[0]
549 if hasattr(btag,btagDiscr):
550 newDiscr = btagPrefix+btagDiscr+labelName+postfix
551 if hasattr(process, newDiscr):
552 print 'skipping %s as it has already been loaded in the process' % newDiscr
554 elif hasattr(getattr(btag, btagDiscr),
'tagInfos'):
557 getattr(btag, btagDiscr).
clone(
558 tagInfos = cms.VInputTag(
559 *[ cms.InputTag(btagPrefix+x+labelName+postfix) \
560 for x
in supportedBtagDiscr[discriminator_name][0] ]
566 elif hasattr(getattr(btag, btagDiscr),
'src'):
569 getattr(btag, btagDiscr).
clone(
570 src = cms.InputTag(btagPrefix+supportedBtagDiscr[discriminator_name][0][0]+labelName+postfix)
576 raise ValueError(
'I do not know how to update %s it does not have neither "tagInfos" nor "src" attributes' % btagDiscr)
577 acceptedBtagDiscriminators.append(discriminator_name)
579 print ' --> %s ignored, since not available via RecoBTag.Configuration.RecoBTag_cff!'%(btagDiscr)
581 patJets.tagInfoSources = cms.VInputTag( *[ cms.InputTag(btagPrefix+x+labelName+postfix)
for x
in acceptedTagInfos ] )
582 patJets.discriminatorSources = cms.VInputTag(*[
583 cms.InputTag(btagPrefix+x+labelName+postfix) \
584 if ':' not in x
else \
585 cms.InputTag(btagPrefix+x.split(
':')[0]+labelName+postfix+
':'+x.split(
':')[1]) \
586 for x
in acceptedBtagDiscriminators
588 if len(acceptedBtagDiscriminators) > 0 :
589 patJets.addBTagInfo =
True 592 if not tightBTagNTkHits:
593 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices':
598 ivfbTagInfos = [
'pfInclusiveSecondaryVertexFinderTagInfos',
'pfInclusiveSecondaryVertexFinderAK8TagInfos',
'pfInclusiveSecondaryVertexFinderCA15TagInfos']
599 if any(i
in acceptedTagInfos
for i
in ivfbTagInfos)
and not runIVFforCTagOnly:
600 if not hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinder' ):
601 loadWithPrefix(process,
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff', btagPrefix, task.label())
603 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinder' ):
604 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinder')
605 _temp.minHits = cms.uint32(8)
607 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices':
608 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinder' ):
609 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinder')
610 _temp.primaryVertices = pvSource
611 _temp.tracks = pfCandidates
612 if hasattr( process, btagPrefix+
'candidateVertexArbitrator' ):
613 _temp = getattr(process, btagPrefix+
'candidateVertexArbitrator')
614 _temp.primaryVertices = pvSource
615 _temp.tracks = pfCandidates
616 if hasattr( process, btagPrefix+
'inclusiveCandidateSecondaryVertices' )
and not hasattr( process, svSource.getModuleLabel() ):
618 getattr(process, btagPrefix+
'inclusiveCandidateSecondaryVertices').
clone(),
620 if any(i
in acceptedTagInfos
for i
in ivfcTagInfos):
621 if not hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL' ):
622 loadWithPrefix(process,
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff', btagPrefix, task.label())
624 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL' ):
625 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL')
626 _temp.minHits = cms.uint32(8)
628 if pvSource.getModuleLabel() ==
'offlineSlimmedPrimaryVertices':
629 if hasattr( process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL' ):
630 _temp = getattr(process, btagPrefix+
'inclusiveCandidateVertexFinderCvsL')
631 _temp.primaryVertices = pvSource
632 _temp.tracks = pfCandidates
633 if hasattr( process, btagPrefix+
'candidateVertexArbitratorCvsL' ):
634 _temp = getattr(process, btagPrefix+
'candidateVertexArbitratorCvsL')
635 _temp.primaryVertices = pvSource
636 _temp.tracks = pfCandidates
637 if hasattr( process, btagPrefix+
'inclusiveCandidateSecondaryVerticesCvsL' )
and not hasattr( process, svSourceCvsL.getModuleLabel() ):
639 getattr(process, btagPrefix+
'inclusiveCandidateSecondaryVerticesCvsL').
clone(),
641 if 'inclusiveSecondaryVertexFinderTagInfos' in acceptedTagInfos:
642 if not hasattr( process,
'inclusiveVertexing' ):
643 process.load(
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff' )
644 task.add(process.inclusiveVertexingTask)
645 task.add(process.inclusiveCandidateVertexingTask)
646 task.add(process.inclusiveCandidateVertexingCvsLTask)
647 if 'inclusiveSecondaryVertexFinderFilteredTagInfos' in acceptedTagInfos:
648 if not hasattr( process,
'inclusiveVertexing' ):
649 process.load(
'RecoVertex.AdaptiveVertexFinder.inclusiveVertexing_cff' )
650 task.add(process.inclusiveVertexingTask)
651 task.add(process.inclusiveCandidateVertexingTask)
652 task.add(process.inclusiveCandidateVertexingCvsLTask)
653 if 'inclusiveSecondaryVertexFinderFilteredTagInfos' in acceptedTagInfos:
654 if not hasattr( process,
'inclusiveSecondaryVerticesFiltered' ):
655 process.load(
'RecoBTag.SecondaryVertex.inclusiveSecondaryVerticesFiltered_cfi' )
656 task.add(process.inclusiveSecondaryVerticesFiltered)
657 task.add(process.bVertexFilter)
658 if not hasattr( process,
'bToCharmDecayVertexMerged' ):
659 process.load(
'RecoBTag.SecondaryVertex.bToCharmDecayVertexMerger_cfi' )
660 task.add(process.bToCharmDecayVertexMerged)
661 if 'caTopTagInfos' in acceptedTagInfos :
662 patJets.addTagInfos =
True 663 if not hasattr( process,
'caTopTagInfos' )
and not hasattr( process,
'caTopTagInfosAK8' ):
664 process.load(
'RecoJets.JetProducers.caTopTaggers_cff' )
665 task.add(process.caTopTaggersTask)
bool any(const std::vector< T > &v, const T &what)
def addToProcessAndTask(label, module, process, task)
def loadWithPrefix(process, moduleName, prefix='', loadedProducersAndFilters=None)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
def getPatAlgosToolsTask(process)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run