def GetCachedTrackSelectorTool():
    from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool
    from AthenaCommon.AppMgr import ToolSvc
    ToolSvc += InDet__InDetDetailedTrackSelectorTool(
        "MyDetailedTrackSelectorTool")

    ToolSvc.MyDetailedTrackSelectorTool.pTMin = 500  # MeV
    ToolSvc.MyDetailedTrackSelectorTool.etaMax = 2.5
    ToolSvc.MyDetailedTrackSelectorTool.nHitBLayer = 0
    ToolSvc.MyDetailedTrackSelectorTool.nHitPix = 1
    ToolSvc.MyDetailedTrackSelectorTool.nHitBLayerPlusPix = 0
    ToolSvc.MyDetailedTrackSelectorTool.nHitSct = 6
    ToolSvc.MyDetailedTrackSelectorTool.nHitSi = 7
    ToolSvc.MyDetailedTrackSelectorTool.nHitTrt = 0
    ToolSvc.MyDetailedTrackSelectorTool.IPd0Max = 1.5  # d0 cut
    ToolSvc.MyDetailedTrackSelectorTool.IPz0Max = 1.5  # z0*sin(theta) cut
    ToolSvc.MyDetailedTrackSelectorTool.z0Max = 200  # z0 cut
    ToolSvc.MyDetailedTrackSelectorTool.fitChi2OnNdfMax = 10000  #3
    ToolSvc.MyDetailedTrackSelectorTool.d0significanceMax = -1.
    ToolSvc.MyDetailedTrackSelectorTool.z0significanceMax = -1.
    ToolSvc.MyDetailedTrackSelectorTool.Extrapolator = ToolSvc.InDetExtrapolator

    ToolSvc.MyDetailedTrackSelectorTool.OutputLevel = 3

    from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
    atst = AtlasTrackSummaryTool()
    ToolSvc += atst
    ToolSvc.MyDetailedTrackSelectorTool.TrackSummaryTool = atst
    from JetSubStructure.JetSubStructureConf import JetSubStructure__CachedTrackSelectorTool
    ToolSvc += JetSubStructure__CachedTrackSelectorTool(
        "CachedTrackSelectorTool")
    ToolSvc.CachedTrackSelectorTool.TrackSelector = ToolSvc.MyDetailedTrackSelectorTool

    return ToolSvc.CachedTrackSelectorTool
Exemplo 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
                                            )
Exemplo n.º 3
0
    def __init__(self, name="VrtSecInclusive"):

        from __main__ import ToolSvc
        mlog = logging.getLogger('VrtSecInclusive::__init__ ')
        mlog.info("entering")

        from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter
        TrkVKalVrtFitter = Trk__TrkVKalVrtFitter()
        #        print TrkVKalVrtFitter
        ToolSvc += TrkVKalVrtFitter

        from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
        AtlasTrackSummaryTool = AtlasTrackSummaryTool()
        #        print AtlasTrackSummaryTool
        mlog.info("AtlasTrackSummaryTool for VrtSecInclusive created")
        ToolSvc += AtlasTrackSummaryTool

        VKalVrtAthena__VrtSecInclusive.__init__(self, name)
Exemplo 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
Exemplo n.º 5
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
                                              )
    def __init__(self, name="InDetVKalPriVxFinder"):        

        from AthenaCommon.AppMgr import ToolSvc
        mlog = logging.getLogger( 'InDetVKalPriVxFinder::__init__ ' )
        mlog.info("entering")


        from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter
        TrkVKalVrtPFitter = Trk__TrkVKalVrtFitter()
        ToolSvc += TrkVKalVrtPFitter

        from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
        AtlasTrackSummaryTool = AtlasTrackSummaryTool()
        mlog.info("AtlasTrackSummaryTool for InDetVKalPriVxFinder created")
        ToolSvc += AtlasTrackSummaryTool


        InDet__InDetVKalPriVxFinderTool.__init__( self,name="InDetVKalPriVxFinderTool", 
	                                          TrackSummaryTool=AtlasTrackSummaryTool,
						  FitterTool=TrkVKalVrtPFitter )
Exemplo n.º 7
0
include.block ( "MuonSegmentTaggerTools/MuonSegmentTaggerTools_jobOptions.py" )
#-----------------------------------------------------------------
from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
MuTagExtrapolator = AtlasExtrapolator()
from TrackToSegmentTools.TrackToSegmentToolsConf import TrackToSegmentTool
ConfiguredForAllStationsTrackToSegmentTool = TrackToSegmentTool(
    name                  = "ConfiguredForAllStationsTrackToSegmentTool" ,
    IExtrapolator         = MuTagExtrapolator                            ,
    addMultipleScattering = 0                                            ,
    ReverseIDTrack        = 0                                            )
ToolSvc += ConfiguredForAllStationsTrackToSegmentTool
#print ConfiguredForAllStationsTrackToSegmentTool

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

from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool

from AthenaCommon.GlobalFlags import globalflags
from RecExConfig.RecFlags import rec

MuTagIMOInDetDetailedTrackSelectorTool = InDet__InDetDetailedTrackSelectorTool(
      name                 = "MuTagIMOInDetDetailedTrackSelectorTool",
      pTMin                = 2000*MeV,
      IPd0Max              = 50.0*mm,
      IPz0Max              = 9999.0*mm,
      z0Max                = 9999.0*mm,
      useTrackSummaryInfo  = False,
      nHitBLayer           = 0,
Exemplo n.º 8
0
def createJSTrackJets(theseq, myjetfinder, myjetdr):

    # Setup tool so that it can be used
    JS_MyJetTrackZClusterTool = JetTrackZClusterTool(
        "JS_JetTrackZClusterTool_%s%d" % (myjetfinder, myjetdr * 10))

    JS_MyJetTrackZClusterTool.TrackJetMinMulti = 2
    JS_MyJetTrackZClusterTool.TrackJetMinPt = 4000  # MeV
    JS_MyJetTrackZClusterTool.UseVtxSeeding = True
    JS_MyJetTrackZClusterTool.DeltaZRange = 10000.0
    JS_MyJetTrackZClusterTool.TrackParticleContainerName = "TrackParticleCandidate"
    JS_MyJetTrackZClusterTool.VxContainerName = "VxPrimaryCandidate"
    JS_MyJetTrackZClusterTool.OutputLevel = 3

    #--------------------------------------------------------------
    # TrackSelector Tool Options
    #--------------------------------------------------------------

    from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool
    from AthenaCommon.AppMgr import ToolSvc
    trackSelector = InDet__InDetDetailedTrackSelectorTool(
        "JS_MyDetailedTrackSelectorTool")
    ToolSvc += trackSelector

    #See InDetDetailedTrackSelectorTool.h for additional options and defaults

    trackSelector.pTMin = 500  # MeV
    trackSelector.etaMax = 2.5
    trackSelector.nHitBLayer = 0
    trackSelector.nHitPix = 0
    trackSelector.nHitBLayerPlusPix = 1  #0
    trackSelector.nHitSct = 6  #0
    trackSelector.nHitSi = 7  #7
    trackSelector.nHitTrt = 0
    trackSelector.IPd0Max = 1.0  #1 # d0 cut
    trackSelector.IPz0Max = 1.5  # z0*sin(theta) cut
    trackSelector.z0Max = 200  # z0 cut
    trackSelector.fitChi2OnNdfMax = 10000  #1000  #3.5 #3
    trackSelector.d0significanceMax = -1.
    trackSelector.z0significanceMax = -1.

    # Try to set InDet default tools to avoid strange bugs
    try:
        trackSelector.Extrapolator = ToolSvc.InDetExtrapolator
    except:
        from AthenaCommon.Logging import logging
        l = logging.getLogger("TrackSelectionForJets::setupTrackSelectorTool")
        l.warning(
            "No ToolSvc.InDetExtrapolator available. Tracking might cause infinite loop"
        )
        pass

    #trackSelector.OutputLevel = 3

    from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
    atst = AtlasTrackSummaryTool()
    ToolSvc += atst
    trackSelector.TrackSummaryTool = atst

    ##
    from JetSubStructure.JetSubStructureConf import JetSubStructure__CachedTrackSelectorTool
    CachedTrackSelector = JetSubStructure__CachedTrackSelectorTool(
        "JS_CachedTrackSelectorTool")
    ToolSvc += CachedTrackSelector

    CachedTrackSelector.TrackSelector = trackSelector

    ##
    # Tell "JetTrackZClusterTool" to use this tool
    JS_MyJetTrackZClusterTool.TrackSelector = CachedTrackSelector.TrackSelector

    #--------------------------------------------------------------
    # JetFinder Tool Options (Anti-Kt)
    #--------------------------------------------------------------

    from JetRec.JetRecConf import JetFastJetFinderTool
    myfastfinder = JetFastJetFinderTool("JS_%s%dTrackJetFinder" %
                                        (myjetfinder, myjetdr * 10))

    if myjetfinder == 'AntiKt':
        myfastfinder.Algorithm = "anti-kt"
    elif myjetfinder == 'CamKt':
        myfastfinder.Algorithm = "cambridge"

    myfastfinder.Radius = myjetdr
    myfastfinder.RecombScheme = "E"
    myfastfinder.Strategy = "Best"
    myfastfinder.FailIfMisconfigured = True
    myfastfinder.Inclusive = True
    myfastfinder.CalculateJetArea = False
    myfastfinder.StoreNFlipValues = 0

    ToolSvc += myfastfinder

    # Tell "TrackZClusterTool" to use this tool
    JS_MyJetTrackZClusterTool.JetFinder = myfastfinder

    #-------------------------------------------------------------
    # Jet Getter
    #-------------------------------------------------------------

    JS_TrackZToolList = [
        JS_MyJetTrackZClusterTool,
        JetSignalSelectorTool('JSTZ_JetFinalPtCut',
                              UseTransverseMomentum=True,
                              MinimumSignal=jetFlags.finalMinEt()),
        JetSorterTool('JSTZ_JetSorter', SortOrder="ByPtDown")
    ]

    mytrackzjetgetter = make_StandardJetGetter(myjetfinder,
                                               myjetdr,
                                               'TrackZ',
                                               seq=theseq,
                                               allTools=JS_TrackZToolList)

    return mytrackzjetgetter
Exemplo n.º 9
0
def trackIsolationTool(name,
                       doTrackIsolation=False,
                       doSumConversionTracks=True,
                       trackParticleCollection='TrackParticleCandidate',
                       conversionContainer='ConversionCandidate',
                       calorimeterCellContainer=None,
                       onlyEM=False,
                       coreDeltaR=0.05,
                       trackToVertexTool=None,
                       trackSummaryTool=None,
                       extrapolator=None,
                       trackSelector=None,
                       pTMin=1000 * MeV,
                       IPd0Max=10.0 * mm,
                       IPz0Max=10.0 * mm,
                       z0Max=10.0 * mm,
                       useTrackSummaryInfo=True,
                       nHitBLayer=0,
                       nHitPix=0,
                       nHitBLayerPlusPix=0,
                       nHitSct=0,
                       nHitSi=4,
                       nHitTrt=0,
                       useTrackQualityInfo=False,
                       **kw):

    from AthenaCommon.AppMgr import ToolSvc

    if calorimeterCellContainer == None:
        calorimeterCellContainer = \
          'AODCellContainer' if rec.readAOD() else 'AllCalo'

    if trackToVertexTool == None:
        from TrackToVertex.TrackToVertexConf import Reco__TrackToVertex
        trackToVertexTool = Reco__TrackToVertex()
        ToolSvc += trackToVertexTool

    if trackSummaryTool == None:
        from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
        trackSummaryTool = AtlasTrackSummaryTool()
        ToolSvc += trackSummaryTool

    if extrapolator == None:
        from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
        extrapolator = AtlasExtrapolator()
        ToolSvc += extrapolator

    if trackSelector == None:
        selname = name + 'TrackSelector'
        from AthenaCommon.BeamFlags import jobproperties
        if (jobproperties.Beam.beamType() == 'cosmics'
                or jobproperties.Beam.beamType() == 'singlebeam'):

            trackSelector = InDet__InDetDetailedTrackSelectorTool(
                name=selname,
                pTMin=0 * MeV,
                IPd0Max=9999 * mm,
                IPz0Max=9999 * mm,
                z0Max=9999 * mm,
                useTrackSummaryInfo=False,
                useTrackQualityInfo=False,
                TrackSummaryTool=trackSummaryTool,
                Extrapolator=extrapolator)
        else:
            trackSelector = InDet__InDetDetailedTrackSelectorTool(
                name=selname,
                pTMin=pTMin,
                IPd0Max=IPd0Max,
                IPz0Max=IPz0Max,
                z0Max=z0Max,
                useTrackSummaryInfo=useTrackSummaryInfo,
                nHitBLayer=nHitBLayer,
                nHitPix=nHitPix,
                nHitBLayerPlusPix=nHitBLayerPlusPix,
                nHitSct=nHitSct,
                nHitSi=nHitSi,
                nHitTrt=nHitTrt,
                useTrackQualityInfo=useTrackQualityInfo,
                TrackSummaryTool=trackSummaryTool,
                Extrapolator=extrapolator,
                **kw)
        ToolSvc += trackSelector

    tool = TrackIsolationTool(name,
                              DoTrackIsolation=doTrackIsolation,
                              DoSumConversionTracks=doSumConversionTracks,
                              TrackParticleCollection=trackParticleCollection,
                              ConversionContainer=conversionContainer,
                              CaloCellContainer=calorimeterCellContainer,
                              OnlyEM=onlyEM,
                              CoreDeltaR=coreDeltaR,
                              ExtrapolTrackToCaloTool=ToolSvc.TrackInCaloTools,
                              TrackToVertex=trackToVertexTool,
                              TrackSelector=trackSelector)
    ToolSvc += tool
    return tool
theApp.Dlls += ["InDetVKalVxInJetTool"]
theApp.Dlls += ["TrkVKalVrtFitter"]

from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
AtlasTrackSummaryTool = AtlasTrackSummaryTool()
ToolSvc += AtlasTrackSummaryTool
print AtlasTrackSummaryTool
Exemplo n.º 11
0
#print ToolSvc.ExtrapolateToCaloTool.CaloDepthTool
#print ToolSvc.ExtrapolateToCaloTool.CaloDepthTool.DepthChoice
#print exToCalo
#print "------------------------------------------------->>>extrapolToCalo<<<---------------------------------------------------"

##########################################################################################################

##########################################################################################################
#  Configure the InDetConversionFinder
############################################################################################################

theAtlasMagField = CfgMgr.Trk__MagneticFieldTool('theAtlasMagField')
ToolSvc += theAtlasMagField

from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool
theAtlasTrackSummaryTool = AtlasTrackSummaryTool("theAtlasTrackSummaryTool")

ToolSvc += theAtlasTrackSummaryTool

from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter
InDetConversionVxFitterTool = Trk__TrkVKalVrtFitter(
    name="InDetConversionVxFitter",
    # Extrapolator        = InDetExtrapolator,
    Extrapolator=theAtlasExtrapolator,
    IterationNumber=30,
    #MagFieldSvc         = InDetMagField,
    MagFieldSvc=theAtlasMagField,
    Robustness=6,
    #This line has no more meaning                      Constraint          = 12,
    usePhiCnst=True,
    useThetaCnst=True,