Ejemplo n.º 1
0
     def __init__(self, InputTrackCollection = None, InputTrackTruthCollection = None, OutputTrackParticleContainer = None):


         from InDetRecExample.InDetJobProperties import InDetFlags
         from InDetRecExample.InDetKeys import InDetKeys
         #
         # --- get ToolSvc and topSequence
         #
         from AthenaCommon.AppMgr                import ToolSvc
         from AthenaCommon.AlgSequence           import AlgSequence
         topSequence = AlgSequence()

         _perigee_expression=InDetFlags.perigeeExpression()
         # need to treat Vertex specifically because at the time of
         # the track particle creation the primary vertex does not yet exist.
         # The problem is solved by first creating track particles wrt. the beam line
         # and correcting the parameters after the vertex finding.
         if _perigee_expression == 'Vertex' :
              _perigee_expression = 'BeamLine'

         #Always the same (so far) so can in principle go in InDetRecLoadTools
         from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
         InDetxAODParticleCreatorTool = Trk__TrackParticleCreatorTool(name = "InDetxAODParticleCreatorTool"+InputTrackCollection, 
                                                                      Extrapolator            = InDetExtrapolator,
                                                                      TrackSummaryTool        = InDetTrackSummaryToolSharedHits,
                                                                      BadClusterID            = InDetFlags.pixelClusterBadClusterID(),
                                                                      KeepParameters          = True,
                                                                      KeepFirstParameters     = InDetFlags.KeepFirstParameters(),
                                                                      PerigeeExpression       = _perigee_expression)

         ToolSvc += InDetxAODParticleCreatorTool
         if (InDetFlags.doPrintConfigurables()):
            printfunc (InDetxAODParticleCreatorTool)

         from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackParticleCnvAlg
         xAODTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(name = "InDetxAODParticleCreatorAlg"+InputTrackCollection,
                                                                  ConvertTracks = True,
                                                                  ConvertTrackParticles = False,
                                                                  TrackContainerName = InputTrackCollection,
                                                                  xAODContainerName = OutputTrackParticleContainer,
                                                                  xAODTrackParticlesFromTracksContainerName = OutputTrackParticleContainer,
                                                                  TrackParticleCreator = InDetxAODParticleCreatorTool)

         if (InDetFlags.doTruth() and not InputTrackTruthCollection == ''):
             xAODTrackParticleCnvAlg.AddTruthLink = True
             xAODTrackParticleCnvAlg.TrackTruthContainerName = InputTrackTruthCollection

             from MCTruthClassifier.MCTruthClassifierBase import MCTruthClassifier
             xAODTrackParticleCnvAlg.MCTruthClassifier = MCTruthClassifier

         elif (InDetFlags.doTruth() and InputTrackTruthCollection == ''):
             printfunc ("WARNING: ConfiguredxAODTrackParticleCreation - doTruth = True, but no input Truth collection specified!")
         else:
            xAODTrackParticleCnvAlg.AddTruthLink = False

         topSequence += xAODTrackParticleCnvAlg
         if (InDetFlags.doPrintConfigurables()):
            printfunc (xAODTrackParticleCnvAlg)
Ejemplo n.º 2
0
    def __init__(self, name = 'AtlasVKalVxInJetFinder'  ):        

        from __main__ import ToolSvc
        mlog = logging.getLogger( 'AtlasVKalVxInJetFinder::__init__ ' )
        mlog.info("entering")
        #----------------- ATLAS magnetic field
        from AthenaCommon.AppMgr import ServiceMgr
        from MagFieldServices.MagFieldServicesConf import MagField__AtlasFieldSvc
        ServiceMgr += MagField__AtlasFieldSvc("myAtlasFieldSvc");
        #----------------- ATLAS extrapolator
        from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
        SVAtlasExtrapolator=AtlasExtrapolator()
        ToolSvc+=SVAtlasExtrapolator

        #-------------------------- 
        from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
        SVAtlasTrackSummaryTool = AtlasTrackSummaryTool()
        ToolSvc += SVAtlasTrackSummaryTool

        #-------------------------
        # TrackParticle creator
        #
        from TrkParticleCreator.TrkParticleCreatorConf     import Trk__TrackParticleCreatorTool
        SVParticleCreatorTool = Trk__TrackParticleCreatorTool(name="SVParticleCreatorTool",
                                                              TrackSummaryTool=SVAtlasTrackSummaryTool,
                                                              UseTrackSummaryTool=False
                                                             )
        ToolSvc += SVParticleCreatorTool
        #----------------------
        # VKalVrt vertex fitter
        # 
        from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter
        SVertexFitterTool = Trk__TrkVKalVrtFitter(name="SVertexFitterTool",
                                                  Extrapolator=SVAtlasExtrapolator,
                                                  AtlasMagFieldSvc = "myAtlasFieldSvc"
                                                 )
        ToolSvc += SVertexFitterTool
        #----------------------
        # Secondary vertex finder itself
        #
        from TrkVertexFitterUtils.TrkVertexFitterUtilsConf import Trk__FullLinearizedTrackFactory
        SVLinearizedTrackFactory = Trk__FullLinearizedTrackFactory(name="SVLinearizedTrackFactory",Extrapolator = SVAtlasExtrapolator)
        ToolSvc += SVLinearizedTrackFactory             

        from TrkVertexFitterUtils.TrkVertexFitterUtilsConf import Trk__TrackToVertexIPEstimator
        SVTrackToVertexIPEstimator = Trk__TrackToVertexIPEstimator(name="SVTrackToVertexIPEstimator",
                                                                   Extrapolator = SVAtlasExtrapolator,
                                                                   LinearizedTrackFactory=SVLinearizedTrackFactory)
        ToolSvc += SVTrackToVertexIPEstimator

        InDet__InDetVKalVxInJetTool.__init__( self, name = name,
                                             VertexFitterTool     = SVertexFitterTool,
                                             TrackParticleCreator = SVParticleCreatorTool,
                                             TrackSummaryTool     = SVAtlasTrackSummaryTool,
                                             TrackToVertexTool    = SVTrackToVertexIPEstimator
                                            )
Ejemplo n.º 3
0
    def __init__(self, name = 'InDetVKalVxInJetFinder'  ):        

        from __main__ import ToolSvc
        mlog = logging.getLogger( 'InDetVKalVxInJetFinder::__init__ ' )
        mlog.info("entering")
        #----------------------
        # VKalVrt vertex fitter
        # 
        from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter
        SVertexFitterTool = Trk__TrkVKalVrtFitter(name="SVertexFitterTool",
                                                  Extrapolator="Trk::Extrapolator/AtlasExtrapolator",
                                                  AtlasMagFieldSvc = "AtlasFieldSvc"
                                                  #AtlasMagFieldSvc = "Default",
                                                  #Extrapolator = "DefaultVKalPropagator"
                                                 )
        ToolSvc += SVertexFitterTool
        #----------------------
        # Secondary vertex finder itself
        #
        if hasattr(ToolSvc,'InDetParticleCreatorTool'):
          InDet__InDetVKalVxInJetTool.__init__( self, name = name,
                                                VertexFitterTool     = SVertexFitterTool
                                              )
        else:         #--------------------------------
                      # TrackParticle creator is needed
          from TrkParticleCreator.TrkParticleCreatorConf     import Trk__TrackParticleCreatorTool
          if hasattr(ToolSvc,'InDetTrackSummaryTool'):
            SVParticleCreatorTool = Trk__TrackParticleCreatorTool(name="SVParticleCreatorTool",
                                                                  TrackSummaryTool="InDetTrackSummaryTool",
                                                                  UseTrackSummaryTool=False )
          else:
            from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
            SVTrackSummaryTool = AtlasTrackSummaryTool(name="SVTrackSummaryTool")
            ToolSvc += SVTrackSummaryTool
            SVParticleCreatorTool = Trk__TrackParticleCreatorTool(name="SVParticleCreatorTool",
                                                                  TrackSummaryTool=SVTrackSummaryTool,
                                                                  UseTrackSummaryTool=False )
          ToolSvc += SVParticleCreatorTool
          InDet__InDetVKalVxInJetTool.__init__( self, name = name,
                                                VertexFitterTool     = SVertexFitterTool,
                                                TrackParticleCreator = SVParticleCreatorTool
                                              )
Ejemplo n.º 4
0
    def setup(self):

         mlog = logging.getLogger( 'eflowSetupParticleCreator::setup' )

         try:
             from AthenaCommon.AppMgr import ToolSvc
         except:
             mlog.error("could not import ToolSvc")
             print traceback.format_exc()
             return False

         try:
             from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
             eflowExtrapolator = AtlasExtrapolator(name = "eflowExtrapolator")
         except:
             mlog.error("could not import AtlasExtrapolator from TrkExTools.AtlasExtrapolator")
             print traceback.format_exc()
             return False

         ToolSvc+=eflowExtrapolator

         try:
             from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
             eflowTrackSummaryTool = AtlasTrackSummaryTool(name = "eflowTrackSummaryTool")
         except:
             mlog.error("could not import AtlasTrackSummaryTool from TrkTrackSummaryTool.AtlasTrackSummaryTool")
             print traceback.format_exc()
             return False

         ToolSvc+=eflowTrackSummaryTool

         try:
             from TrkParticleCreator.TrkParticleCreatorConf import  Trk__TrackParticleCreatorTool
             eflowParticleCreatorTool = Trk__TrackParticleCreatorTool(name = "eflowParticleCreatorTool",Extrapolator = eflowExtrapolator, TrackSummaryTool = eflowTrackSummaryTool)
         except:
             mlog.error("could not import Trk__TrackParticleCreatorTool from TrkParticleCreator.TrkParticleCreatorConf")
             print traceback.format_exc()
             return False

        
         
         ToolSvc += eflowParticleCreatorTool

         return eflowParticleCreatorTool
Ejemplo n.º 5
0
def getInDetxAODParticleCreatorTool(prd_to_track_map=None, suffix=""):
    from AthenaCommon.AppMgr import ToolSvc
    if hasattr(ToolSvc, 'InDetxAODParticleCreatorTool' + suffix):
        return getattr(ToolSvc, 'InDetxAODParticleCreatorTool')

    _perigee_expression = InDetFlags.perigeeExpression()
    # need to treat Vertex specifically because at the time of
    # the track particle creation the primary vertex does not yet exist.
    # The problem is solved by first creating track particles wrt. the beam line
    # and correcting the parameters after the vertex finding.
    if _perigee_expression == 'Vertex':
        _perigee_expression = 'BeamLine'

    from InDetRecExample import TrackingCommon as TrackingCommon
    from InDetRecExample.TrackingCommon import setDefaults
    if prd_to_track_map is None:
        track_summary_tool = TrackingCommon.getInDetTrackSummaryToolSharedHits(
        )
    else:
        prop_args = setDefaults({}, nameSuffix=suffix)
        asso_tool = TrackingCommon.getConstPRD_AssociationTool(
            **setDefaults(prop_args, PRDtoTrackMap=prd_to_track_map))
        helper_tool = TrackingCommon.getInDetSummaryHelperSharedHits(
            **setDefaults(prop_args, AssoTool=asso_tool))
        track_summary_tool = TrackingCommon.getInDetTrackSummaryToolSharedHits(
            **setDefaults(prop_args, InDetSummaryHelperTool=helper_tool))

    from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
    InDetxAODParticleCreatorTool = Trk__TrackParticleCreatorTool(
        name="InDetxAODParticleCreatorTool" + suffix,
        Extrapolator=InDetExtrapolator,
        TrackSummaryTool=track_summary_tool,
        BadClusterID=InDetFlags.pixelClusterBadClusterID(),
        KeepParameters=True,
        KeepFirstParameters=InDetFlags.KeepFirstParameters(),
        PerigeeExpression=_perigee_expression)

    ToolSvc += InDetxAODParticleCreatorTool
    if InDetFlags.doPrintConfigurables():
        printfunc(InDetxAODParticleCreatorTool)
    return InDetxAODParticleCreatorTool
Ejemplo n.º 6
0
        TrackFitter=ToolSvc.InDetTrackFitter)
    ToolSvc += splittertool

    from InDetTrackValidation.InDetTrackValidationConf import InDet__InDetSplittedTracksCreator
    splitter = InDet__InDetSplittedTracksCreator(
        name='InDetTrackSplitterForMuonCombined',
        TrackSplitterTool=splittertool,
        TrackCollection=InDetKeys.Tracks(),
        OutputTrackCollection=InDetKeys.Tracks() + "_split")

    topSequence += splitter

    from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
    InDetParticleCreatorTool_split = Trk__TrackParticleCreatorTool(
        name="InDetParticleCreatorTool_split",
        KeepParameters=True,
        Extrapolator=InDetExtrapolator,
        TrackSummaryTool=InDetTrackSummaryTool,
        PerigeeExpression="Origin")
    ToolSvc += InDetParticleCreatorTool_split

    output_track_particle_name = InDetKeys.TrackParticles() + "_split"
    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackParticleCnvAlg
    xAODTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(
        name="InDetxAODParticleCreatorAlg" + InputTrackCollection + "_split",
        ConvertTracks=True,
        ConvertTrackParticles=False,
        TrackContainerName=InDetKeys.Tracks() + "_split",
        xAODContainerName=output_track_particle_name,
        xAODTrackParticlesFromTracksContainerName=output_track_particle_name,
        TrackParticleCreator=InDetParticleCreatorTool_split)
Ejemplo n.º 7
0
def getTrackParticleCnv(prefix, suffix, outPTTracks, outPTTrackParticles):
    """ Use the  track collection and convert it to container of xAOD Track Particles  """
    #suffix = '_%s'suff if suff else '' #Suffix should be based on the signature and type of tracking, e.g for cosmics and PT  -> Cosmics_PT ( for FTF or EFID, Cosmics_FTF, Cosmics_EFID )
    from AthenaCommon.AppMgr import ToolSvc
    keepParameter = False
    if 'Electron' in suffix:
        keepParameter = True

    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackSummaryTool, InDetTrigExtrapolator
    from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
    InDetTrigMTxAODParticleCreatorTool = Trk__TrackParticleCreatorTool(
        name="%sxAODParticleCreatorTool%s" % (prefix, suffix),
        Extrapolator=InDetTrigExtrapolator,
        KeepParameters=keepParameter,
        #TrackSummaryTool = InDetTrigTrackSummaryToolSharedHits)
        TrackSummaryTool=InDetTrigTrackSummaryTool)

    ToolSvc += InDetTrigMTxAODParticleCreatorTool
    #log.info(InDetTrigMTxAODParticleCreatorTool)

    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackCollectionCnvTool
    InDetTrigMTxAODTrackCollectionCnvTool = xAODMaker__TrackCollectionCnvTool(
        name="%sxAODTrackCollectionCnvTool%s" % (prefix, suffix),
        TrackParticleCreator=InDetTrigMTxAODParticleCreatorTool)

    ToolSvc += InDetTrigMTxAODTrackCollectionCnvTool
    #log.info(InDetTrigMTxAODTrackCollectionCnvTool)

    #This one shouldn't be necessary
    #TODO: obsolete, try to turn off
    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__RecTrackParticleContainerCnvTool
    InDetTrigMTRecTrackParticleContainerCnvTool = xAODMaker__RecTrackParticleContainerCnvTool(
        name="%sRecTrackContainerCnvTool%s" % (prefix, suffix),
        TrackParticleCreator=InDetTrigMTxAODParticleCreatorTool)

    ToolSvc += InDetTrigMTRecTrackParticleContainerCnvTool

    #Adding new monitoring tool
    #First load the generic monitoring tool with set of histograms for Particle Cnv
    from TrigInDetMonitoringTools.TrigInDetTrackingMonitoring import TrigInDetTrackCnvMonitoring
    #TODO need to add extra property for prefix and suffix of the track collections to be monitored
    #Or maybe no need the name itself should be obvious from the particle cnv alg
    monTool = TrigInDetTrackCnvMonitoring(name='%sParticleCreatorCnv%s' %
                                          (prefix, suffix))

    #Now pass this tool to the Track Monitoring tool
    from TrigInDetMonitoringTools.TrigInDetTrackMonitoringToolConf import TrigInDetTrackMonitoringTool
    monTrackCnv = TrigInDetTrackMonitoringTool(name='%sParticleCreatorCnv%s' %
                                               (prefix, suffix),
                                               MonitoringTool=monTool)

    ToolSvc += monTrackCnv

    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackParticleCnvAlg
    InDetTrigMTxAODTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(
        name="%sxAODParticleCreatorAlg%s" % (prefix, suffix),
        # Properties below are used for:  TrackCollection -> xAOD::TrackParticle
        ConvertTracks=
        True,  #Turn on  retrieve of TrackCollection, false by default
        TrackContainerName=outPTTracks,
        xAODTrackParticlesFromTracksContainerName=outPTTrackParticles,
        TrackCollectionCnvTool=InDetTrigMTxAODTrackCollectionCnvTool,
        ## Properties below are used for: Rec:TrackParticle, aod -> xAOD::TrackParticle (Turn off)
        ConvertTrackParticles=
        False,  # Retrieve of Rec:TrackParticle, don't need this atm
        xAODContainerName='',
        RecTrackParticleContainerCnvTool=
        InDetTrigMTRecTrackParticleContainerCnvTool,
        TrackParticleCreator=InDetTrigMTxAODParticleCreatorTool,
        #Add online track monitoring
        DoMonitoring=True,
        TrackMonTool=monTrackCnv)

    return InDetTrigMTxAODTrackParticleCnvAlg
Ejemplo n.º 8
0
    #----- tools for track splliting ---- START ----
    splittertoolcomb = InDet__InDetTrackSplitterTool(
        name="VARO_SplitterTool",
        TrackFitter=InDetTrackFitter,  #InDetTrackFitter,
        OutputUpperTracksName="TracksUpperSplit",
        OutputLowerTracksName="TracksLowerSplit",
        OutputLevel=INFO)
    #ToolSvc += splittertoolcomb
    printfunc(splittertoolcomb)

    # tool to convert to xAOD::TrackParticles
    from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
    InDetxAODSplitParticleCreatorTool = Trk__TrackParticleCreatorTool(
        name="InDetSplitxAODParticleCreatorTool",
        Extrapolator=InDetExtrapolator,
        TrackSummaryTool=InDetTrackSummaryToolSharedHits,
        KeepParameters=True,
        OutputLevel=DEBUG)
    #ToolSvc += InDetxAODSplitParticleCreatorTool
    #----- tools for track splliting ---- COMPLETED ----

    #
    #### first task #### prepare the segment track selectors
    #

    #--> needed ? InDetAlignMonManager.DataType = "cosmics"
    m_alignMonTrackSelectorTool = []
    m_alignMonTrackSelectionTool = []

    m_trackSelectorToolName = [
        "AlignTracksTrackSelectorTool", "CombinedTracksTrackSelectorTool"
Ejemplo n.º 9
0
    def __init__(self, name="ConfiguredFTK_DataProviderSvc"):
        print "In FTK_DataProviderSvc_Config.py"
        FTK_DataProviderSvc.__init__(self, name)
        # Track Fitter
        from TrkGlobalChi2Fitter.TrkGlobalChi2FitterConf import Trk__GlobalChi2Fitter
        from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigExtrapolator, InDetTrigNavigator, InDetTrigPropagator, InDetTrigRefitRotCreator,InDetTrigBroadInDetRotCreator, \
             InDetTrigUpdator, InDetTrigMaterialUpdator, InDetTrigUpdator, InDetTrigMaterialUpdator
        from TrkDetDescrSvc.AtlasTrackingGeometrySvc import AtlasTrackingGeometrySvc

        from TrkDistributedKalmanFilter.DistributedKalmanFilter_Config import ConfiguredDistributedKalmanFilter

        FTK_TrackFitter = Trk__GlobalChi2Fitter(
            name="FTK_TrackFitter",
            ExtrapolationTool=InDetTrigExtrapolator,
            NavigatorTool=InDetTrigNavigator,
            PropagatorTool=InDetTrigPropagator,
            RotCreatorTool=InDetTrigRefitRotCreator,
            BroadRotCreatorTool=InDetTrigBroadInDetRotCreator,
            MeasurementUpdateTool=InDetTrigUpdator,
            TrackingGeometrySvc=AtlasTrackingGeometrySvc,
            MaterialUpdateTool=InDetTrigMaterialUpdator,
            StraightLine=False,
            OutlierCut=4,
            SignedDriftRadius=True,
            RecalibrateSilicon=True,
            RecalibrateTRT=True,
            ReintegrateOutliers=True,
            TrackChi2PerNDFCut=7,
            TRTExtensionCuts=False,
            MaxIterations=40,
            Acceleration=True,
            Momentum=1000.,
        )
        from AthenaCommon.AppMgr import ToolSvc

        print "printing FTK_TrackFitter configured with DKF"
        print FTK_TrackFitter
        ToolSvc += FTK_TrackFitter
        print "added FTK_TrackFitter to ToolSvc"

        from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigExtrapolator, InDetTrigTrackSelectorTool, InDetTrigHoleSearchTool
        from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackSummaryToolSharedHits, InDetTrigPrdAssociationTool

        from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool
        FTK_TrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool(
            name="FTK_TrackSummaryHelperTool",
            AssoTool=InDetTrigPrdAssociationTool,
            DoSharedHits=False,
            HoleSearch=InDetTrigHoleSearchTool,
            TestBLayerTool=None,
            PixelToTPIDTool=None,
            usePixel=True,
            useSCT=True,
            useTRT=False)

        ToolSvc += FTK_TrackSummaryHelperTool
        print "added FTK_TrackSummaryHelperTool to ToolSvc"

        from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
        FTK_TrackSummaryTool = Trk__TrackSummaryTool(
            name="FTK_TrackSummaryTool",
            InDetSummaryHelperTool=FTK_TrackSummaryHelperTool,
            InDetHoleSearchTool=None,
            doSharedHits=False,
            TRT_ElectronPidTool=None)
        ToolSvc += FTK_TrackSummaryTool
        print "added FTK_TrackSummaryTool to ToolSvc"

        from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool

        FTK_TrackParticleCreatorTool = Trk__TrackParticleCreatorTool(
            name="FTK_ParticleCreatorTool",
            Extrapolator=InDetTrigExtrapolator,
            TrackSummaryTool=FTK_TrackSummaryTool,
            KeepParameters=True,
            ForceTrackSummaryUpdate=
            False,  #summary update moved (in the slimmer now)
        )

        ToolSvc += FTK_TrackParticleCreatorTool
        print FTK_TrackParticleCreatorTool
        print " added FTK_TrackParticleCreatorTool to ToolSvc"

        from TrigInDetConf.TrigInDetRecVtxTools import InDetTrigLinFactory, InDetTrigVxEdmCnv
        from TrigInDetConf.TrigInDetRecVtxTools import InDetTrigLinFactory, InDetTrigVxEdmCnv

        from TrkVertexSeedFinderTools.TrkVertexSeedFinderToolsConf import Trk__ZScanSeedFinder
        FTK_VtxSeedFinder = Trk__ZScanSeedFinder(
            name="FTK_ZScanSeedFinder"
            #Mode1dFinder = # default, no setting needed
        )
        ToolSvc += FTK_VtxSeedFinder

        from TrkVertexFitterUtils.TrkVertexFitterUtilsConf import Trk__ImpactPoint3dEstimator, Trk__DetAnnealingMaker

        FTK_ImpactPoint3dEstimator = Trk__ImpactPoint3dEstimator(
            name="FTK_TrkImpactPoint3dEstimator",
            Extrapolator=InDetTrigExtrapolator,
        )

        ToolSvc += FTK_ImpactPoint3dEstimator

        FTK_AnnealingMaker = Trk__DetAnnealingMaker(
            name="FTK_TrkAnnealingMaker")
        FTK_AnnealingMaker.SetOfTemperatures = [64., 16., 4., 2., 1.5,
                                                1.]  # not default
        ToolSvc += FTK_AnnealingMaker

        from TrkVertexFitters.TrkVertexFittersConf import Trk__SequentialVertexSmoother
        FTK_VertexSmoother = Trk__SequentialVertexSmoother(
            name="FTK_SequentialVertexSmoother")
        ToolSvc += FTK_VertexSmoother

        from TrkVertexFitters.TrkVertexFittersConf import Trk__AdaptiveVertexFitter
        FTK_VxFitterTool = Trk__AdaptiveVertexFitter(
            name="FTK_AdaptiveVxFitterTool",
            SeedFinder=FTK_VtxSeedFinder,
            LinearizedTrackFactory=InDetTrigLinFactory,
            ImpactPoint3dEstimator=FTK_ImpactPoint3dEstimator,
            AnnealingMaker=FTK_AnnealingMaker,
            #TrackCompatibilityEstimator =
            VertexSmoother=FTK_VertexSmoother,
            #VertexUpdator = ,  #does not use any tools?
            #onlyzseed = ,
        )

        FTK_VxFitterTool.XAODConverter = InDetTrigVxEdmCnv
        ToolSvc += FTK_VxFitterTool

        from InDetPriVxFinderTool.InDetPriVxFinderToolConf import InDet__InDetIterativePriVxFinderTool
        FTK_PriVxFinderTool = InDet__InDetIterativePriVxFinderTool(
            name="FTK_PriVxFinderTool",
            VertexFitterTool=FTK_VxFitterTool,
            TrackSelector=InDetTrigTrackSelectorTool,
            SeedFinder=FTK_VtxSeedFinder,
            ImpactPoint3dEstimator=FTK_ImpactPoint3dEstimator,
            LinearizedTrackFactory=InDetTrigLinFactory,
            useBeamConstraint=True,
            significanceCutSeeding=12,
            maximumChi2cutForSeeding=49,
            maxVertices=200,
            InternalEdmFactory=InDetTrigVxEdmCnv)
        ToolSvc += FTK_PriVxFinderTool

        from FTK_DataProviderSvc.FTK_DataProviderSvcConf import FTK_UncertaintyTool
        theFTK_UncertaintyTool = FTK_UncertaintyTool(
            name="FTK_UncertaintyTool")
        ToolSvc += theFTK_UncertaintyTool

        from FTK_RecTools.FTK_RecToolsConf import FTK_VertexFinderTool
        FTK_RawVertexFinderTool = FTK_VertexFinderTool(
            name="FTK_RawVertexFinderTool",
            VertexInternalEdmFactory=InDetTrigVxEdmCnv)
        ToolSvc += FTK_RawVertexFinderTool

        self.TrackCollectionName = "FTK_TrackCollection"
        self.TrackParticleContainerName = "FTK_TrackParticleContainer"
        self.VxContainerName = "FTK_VxContainer"
        self.VertexContainerName = "FTK_VertexContainer"
        self.PixelTruthName = "FTK_PRD_MultiTruthPixel"
        self.SctTruthName = "FTK_PRD_MultiTruthSCT"
        self.PixelClusterContainerName = "FTK_PixelClusterContainer"
        self.SCT_ClusterContainerName = "FTK_SCT_ClusterContainer"

        self.TrackFitter = FTK_TrackFitter
        self.UncertaintyTool = theFTK_UncertaintyTool
        self.TrackSummaryTool = FTK_TrackSummaryTool
        self.TrackParticleCreatorTool = FTK_TrackParticleCreatorTool
        self.RawVertexFinderTool = FTK_RawVertexFinderTool
        self.VertexFinderTool = FTK_PriVxFinderTool
        from RecExConfig.RecFlags import rec

        self.doTruth = rec.doTruth()
        self.TrainingBeamspotX = 0.0
        self.TrainingBeamspotY = 0.0
        self.TrainingBeamspotZ = 0.0
        self.TrainingBeamspotTiltX = 0.0
        self.TrainingBeamspotTiltY = 0.0
        self.PixelBarrelPhiOffsets = [0.0, 0.0, 0.0, 0.0]
        self.PixelBarrelEtaOffsets = [0.0, 0.0, 0.0, 0.0]
        self.PixelEndCapPhiOffsets = [0.0, 0.0, 0.0]
        self.PixelEndCapEtaOffsets = [0.0, 0.0, 0.0]
Ejemplo n.º 10
0
    from InDetTrackValidation.InDetTrackValidationConf import InDet__InDetSplittedTracksCreator
    splittercomb=InDet__InDetSplittedTracksCreator(name='CombinedTrackSplitter',
    TrackSplitterTool     = splittertoolcomb,
    TrackCollection       = "Tracks",
    OutputTrackCollection = "Tracks_split")
    topSequence+=splittercomb
    if (printIdTrkDxAODConf):
        print splittercomb
        print splittercomb.properties()

    # Create xAOD::TrackParticles out of them
    from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
    InDetxAODSplitParticleCreatorTool = Trk__TrackParticleCreatorTool(name = "InDetSplitxAODParticleCreatorTool", 
                                                                      Extrapolator            = InDetExtrapolator,
                                                                      TrackSummaryTool        = InDetTrackSummaryToolSharedHits,
                                                                      ForceTrackSummaryUpdate = False,
                                                                      KeepParameters          = True)
    ToolSvc += InDetxAODSplitParticleCreatorTool
    # The following adds truth information, but needs further testing
    #include ("InDetRecExample/ConfiguredInDetTrackTruth.py")
    #if isIdTrkDxAODSimulation:
    #    InDetSplitTracksTruth = ConfiguredInDetTrackTruth("Tracks_split",'SplitTrackDetailedTruth','SplitTrackTruth')

    xAODSplitTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg('InDetSplitTrackParticles')
    xAODSplitTrackParticleCnvAlg.xAODContainerName = 'InDetSplitTrackParticles'
    xAODSplitTrackParticleCnvAlg.xAODTrackParticlesFromTracksContainerName = 'InDetSplitTrackParticles'
    xAODSplitTrackParticleCnvAlg.TrackParticleCreator = InDetxAODSplitParticleCreatorTool
    xAODSplitTrackParticleCnvAlg.TrackContainerName = 'Tracks_split'
    xAODSplitTrackParticleCnvAlg.ConvertTrackParticles = False
    xAODSplitTrackParticleCnvAlg.ConvertTracks = True
Ejemplo n.º 11
0
    xAODTruthCnvPU.WriteAllPileUpTruth = True
    xAODTruthCnvPU.AODContainerName = "GEN_EVENT_PU"
    xAODTruthCnvPU.xAODTruthEventContainerName = "TruthEvents_PU"  #output
    xAODTruthCnvPU.xAODTruthPileupEventContainerName = "TruthPileupEvents_PU"  #output
    xAODTruthCnvPU.xAODTruthParticleContainerName = "TruthParticles_PU"  #output
    xAODTruthCnvPU.xAODTruthVertexContainerName = "TruthVertices_PU"  #output
    xAODTruthCnvPU.TruthLinks = "xAODTruthLinks_PU"  #output/intermediate
    xAODTruthCnvPU.MetaObjectName = "TruthMetaData_PU"  #output
    topSequence += xAODTruthCnvPU

from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
InDetxAODParticleCreatorTool = Trk__TrackParticleCreatorTool(
    name="InDetxAODParticleCreatorTool",
    Extrapolator=InDetExtrapolator,
    TrackSummaryTool=InDetTrackSummaryToolSharedHits,
    BadClusterID=InDetFlags.pixelClusterBadClusterID(),
    ForceTrackSummaryUpdate=False,
    KeepParameters=True,
    KeepFirstParameters=InDetFlags.KeepFirstParameters(),
    PerigeeExpression=_perigee_expression)

ToolSvc += InDetxAODParticleCreatorTool
if InDetFlags.doPrintConfigurables():
    print InDetxAODParticleCreatorTool

if (
        doCreation or doConversion
):  # or InDetFlags.useExistingTracksAsInput()) : <---- [XXX JDC Should we included this?
    #                                                    problems appear when nothing should
    #                                                    be done but
    #                                                    useExistinTracksAsInput...
Ejemplo n.º 12
0
    def __init__(self, name="EMBremCollectionBuilder", **kw):
        mlog = logging.getLogger(name + '::__init__')
        mlog.info("entering")

        super(egammaBremCollectionBuilder, self).__init__(name, **kw)

        # do the configuration
        import egammaRec.EMCommonRefitter
        GSFBuildInDetExtrapolator = egammaExtrapolator()

        from egammaTrackTools.egammaTrackToolsConf import egammaTrkRefitterTool
        GSFRefitterTool = egammaTrkRefitterTool(
            name='GSFRefitterTool',
            FitterTool=egammaRec.EMCommonRefitter.GSFTrackFitter,
            useBeamSpot=False,
            ReintegrateOutliers=True)
        from AthenaCommon.AppMgr import ToolSvc
        ToolSvc += GSFRefitterTool

        # ----------- load association tool from Inner Detector to handle pixel ganged ambiguities
        #
        from InDetAssociationTools.InDetAssociationToolsConf import InDet__InDetPRD_AssociationToolGangedPixels
        GSFBuildInDetPrdAssociationTool = InDet__InDetPRD_AssociationToolGangedPixels(
            name="GSFBuildInDetPrdAssociationTool",
            PixelClusterAmbiguitiesMapName='PixelClusterAmbiguitiesMap')
        ToolSvc += GSFBuildInDetPrdAssociationTool
        #
        # ----------- Load SummaryTool
        #
        # Loading Configurable HoleSearchTool
        #
        from InDetTrackHoleSearch.InDetTrackHoleSearchConf import InDet__InDetTrackHoleSearchTool
        GSFBuildHoleSearchTool = InDet__InDetTrackHoleSearchTool(
            name="GSFBuildHoleSearchTool",
            Extrapolator=GSFBuildInDetExtrapolator,
            usePixel=DetFlags.haveRIO.pixel_on(),
            useSCT=DetFlags.haveRIO.SCT_on(),
            checkBadSCTChip=InDetFlags.checkDeadElementsOnTrack(),
            CountDeadModulesAfterLastHit=True)

        from AthenaCommon.AppMgr import ServiceMgr
        if (DetFlags.haveRIO.SCT_on()):
            from SCT_ConditionsServices.SCT_ConditionsServicesConf import SCT_ConditionsSummarySvc
            InDetSCT_ConditionsSummarySvc = SCT_ConditionsSummarySvc(
                name="InDetSCT_ConditionsSummarySvc")
            ServiceMgr += InDetSCT_ConditionsSummarySvc
            GSFBuildHoleSearchTool.SctSummarySvc = ServiceMgr.InDetSCT_ConditionsSummarySvc
        else:
            GSFBuildHoleSearchTool.SctSummarySvc = None

        ToolSvc += GSFBuildHoleSearchTool
        #
        # Load BLayer tool
        #
        GSFBuildTestBLayerTool = None
        if DetFlags.haveRIO.pixel_on():
            from InDetTestBLayer.InDetTestBLayerConf import InDet__InDetTestBLayerTool
            from PixelConditionsServices.PixelConditionsServicesConf import PixelConditionsSummarySvc
            ServiceMgr += PixelConditionsSummarySvc()
            GSFBuildTestBLayerTool = InDet__InDetTestBLayerTool(
                name="GSFBuildTestBLayerTool",
                PixelSummarySvc=ServiceMgr.PixelConditionsSummarySvc,
                Extrapolator=GSFBuildInDetExtrapolator)
            ToolSvc += GSFBuildTestBLayerTool

        # Configurable version of TRT_ElectronPidTools
        #
        GSFBuildTRT_ElectronPidTool = None
        if DetFlags.haveRIO.TRT_on(
        ) and not InDetFlags.doSLHC() and not InDetFlags.doHighPileup():

            from TRT_ElectronPidTools.TRT_ElectronPidToolsConf import InDet__TRT_LocalOccupancy
            GSFBuildTRT_LocalOccupancy = InDet__TRT_LocalOccupancy(
                name="GSF_TRT_LocalOccupancy")
            ToolSvc += GSFBuildTRT_LocalOccupancy

            from TRT_ElectronPidTools.TRT_ElectronPidToolsConf import InDet__TRT_ElectronPidToolRun2
            GSFBuildTRT_ElectronPidTool = InDet__TRT_ElectronPidToolRun2(
                name="GSFBuildTRT_ElectronPidTool",
                TRT_LocalOccupancyTool=GSFBuildTRT_LocalOccupancy,
                isData=(globalflags.DataSource == 'data'))

            ToolSvc += GSFBuildTRT_ElectronPidTool

        #
        # Configurable version of PixelToTPIDTOol
        #
        GSFBuildPixelToTPIDTool = None
        if DetFlags.haveRIO.pixel_on():
            from PixelToTPIDTool.PixelToTPIDToolConf import InDet__PixelToTPIDTool
            GSFBuildPixelToTPIDTool = InDet__PixelToTPIDTool(
                name="GSFBuildPixelToTPIDTool")
            GSFBuildPixelToTPIDTool.ReadFromCOOL = True
            ToolSvc += GSFBuildPixelToTPIDTool
        #
        # Configrable version of loading the InDetTrackSummaryHelperTool
        #
        from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool
        GSFBuildTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool(
            name="GSFBuildTrackSummaryHelperTool",
            AssoTool=GSFBuildInDetPrdAssociationTool,
            PixelToTPIDTool=GSFBuildPixelToTPIDTool,
            TestBLayerTool=GSFBuildTestBLayerTool,
            DoSharedHits=False,
            HoleSearch=GSFBuildHoleSearchTool,
            usePixel=DetFlags.haveRIO.pixel_on(),
            useSCT=DetFlags.haveRIO.SCT_on(),
            useTRT=DetFlags.haveRIO.TRT_on())
        ToolSvc += GSFBuildTrackSummaryHelperTool
        #
        # Configurable version of TrkTrackSummaryTool: no TRT_PID tool needed here (no shared hits)
        #
        from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
        GSFBuildInDetTrackSummaryTool = Trk__TrackSummaryTool(
            name="GSFBuildInDetTrackSummaryTool",
            InDetSummaryHelperTool=GSFBuildTrackSummaryHelperTool,
            doSharedHits=False,
            InDetHoleSearchTool=GSFBuildHoleSearchTool,
            TRT_ElectronPidTool=GSFBuildTRT_ElectronPidTool,
            PixelToTPIDTool=GSFBuildPixelToTPIDTool)
        ToolSvc += GSFBuildInDetTrackSummaryTool
        #
        # --- load patricle creator tool
        #
        from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
        GSFBuildInDetParticleCreatorTool = Trk__TrackParticleCreatorTool(
            name="GSFBuildInDetParticleCreatorTool",
            KeepParameters=True,
            Extrapolator=GSFBuildInDetExtrapolator,
            TrackSummaryTool=GSFBuildInDetTrackSummaryTool,
            UseTrackSummaryTool=False,
            ForceTrackSummaryUpdate=False)
        ToolSvc += GSFBuildInDetParticleCreatorTool
        #
        # --- do track slimming
        #
        from TrkTrackSlimmingTool.TrkTrackSlimmingToolConf import Trk__TrackSlimmingTool as ConfigurableTrackSlimmingTool
        GSFBuildInDetTrkSlimmingTool = ConfigurableTrackSlimmingTool(
            name="GSFBuildInDetTrackSlimmingTool",
            KeepParameters=False,
            KeepOutliers=True)
        ToolSvc += GSFBuildInDetTrkSlimmingTool

        # do the configuration
        self.ClusterContainerName = "LArClusterEM"
        from InDetRecExample.InDetKeys import InDetKeys
        self.TrackParticleContainerName = InDetKeys.xAODTrackParticleContainer(
        )
        self.OutputTrkPartContainerName = "GSFTrackParticles"
        self.OutputTrackContainerName = "GSFTracks"
        self.TrackRefitTool = GSFRefitterTool
        self.TrackParticleCreatorTool = GSFBuildInDetParticleCreatorTool
        self.TrackSlimmingTool = GSFBuildInDetTrkSlimmingTool
        self.TrackSummaryTool = GSFBuildInDetTrackSummaryTool

        # do the configuration (from old EMBremCollectionBuilderBase)
        self.minNoSiHits = 4
        self.broadDeltaEta = 0.1  # this is multiplied by 2 for the Candidate Match , so +- 0.2 in eta
        self.broadDeltaPhi = 0.15  # this is multiplied by 2 for the Candidate Match , so +- 0.3 in phi
        self.narrowDeltaEta = 0.05
        #These have to be relaxed enough for the conversions
        self.narrowDeltaPhi = 0.05
        self.narrowDeltaPhiBrem = 0.20  #Dominated by the needs of assymetric conversions
        self.narrowDeltaPhiRescale = 0.05
        self.narrowDeltaPhiRescaleBrem = 0.1
Ejemplo n.º 13
0
# ToolSvc += InDetTrigTrackSummaryToolWithHoleSearch
# if (InDetTrigFlags.doPrintConfigurables()):
#     print      (InDetTrigTrackSummaryToolWithHoleSearch)


from InDetTrigRecExample.InDetTrigConfigRecLoadTools import \
    InDetTrigTrackSummaryHelperTool, InDetTrigTrackSummaryTool, InDetTrigTrackSummaryToolSharedHits, \
    InDetTrigHoleSearchTool,InDetTrigExtrapolator

from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool, InDetTrigTrackSummaryToolSharedHitsWithTRTPid

from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
InDetTrigParticleCreatorTool = \
    Trk__TrackParticleCreatorTool( name = "InDetTrigParticleCreatorTool",
                                   Extrapolator = InDetTrigExtrapolator,
                                   TrackSummaryTool = InDetTrigTrackSummaryToolSharedHits,
                                   KeepParameters = False,
                                   )

ToolSvc += InDetTrigParticleCreatorTool
if (InDetTrigFlags.doPrintConfigurables()):
    print(InDetTrigParticleCreatorTool)

InDetTrigParticleCreatorToolWithSummary = \
    Trk__TrackParticleCreatorTool( name = "InDetTrigParticleCreatorToolWithSummary",
                                   Extrapolator = InDetTrigExtrapolator,
                                   TrackSummaryTool = InDetTrigTrackSummaryToolSharedHits,
                                   KeepParameters = True,
                                   ComputeAdditionalInfo = True
                                   )
Ejemplo n.º 14
0
    def __init__(self, name="EMBremCollectionBuilder", **kw):
        mlog = logging.getLogger(name + '::__init__')
        mlog.info("entering")

        super(egammaBremCollectionBuilder, self).__init__(name, **kw)

        import egammaRec.EMCommonRefitter

        # Extrapolator to be used for GSF (private)
        GSFBuildInDetExtrapolator = egammaExtrapolator()

        # GsfReffiter (private not in ToolSvc)
        from egammaTrackTools.egammaTrackToolsConf import egammaTrkRefitterTool
        GSFRefitterTool = egammaTrkRefitterTool(
            name='GSFRefitterTool',
            FitterTool=egammaRec.EMCommonRefitter.getGSFTrackFitter(),
            useBeamSpot=False,
            Extrapolator=GSFBuildInDetExtrapolator,
            ReintegrateOutliers=True)

        #
        #  BLayer and Pixel Related Tools (private = True)
        #
        GSFBuildTestBLayerTool = None
        GSFBuildPixelToTPIDTool = None
        if DetFlags.haveRIO.pixel_on():
            GSFPixelConditionsSummaryTool = (
                TrackingCommon.getInDetPixelConditionsSummaryTool())
            if InDetFlags.usePixelDCS():
                GSFPixelConditionsSummaryTool.IsActiveStates = [
                    'READY', 'ON', 'UNKNOWN', 'TRANSITION', 'UNDEFINED'
                ]
                GSFPixelConditionsSummaryTool.IsActiveStatus = [
                    'OK', 'WARNING', 'ERROR', 'FATAL'
                ]

            GSFBuildTestBLayerTool = TrackingCommon.getInDetRecTestBLayerTool(
                name="GSFBuildTestBLayerTool",
                PixelSummaryTool=GSFPixelConditionsSummaryTool,
                Extrapolator=GSFBuildInDetExtrapolator,
                private=True)

            GSFBuildPixelToTPIDTool = TrackingCommon.getInDetPixelToTPIDTool(
                name="GSFBuildPixelToTPIDTool", private=True)
        #
        #  TRT_ElectronPidTool (private =True)
        #
        GSFBuildTRT_ElectronPidTool = None
        if DetFlags.haveRIO.TRT_on(
        ) and not InDetFlags.doSLHC() and not InDetFlags.doHighPileup():
            GSFBuildTRT_ElectronPidTool = (
                TrackingCommon.getInDetTRT_ElectronPidTool(
                    name="GSFBuildTRT_ElectronPidTool", private=True))

        #
        #  InDet Track Summary Helper, no Association and no hole
        #  as we do not redo them (private = true)
        #
        GSFBuildTrackSummaryHelperTool = TrackingCommon.getInDetSummaryHelper(
            name="GSFBuildTrackSummaryHelperTool",
            AssoTool=None,
            HoleSearch=None,
            PixelToTPIDTool=GSFBuildPixelToTPIDTool,
            TestBLayerTool=GSFBuildTestBLayerTool,
            DoSharedHits=False,
            private=True)

        #
        #  TrkTrackSummaryTool: no shared hits  no hole search
        #  still public due to TrackParticleCreatorTool
        #
        GSFBuildInDetTrackSummaryTool = (
            TrackingCommon.getInDetTrackSummaryTool(
                name="GSFBuildInDetTrackSummaryTool",
                InDetSummaryHelperTool=GSFBuildTrackSummaryHelperTool,
                doSharedHits=False,
                doHolesInDet=False,
                TRT_ElectronPidTool=GSFBuildTRT_ElectronPidTool,
                PixelToTPIDTool=GSFBuildPixelToTPIDTool))

        #
        #  Track Particle Creator tool (private not in ToolSvc)
        #  But needs a public extrapolator and
        #  InDetTrackSummaryTool still...
        #
        from TrkParticleCreator.TrkParticleCreatorConf import (
            Trk__TrackParticleCreatorTool)

        GSFBuildInDetParticleCreatorTool = Trk__TrackParticleCreatorTool(
            name="GSFBuildInDetParticleCreatorTool",
            KeepParameters=True,
            Extrapolator=AtlasPublicExtrapolator(),
            TrackSummaryTool=GSFBuildInDetTrackSummaryTool,
            UseTrackSummaryTool=False)
        #
        #  Track slimming (private not in ToolSvc)
        #
        from TrkTrackSlimmingTool.TrkTrackSlimmingToolConf import (
            Trk__TrackSlimmingTool as ConfigurableTrackSlimmingTool)
        GSFBuildInDetTrkSlimmingTool = ConfigurableTrackSlimmingTool(
            name="GSFBuildInDetTrackSlimmingTool",
            KeepParameters=False,
            KeepOutliers=True)
        #
        #  Default Configuration
        #
        self.TrackRefitTool = GSFRefitterTool
        self.TrackParticleCreatorTool = GSFBuildInDetParticleCreatorTool
        self.TrackSlimmingTool = GSFBuildInDetTrkSlimmingTool
        self.TrackSummaryTool = GSFBuildInDetTrackSummaryTool
Ejemplo n.º 15
0
# ToolSvc += InDetTrigTrackSummaryToolWithHoleSearch
# if (InDetTrigFlags.doPrintConfigurables()):
#     print      InDetTrigTrackSummaryToolWithHoleSearch


from InDetTrigRecExample.InDetTrigConfigRecLoadTools import \
    InDetTrigTrackSummaryHelperTool, InDetTrigTrackSummaryTool, InDetTrigTrackSummaryToolSharedHits, \
    InDetTrigHoleSearchTool,InDetTrigExtrapolator

from TrigInDetConf.TrigInDetRecCommonTools import InDetTrigFastTrackSummaryTool, InDetTrigTrackSummaryToolSharedHitsWithTRTPid

from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
InDetTrigParticleCreatorTool = \
    Trk__TrackParticleCreatorTool( name = "InDetTrigParticleCreatorTool",
                                   Extrapolator = InDetTrigExtrapolator,
                                   TrackSummaryTool = InDetTrigTrackSummaryToolSharedHits,
                                   KeepParameters = False,
                                   ForceTrackSummaryUpdate = False,
                                   )

ToolSvc += InDetTrigParticleCreatorTool
if (InDetTrigFlags.doPrintConfigurables()):
    print InDetTrigParticleCreatorTool

InDetTrigParticleCreatorToolWithSummary = \
    Trk__TrackParticleCreatorTool( name = "InDetTrigParticleCreatorToolWithSummary",
                                   Extrapolator = InDetTrigExtrapolator,
                                   TrackSummaryTool = InDetTrigTrackSummaryToolSharedHits,
                                   KeepParameters = True,
                                   ForceTrackSummaryUpdate = True,
                                   )
Ejemplo n.º 16
0
#                                             UseClusterEnergy = False,
#                                             UseClusterPhi = False)
#ToolSvc += ccotBuilderTool
#
#print ccotBuilderTool
#
#from egammaTrackTools.egammaTrackToolsConf import egammaTrkRefitterTool
#electronRefitterToolGSFCalo = egammaTrkRefitterTool(name = 'electronRefitterToolGSFCalo',
#                                                  FitterTool = GSFTrackFitter,
#                                                  CCOTBuilder = ccotBuilderTool,
#                                                  useBeamSpot = False,
#                                                  useClusterPosition = True,
#                                                  OutputLevel = 4
#                                                  )
#
#ToolSvc += electronRefitterToolGSFCalo
#
#print electronRefitterToolGSFCalo
#
#include("egammaBremRec/ElectronAnalysisCommonTools.py")

from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
InDetParticleCreatorTool = Trk__TrackParticleCreatorTool(
    name="InDetParticleCreatorTool",
    KeepParameters=True,
    Extrapolator=InDetExtrapolator,
    TrackSummaryTool=InDetTrackSummaryTool,
    UseTrackSummaryTool=True,
    ForceTrackSummaryUpdate=False)
ToolSvc += InDetParticleCreatorTool
Ejemplo n.º 17
0
from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
FTK_TrackSummaryTool = Trk__TrackSummaryTool(
    name="FTK_TrackSummaryTool",
    InDetSummaryHelperTool=FTK_TrackSummaryHelperTool,
    InDetHoleSearchTool=None,
    doSharedHits=False,
    TRT_ElectronPidTool=None)
ToolSvc += FTK_TrackSummaryTool
print "added FTK_TrackSummaryTool to ToolSvc"

from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool

FTK_ParticleCreatorTool = Trk__TrackParticleCreatorTool(
    name=" FTK_ParticleCreatorTool",
    Extrapolator=InDetTrigExtrapolator,
    TrackSummaryTool=FTK_TrackSummaryHelperTool,
    KeepParameters=True,
    ForceTrackSummaryUpdate=False,  #summary update moved (in the slimmer now)
)

ToolSvc += FTK_ParticleCreatorTool
print FTK_ParticleCreatorTool
print " added FTK_ParticleCreatorTool to ToolSvc"

from TrigInDetConf.TrigInDetRecVtxTools import InDetTrigLinFactory, InDetTrigVxEdmCnv
from TrigInDetConf.TrigInDetRecVtxTools import InDetTrigLinFactory, InDetTrigVxEdmCnv

from TrkVertexSeedFinderTools.TrkVertexSeedFinderToolsConf import Trk__CrossDistancesSeedFinder
FTK_VtxSeedFinder = Trk__CrossDistancesSeedFinder(
    name="InDetTrigCrossDistancesSeedFinder",
    trackdistcutoff=1.,
Ejemplo n.º 18
0
def makeInDetPrecisionTracking(whichSignature,
                               verifier=False,
                               inputFTFtracks='TrigFastTrackFinder_Tracks',
                               outputTrackPrefixName="HLT_ID",
                               rois='EMViewRoIs',
                               doTRTextension=True):

    ptAlgs = [
    ]  #List containing all the precision tracking algorithms hence every new added alg has to be appended to the list

    #-----------------------------------------------------------------------------
    #                        Naming conventions

    algNamePrefix = "InDetTrigMT"
    #If signature specified add suffix to the algorithms
    signature = "_" + whichSignature if whichSignature else ''

    #Name settings for output Tracks/TrackParticles
    #This first part is for ambiguity solver tracks
    nameAmbiTrackCollection = "%s%sTrkTrack%s" % (outputTrackPrefixName,
                                                  'AmbSol', signature)

    #Tracks from TRT extension
    nameExtTrackCollection = "%s%sTrkTrack%s" % (outputTrackPrefixName,
                                                 'TRText', signature)

    #Note IDTrig suffix as a key to specify that this collection comes from precision tracking rather than fast tracking (FTF)
    outPTTracks = "%sTrkTrack_%s_%s" % (outputTrackPrefixName,
                                        remapSuffix(whichSignature), 'IDTrig')
    outPTTrackParticles = "%sTrack_%s_%s" % (
        outputTrackPrefixName, remapSuffix(whichSignature), 'IDTrig')

    #Atm there are mainly two output track collections one from ambiguity solver stage and one from trt,
    #we want to have the output name of the track collection the same whether TRT was run or not,
    #e.g InDetTrigPT_Tracks_electron
    if doTRTextension is True:
        nameExtTrackCollection = outPTTracks
    else:
        nameAmbiTrackCollection = outPTTracks

    #-----------------------------------------------------------------------------
    #                        Verifying input data for the algorithms

    #If run in views need to check data dependancies!
    #NOTE: this seems necessary only when PT is called from a different view than FTF otherwise causes stalls
    if verifier:
        verifier.DataObjects += [
            ('InDet::PixelGangedClusterAmbiguities',
             'StoreGateSvc+' + TrigPixelKeys.PixelClusterAmbiguitiesMap),
            ('TrackCollection', 'StoreGateSvc+' + inputFTFtracks)
        ]

    from AthenaCommon.AppMgr import ToolSvc
    #-----------------------------------------------------------------------------
    #                        Choose track summary tool
    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackSummaryTool
    from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackSummaryHelperToolSharedHits, InDetTrigTRT_ElectronPidTool

    trigTrackSummaryTool = Trk__TrackSummaryTool(
        name="%sTrackSummaryToolSharedHitsWithTRT%s" %
        (algNamePrefix, signature),
        InDetSummaryHelperTool=InDetTrigTrackSummaryHelperToolSharedHits,
        doSharedHits=True,
        doHolesInDet=True)

    if doTRTextension:
        if "electron" in whichSignature or "tau" in whichSignature:
            trigTrackSummaryTool.TRT_ElectronPidTool = InDetTrigTRT_ElectronPidTool

        Parameter_config = True
        SummaryTool_config = trigTrackSummaryTool
    else:
        SummaryTool_config = InDetTrigTrackSummaryTool
        Parameter_config = False

    ToolSvc += SummaryTool_config

    #-----------------------------------------------------------------------------
    #                        Ambiguity solving stage

    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigExtrapolator
    from InDetTrackScoringTools.InDetTrackScoringToolsConf import InDet__InDetAmbiScoringTool
    InDetTrigAmbiScoringTool = InDet__InDetAmbiScoringTool(
        name='%sScoringTool%s' % (algNamePrefix, signature),
        Extrapolator=InDetTrigExtrapolator,
        doEmCaloSeed=False,
        SummaryTool=SummaryTool_config)

    ToolSvc += InDetTrigAmbiScoringTool

    #TODO: Need option to change scoring tool based on the slice (beamgas)

    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigAmbiTrackSelectionTool

    from InDetRecExample import TrackingCommon as TrackingCommon
    from TrkAmbiguityProcessor.TrkAmbiguityProcessorConf import Trk__DenseEnvironmentsAmbiguityScoreProcessorTool as ScoreProcessorTool
    InDetTrigAmbiguityScoreProcessor = ScoreProcessorTool(
        name='%sAmbiguityScoreProcessor%s' % (algNamePrefix, signature),
        ScoringTool=InDetTrigAmbiScoringTool,
        AssociationTool=TrackingCommon.
        getInDetTrigPRDtoTrackMapToolGangedPixels(),
        SelectionTool=InDetTrigAmbiTrackSelectionTool)

    from TrkAmbiguitySolver.TrkAmbiguitySolverConf import Trk__TrkAmbiguityScore
    InDetTrigAmbiguityScore = Trk__TrkAmbiguityScore(
        name='%sAmbiguityScore%s' % (algNamePrefix, signature),
        TrackInput=[inputFTFtracks],
        TrackOutput='ScoredMap' + signature,
        AmbiguityScoreProcessor=InDetTrigAmbiguityScoreProcessor)

    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackFitter
    from TrkAmbiguityProcessor.TrkAmbiguityProcessorConf import Trk__SimpleAmbiguityProcessorTool as ProcessorTool
    InDetTrigMTAmbiguityProcessor = ProcessorTool(
        name='%sAmbiguityProcessor%s' % (algNamePrefix, signature),
        Fitter=InDetTrigTrackFitter,
        ScoringTool=InDetTrigAmbiScoringTool,
        AssociationTool=TrackingCommon.
        getInDetTrigPRDtoTrackMapToolGangedPixels(),
        TrackSummaryTool=SummaryTool_config,
        SelectionTool=InDetTrigAmbiTrackSelectionTool)

    ToolSvc += InDetTrigMTAmbiguityProcessor

    from TrkAmbiguitySolver.TrkAmbiguitySolverConf import Trk__TrkAmbiguitySolver
    InDetTrigMTAmbiguitySolver = Trk__TrkAmbiguitySolver(
        name='%sAmbiguitySolver%s' % (algNamePrefix, signature),
        TrackInput='ScoredMap' + signature,
        TrackOutput=nameAmbiTrackCollection,
        AmbiguityProcessor=InDetTrigMTAmbiguityProcessor)

    ptAlgs.extend([InDetTrigAmbiguityScore, InDetTrigMTAmbiguitySolver])
    if doTRTextension:

        proxySignature = whichSignature
        if "tau" in whichSignature:
            proxySignature = "tau"

        #-----------------------------------------------------------------------------
        #                        TRT data preparation
        from AthenaCommon.GlobalFlags import globalflags
        #Only add raw data decoders if we're running over raw data
        TRT_RDO_Key = "TRT_RDOs"
        if globalflags.InputFormat.is_bytestream():
            TRT_RDO_Key = TrigTRTKeys.RDOs
            from TRT_RawDataByteStreamCnv.TRT_RawDataByteStreamCnvConf import TRT_RodDecoder
            InDetTRTRodDecoder = TRT_RodDecoder(
                name="%sTRTRodDecoder%s" % (algNamePrefix, signature),
                LoadCompressTableDB=True
            )  #(globalflags.DataSource() != 'geant4'))
            ToolSvc += InDetTRTRodDecoder

            from TRT_RawDataByteStreamCnv.TRT_RawDataByteStreamCnvConf import TRTRawDataProviderTool
            InDetTRTRawDataProviderTool = TRTRawDataProviderTool(
                name="%sTRTRawDataProviderTool%s" % (algNamePrefix, signature),
                Decoder=InDetTRTRodDecoder)
            ToolSvc += InDetTRTRawDataProviderTool

            # load the TRTRawDataProvider
            from TRT_RawDataByteStreamCnv.TRT_RawDataByteStreamCnvConf import TRTRawDataProvider
            InDetTRTRawDataProvider = TRTRawDataProvider(
                name="%sTRTRawDataProvider%s" % (algNamePrefix, signature),
                RDOKey=TrigTRTKeys.RDOs,
                ProviderTool=InDetTRTRawDataProviderTool)
            InDetTRTRawDataProvider.isRoI_Seeded = True
            InDetTRTRawDataProvider.RoIs = rois

            ptAlgs.append(InDetTRTRawDataProvider)

        #-----------------------------------------------------------------------------
        #                        TRT extension
        # Keep track that this needs to have a switch between DAF and XK
        # trkExtensionType = 'XK'
        # if InDetTrigFlags.trtExtensionType() is 'DAF' :

        from InDetTrigRecExample.InDetTrigCommonTools import InDetTrigTRT_DriftCircleTool

        from InDetTrigRecExample.InDetTrigSliceSettings import InDetTrigSliceSettings
        from InDetPrepRawDataFormation.InDetPrepRawDataFormationConf import InDet__TRT_RIO_Maker
        InDetTrigTRTRIOMaker = InDet__TRT_RIO_Maker(
            name="%sTRTDriftCircleMaker%s" % (algNamePrefix, signature),
            TRTRIOLocation=TrigTRTKeys.DriftCircles,
            TRTRDOLocation=TRT_RDO_Key,
            #EtaHalfWidth = InDetTrigSliceSettings[('etaHalfWidth',signature)],
            #PhiHalfWidth = InDetTrigSliceSettings[('phiHalfWidth',signature)],
            #doFullScan =   InDetTrigSliceSettings[('doFullScan',signature)],
            TRT_DriftCircleTool=InDetTrigTRT_DriftCircleTool)
        InDetTrigTRTRIOMaker.isRoI_Seeded = True
        InDetTrigTRTRIOMaker.RoIs = rois

        from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigPatternPropagator, InDetTrigPatternUpdator
        from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCuts
        InDetTrigCutValues = EFIDTrackingCuts

        #from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigSiDetElementsRoadMaker, InDetTrigSiComTrackFinder

        # Condition algorithm for InDet__TRT_DetElementsRoadMaker_xk
        from AthenaCommon.AlgSequence import AthSequencer
        condSeq = AthSequencer("AthCondSeq")

        InDetTRTRoadAlgName = "%sTRT_DetElementsRoadCondAlg_xk" % (
            algNamePrefix)

        if not hasattr(condSeq, InDetTRTRoadAlgName):
            from TRT_DetElementsRoadTool_xk.TRT_DetElementsRoadTool_xkConf import InDet__TRT_DetElementsRoadCondAlg_xk

            # condSeq += InDet__TRT_DetElementsRoadCondAlg_xk(name = "%sTRT_DetElementsRoadCondAlg_xk%s"%(algNamePrefix, signature) )
            condSeq += InDet__TRT_DetElementsRoadCondAlg_xk(
                name=InDetTRTRoadAlgName)

        from TRT_DetElementsRoadTool_xk.TRT_DetElementsRoadTool_xkConf import InDet__TRT_DetElementsRoadMaker_xk
        InDetTrigTRTDetElementsRoadMaker = InDet__TRT_DetElementsRoadMaker_xk(
            name='%sTRTRoadMaker%s' % (algNamePrefix, signature),
            #DetectorStoreLocation = 'DetectorStore',
            #TRTManagerLocation    = 'TRT',
            MagneticFieldMode='MapSolenoid',
            PropagatorTool=InDetTrigPatternPropagator)

        ToolSvc += InDetTrigTRTDetElementsRoadMaker

        #TODO implement new configuration of circle cut
        from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTRTDriftCircleCut
        from TRT_TrackExtensionTool_xk.TRT_TrackExtensionTool_xkConf import InDet__TRT_TrackExtensionTool_xk
        InDetTrigTRTExtensionTool = InDet__TRT_TrackExtensionTool_xk(
            name="%sTrackExtensionTool%s" % (algNamePrefix, signature),
            MagneticFieldMode='MapSolenoid',  # default
            TRT_ClustersContainer=TrigTRTKeys.DriftCircles,  # default
            TrtManagerLocation='TRT',  # default
            PropagatorTool=InDetTrigPatternPropagator,
            UpdatorTool=InDetTrigPatternUpdator,
            #RIOonTrackToolYesDr = # default for now
            #RIOonTrackToolNoDr  = # default for now
            RoadTool=InDetTrigTRTDetElementsRoadMaker,
            DriftCircleCutTool=InDetTrigTRTDriftCircleCut,
            MinNumberDriftCircles=EFIDTrackingCuts.minTRTonTrk(),
            ScaleHitUncertainty=2.,
            RoadWidth=20.,
            UseParameterization=EFIDTrackingCuts.useParameterizedTRTCuts())

        ToolSvc += InDetTrigTRTExtensionTool

        #          TODO add second option of track extension
        #                   elif InDetTrigFlags.trtExtensionType() is 'DAF' :

        from TRT_TrackExtensionAlg.TRT_TrackExtensionAlgConf import InDet__TRT_TrackExtensionAlg
        InDetTrigTRTextensionAlg = InDet__TRT_TrackExtensionAlg(
            name="%sTrackExtensionAlg%s" % (algNamePrefix, signature),
            InputTracksLocation=nameAmbiTrackCollection,
            TrackExtensionTool=InDetTrigTRTExtensionTool,
            ExtendedTracksLocation='ExtendedTrackMap')
        #-----------------------------------------------------------------------------
        #                        TRT processor

        #TODO: do I need a new fitter for this? Or can I use the same one?
        #TODO In Run2 option for cosmic
        #InDetTrigExtensionFitter = InDetTrigTrackFitter
        #from InDetTrackScoringTools.InDetTrackScoringToolsConf import InDet__InDetAmbiScoringTool
        InDetTrigExtScoringTool = InDet__InDetAmbiScoringTool(
            name='%sExtScoringTool%s' % (algNamePrefix, signature),
            Extrapolator=InDetTrigExtrapolator,
            SummaryTool=SummaryTool_config,
            useAmbigFcn=True,  # this is NewTracking  
            maxRPhiImp=InDetTrigCutValues.maxPrimaryImpact(),
            maxZImp=InDetTrigCutValues.maxZImpact(),
            maxEta=InDetTrigCutValues.maxEta(),
            minSiClusters=InDetTrigCutValues.minClusters(),
            maxSiHoles=InDetTrigCutValues.maxHoles(),
            maxDoubleHoles=InDetTrigCutValues.maxDoubleHoles(),
            usePixel=InDetTrigCutValues.usePixel(),
            useSCT=InDetTrigCutValues.useSCT(),
            doEmCaloSeed=False,
            minTRTonTrk=InDetTrigCutValues.minTRTonTrk(),
            #useSigmaChi2   = False # tuning from Thijs
            DriftCircleCutTool=InDetTrigTRTDriftCircleCut,
        )

        InDetTrigExtScoringTool.minPt = InDetTrigSliceSettings[(
            'pTmin', proxySignature)]

        ToolSvc += InDetTrigExtScoringTool

        from InDetExtensionProcessor.InDetExtensionProcessorConf import InDet__InDetExtensionProcessor
        InDetTrigExtensionProcessor = InDet__InDetExtensionProcessor(
            name="%sExtensionProcessor%s" % (algNamePrefix, signature),
            TrackName=nameAmbiTrackCollection,
            #Cosmics           = InDetFlags.doCosmics(),
            ExtensionMap='ExtendedTrackMap',
            NewTrackName=nameExtTrackCollection,
            TrackFitter=InDetTrigTrackFitter,
            TrackSummaryTool=SummaryTool_config,
            ScoringTool=
            InDetTrigExtScoringTool,  #TODO do I provide the same tool as for ambiguity solver?
            suppressHoleSearch=False)  # does not work properly
        #Check these option after DAF is implemented
        #tryBremFit         = InDetFlags.doBremRecovery(),
        #caloSeededBrem     = InDetFlags.doCaloSeededBrem(),
        #pTminBrem          = NewTrackingCuts.minPTBrem() )
        #RefitPrds          = not (InDetFlags.refitROT() or (InDetFlags.trtExtensionType() is 'DAF')))

        #InDetTRTExtension.OutputLevel = VERBOSE
        ptAlgs.extend([
            InDetTrigTRTRIOMaker, InDetTrigTRTextensionAlg,
            InDetTrigExtensionProcessor
        ])

    #-----------------------------------------------------------------------------
    #                      Track particle conversion algorithm
    #
    #
    """ Use the finalised track collection and convert it to container of xAOD Track Particles  """

    from TrkParticleCreator.TrkParticleCreatorConf import Trk__TrackParticleCreatorTool
    InDetTrigMTxAODParticleCreatorTool = Trk__TrackParticleCreatorTool(
        name="%sxAODParticleCreatorTool%s" % (algNamePrefix, signature),
        Extrapolator=InDetTrigExtrapolator,
        KeepParameters=Parameter_config,
        #TrackSummaryTool = InDetTrigTrackSummaryToolSharedHits)
        TrackSummaryTool=SummaryTool_config)

    ToolSvc += InDetTrigMTxAODParticleCreatorTool
    log.debug(InDetTrigMTxAODParticleCreatorTool)

    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackCollectionCnvTool
    InDetTrigMTxAODTrackCollectionCnvTool = xAODMaker__TrackCollectionCnvTool(
        name="%sxAODTrackCollectionCnvTool%s" % (algNamePrefix, signature),
        TrackParticleCreator=InDetTrigMTxAODParticleCreatorTool)

    ToolSvc += InDetTrigMTxAODTrackCollectionCnvTool
    log.debug(InDetTrigMTxAODTrackCollectionCnvTool)

    #This one shouldn't be necessary
    #TODO: obsolete turn off
    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__RecTrackParticleContainerCnvTool
    InDetTrigMTRecTrackParticleContainerCnvTool = xAODMaker__RecTrackParticleContainerCnvTool(
        name="%sRecTrackContainerCnvTool%s" % (algNamePrefix, signature),
        TrackParticleCreator=InDetTrigMTxAODParticleCreatorTool)

    ToolSvc += InDetTrigMTRecTrackParticleContainerCnvTool
    #print (InDetTrigMTRecTrackParticleContainerCnvTool)

    from TrigEDMConfig.TriggerEDMRun3 import recordable
    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackParticleCnvAlg
    InDetTrigMTxAODTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(
        name="%sxAODParticleCreatorAlg%s" % (algNamePrefix, signature),
        # Properties below are used for:  TrackCollection -> xAOD::TrackParticle
        ConvertTracks=
        True,  #Turn on  retrieve of TrackCollection, false by default
        TrackContainerName=outPTTracks,
        xAODTrackParticlesFromTracksContainerName=recordable(
            outPTTrackParticles),
        TrackCollectionCnvTool=InDetTrigMTxAODTrackCollectionCnvTool,
        ## Properties below are used for: Rec:TrackParticle, aod -> xAOD::TrackParticle (Turn off)
        ConvertTrackParticles=
        False,  # Retrieve of Rec:TrackParticle, don't need this atm
        xAODContainerName='',
        RecTrackParticleContainerCnvTool=
        InDetTrigMTRecTrackParticleContainerCnvTool,
        TrackParticleCreator=InDetTrigMTxAODParticleCreatorTool)

    #allViewAlgorithms += InDetTrigMTxAODTrackParticleCnvAlg
    log.debug(InDetTrigMTxAODTrackParticleCnvAlg)
    ptAlgs.append(InDetTrigMTxAODTrackParticleCnvAlg)

    #ToolSvc.InDetTrigHoleSearchTool.SctSummaryTool.InDetTrigInDetSCT_FlaggedConditionTool.SCT_FlaggedCondData = "SCT_FlaggedCondData_TRIG"

    #Potentialy other algs with more collections?
    #Might Drop the list in the end and keep just one output key
    nameTrackCollections = [outPTTracks]
    nameTrackParticles = [outPTTrackParticles]

    #Return list of Track keys, TrackParticle keys, and PT algs
    return nameTrackCollections, nameTrackParticles, ptAlgs