17 acc = ComponentAccumulator()
18 alg = CompFactory.CP.TrackParticleMergerAlg(name, **kwargs)
19 kwargs.setdefault(
"InputTrackParticleLocations",
20 [
"InDetTrackParticles",
"InDetLargeD0TrackParticles"])
21 kwargs.setdefault(
"OutputTrackParticleLocation",
22 "InDetWithLRTTrackParticles")
23 kwargs.setdefault(
"CreateViewCollection",
True)
24 acc.addEventAlgo(alg, primary=
True)
463def TrackParametersAtPVCfg(flags, name, **kwargs):
464 """Configure the TrackParametersAtPV tool"""
465 acc = ComponentAccumulator()
466 acc.addPublicTool(CompFactory.DerivationFramework.TrackParametersAtPV(
467 name, **kwargs), primary=True)
470# Pseudotrack selector
511def IsolationTrackDecoratorCfg(flags, name, **kwargs):
512 """Confiure the isolation track decorator tool"""
513 acc = ComponentAccumulator()
514 IsolationTrackDecorator = CompFactory.DerivationFramework.IsolationTrackDecorator
515 acc.addPublicTool(IsolationTrackDecorator(name, **kwargs),
519# Tool for thinning TrackParticle containers via string selection
522def TrackParticleThinningCfg(flags, name, **kwargs):
523 """Configure the TrackParticleThining tool"""
524 if flags.Detector.GeometryITk:
525 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
527 # To produce SCT_DetectorElementCollection
528 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
529 acc = SCT_ReadoutGeometryCfg(flags)
531 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
532 name, **kwargs), primary=True)
535# Tool for thinning TrackParticle containers via string selection
538def TrackParticleThinningPHYSCfg(flags, name, **kwargs):
539 """Configure the TrackParticleThining tool"""
540 if flags.Detector.GeometryITk:
541 return ITkTrackParticleThinningPHYSCfg(flags, name, **kwargs)
543 # To produce SCT_DetectorElementCollection
544 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
545 acc = SCT_ReadoutGeometryCfg(flags)
546 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinningPHYS(
547 name, **kwargs), primary=True)
550# Tool for thinning PixelClusters via string selection
553def PixelClusterThinningCfg(
554 flags, name="PixelClusterThinningTool", **kwargs):
555 pix_lumi_sel = "PixelClusters.bec == 0 && PixelClusters.layer >= 0 && PixelClusters.sizeZ > 1 && ( PixelClusters.nRDO < PixelClusters.sizeZ + 5 ) && PixelClusters.charge > 30000"
556 kwargs.setdefault("SelectionString", pix_lumi_sel)
557 acc = ComponentAccumulator()
559 CompFactory.DerivationFramework.TrackMeasurementThinning(
560 name, **kwargs), primary=True)
564def IDTIDEThinningToolCfg(flags, name="IDTIDEThinningTool", **kwargs):
565 if not flags.Detector.EnablePixel:
566 kwargs.setdefault("InDetTrackStatesPixKey", "")
567 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
568 if not flags.Detector.EnableSCT:
569 kwargs.setdefault("InDetTrackStatesSctKey", "")
570 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
571 if not flags.Detector.EnableTRT:
572 kwargs.setdefault("InDetTrackStatesTrtKey", "")
573 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
575 kwargs.setdefault("SelectionString", "abs(InDetTrackParticles.IDTIDEInDetTrackZ0AtPV) < 5.0")
576 # If true, Complains about missing PixelMSOSs
577 kwargs.setdefault("ThinHitsOnTrack", False)
579 return TrackParticleThinningCfg(flags, name, **kwargs)
581def ITkTrackParticleThinningCfg(flags, name, **kwargs):
582 """Configure the TrackParticleThining tool"""
583 # To produce ITkStripDetectorElementCollection
584 from StripGeoModelXml.ITkStripGeoModelConfig import (
585 ITkStripReadoutGeometryCfg)
586 acc = ITkStripReadoutGeometryCfg(flags)
588 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
589 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
590 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
591 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
592 kwargs.setdefault("InDetTrackStatesTrtKey", "")
593 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
594 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
596 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
597 name, **kwargs), primary=True)
600def ITkTrackParticleThinningPHYSCfg(flags, name, **kwargs):
601 """Configure the TrackParticleThiningPHYS tool"""
602 # To produce ITkStripDetectorElementCollection
603 from StripGeoModelXml.ITkStripGeoModelConfig import (
604 ITkStripReadoutGeometryCfg)
605 acc = ITkStripReadoutGeometryCfg(flags)
607 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
608 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
609 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
610 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
611 kwargs.setdefault("InDetTrackStatesTrtKey", "")
612 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
613 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
615 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinningPHYS(
616 name, **kwargs), primary=True)
619def ITkTIDEThinningToolCfg(flags, name="ITkTIDEThinningTool", **kwargs):
620 if not flags.Detector.EnableITkPixel:
621 kwargs.setdefault("InDetTrackStatesPixKey", "")
622 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
623 if not flags.Detector.EnableITkStrip:
624 kwargs.setdefault("InDetTrackStatesSctKey", "")
625 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
627 kwargs.setdefault("SelectionString", "abs(InDetTrackParticles.IDTIDEInDetTrackZ0AtPV) < 5.0")
628 # If true, Complains about missing PixelMSOSs
629 kwargs.setdefault("ThinHitsOnTrack", False)
631 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
633# Tool for thinning TrackParticles that aren't associated with muons
636def MuonTrackParticleThinningCfg(flags, name, **kwargs):
637 """Configure the MuonTrackParticleThinning tool"""
638 acc = ComponentAccumulator()
640 CompFactory.DerivationFramework.MuonTrackParticleThinning(
641 name, **kwargs), primary=True)
644# Tool for thinning TrackParticles that aren't associated with taus
647def TauTrackParticleThinningCfg(flags, name, **kwargs):
648 """Configure the TauTrackParticleThinning tool"""
649 acc = ComponentAccumulator()
650 acc.addPublicTool(CompFactory.DerivationFramework.TauTrackParticleThinning(
651 name, **kwargs), primary=True)
654# Tool for thinning TrackParticles that aren't associated high-pt di-taus
657def DiTauTrackParticleThinningCfg(flags, name, **kwargs):
658 """Configure the DiTauTrackParticleThinning tool"""
659 acc = ComponentAccumulator()
661 CompFactory.DerivationFramework.DiTauTrackParticleThinning(
662 name, **kwargs), primary=True)
665# Tool for thinning TrackParticles that are associated with jets
668def JetTrackParticleThinningCfg(flags, name, **kwargs):
669 """Configure the JetTrackParticleThinning tool"""
670 acc = ComponentAccumulator()
671 acc.addPublicTool(CompFactory.DerivationFramework.JetTrackParticleThinning(
672 name, **kwargs), primary=True)
676def UFOTrackParticleThinningCfg(flags, name, **kwargs):
677 """Configure the UFOTrackParticleThinning tool"""
678 acc = ComponentAccumulator()
679 acc.addPublicTool(CompFactory.DerivationFramework.UFOTrackParticleThinning(
680 name, **kwargs), primary=True)
684def JetConstituentThinningCfg(flags, name, **kwargs):
685 """Configure the JetConstituentThinning tool"""
686 acc = ComponentAccumulator()
687 acc.addPublicTool(CompFactory.DerivationFramework.JetConstituentThinning(
688 name, **kwargs), primary=True)
692def JetGhostThinningCfg(flags, name, **kwargs):
693 """Configure the JetGhostThinning tool"""
694 acc = ComponentAccumulator()
695 acc.addPublicTool(CompFactory.DerivationFramework.JetGhostThinning(
696 name, **kwargs), primary=True)
700def TauJetLepRMParticleThinningCfg(flags, name, **kwargs):
701 """Configure the DiTauTrackParticleThinning tool"""
702 acc = ComponentAccumulator()
704 CompFactory.DerivationFramework.TauJets_LepRMParticleThinning(
705 name, **kwargs), primary=True)
708# Tool for thinning TrackParticles that aren't associated with egamma objects
711def EgammaTrackParticleThinningCfg(flags, name, **kwargs):
712 """Configure the EgammaTrackParticleThinning tool"""
713 acc = ComponentAccumulator()
715 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
716 name, **kwargs), primary=True)
719# Track to vertex wrapper
722def TrackToVertexWrapperCfg(flags, name, **kwargs):
723 """Configure the TrackToVertexWrapper tool"""
724 acc = ComponentAccumulator()
726 if "TrackToVertexIPEstimator" not in kwargs:
727 from TrkConfig.TrkVertexFitterUtilsConfig import (
728 TrackToVertexIPEstimatorCfg)
729 kwargs.setdefault("TrackToVertexIPEstimator", acc.popToolsAndMerge(
730 TrackToVertexIPEstimatorCfg(flags)))
732 kwargs.setdefault("ContainerName", "InDetTrackParticles")
734 acc.addPublicTool(CompFactory.DerivationFramework.TrackToVertexWrapper(
735 name, **kwargs), primary=True)
739def IDTIDETruthThinningToolCfg(flags, name="IDTIDETruthThinningTool", **kwargs):
740 kwargs.setdefault("WritePartons", True)
741 kwargs.setdefault("WriteHadrons", True)
742 kwargs.setdefault("WriteBHadrons", True)
743 kwargs.setdefault("WriteGeant", True)
744 kwargs.setdefault("GeantPhotonPtThresh", 20000)
745 kwargs.setdefault("WriteTauHad", True)
746 kwargs.setdefault("PartonPtThresh", -1.0)
747 kwargs.setdefault("WriteBSM", True)
748 kwargs.setdefault("WriteBosons", True)
749 kwargs.setdefault("WriteBosonProducts", True)
750 kwargs.setdefault("WriteBSMProducts", True)
751 kwargs.setdefault("WriteTopAndDecays", True)
752 kwargs.setdefault("WriteEverything", True)
753 kwargs.setdefault("WriteAllLeptons", True)
754 kwargs.setdefault("WriteLeptonsNotFromHadrons", True)
755 kwargs.setdefault("WriteNotPhysical", True)
756 kwargs.setdefault("WriteFirstN", -1)
757 kwargs.setdefault("PreserveAncestors", True)
758 kwargs.setdefault("PreserveGeneratorDescendants", True)
760 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
761 MenuTruthThinningCfg)
762 return MenuTruthThinningCfg(flags, name, **kwargs)
764def IDTRKVALIDTruthThinningToolCfg(
765 flags, name="IDTRKVALIDTruthThinningTool", **kwargs):
767 kwargs.setdefault("WriteEverything", True)
768 kwargs.setdefault("WriteFirstN", -1)
769 kwargs.setdefault("PreserveAncestors", True)
770 kwargs.setdefault("PreserveGeneratorDescendants", True)
772 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
773 MenuTruthThinningCfg)
774 return MenuTruthThinningCfg(flags, name, **kwargs)
776def EventInfoBSErrDecoratorCfg(
777 flags, name="EventInfoBSErrDecorator", **kwargs):
778 acc = ComponentAccumulator()
779 acc.addPublicTool(CompFactory.DerivationFramework.EventInfoBSErrDecorator(
780 name, **kwargs), primary=True)
783def UnassociatedHitsGetterToolCfg(
784 flags, name="UnassociatedHitsGetterTool", **kwargs):
785 acc = ComponentAccumulator()
787 if "AssociationTool" not in kwargs:
788 from InDetConfig.InDetAssociationToolsConfig import (
789 InDetPRDtoTrackMapToolGangedPixelsCfg)
790 kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
791 InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
794 CompFactory.DerivationFramework.UnassociatedHitsGetterTool(name, **kwargs))
797def UnassociatedHitsDecoratorCfg(
798 flags, name="UnassociatedHitsDecorator", **kwargs):
799 acc = ComponentAccumulator()
801 if "UnassociatedHitsGetter" not in kwargs:
802 kwargs.setdefault("UnassociatedHitsGetter", acc.popToolsAndMerge(
803 UnassociatedHitsGetterToolCfg(flags)))
805 acc.addPublicTool(CompFactory.DerivationFramework.UnassociatedHitsDecorator(
806 name, **kwargs), primary=True)