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)
464def TrackParametersAtPVCfg(flags, name, **kwargs):
465 """Configure the TrackParametersAtPV tool"""
466 acc = ComponentAccumulator()
467 acc.addPublicTool(CompFactory.DerivationFramework.TrackParametersAtPV(
468 name, **kwargs), primary=True)
471# Pseudotrack selector
512def IsolationTrackDecoratorCfg(flags, name, **kwargs):
513 """Confiure the isolation track decorator tool"""
514 acc = ComponentAccumulator()
515 IsolationTrackDecorator = CompFactory.DerivationFramework.IsolationTrackDecorator
516 acc.addPublicTool(IsolationTrackDecorator(name, **kwargs),
520# Tool for thinning TrackParticle containers via string selection
523def TrackParticleThinningCfg(flags, name, **kwargs):
524 """Configure the TrackParticleThining tool"""
525 if flags.Detector.GeometryITk:
526 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
528 # To produce SCT_DetectorElementCollection
529 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
530 acc = SCT_ReadoutGeometryCfg(flags)
532 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
533 name, **kwargs), primary=True)
536# Tool for thinning TrackParticle containers via string selection
539def TrackParticleThinningPHYSCfg(flags, name, **kwargs):
540 """Configure the TrackParticleThining tool"""
541 if flags.Detector.GeometryITk:
542 return ITkTrackParticleThinningPHYSCfg(flags, name, **kwargs)
544 # To produce SCT_DetectorElementCollection
545 from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
546 acc = SCT_ReadoutGeometryCfg(flags)
547 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinningPHYS(
548 name, **kwargs), primary=True)
551# Tool for thinning PixelClusters via string selection
554def PixelClusterThinningCfg(
555 flags, name="PixelClusterThinningTool", **kwargs):
556 pix_lumi_sel = "PixelClusters.bec == 0 && PixelClusters.layer >= 0 && PixelClusters.sizeZ > 1 && ( PixelClusters.nRDO < PixelClusters.sizeZ + 5 ) && PixelClusters.charge > 30000"
557 kwargs.setdefault("SelectionString", pix_lumi_sel)
558 acc = ComponentAccumulator()
560 CompFactory.DerivationFramework.TrackMeasurementThinning(
561 name, **kwargs), primary=True)
565def IDTIDEThinningToolCfg(flags, name="IDTIDEThinningTool", **kwargs):
566 if not flags.Detector.EnablePixel:
567 kwargs.setdefault("InDetTrackStatesPixKey", "")
568 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
569 if not flags.Detector.EnableSCT:
570 kwargs.setdefault("InDetTrackStatesSctKey", "")
571 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
572 if not flags.Detector.EnableTRT:
573 kwargs.setdefault("InDetTrackStatesTrtKey", "")
574 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
576 kwargs.setdefault("SelectionString", "abs(InDetTrackParticles.IDTIDEInDetTrackZ0AtPV) < 5.0")
577 # If true, Complains about missing PixelMSOSs
578 kwargs.setdefault("ThinHitsOnTrack", False)
580 return TrackParticleThinningCfg(flags, name, **kwargs)
582def ITkTrackParticleThinningCfg(flags, name, **kwargs):
583 """Configure the TrackParticleThining tool"""
584 # To produce ITkStripDetectorElementCollection
585 from StripGeoModelXml.ITkStripGeoModelConfig import (
586 ITkStripReadoutGeometryCfg)
587 acc = ITkStripReadoutGeometryCfg(flags)
589 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
590 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
591 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
592 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
593 kwargs.setdefault("InDetTrackStatesTrtKey", "")
594 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
595 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
597 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
598 name, **kwargs), primary=True)
601def ITkTrackParticleThinningPHYSCfg(flags, name, **kwargs):
602 """Configure the TrackParticleThiningPHYS tool"""
603 # To produce ITkStripDetectorElementCollection
604 from StripGeoModelXml.ITkStripGeoModelConfig import (
605 ITkStripReadoutGeometryCfg)
606 acc = ITkStripReadoutGeometryCfg(flags)
608 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
609 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
610 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
611 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
612 kwargs.setdefault("InDetTrackStatesTrtKey", "")
613 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
614 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
616 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinningPHYS(
617 name, **kwargs), primary=True)
620def ITkTIDEThinningToolCfg(flags, name="ITkTIDEThinningTool", **kwargs):
621 if not flags.Detector.EnableITkPixel:
622 kwargs.setdefault("InDetTrackStatesPixKey", "")
623 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
624 if not flags.Detector.EnableITkStrip:
625 kwargs.setdefault("InDetTrackStatesSctKey", "")
626 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
628 kwargs.setdefault("SelectionString", "abs(InDetTrackParticles.IDTIDEInDetTrackZ0AtPV) < 5.0")
629 # If true, Complains about missing PixelMSOSs
630 kwargs.setdefault("ThinHitsOnTrack", False)
632 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
634# Tool for thinning TrackParticles that aren't associated with muons
637def MuonTrackParticleThinningCfg(flags, name, **kwargs):
638 """Configure the MuonTrackParticleThinning tool"""
639 acc = ComponentAccumulator()
641 CompFactory.DerivationFramework.MuonTrackParticleThinning(
642 name, **kwargs), primary=True)
645# Tool for thinning TrackParticles that aren't associated with taus
648def TauTrackParticleThinningCfg(flags, name, **kwargs):
649 """Configure the TauTrackParticleThinning tool"""
650 acc = ComponentAccumulator()
651 acc.addPublicTool(CompFactory.DerivationFramework.TauTrackParticleThinning(
652 name, **kwargs), primary=True)
655# Tool for thinning TrackParticles that aren't associated high-pt di-taus
658def DiTauTrackParticleThinningCfg(flags, name, **kwargs):
659 """Configure the DiTauTrackParticleThinning tool"""
660 acc = ComponentAccumulator()
662 CompFactory.DerivationFramework.DiTauTrackParticleThinning(
663 name, **kwargs), primary=True)
666# Tool for thinning TrackParticles that are associated with jets
669def JetTrackParticleThinningCfg(flags, name, **kwargs):
670 """Configure the JetTrackParticleThinning tool"""
671 acc = ComponentAccumulator()
672 acc.addPublicTool(CompFactory.DerivationFramework.JetTrackParticleThinning(
673 name, **kwargs), primary=True)
677def UFOTrackParticleThinningCfg(flags, name, **kwargs):
678 """Configure the UFOTrackParticleThinning tool"""
679 acc = ComponentAccumulator()
680 acc.addPublicTool(CompFactory.DerivationFramework.UFOTrackParticleThinning(
681 name, **kwargs), primary=True)
685def JetConstituentThinningCfg(flags, name, **kwargs):
686 """Configure the JetConstituentThinning tool"""
687 acc = ComponentAccumulator()
688 acc.addPublicTool(CompFactory.DerivationFramework.JetConstituentThinning(
689 name, **kwargs), primary=True)
693def JetGhostThinningCfg(flags, name, **kwargs):
694 """Configure the JetGhostThinning tool"""
695 acc = ComponentAccumulator()
696 acc.addPublicTool(CompFactory.DerivationFramework.JetGhostThinning(
697 name, **kwargs), primary=True)
701def TauJetLepRMParticleThinningCfg(flags, name, **kwargs):
702 """Configure the DiTauTrackParticleThinning tool"""
703 acc = ComponentAccumulator()
705 CompFactory.DerivationFramework.TauJets_LepRMParticleThinning(
706 name, **kwargs), primary=True)
709# Tool for thinning TrackParticles that aren't associated with egamma objects
712def EgammaTrackParticleThinningCfg(flags, name, **kwargs):
713 """Configure the EgammaTrackParticleThinning tool"""
714 acc = ComponentAccumulator()
716 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
717 name, **kwargs), primary=True)
720# Track to vertex wrapper
723def TrackToVertexWrapperCfg(flags, name, **kwargs):
724 """Configure the TrackToVertexWrapper tool"""
725 acc = ComponentAccumulator()
727 if "TrackToVertexIPEstimator" not in kwargs:
728 from TrkConfig.TrkVertexFitterUtilsConfig import (
729 TrackToVertexIPEstimatorCfg)
730 kwargs.setdefault("TrackToVertexIPEstimator", acc.popToolsAndMerge(
731 TrackToVertexIPEstimatorCfg(flags)))
733 kwargs.setdefault("ContainerName", "InDetTrackParticles")
735 acc.addPublicTool(CompFactory.DerivationFramework.TrackToVertexWrapper(
736 name, **kwargs), primary=True)
740def IDTIDETruthThinningToolCfg(flags, name="IDTIDETruthThinningTool", **kwargs):
741 kwargs.setdefault("WritePartons", True)
742 kwargs.setdefault("WriteHadrons", True)
743 kwargs.setdefault("WriteBHadrons", True)
744 kwargs.setdefault("WriteGeant", True)
745 kwargs.setdefault("GeantPhotonPtThresh", 20000)
746 kwargs.setdefault("WriteTauHad", True)
747 kwargs.setdefault("PartonPtThresh", -1.0)
748 kwargs.setdefault("WriteBSM", True)
749 kwargs.setdefault("WriteBosons", True)
750 kwargs.setdefault("WriteBosonProducts", True)
751 kwargs.setdefault("WriteBSMProducts", True)
752 kwargs.setdefault("WriteTopAndDecays", True)
753 kwargs.setdefault("WriteEverything", True)
754 kwargs.setdefault("WriteAllLeptons", True)
755 kwargs.setdefault("WriteLeptonsNotFromHadrons", True)
756 kwargs.setdefault("WriteNotPhysical", True)
757 kwargs.setdefault("WriteFirstN", -1)
758 kwargs.setdefault("PreserveAncestors", True)
759 kwargs.setdefault("PreserveGeneratorDescendants", True)
761 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
762 MenuTruthThinningCfg)
763 return MenuTruthThinningCfg(flags, name, **kwargs)
765def IDTRKVALIDTruthThinningToolCfg(
766 flags, name="IDTRKVALIDTruthThinningTool", **kwargs):
768 kwargs.setdefault("WriteEverything", True)
769 kwargs.setdefault("WriteFirstN", -1)
770 kwargs.setdefault("PreserveAncestors", True)
771 kwargs.setdefault("PreserveGeneratorDescendants", True)
773 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
774 MenuTruthThinningCfg)
775 return MenuTruthThinningCfg(flags, name, **kwargs)
777def EventInfoBSErrDecoratorCfg(
778 flags, name="EventInfoBSErrDecorator", **kwargs):
779 acc = ComponentAccumulator()
780 acc.addPublicTool(CompFactory.DerivationFramework.EventInfoBSErrDecorator(
781 name, **kwargs), primary=True)
784def UnassociatedHitsGetterToolCfg(
785 flags, name="UnassociatedHitsGetterTool", **kwargs):
786 acc = ComponentAccumulator()
788 if "AssociationTool" not in kwargs:
789 from InDetConfig.InDetAssociationToolsConfig import (
790 InDetPRDtoTrackMapToolGangedPixelsCfg)
791 kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
792 InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
795 CompFactory.DerivationFramework.UnassociatedHitsGetterTool(name, **kwargs))
798def UnassociatedHitsDecoratorCfg(
799 flags, name="UnassociatedHitsDecorator", **kwargs):
800 acc = ComponentAccumulator()
802 if "UnassociatedHitsGetter" not in kwargs:
803 kwargs.setdefault("UnassociatedHitsGetter", acc.popToolsAndMerge(
804 UnassociatedHitsGetterToolCfg(flags)))
806 acc.addPublicTool(CompFactory.DerivationFramework.UnassociatedHitsDecorator(
807 name, **kwargs), primary=True)