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 TrackParticle containers via string selection
532def TrackParticleThinningPHYSCfg(flags, name, **kwargs):
533 """Configure the TrackParticleThining tool"""
534 if flags.Detector.GeometryITk:
535 return ITkTrackParticleThinningPHYSCfg(flags, name, **kwargs)
537 # To produce SCT_DetectorElementCollection
538 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
539 acc = SCT_ReadoutGeometryCfg(flags)
540 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinningPHYS(
541 name, **kwargs), primary=True)
544# Tool for thinning PixelClusters via string selection
547def PixelClusterThinningCfg(
548 flags, name="PixelClusterThinningTool", **kwargs):
549 pix_lumi_sel = "PixelClusters.bec == 0 && PixelClusters.layer >= 0 && PixelClusters.sizeZ > 1 && ( PixelClusters.nRDO < PixelClusters.sizeZ + 5 ) && PixelClusters.charge > 30000"
550 kwargs.setdefault("SelectionString", pix_lumi_sel)
551 acc = ComponentAccumulator()
553 CompFactory.DerivationFramework.TrackMeasurementThinning(
554 name, **kwargs), primary=True)
558def IDTIDEThinningToolCfg(flags, name="IDTIDEThinningTool", **kwargs):
559 if not flags.Detector.EnablePixel:
560 kwargs.setdefault("InDetTrackStatesPixKey", "")
561 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
562 if not flags.Detector.EnableSCT:
563 kwargs.setdefault("InDetTrackStatesSctKey", "")
564 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
565 if not flags.Detector.EnableTRT:
566 kwargs.setdefault("InDetTrackStatesTrtKey", "")
567 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
569 kwargs.setdefault("SelectionString", "abs(IDTIDEInDetTrackZ0AtPV) < 5.0")
570 # If true, Complains about missing PixelMSOSs
571 kwargs.setdefault("ThinHitsOnTrack", False)
573 from DerivationFrameworkInDet.InDetToolsConfig import (
574 TrackParticleThinningCfg)
575 return TrackParticleThinningCfg(flags, name, **kwargs)
577def ITkTrackParticleThinningCfg(flags, name, **kwargs):
578 """Configure the TrackParticleThining tool"""
579 # To produce ITkStripDetectorElementCollection
580 from StripGeoModelXml.ITkStripGeoModelConfig import (
581 ITkStripReadoutGeometryCfg)
582 acc = ITkStripReadoutGeometryCfg(flags)
584 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
585 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
586 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
587 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
588 kwargs.setdefault("InDetTrackStatesTrtKey", "")
589 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
590 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
592 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
593 name, **kwargs), primary=True)
596def ITkTrackParticleThinningPHYSCfg(flags, name, **kwargs):
597 """Configure the TrackParticleThiningPHYS tool"""
598 # To produce ITkStripDetectorElementCollection
599 from StripGeoModelXml.ITkStripGeoModelConfig import (
600 ITkStripReadoutGeometryCfg)
601 acc = ITkStripReadoutGeometryCfg(flags)
603 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
604 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
605 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
606 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
607 kwargs.setdefault("InDetTrackStatesTrtKey", "")
608 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
609 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
611 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinningPHYS(
612 name, **kwargs), primary=True)
615def ITkTIDEThinningToolCfg(flags, name="ITkTIDEThinningTool", **kwargs):
616 if not flags.Detector.EnableITkPixel:
617 kwargs.setdefault("InDetTrackStatesPixKey", "")
618 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
619 if not flags.Detector.EnableITkStrip:
620 kwargs.setdefault("InDetTrackStatesSctKey", "")
621 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
623 kwargs.setdefault("SelectionString", "abs(IDTIDEInDetTrackZ0AtPV) < 5.0")
624 # If true, Complains about missing PixelMSOSs
625 kwargs.setdefault("ThinHitsOnTrack", False)
627 from DerivationFrameworkInDet.InDetToolsConfig import (
628 ITkTrackParticleThinningCfg)
629 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
631# Tool for thinning TrackParticles that aren't associated with muons
634def MuonTrackParticleThinningCfg(flags, name, **kwargs):
635 """Configure the MuonTrackParticleThinning tool"""
636 acc = ComponentAccumulator()
638 CompFactory.DerivationFramework.MuonTrackParticleThinning(
639 name, **kwargs), primary=True)
642# Tool for thinning TrackParticles that aren't associated with taus
645def TauTrackParticleThinningCfg(flags, name, **kwargs):
646 """Configure the TauTrackParticleThinning tool"""
647 acc = ComponentAccumulator()
648 acc.addPublicTool(CompFactory.DerivationFramework.TauTrackParticleThinning(
649 name, **kwargs), primary=True)
652# Tool for thinning TrackParticles that aren't associated high-pt di-taus
655def DiTauTrackParticleThinningCfg(flags, name, **kwargs):
656 """Configure the DiTauTrackParticleThinning tool"""
657 acc = ComponentAccumulator()
659 CompFactory.DerivationFramework.DiTauTrackParticleThinning(
660 name, **kwargs), primary=True)
663# Tool for thinning TrackParticles that are associated with jets
666def JetTrackParticleThinningCfg(flags, name, **kwargs):
667 """Configure the JetTrackParticleThinning tool"""
668 acc = ComponentAccumulator()
669 acc.addPublicTool(CompFactory.DerivationFramework.JetTrackParticleThinning(
670 name, **kwargs), primary=True)
674def UFOTrackParticleThinningCfg(flags, name, **kwargs):
675 """Configure the UFOTrackParticleThinning tool"""
676 acc = ComponentAccumulator()
677 acc.addPublicTool(CompFactory.DerivationFramework.UFOTrackParticleThinning(
678 name, **kwargs), primary=True)
682def JetConstituentThinningCfg(flags, name, **kwargs):
683 """Configure the JetConstituentThinning tool"""
684 acc = ComponentAccumulator()
685 acc.addPublicTool(CompFactory.DerivationFramework.JetConstituentThinning(
686 name, **kwargs), primary=True)
690def JetGhostThinningCfg(flags, name, **kwargs):
691 """Configure the JetGhostThinning tool"""
692 acc = ComponentAccumulator()
693 acc.addPublicTool(CompFactory.DerivationFramework.JetGhostThinning(
694 name, **kwargs), primary=True)
698def TauJetLepRMParticleThinningCfg(flags, name, **kwargs):
699 """Configure the DiTauTrackParticleThinning tool"""
700 acc = ComponentAccumulator()
702 CompFactory.DerivationFramework.TauJets_LepRMParticleThinning(
703 name, **kwargs), primary=True)
706# Tool for thinning TrackParticles that aren't associated with egamma objects
709def EgammaTrackParticleThinningCfg(flags, name, **kwargs):
710 """Configure the EgammaTrackParticleThinning tool"""
711 acc = ComponentAccumulator()
713 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
714 name, **kwargs), primary=True)
717# Track to vertex wrapper
720def TrackToVertexWrapperCfg(flags, name, **kwargs):
721 """Configure the TrackToVertexWrapper tool"""
722 acc = ComponentAccumulator()
724 if "TrackToVertexIPEstimator" not in kwargs:
725 from TrkConfig.TrkVertexFitterUtilsConfig import (
726 TrackToVertexIPEstimatorCfg)
727 kwargs.setdefault("TrackToVertexIPEstimator", acc.popToolsAndMerge(
728 TrackToVertexIPEstimatorCfg(flags)))
730 kwargs.setdefault("ContainerName", "InDetTrackParticles")
732 acc.addPublicTool(CompFactory.DerivationFramework.TrackToVertexWrapper(
733 name, **kwargs), primary=True)
737def IDTIDETruthThinningToolCfg(flags, name="IDTIDETruthThinningTool", **kwargs):
738 kwargs.setdefault("WritePartons", True)
739 kwargs.setdefault("WriteHadrons", True)
740 kwargs.setdefault("WriteBHadrons", True)
741 kwargs.setdefault("WriteGeant", True)
742 kwargs.setdefault("GeantPhotonPtThresh", 20000)
743 kwargs.setdefault("WriteTauHad", True)
744 kwargs.setdefault("PartonPtThresh", -1.0)
745 kwargs.setdefault("WriteBSM", True)
746 kwargs.setdefault("WriteBosons", True)
747 kwargs.setdefault("WriteBosonProducts", True)
748 kwargs.setdefault("WriteBSMProducts", True)
749 kwargs.setdefault("WriteTopAndDecays", True)
750 kwargs.setdefault("WriteEverything", True)
751 kwargs.setdefault("WriteAllLeptons", True)
752 kwargs.setdefault("WriteLeptonsNotFromHadrons", True)
753 kwargs.setdefault("WriteNotPhysical", True)
754 kwargs.setdefault("WriteFirstN", -1)
755 kwargs.setdefault("PreserveAncestors", True)
756 kwargs.setdefault("PreserveGeneratorDescendants", True)
758 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
759 MenuTruthThinningCfg)
760 return MenuTruthThinningCfg(flags, name, **kwargs)
762def IDTRKVALIDTruthThinningToolCfg(
763 flags, name="IDTRKVALIDTruthThinningTool", **kwargs):
765 kwargs.setdefault("WriteEverything", True)
766 kwargs.setdefault("WriteFirstN", -1)
767 kwargs.setdefault("PreserveAncestors", True)
768 kwargs.setdefault("PreserveGeneratorDescendants", True)
770 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
771 MenuTruthThinningCfg)
772 return MenuTruthThinningCfg(flags, name, **kwargs)
774def EventInfoBSErrDecoratorCfg(
775 flags, name="EventInfoBSErrDecorator", **kwargs):
776 acc = ComponentAccumulator()
777 acc.addPublicTool(CompFactory.DerivationFramework.EventInfoBSErrDecorator(
778 name, **kwargs), primary=True)
781def UnassociatedHitsGetterToolCfg(
782 flags, name="UnassociatedHitsGetterTool", **kwargs):
783 acc = ComponentAccumulator()
785 if "AssociationTool" not in kwargs:
786 from InDetConfig.InDetAssociationToolsConfig import (
787 InDetPRDtoTrackMapToolGangedPixelsCfg)
788 kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
789 InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
792 CompFactory.DerivationFramework.UnassociatedHitsGetterTool(name, **kwargs))
795def UnassociatedHitsDecoratorCfg(
796 flags, name="UnassociatedHitsDecorator", **kwargs):
797 acc = ComponentAccumulator()
799 if "UnassociatedHitsGetter" not in kwargs:
800 from DerivationFrameworkInDet.InDetToolsConfig import (
801 UnassociatedHitsGetterToolCfg)
802 kwargs.setdefault("UnassociatedHitsGetter", acc.popToolsAndMerge(
803 UnassociatedHitsGetterToolCfg(flags)))
805 acc.addPublicTool(CompFactory.DerivationFramework.UnassociatedHitsDecorator(
806 name, **kwargs), primary=True)