예제 #1
0
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
예제 #2
0
    def __init__(self, name='LocalExtrapolator'):

        # get the correct TrackingGeometry setup
        include('TrkDetDescrSvc/LocalTrackingGeometrySvc.py')
        from __main__ import LocalTrackingGeometrySvc
        from __main__ import ToolSvc

        # the Navigator has to get this one
        from TrkExTools.TrkExToolsConf import Trk__Navigator
        LocalNavigator = Trk__Navigator(name='LocalNavigator')
        LocalNavigator.TrackingGeometryName = LocalTrackingGeometrySvc.TrackingGeometryName
        ToolSvc += LocalNavigator

        # the standard RungeKuttaPropagator
        from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
        LocalPropagator = Propagator(name='LocalPropagator')
        ToolSvc += LocalPropagator
        # call the base class constructor
        Trk__Extrapolator.__init__(self,
                                   name,
                                   Navigator=LocalNavigator,
                                   Propagators=[LocalPropagator])
예제 #3
0
#
#
# Extrapolator to be used for tracking inside egamma i.e GSF , conversions
# Set up AtlasExtrapolator
if not hasattr(ToolSvc, 'AtlasExtrapolator'):
    from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
    ToolSvc += AtlasExtrapolator()

from AthenaCommon.AppMgr import ServiceMgr as svcMgr

AtlasTrackingGeometrySvc = svcMgr.AtlasTrackingGeometrySvc
# get propagator
from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
#
egTrkPropagator = Propagator(name='egTrkPropagator')
egTrkPropagator.AccuracyParameter = 0.0001
ToolSvc += egTrkPropagator
#
from TrkExSTEP_Propagator.TrkExSTEP_PropagatorConf import Trk__STEP_Propagator as StepPropagator

egTrkStepPropagator = StepPropagator(name='egTrkStepPropagator')
ToolSvc += egTrkStepPropagator
# Setup the Navigator (default)
from TrkExTools.TrkExToolsConf import Trk__Navigator

egTrkNavigator = Trk__Navigator(name='egTrkNavigator')
ToolSvc += egTrkNavigator
# Setup the MaterialEffectsUpdator
from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator
예제 #4
0
# declare the extrapolator
#
from TrkMagFieldTools.TrkMagFieldToolsConf import Trk__MagneticFieldTool
ElectronTrkMagField = Trk__MagneticFieldTool('ElectronTrkMagField')
ToolSvc += ElectronTrkMagField
#
# set up geometry
#
include('TrkDetDescrSvc/AtlasTrackingGeometrySvc.py')
from __main__ import AtlasTrackingGeometrySvc
#
# get propagator
#
from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
#
ElectronTrkPropagator = Propagator(name='ElectronTrkPropagator')
ElectronTrkPropagator.AccuracyParameter = 0.0001
ToolSvc += ElectronTrkPropagator

from TrkExSTEP_Propagator.TrkExSTEP_PropagatorConf import Trk__STEP_Propagator as StepPropagator
ElectronTrkStepPropagator = StepPropagator(name='ElectronTrkStepPropagator')
ToolSvc += ElectronTrkStepPropagator
#
# Setup the Navigator (default, could be removed)
#
from TrkExTools.TrkExToolsConf import Trk__Navigator
ElectronTrkNavigator = Trk__Navigator(
    name='ElectronTrkNavigator',
    #TrackingGeometrySvc = AtlasTrackingGeometrySvc
)
ToolSvc += ElectronTrkNavigator
예제 #5
0
) + '.C'
ToolSvc += TrackingVolumeDisplayer

# PROPAGATOR DEFAULTS --------------------------------------------------------------------------------------

TestEnergyLossUpdator = []
from TrkExTools.TrkExToolsConf import Trk__EnergyLossUpdator
AtlasEnergyLossUpdator = Trk__EnergyLossUpdator(name="AtlasEnergyLossUpdator")
ToolSvc += AtlasEnergyLossUpdator
ToolSvc.AtlasEnergyLossUpdator.DetailedEloss = True
TestEnergyLossUpdator += [AtlasEnergyLossUpdator]

TestPropagators = []

from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
TestPropagator = Propagator(name='TestPropagator')
ToolSvc += TestPropagator

TestPropagators += [TestPropagator]

from TrkExSTEP_Propagator.TrkExSTEP_PropagatorConf import Trk__STEP_Propagator as STEP_Propagator
TestSTEP_Propagator = STEP_Propagator(name='TestSTEP_Propagator')
ToolSvc += TestSTEP_Propagator
TestSTEP_Propagator.DetailedEloss = True

TestPropagators += [TestSTEP_Propagator]

# UPDATOR DEFAULTS -----------------------------------------------------------------------------------------

TestUpdators = []
예제 #6
0
    from TrkExEngine.AtlasExtrapolationEngine import AtlasExtrapolationEngine
    ExtrapolationEngine = AtlasExtrapolationEngine(name='Extrapolation',
                                                   nameprefix='Atlas')
    ToolSvc += ExtrapolationEngine
    print ExtrapolationEngine

#Fitter:
if vp1Fitter and vp1Extrapolator and (vp1ID or vp1Muon):
    VP1TrkInitializer.ForceFitterTools = True
    os.putenv("VP1_DEVEL_ENABLEREFIT", "1")
    ##########################################################
    # The Extrapolator
    include('TrkDetDescrSvc/AtlasTrackingGeometrySvc.py')

    from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
    VP1Propagator = Propagator(name='VP1Propagator')
    ToolSvc += VP1Propagator

    # the Navigator has to get this one
    from TrkExTools.TrkExToolsConf import Trk__Navigator
    VP1Navigator = Trk__Navigator(name='VP1Navigator')
    VP1Navigator.TrackingGeometrySvc = svcMgr.AtlasTrackingGeometrySvc
    ToolSvc += VP1Navigator

    from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator as MatUpdator
    VP1MaterialUpdator = MatUpdator(name='VP1MaterialEffectsUpdator')
    ToolSvc += VP1MaterialUpdator

    from TrkMeasurementUpdator_xk.TrkMeasurementUpdator_xkConf import Trk__KalmanUpdator_xk
    VP1Updator = Trk__KalmanUpdator_xk(name='VP1Updator')
    ToolSvc += VP1Updator
예제 #7
0
theApp.Dlls += ["InDetAlignGenAlgs", "InDetAlignGenTools"]
from InDetAlignGenAlgs.InDetAlignGenAlgsConf import InDetAlignNt
AlignNt = InDetAlignNt(Truth=False,
                       Overlap=False,
                       NumDeriv=0,
                       AlignNt=True,
                       BeamPos=False,
                       ReadAl=True,
                       OutputLevel=3)
topSequence += AlignNt

# setup extrapolator/propagator instance specially for InDetAlignNt
# InDetAlignNt expects to find one with name InDetAlignNtExtrap
from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
InDetAlignNtPropag = Propagator(name='InDetAlignNtPropag')
ToolSvc += InDetAlignNtPropag
from TrkExTools.TrkExToolsConf import Trk__Extrapolator
InDetAlignNtExtrap = Trk__Extrapolator(name='InDetAlignNtExtrap',
                                       Propagators=[InDetAlignNtPropag])
ToolSvc += InDetAlignNtExtrap
print "Extrapolator for InDetAlignNt is", InDetAlignNtExtrap
AlignNt.NewTrkCol = "InDetCosmic_Tracks"

# include this to write alignment constants (use with care and edit WriteDBS.py
# beforehand to set your server/IOV/tag options
# include("InDetAlignGenAlgs/WriteDBS.py")

# produce ROOT ntuple using THistSvc
THistSvc = Service("THistSvc")
THistSvc.Output += ["IDALIGNFILE DATAFILE='idalign.root' OPT='RECREATE'"]
예제 #8
0
# Set up InDet__SiZvertexMaker_xk (private)
# Taken from ConfiguredNewTrackingSiPattern.py
from SiZvertexTool_xk.SiZvertexTool_xkConf import InDet__SiZvertexMaker_xk

InDetZvertexMaker = InDet__SiZvertexMaker_xk(
    name="InDetZvertexMaker" + NewTrackingCuts.extension(),
    Zmax=NewTrackingCuts.maxZImpact(),
    Zmin=-NewTrackingCuts.maxZImpact(),
    minRatio=0.17,
    SeedMakerTool=InDetSiSpacePointsSeedMaker)

# Set up Trk__RungeKuttaPropagator (public)
# Taken from InDetRecExample/share/InDetRecLoadTools.py
from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator

InDetPatternPropagator = Propagator(name="InDetPatternPropagator")
ToolSvc += InDetPatternPropagator

# Set up InDet__SiDetElementsRoadMaker_xk (private)
# Taken from InDetRecExample/share/ConfiguredNewTrackingSiPattern.py
if not hasattr(condSeq, "InDet__SiDetElementsRoadCondAlg_xk"):
    from SiDetElementsRoadTool_xk.SiDetElementsRoadTool_xkConf import InDet__SiDetElementsRoadCondAlg_xk
    condSeq += InDet__SiDetElementsRoadCondAlg_xk(
        name="InDet__SiDetElementsRoadCondAlg_xk",
        usePixel=doPixel,
        useSCT=doSCT)
from SiDetElementsRoadTool_xk.SiDetElementsRoadTool_xkConf import InDet__SiDetElementsRoadMaker_xk

InDetSiDetElementsRoadMaker = InDet__SiDetElementsRoadMaker_xk(
    name="InDetSiRoadMaker" + NewTrackingCuts.extension(),
    PropagatorTool=InDetPatternPropagator,
예제 #9
0
        PixelBroadROT_Maker=BroadPixelClusterOnTrackTool,
        PixelPreciseROT_Maker=PixelClusterOnTrackTool,
        SCT_BroadROT_Maker=BroadSCT_ClusterOnTrackTool,
        SCT_PreciseROT_Maker=SCT_ClusterOnTrackTool)
    ToolSvc += SiClusterProperties

    # svc used by fitter to distinguish indet/muon clients
    from TrkDetDescrSvc.TrkDetDescrSvcConf import Trk__TrackingVolumesSvc
    ServiceMgr += Trk__TrackingVolumesSvc(BuildVolumesFromTagInfo=False)

    # set up the extrapolator and fitter as used by iPatRec
    #from TrkExRungeKuttaIntersector.TrkExRungeKuttaIntersectorConf import \
    #     Trk__IntersectorWrapper as Propagator
    from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import \
         Trk__RungeKuttaPropagator as Propagator
    iPatPropagator = Propagator(name='iPatPropagator',
                                AccuracyParameter=0.0001)
    ToolSvc += iPatPropagator

    from TrkExTools.TrkExToolsConf import Trk__Navigator
    iPatNavigator = Trk__Navigator(
        name='iPatNavigator', TrackingGeometrySvc=AtlasTrackingGeometrySvc)
    ToolSvc += iPatNavigator

    from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator
    iPatMaterialUpdator = Trk__MaterialEffectsUpdator(
        name="iPatMaterialEffectsUpdator")
    ToolSvc += iPatMaterialUpdator

    from TrkExTools.TrkExToolsConf import Trk__Extrapolator
    iPatExtrapolator = Trk__Extrapolator(
        name='iPatExtrapolator',
예제 #10
0
print LocalNavigator
#
# Setup the MaterialEffectsUpdator
#
from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator

LocalMaterialUpdator = Trk__MaterialEffectsUpdator(
    name="LocalMaterialEffectsUpdator")
ToolSvc += LocalMaterialUpdator
print LocalMaterialUpdator
#
# set the propagator
#
from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator

LocalPropagator = Propagator(name='LocalPropagator')
ToolSvc += LocalPropagator
print LocalPropagator
#
# create extrapolator
#
from TrkExTools.TrkExToolsConf import Trk__Extrapolator

LocalExtrapolator = Trk__Extrapolator(
    name='LocalExtrapolator',
    Propagators=[LocalPropagator],
    Navigator=LocalNavigator,
    MaterialEffectsUpdator=LocalMaterialUpdator)
ToolSvc += LocalExtrapolator
print LocalExtrapolator
print 'Finished setting up default LocalExtrapolator'
예제 #11
0
ScaleHitUncertainty = 2.5
InDetRefitRotCreator = InDetRotCreator

from TrkMeasurementUpdator.TrkMeasurementUpdatorConf import Trk__KalmanUpdator
InDetUpdator = Trk__KalmanUpdator(name='InDetUpdator')
InDetUpdator.OutputLevel = OutputLevel
ToolSvc += InDetUpdator
print InDetUpdator

#
# get propagator
#

from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator

InDetPropagator = Propagator(name='InDetPropagator')

ToolSvc += InDetPropagator
print InDetPropagator

#
# Setup the Navigator (default, could be removed)
#

from TrkExTools.TrkExToolsConf import Trk__Navigator
InDetNavigator = Trk__Navigator(name='InDetNavigator',
                                TrackingGeometrySvc=AtlasTrackingGeometrySvc)
ToolSvc += InDetNavigator
print InDetNavigator

#
예제 #12
0
    def __init__(self, name="FTF", type="eGamma"):
        TrigFastTrackFinderMT.__init__(self, name)
        remapped_type = "electron"
        from TrigOnlineSpacePointTool.TrigOnlineSpacePointToolConf import TrigL2LayerNumberTool

        self.retrieveBarCodes = False  #Look at truth information for spacepoints from barcodes
        #self.SignalBarCodes = [10001] #single particles
        self.SignalBarCodes = [11, 12]  #z->mumu

        self.useNewLayerNumberScheme = True

        self.OutputCollectionSuffix = type
        from AthenaCommon.AppMgr import ToolSvc

        numberingTool = TrigL2LayerNumberTool(name="TrigL2LayerNumberTool_FTF")
        numberingTool.UseNewLayerScheme = self.useNewLayerNumberScheme
        ToolSvc += numberingTool
        self.LayerNumberTool = numberingTool

        from InDetTrigRecExample.InDetTrigSliceSettings import InDetTrigSliceSettings
        if type == "FTK" or type == "FTKRefit":
            from TrigFTK_RecExample.TrigFTKLoadTools import theFTK_DataProviderSvc
            self.FTK_DataProviderSvc = theFTK_DataProviderSvc
            self.FTK_Mode = True
        if type == "FTKRefit":
            self.FTK_Refit = True
        else:
            #Spacepoint conversion
            from TrigOnlineSpacePointTool.TrigOnlineSpacePointToolConf import TrigSpacePointConversionTool
            spTool = TrigSpacePointConversionTool().clone(
                'TrigSpacePointConversionTool_' + remapped_type)
            spTool.DoPhiFiltering = InDetTrigSliceSettings[('doSpPhiFiltering',
                                                            remapped_type)]
            spTool.UseNewLayerScheme = self.useNewLayerNumberScheme
            spTool.UseBeamTilt = False
            spTool.PixelSP_ContainerName = 'PixelSpacePoints'
            spTool.SCT_SP_ContainerName = 'SCT_SpacePoints'
            spTool.layerNumberTool = numberingTool
            ToolSvc += spTool
            self.SpacePointProviderTool = spTool
            self.MinSPs = 5  #Only process RoI with more than 5 spacepoints

            self.Triplet_MinPtFrac = 1
            self.Triplet_nMaxPhiSlice = 53
            if remapped_type == "cosmics":
                self.Triplet_nMaxPhiSlice = 2  #Divide detector in 2 halves for cosmics

            self.Triplet_MaxBufferLength = 3
            self.doSeedRedundancyCheck = InDetTrigSliceSettings[(
                'checkRedundantSeeds', remapped_type)]
            self.Triplet_D0Max = InDetTrigSliceSettings[('d0SeedMax',
                                                         remapped_type)]
            self.Triplet_D0_PPS_Max = InDetTrigSliceSettings[('d0SeedPPSMax',
                                                              remapped_type)]
            self.TrackInitialD0Max = 20.
            if remapped_type == 'cosmics':
                self.TrackInitialD0Max = 1000.
                self.TrackZ0Max = 1000.
            self.TripletDoPSS = False
            self.pTmin = InDetTrigSliceSettings[('pTmin', remapped_type)]
            self.DoubletDR_Max = InDetTrigSliceSettings[('dRdoubletMax',
                                                         remapped_type)]
            self.SeedRadBinWidth = InDetTrigSliceSettings[('seedRadBinWidth',
                                                           remapped_type)]

            if remapped_type == "cosmics":
                self.Doublet_FilterRZ = False

            ## SCT and Pixel detector elements road builder
            from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigSiDetElementsRoadMaker
            InDetTrigSiDetElementsRoadMaker_FTF = InDetTrigSiDetElementsRoadMaker.clone(
                'InDetTrigSiDetElementsRoadMaker_FTF')
            InDetTrigSiDetElementsRoadMaker_FTF.RoadWidth = 10.0
            InDetTrigSiDetElementsRoadMaker_FTF.usePixel = True
            InDetTrigSiDetElementsRoadMaker_FTF.useSCT = True
            if remapped_type == "cosmics":
                from InDetTrigRecExample.InDetTrigConfigRecLoadToolsCosmics import InDetTrigSiDetElementsRoadMakerCosmics
                InDetTrigSiDetElementsRoadMaker_FTF = InDetTrigSiDetElementsRoadMakerCosmics.clone(
                    'InDetTrigSiDetElementsRoadMaker_FTF')
            ToolSvc += InDetTrigSiDetElementsRoadMaker_FTF

            from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigSiComTrackFinder
            InDetTrigSiComTrackFinder_FTF = InDetTrigSiComTrackFinder.clone(
                "InDetTrigSiComTrackFinder_FTF")
            ToolSvc += InDetTrigSiComTrackFinder_FTF
            print InDetTrigSiComTrackFinder_FTF

            from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCuts
            TrackingCuts = EFIDTrackingCuts
            if remapped_type == "cosmics":
                from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCutsCosmics
                TrackingCuts = EFIDTrackingCutsCosmics

            from InDetRecExample.InDetKeys import InDetKeys
            from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
            InDetPatternPropagator = Propagator(name='InDetPatternPropagator')
            ToolSvc += InDetPatternPropagator
            from TrkMeasurementUpdator_xk.TrkMeasurementUpdator_xkConf import Trk__KalmanUpdator_xk
            InDetPatternUpdator = Trk__KalmanUpdator_xk(
                name='InDetPatternUpdator')
            ToolSvc += InDetPatternUpdator

            from SiClusterOnTrackTool.SiClusterOnTrackToolConf import InDet__PixelClusterOnTrackTool
            PixelClusterOnTrackToolDigital = InDet__PixelClusterOnTrackTool(
                "InDetPixelClusterOnTrackToolDigital",
                DisableDistortions=False,
                applyNNcorrection=False,
                NNIBLcorrection=False,
                SplitClusterAmbiguityMap=InDetKeys.SplitClusterAmbiguityMap(),
                RunningTIDE_Ambi=False,
                ErrorStrategy=2,
                PositionStrategy=1)

            ToolSvc += PixelClusterOnTrackToolDigital
            from SiClusterOnTrackTool.SiClusterOnTrackToolConf import InDet__SCT_ClusterOnTrackTool
            SCT_ClusterOnTrackTool = InDet__SCT_ClusterOnTrackTool(
                "InDetSCT_ClusterOnTrackTool",
                #CorrectionStrategy = -1,  # no position correction (test for bug #56477)
                CorrectionStrategy=0,  # do correct position bias
                ErrorStrategy=2)  # do use phi dependent errors
            ToolSvc += SCT_ClusterOnTrackTool
            from TrkRIO_OnTrackCreator.TrkRIO_OnTrackCreatorConf import Trk__RIO_OnTrackCreator
            InDetRotCreatorDigital = Trk__RIO_OnTrackCreator(
                name='InDetRotCreatorDigital',
                ToolPixelCluster=PixelClusterOnTrackToolDigital,
                ToolSCT_Cluster=SCT_ClusterOnTrackTool,
                Mode='indet')
            ToolSvc += InDetRotCreatorDigital
            from InDetAssociationTools.InDetAssociationToolsConf import InDet__InDetPRD_AssociationToolGangedPixels
            InDetPrdAssociationTool = InDet__InDetPRD_AssociationToolGangedPixels(
                name="InDetPrdAssociationTool",
                PixelClusterAmbiguitiesMapName=InDetKeys.GangedPixelMap(),
                addTRToutliers=True)
            ToolSvc += InDetPrdAssociationTool

            from AthenaCommon.DetFlags import DetFlags
            from SiCombinatorialTrackFinderTool_xk.SiCombinatorialTrackFinderTool_xkConf import InDet__SiCombinatorialTrackFinder_xk
            InDetSiComTrackFinder = InDet__SiCombinatorialTrackFinder_xk(
                name='InDetSiComTrackFinder',
                PropagatorTool=InDetPatternPropagator,
                UpdatorTool=InDetPatternUpdator,
                RIOonTrackTool=InDetRotCreatorDigital,
                AssosiationTool=InDetPrdAssociationTool,
                usePixel=True,  #DetFlags.haveRIO.pixel_on(),
                useSCT=True,  #DetFlags.haveRIO.SCT_on(),
                PixManagerLocation=InDetKeys.PixelManager(),
                SCTManagerLocation=InDetKeys.SCT_Manager(),
                PixelClusterContainer=InDetKeys.PixelClusters(),
                SCT_ClusterContainer=InDetKeys.SCT_Clusters())
            ToolSvc += InDetSiComTrackFinder
            from SiDetElementsRoadTool_xk.SiDetElementsRoadTool_xkConf import InDet__SiDetElementsRoadMaker_xk
            InDetSiDetElementsRoadMaker = InDet__SiDetElementsRoadMaker_xk(
                name='InDetSiRoadMaker_' + remapped_type,
                PropagatorTool=InDetPatternPropagator,
                usePixel=True,  #DetFlags.haveRIO.pixel_on(),
                PixManagerLocation=InDetKeys.PixelManager(),
                useSCT=True,  #DetFlags.haveRIO.SCT_on(), 
                SCTManagerLocation=InDetKeys.SCT_Manager(),
                RoadWidth=10.0)
            print InDetSiDetElementsRoadMaker
            ToolSvc += InDetSiDetElementsRoadMaker

            from SiTrackMakerTool_xk.SiTrackMakerTool_xkConf import InDet__SiTrackMaker_xk as SiTrackMaker
            TrackMaker_FTF = SiTrackMaker(
                name='InDetTrigSiTrackMaker_FTF_' + remapped_type,
                RoadTool=InDetSiDetElementsRoadMaker,
                CombinatorialTrackFinder=InDetSiComTrackFinder,
                pTmin=InDetTrigSliceSettings[('pTmin', remapped_type)],
                nClustersMin=TrackingCuts.minClusters(),
                nHolesMax=TrackingCuts.nHolesMax(),
                nHolesGapMax=TrackingCuts.nHolesGapMax(),
                SeedsFilterLevel=0,  # Do not use built-in seeds filter
                Xi2max=TrackingCuts.Xi2max(),
                Xi2maxNoAdd=TrackingCuts.Xi2maxNoAdd(),
                nWeightedClustersMin=TrackingCuts.nWeightedClustersMin(),
                Xi2maxMultiTracks=TrackingCuts.Xi2max(),
                UseAssociationTool=False)

            from InDetRecExample.InDetJobProperties import InDetFlags
            if not InDetFlags.doCaloSeededBrem():
                TrackMaker_FTF.InputClusterContainerName = ""
                TrackMaker_FTF.InputHadClusterContainerName = ""

            from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags
            if type == 'eGamma' and InDetTrigFlags.doBremRecovery():
                TrackMaker_FTF.useBremModel = True

            if remapped_type == "cosmics":
                TrackMaker_FTF.RoadTool.CosmicTrack = True

            ToolSvc += TrackMaker_FTF
            self.initialTrackMaker = TrackMaker_FTF

            from TrigInDetTrackFitter.TrigInDetTrackFitterConf import TrigInDetTrackFitter
            theTrigInDetTrackFitter = TrigInDetTrackFitter()
            #theTrigInDetTrackFitter.correctClusterPos = False #Flag to control whether to correct cluster position
            theTrigInDetTrackFitter.correctClusterPos = True  #temporarily to true to improve err(z0) estimates

            from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigRotCreator
            theTrigInDetTrackFitter.ROTcreator = InDetTrigRotCreator
            ToolSvc += theTrigInDetTrackFitter
            self.trigInDetTrackFitter = theTrigInDetTrackFitter
            from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags
            if type == 'eGamma' and InDetTrigFlags.doBremRecovery():
                theTrigInDetTrackFitterBrem = TrigInDetTrackFitter(
                    name='theTrigInDetTrackFitterBrem', doBremmCorrection=True)
                ToolSvc += theTrigInDetTrackFitterBrem
                self.trigInDetTrackFitter = theTrigInDetTrackFitterBrem

            self.doZFinder = InDetTrigSliceSettings[('doZFinder',
                                                     remapped_type)]
            if (self.doZFinder):
                from IDScanZFinder.IDScanZFinderConf import TrigZFinder
                theTrigZFinder = TrigZFinder()
                theTrigZFinder.NumberOfPeaks = 3
                theTrigZFinder.LayerNumberTool = numberingTool

                theTrigZFinder.FullScanMode = True  #TODO: know this from the RoI anyway - should set for every event
                ToolSvc += theTrigZFinder
                self.trigZFinder = theTrigZFinder
                self.doFastZVertexSeeding = True
                self.zVertexResolution = 7.5

            from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool
            self.TrackSummaryTool = InDetTrigFastTrackSummaryTool

            if remapped_type == "tauCore":
                from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigTrackSummaryToolWithHoleSearch
                self.TrackSummaryTool = InDetTrigTrackSummaryToolWithHoleSearch

            from TrigInDetTrackFitter.TrigInDetTrackFitterConf import TrigL2ResidualCalculator
            resCalc = TrigL2ResidualCalculator(OfflineClusters=False)
            ToolSvc += resCalc
            self.TrigL2ResidualCalculator = resCalc
            self.doCloneRemoval = InDetTrigSliceSettings[('doCloneRemoval',
                                                          remapped_type)]
예제 #13
0
# Updator for Fatras - MC or Fatras
from FatrasTools.FatrasToolsConf import Fatras__McMaterialEffectsUpdator
FatrasMaterialUpdator = Fatras__McMaterialEffectsUpdator(
    name='FatrasMaterialUpdatorID')
# hadronic interactions
FatrasMaterialUpdator.HadronicInteractionProcessor = FatrasHadIntProcessor
ToolSvc += FatrasMaterialUpdator
# energy loss
FatrasMaterialUpdator.EnergyLoss = True
FatrasMaterialUpdator.EnergyLossUpdator = FatrasEnergyLossUpdator
# mutiple scattering
FatrasMaterialUpdator.MultipleScattering = True
FatrasMaterialUpdator.MultipleScatteringUpdator = FatrasMultipleScatteringUpdator
# the validation output
# the sim propagator
FatrasPropagator = Propagator('FatrasPropagatorID')
ToolSvc += FatrasPropagator
FatrasSTEP_Propagator = STEP_Propagator('FatrasSTEP_PropagatorID')
ToolSvc += FatrasSTEP_Propagator
# Extrapolator for fatras
FatrasExtrapolator = Extrapolator(name='FatrasExtrapolatorID')
# assign the tools
FatrasExtrapolator.Navigator = FatrasNavigator
FatrasExtrapolator.MaterialEffectsUpdators = [FatrasMaterialUpdator]
FatrasExtrapolator.Propagators = [FatrasPropagator]
FatrasExtrapolator.STEP_Propagator = FatrasSTEP_Propagator
ToolSvc += FatrasExtrapolator

################################################################
# load the AtlasExtrapolator