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(InDetTrackParticles.IDTIDEInDetTrackZ0AtPV) < 5.0")
570 # If true, Complains about missing PixelMSOSs
571 kwargs.setdefault("ThinHitsOnTrack", False)
573 return TrackParticleThinningCfg(flags, name, **kwargs)
575def ITkTrackParticleThinningCfg(flags, name, **kwargs):
576 """Configure the TrackParticleThining tool"""
577 # To produce ITkStripDetectorElementCollection
578 from StripGeoModelXml.ITkStripGeoModelConfig import (
579 ITkStripReadoutGeometryCfg)
580 acc = ITkStripReadoutGeometryCfg(flags)
582 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
583 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
584 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
585 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
586 kwargs.setdefault("InDetTrackStatesTrtKey", "")
587 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
588 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
590 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinning(
591 name, **kwargs), primary=True)
594def ITkTrackParticleThinningPHYSCfg(flags, name, **kwargs):
595 """Configure the TrackParticleThiningPHYS tool"""
596 # To produce ITkStripDetectorElementCollection
597 from StripGeoModelXml.ITkStripGeoModelConfig import (
598 ITkStripReadoutGeometryCfg)
599 acc = ITkStripReadoutGeometryCfg(flags)
601 kwargs.setdefault("InDetTrackStatesPixKey", "ITkPixelMSOSs")
602 kwargs.setdefault("InDetTrackMeasurementsPixKey", "ITkPixelMeasurements")
603 kwargs.setdefault("InDetTrackStatesSctKey", "ITkStripMSOSs")
604 kwargs.setdefault("InDetTrackMeasurementsSctKey", "ITkStripMeasurements")
605 kwargs.setdefault("InDetTrackStatesTrtKey", "")
606 kwargs.setdefault("InDetTrackMeasurementsTrtKey", "")
607 kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
609 acc.addPublicTool(CompFactory.DerivationFramework.TrackParticleThinningPHYS(
610 name, **kwargs), primary=True)
613def ITkTIDEThinningToolCfg(flags, name="ITkTIDEThinningTool", **kwargs):
614 if not flags.Detector.EnableITkPixel:
615 kwargs.setdefault("InDetTrackStatesPixKey", "")
616 kwargs.setdefault("InDetTrackMeasurementsPixKey", "")
617 if not flags.Detector.EnableITkStrip:
618 kwargs.setdefault("InDetTrackStatesSctKey", "")
619 kwargs.setdefault("InDetTrackMeasurementsSctKey", "")
621 kwargs.setdefault("SelectionString", "abs(InDetTrackParticles.IDTIDEInDetTrackZ0AtPV) < 5.0")
622 # If true, Complains about missing PixelMSOSs
623 kwargs.setdefault("ThinHitsOnTrack", False)
625 return ITkTrackParticleThinningCfg(flags, name, **kwargs)
627# Tool for thinning TrackParticles that aren't associated with muons
630def MuonTrackParticleThinningCfg(flags, name, **kwargs):
631 """Configure the MuonTrackParticleThinning tool"""
632 acc = ComponentAccumulator()
634 CompFactory.DerivationFramework.MuonTrackParticleThinning(
635 name, **kwargs), primary=True)
638# Tool for thinning TrackParticles that aren't associated with taus
641def TauTrackParticleThinningCfg(flags, name, **kwargs):
642 """Configure the TauTrackParticleThinning tool"""
643 acc = ComponentAccumulator()
644 acc.addPublicTool(CompFactory.DerivationFramework.TauTrackParticleThinning(
645 name, **kwargs), primary=True)
648# Tool for thinning TrackParticles that aren't associated high-pt di-taus
651def DiTauTrackParticleThinningCfg(flags, name, **kwargs):
652 """Configure the DiTauTrackParticleThinning tool"""
653 acc = ComponentAccumulator()
655 CompFactory.DerivationFramework.DiTauTrackParticleThinning(
656 name, **kwargs), primary=True)
659# Tool for thinning TrackParticles that are associated with jets
662def JetTrackParticleThinningCfg(flags, name, **kwargs):
663 """Configure the JetTrackParticleThinning tool"""
664 acc = ComponentAccumulator()
665 acc.addPublicTool(CompFactory.DerivationFramework.JetTrackParticleThinning(
666 name, **kwargs), primary=True)
670def UFOTrackParticleThinningCfg(flags, name, **kwargs):
671 """Configure the UFOTrackParticleThinning tool"""
672 acc = ComponentAccumulator()
673 acc.addPublicTool(CompFactory.DerivationFramework.UFOTrackParticleThinning(
674 name, **kwargs), primary=True)
678def JetConstituentThinningCfg(flags, name, **kwargs):
679 """Configure the JetConstituentThinning tool"""
680 acc = ComponentAccumulator()
681 acc.addPublicTool(CompFactory.DerivationFramework.JetConstituentThinning(
682 name, **kwargs), primary=True)
686def JetGhostThinningCfg(flags, name, **kwargs):
687 """Configure the JetGhostThinning tool"""
688 acc = ComponentAccumulator()
689 acc.addPublicTool(CompFactory.DerivationFramework.JetGhostThinning(
690 name, **kwargs), primary=True)
694def TauJetLepRMParticleThinningCfg(flags, name, **kwargs):
695 """Configure the DiTauTrackParticleThinning tool"""
696 acc = ComponentAccumulator()
698 CompFactory.DerivationFramework.TauJets_LepRMParticleThinning(
699 name, **kwargs), primary=True)
702# Tool for thinning TrackParticles that aren't associated with egamma objects
705def EgammaTrackParticleThinningCfg(flags, name, **kwargs):
706 """Configure the EgammaTrackParticleThinning tool"""
707 acc = ComponentAccumulator()
709 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
710 name, **kwargs), primary=True)
713# Track to vertex wrapper
716def TrackToVertexWrapperCfg(flags, name, **kwargs):
717 """Configure the TrackToVertexWrapper tool"""
718 acc = ComponentAccumulator()
720 if "TrackToVertexIPEstimator" not in kwargs:
721 from TrkConfig.TrkVertexFitterUtilsConfig import (
722 TrackToVertexIPEstimatorCfg)
723 kwargs.setdefault("TrackToVertexIPEstimator", acc.popToolsAndMerge(
724 TrackToVertexIPEstimatorCfg(flags)))
726 kwargs.setdefault("ContainerName", "InDetTrackParticles")
728 acc.addPublicTool(CompFactory.DerivationFramework.TrackToVertexWrapper(
729 name, **kwargs), primary=True)
733def IDTIDETruthThinningToolCfg(flags, name="IDTIDETruthThinningTool", **kwargs):
734 kwargs.setdefault("WritePartons", True)
735 kwargs.setdefault("WriteHadrons", True)
736 kwargs.setdefault("WriteBHadrons", True)
737 kwargs.setdefault("WriteGeant", True)
738 kwargs.setdefault("GeantPhotonPtThresh", 20000)
739 kwargs.setdefault("WriteTauHad", True)
740 kwargs.setdefault("PartonPtThresh", -1.0)
741 kwargs.setdefault("WriteBSM", True)
742 kwargs.setdefault("WriteBosons", True)
743 kwargs.setdefault("WriteBosonProducts", True)
744 kwargs.setdefault("WriteBSMProducts", True)
745 kwargs.setdefault("WriteTopAndDecays", True)
746 kwargs.setdefault("WriteEverything", True)
747 kwargs.setdefault("WriteAllLeptons", True)
748 kwargs.setdefault("WriteLeptonsNotFromHadrons", True)
749 kwargs.setdefault("WriteNotPhysical", True)
750 kwargs.setdefault("WriteFirstN", -1)
751 kwargs.setdefault("PreserveAncestors", True)
752 kwargs.setdefault("PreserveGeneratorDescendants", True)
754 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
755 MenuTruthThinningCfg)
756 return MenuTruthThinningCfg(flags, name, **kwargs)
758def IDTRKVALIDTruthThinningToolCfg(
759 flags, name="IDTRKVALIDTruthThinningTool", **kwargs):
761 kwargs.setdefault("WriteEverything", True)
762 kwargs.setdefault("WriteFirstN", -1)
763 kwargs.setdefault("PreserveAncestors", True)
764 kwargs.setdefault("PreserveGeneratorDescendants", True)
766 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig import (
767 MenuTruthThinningCfg)
768 return MenuTruthThinningCfg(flags, name, **kwargs)
770def EventInfoBSErrDecoratorCfg(
771 flags, name="EventInfoBSErrDecorator", **kwargs):
772 acc = ComponentAccumulator()
773 acc.addPublicTool(CompFactory.DerivationFramework.EventInfoBSErrDecorator(
774 name, **kwargs), primary=True)
777def UnassociatedHitsGetterToolCfg(
778 flags, name="UnassociatedHitsGetterTool", **kwargs):
779 acc = ComponentAccumulator()
781 if "AssociationTool" not in kwargs:
782 from InDetConfig.InDetAssociationToolsConfig import (
783 InDetPRDtoTrackMapToolGangedPixelsCfg)
784 kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
785 InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
788 CompFactory.DerivationFramework.UnassociatedHitsGetterTool(name, **kwargs))
791def UnassociatedHitsDecoratorCfg(
792 flags, name="UnassociatedHitsDecorator", **kwargs):
793 acc = ComponentAccumulator()
795 if "UnassociatedHitsGetter" not in kwargs:
796 kwargs.setdefault("UnassociatedHitsGetter", acc.popToolsAndMerge(
797 UnassociatedHitsGetterToolCfg(flags)))
799 acc.addPublicTool(CompFactory.DerivationFramework.UnassociatedHitsDecorator(
800 name, **kwargs), primary=True)