def GaussianSumFitter(name='GaussianSumFitter', **kwargs): split_cluster_map_extension = kwargs.pop('SplitClusterMapExtension', '') from InDetRecExample import TrackingCommon as TrackingCommon if 'ToolForROTCreation' not in kwargs: kwargs = setDefaults( kwargs, ToolForROTCreation=TrackingCommon.getInDetRotCreator( nameSuffix=split_cluster_map_extension, SplitClusterMapExtension=split_cluster_map_extension)) if 'ToolForExtrapolation' not in kwargs: kwargs = setDefaults( kwargs, ToolForExtrapolation=TrackingCommon.getInDetGsfExtrapolator()) if 'MeasurementUpdatorType' not in kwargs: kwargs = setDefaults(kwargs, MeasurementUpdatorType=TrackingCommon. getInDetGsfMeasurementUpdator()) from TrkGaussianSumFilter.TrkGaussianSumFilterConf import Trk__GaussianSumFitter return Trk__GaussianSumFitter(name=name, **setDefaults(kwargs, ReintegrateOutliers=False, MakePerigee=True, RefitOnMeasurementBase=True, DoHitSorting=True))
def InDetGlobalChi2FitterLowPt(name='InDetGlobalChi2FitterLowPt', **kwargs): # @TODO TrackingGeometrySvc was not set but is set now # RotCreatorTool and BroadRotCreatorTool not set split_cluster_map_extension = kwargs.pop('SplitClusterMapExtension', '') from InDetRecExample import TrackingCommon as TrackingCommon if 'RotCreatorTool' not in kwargs: kwargs = setDefaults( kwargs, RotCreatorTool=TrackingCommon.getInDetRotCreator( nameSuffix=split_cluster_map_extension, SplitClusterMapExtension=split_cluster_map_extension)) from InDetRecExample.InDetJobProperties import InDetFlags use_broad_cluster_any = InDetFlags.useBroadClusterErrors() and ( not InDetFlags.doDBMstandalone()) if 'BroadRotCreatorTool' not in kwargs and not InDetFlags.doRefit(): kwargs = setDefaults( kwargs, BroadRotCreatorTool=TrackingCommon.getInDetBroadRotCreator( nameSuffix=split_cluster_map_extension, SplitClusterMapExtension=split_cluster_map_extension)) return InDetGlobalChi2FitterBase( name, **setDefaults( kwargs, OutlierCut=5.0, Acceleration=False, # default RecalculateDerivatives=True, TrackChi2PerNDFCut=10))
def getGSFTrackFitter(): egRotCreator = TrackingCommon.getInDetRotCreator(name='egRotCreator', private=True) TrackingCommon.createAndAddCondAlg( TrackingCommon.getRIO_OnTrackErrorScalingCondAlg, 'RIO_OnTrackErrorScalingCondAlg') # get Rk propagator from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import ( Trk__RungeKuttaPropagator as Propagator) egTrkPropagator = Propagator(name='egTrkPropagator') egTrkPropagator.AccuracyParameter = 0.0001 # Setup the Navigator (default) from TrkDetDescrSvc.AtlasTrackingGeometrySvc import ( AtlasTrackingGeometrySvc) from TrkExTools.TrkExToolsConf import Trk__Navigator egTrkNavigator = Trk__Navigator( name='egTrkNavigator', TrackingGeometrySvc=AtlasTrackingGeometrySvc) # Set up the GSF from TrkGaussianSumFilter.TrkGaussianSumFilterConf import ( Trk__GsfMaterialMixtureConvolution) GsfMaterialUpdator = Trk__GsfMaterialMixtureConvolution( name='GsfMaterialUpdator', MaximumNumberOfComponents=12) from TrkGaussianSumFilter.TrkGaussianSumFilterConf import ( Trk__GsfExtrapolator) GsfExtrapolator = Trk__GsfExtrapolator( name='GsfExtrapolator', Propagators=[egTrkPropagator], SearchLevelClosestParameters=10, StickyConfiguration=True, Navigator=egTrkNavigator, GsfMaterialConvolution=GsfMaterialUpdator, SurfaceBasedMaterialEffects=False) from TrkGaussianSumFilter.TrkGaussianSumFilterConf import ( Trk__GaussianSumFitter) GSFTrackFitter = Trk__GaussianSumFitter( name='GSFTrackFitter', ToolForExtrapolation=GsfExtrapolator, ReintegrateOutliers=True, MakePerigee=True, RefitOnMeasurementBase=True, DoHitSorting=True, ToolForROTCreation=egRotCreator) # --- end of fitter loading return GSFTrackFitter
def InDetGlobalChi2Fitter(name='InDetGlobalChi2Fitter', **kwargs): split_cluster_map_extension = kwargs.pop('SplitClusterMapExtension', '') from InDetRecExample import TrackingCommon as TrackingCommon if 'RotCreatorTool' not in kwargs: kwargs = setDefaults( kwargs, RotCreatorTool=TrackingCommon.getInDetRotCreator( nameSuffix=split_cluster_map_extension, SplitClusterMapExtension=split_cluster_map_extension)) from InDetRecExample.InDetJobProperties import InDetFlags use_broad_cluster_any = InDetFlags.useBroadClusterErrors() and ( not InDetFlags.doDBMstandalone()) if 'BroadRotCreatorTool' not in kwargs and not InDetFlags.doRefit(): kwargs = setDefaults( kwargs, BroadRotCreatorTool=TrackingCommon.getInDetBroadRotCreator( nameSuffix=split_cluster_map_extension, SplitClusterMapExtension=split_cluster_map_extension)) if InDetFlags.doDBMstandalone(): kwargs = setDefaults(kwargs, StraightLine=True, OutlierCut=5, RecalibrateTRT=False, TRTExtensionCuts=False, TrackChi2PerNDFCut=20) if InDetFlags.doRefit() or use_broad_cluster_any is True: kwargs = setDefaults(kwargs, RecalibrateSilicon=False) if InDetFlags.doRefit(): kwargs = setDefaults(kwargs, BroadRotCreatorTool=None, ReintegrateOutliers=False, RecalibrateTRT=False) if InDetFlags.doRobustReco(): kwargs = setDefaults( kwargs, # BroadRotCreatorTool = None OutlierCut=10.0, TrackChi2PerNDFCut=20) if InDetFlags.doRobustReco() or InDetFlags.doCosmics(): kwargs = setDefaults(kwargs, MaxOutliers=99) if InDetFlags.doCosmics() or InDetFlags.doBeamHalo(): kwargs = setDefaults(kwargs, Acceleration=False) if InDetFlags.materialInteractions() and not InDetFlags.solenoidOn(): kwargs = setDefaults(kwargs, Momentum=1000. * Units.MeV) return InDetGlobalChi2FitterBase(name, **kwargs)
def DistributedKalmanFilter(name="DistributedKalmanFilter", **kwargs): split_cluster_map_extension = kwargs.pop('SplitClusterMapExtension', '') from InDetRecExample.TrackingCommon import setDefaults if 'ExtrapolatorTool' not in kwargs: kwargs = setDefaults( kwargs, ExtrapolatorTool=TrackingCommon.getInDetExtrapolator()) from InDetRecExample import TrackingCommon as TrackingCommon if 'ROTcreator' not in kwargs: kwargs = setDefaults( kwargs, ROTcreator=TrackingCommon.getInDetRotCreator( nameSuffix=split_cluster_map_extension, SplitClusterMapExtension=split_cluster_map_extension)) # @TODO set sortingReferencePoint = ??? from TrkDistributedKalmanFilter.TrkDistributedKalmanFilterConf import Trk__DistributedKalmanFilter return Trk__DistributedKalmanFilter(name=name, **kwargs)