15 acc = ComponentAccumulator()
16 alg = CompFactory.CP.TrackParticleMergerAlg(name, **kwargs)
17 kwargs.setdefault(
"InputTrackParticleLocations",
18 [
"InDetTrackParticles",
"InDetLargeD0TrackParticles"])
19 kwargs.setdefault(
"OutputTrackParticleLocation",
20 "InDetWithLRTTrackParticles")
21 kwargs.setdefault(
"CreateViewCollection",
True)
22 acc.addEventAlgo(alg, primary=
True)
457def TrackParametersAtPVCfg(flags, name, **kwargs):
458 """Configure the TrackParametersAtPV tool"""
459 acc = ComponentAccumulator()
460 acc.addPublicTool(CompFactory.DerivationFramework.TrackParametersAtPV(
461 name, **kwargs), primary=True)
464# Pseudotrack selector
505def IsolationTrackDecoratorCfg(flags, name, **kwargs):
506 """Confiure the isolation track decorator tool"""
507 acc = ComponentAccumulator()
508 IsolationTrackDecorator = CompFactory.DerivationFramework.IsolationTrackDecorator
509 acc.addPublicTool(IsolationTrackDecorator(name, **kwargs),
513# Tool for thinning TrackParticle containers via string selection
516def TrackParticleThinningCfg(flags, name, **kwargs):
517 """Configure the TrackParticleThining tool"""
518 if flags.Detector.GeometryITk:
519 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
521 # To produce SCT_DetectorElementCollection
522 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
523 acc = SCT_ReadoutGeometryCfg(flags)
525 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
526 name, **kwargs), primary=True)
529# Tool for thinning PixelClusters via string selection
532def PixelClusterThinningCfg(
533 flags, name="PixelClusterThinningTool", **kwargs):
534 pix_lumi_sel = "PixelClusters.bec == 0 && PixelClusters.layer >= 0 && PixelClusters.sizeZ > 1 && ( PixelClusters.nRDO < PixelClusters.sizeZ + 5 ) && PixelClusters.charge > 30000"
535 kwargs.setdefault("SelectionString", pix_lumi_sel)
536 acc = ComponentAccumulator()
538 CompFactory.DerivationFramework.TrackMeasurementThinning(
539 name, **kwargs), primary=True)
543def IDTIDEThinningToolCfg(flags, name="IDTIDEThinningTool", **kwargs):
544 if not flags.Detector.EnablePixel:
545 kwargs.setdefault("InDetTrackStatesPixKey", "")
546 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
547 if not flags.Detector.EnableSCT:
548 kwargs.setdefault("InDetTrackStatesSctKey", "")
549 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
550 if not flags.Detector.EnableTRT:
551 kwargs.setdefault("InDetTrackStatesTrtKey", "")
552 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
554 kwargs.setdefault("SelectionString", "abs(IDTIDEInDetTrackZ0AtPV) < 5.0")
555 # If true, Complains about missing PixelMSOSs
556 kwargs.setdefault("ThinHitsOnTrack", False)
558 from DerivationFrameworkInDet.InDetToolsConfig import (
559 TrackParticleThinningCfg)
560 return TrackParticleThinningCfg(flags, name, **kwargs)
562def ITkTrackParticleThinningCfg(flags, name, **kwargs):
563 """Configure the TrackParticleThining tool"""
564 # To produce ITkStripDetectorElementCollection
565 from StripGeoModelXml.ITkStripGeoModelConfig import (
566 ITkStripReadoutGeometryCfg)
567 acc = ITkStripReadoutGeometryCfg(flags)
569 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
570 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
571 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
572 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
573 kwargs.setdefault("InDetTrackStatesTrtKey", "")
574 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
575 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
577 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
578 name, **kwargs), primary=True)
581def ITkTIDEThinningToolCfg(flags, name="ITkTIDEThinningTool", **kwargs):
582 if not flags.Detector.EnableITkPixel:
583 kwargs.setdefault("InDetTrackStatesPixKey", "")
584 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
585 if not flags.Detector.EnableITkStrip:
586 kwargs.setdefault("InDetTrackStatesSctKey", "")
587 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
589 kwargs.setdefault("SelectionString", "abs(IDTIDEInDetTrackZ0AtPV) < 5.0")
590 # If true, Complains about missing PixelMSOSs
591 kwargs.setdefault("ThinHitsOnTrack", False)
593 from DerivationFrameworkInDet.InDetToolsConfig import (
594 ITkTrackParticleThinningCfg)
595 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
597# Tool for thinning TrackParticles that aren't associated with muons
600def MuonTrackParticleThinningCfg(flags, name, **kwargs):
601 """Configure the MuonTrackParticleThinning tool"""
602 acc = ComponentAccumulator()
604 CompFactory.DerivationFramework.MuonTrackParticleThinning(
605 name, **kwargs), primary=True)
608# Tool for thinning TrackParticles that aren't associated with taus
611def TauTrackParticleThinningCfg(flags, name, **kwargs):
612 """Configure the TauTrackParticleThinning tool"""
613 acc = ComponentAccumulator()
614 acc.addPublicTool(CompFactory.DerivationFramework.TauTrackParticleThinning(
615 name, **kwargs), primary=True)
618# Tool for thinning TrackParticles that aren't associated high-pt di-taus
621def DiTauTrackParticleThinningCfg(flags, name, **kwargs):
622 """Configure the DiTauTrackParticleThinning tool"""
623 acc = ComponentAccumulator()
625 CompFactory.DerivationFramework.DiTauTrackParticleThinning(
626 name, **kwargs), primary=True)
629# Tool for thinning TrackParticles that are associated with jets
632def JetTrackParticleThinningCfg(flags, name, **kwargs):
633 """Configure the JetTrackParticleThinning tool"""
634 acc = ComponentAccumulator()
635 acc.addPublicTool(CompFactory.DerivationFramework.JetTrackParticleThinning(
636 name, **kwargs), primary=True)
640def UFOTrackParticleThinningCfg(flags, name, **kwargs):
641 """Configure the UFOTrackParticleThinning tool"""
642 acc = ComponentAccumulator()
643 acc.addPublicTool(CompFactory.DerivationFramework.UFOTrackParticleThinning(
644 name, **kwargs), primary=True)
648def JetConstituentThinningCfg(flags, name, **kwargs):
649 """Configure the JetConstituentThinning tool"""
650 acc = ComponentAccumulator()
651 acc.addPublicTool(CompFactory.DerivationFramework.JetConstituentThinning(
652 name, **kwargs), primary=True)
656def JetGhostThinningCfg(flags, name, **kwargs):
657 """Configure the JetGhostThinning tool"""
658 acc = ComponentAccumulator()
659 acc.addPublicTool(CompFactory.DerivationFramework.JetGhostThinning(
660 name, **kwargs), primary=True)
664def TauJetLepRMParticleThinningCfg(flags, name, **kwargs):
665 """Configure the DiTauTrackParticleThinning tool"""
666 acc = ComponentAccumulator()
668 CompFactory.DerivationFramework.TauJets_LepRMParticleThinning(
669 name, **kwargs), primary=True)
672# Tool for thinning TrackParticles that aren't associated with egamma objects
675def EgammaTrackParticleThinningCfg(flags, name, **kwargs):
676 """Configure the EgammaTrackParticleThinning tool"""
677 acc = ComponentAccumulator()
679 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
680 name, **kwargs), primary=True)
683# Track to vertex wrapper
686def TrackToVertexWrapperCfg(flags, name, **kwargs):
687 """Configure the TrackToVertexWrapper tool"""
688 acc = ComponentAccumulator()
690 if "TrackToVertexIPEstimator" not in kwargs:
691 from TrkConfig.TrkVertexFitterUtilsConfig import (
692 TrackToVertexIPEstimatorCfg)
693 kwargs.setdefault("TrackToVertexIPEstimator", acc.popToolsAndMerge(
694 TrackToVertexIPEstimatorCfg(flags)))
696 kwargs.setdefault("ContainerName", "InDetTrackParticles")
698 acc.addPublicTool(CompFactory.DerivationFramework.TrackToVertexWrapper(
699 name, **kwargs), primary=True)
703def IDTIDETruthThinningToolCfg(flags, name="IDTIDETruthThinningTool", **kwargs):
704 kwargs.setdefault("WritePartons", True)
705 kwargs.setdefault("WriteHadrons", True)
706 kwargs.setdefault("WriteBHadrons", True)
707 kwargs.setdefault("WriteGeant", True)
708 kwargs.setdefault("GeantPhotonPtThresh", 20000)
709 kwargs.setdefault("WriteTauHad", True)
710 kwargs.setdefault("PartonPtThresh", -1.0)
711 kwargs.setdefault("WriteBSM", True)
712 kwargs.setdefault("WriteBosons", True)
713 kwargs.setdefault("WriteBosonProducts", True)
714 kwargs.setdefault("WriteBSMProducts", True)
715 kwargs.setdefault("WriteTopAndDecays", True)
716 kwargs.setdefault("WriteEverything", True)
717 kwargs.setdefault("WriteAllLeptons", True)
718 kwargs.setdefault("WriteLeptonsNotFromHadrons", True)
719 kwargs.setdefault("WriteNotPhysical", True)
720 kwargs.setdefault("WriteFirstN", -1)
721 kwargs.setdefault("PreserveAncestors", True)
722 kwargs.setdefault("PreserveGeneratorDescendants", True)
724 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
725 MenuTruthThinningCfg)
726 return MenuTruthThinningCfg(flags, name, **kwargs)
728def IDTRKVALIDTruthThinningToolCfg(
729 flags, name="IDTRKVALIDTruthThinningTool", **kwargs):
731 kwargs.setdefault("WriteEverything", True)
732 kwargs.setdefault("WriteFirstN", -1)
733 kwargs.setdefault("PreserveAncestors", True)
734 kwargs.setdefault("PreserveGeneratorDescendants", True)
736 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
737 MenuTruthThinningCfg)
738 return MenuTruthThinningCfg(flags, name, **kwargs)
740def EventInfoBSErrDecoratorCfg(
741 flags, name="EventInfoBSErrDecorator", **kwargs):
742 acc = ComponentAccumulator()
743 acc.addPublicTool(CompFactory.DerivationFramework.EventInfoBSErrDecorator(
744 name, **kwargs), primary=True)
747def UnassociatedHitsGetterToolCfg(
748 flags, name="UnassociatedHitsGetterTool", **kwargs):
749 acc = ComponentAccumulator()
751 if "AssociationTool" not in kwargs:
752 from InDetConfig.InDetAssociationToolsConfig import (
753 InDetPRDtoTrackMapToolGangedPixelsCfg)
754 kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
755 InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
758 CompFactory.DerivationFramework.UnassociatedHitsGetterTool(name, **kwargs))
761def UnassociatedHitsDecoratorCfg(
762 flags, name="UnassociatedHitsDecorator", **kwargs):
763 acc = ComponentAccumulator()
765 if "UnassociatedHitsGetter" not in kwargs:
766 from DerivationFrameworkInDet.InDetToolsConfig import (
767 UnassociatedHitsGetterToolCfg)
768 kwargs.setdefault("UnassociatedHitsGetter", acc.popToolsAndMerge(
769 UnassociatedHitsGetterToolCfg(flags)))
771 acc.addPublicTool(CompFactory.DerivationFramework.UnassociatedHitsDecorator(
772 name, **kwargs), primary=True)