コード例 #1
0
def toolSVForIPTool_IP2D(name, useBTagFlagsDefaults=True, **options):
    """Sets up a SVForIPTool_IP2D tool and returns it.

    The following options have BTaggingFlags defaults:

    OutputLevel                         default: BTaggingFlags.OutputLevel

    input:             name: The name of the tool (should be unique).
      useBTagFlagsDefaults : Whether to use BTaggingFlags defaults for options that are not specified.
                  **options: Python dictionary with options for the tool.
    output: The actual tool, which can then by added to ToolSvc via ToolSvc += output."""
    if useBTagFlagsDefaults:
        defaults = {'OutputLevel': BTaggingFlags.OutputLevel}
        for option in defaults:
            options.setdefault(option, defaults[option])
    options['name'] = name
    from JetTagTools.JetTagToolsConf import Analysis__SVForIPTool
    return Analysis__SVForIPTool(**options)
コード例 #2
0
if BTaggingFlags.OutputLevel < 3:
    print IP3DSpcPosNewLikelihood

# each tagger needs own instance, can't be shared! ( -> not sure here ... ask Laurent, JB)
from JetTagTools.JetTagToolsConf import Analysis__TrackSelector
IP3DSpcPosTrackSelector = Analysis__TrackSelector(
    useBLayerHitPrediction=True,
    name="IP3DSpcPosTrackSelector",
    trackToVertexTool=BTagTrackToVertexTool,
    OutputLevel=BTaggingFlags.OutputLevel)
ToolSvc += IP3DSpcPosTrackSelector
if BTaggingFlags.OutputLevel < 3:
    print IP3DSpcPosTrackSelector

from JetTagTools.JetTagToolsConf import Analysis__SVForIPTool
SVForIPTool_IP3DSpcPos = Analysis__SVForIPTool(
    name="SVForIPTool_IP3DSpcPos", OutputLevel=BTaggingFlags.OutputLevel)

ToolSvc += SVForIPTool_IP3DSpcPos
if BTaggingFlags.OutputLevel < 3:
    print SVForIPTool_IP3DSpcPos

from JetTagTools.JetTagToolsConf import Analysis__BasicTrackGradeFactory
IP3DSpcPosBasicTrackGradeFactory = Analysis__BasicTrackGradeFactory(
    name="IP3DSpcPosBasicTrackGradeFactory",
    OutputLevel=BTaggingFlags.OutputLevel,
    TrackSummaryTool=None,
    useSharedHitInfo=True)

from JetTagTools.JetTagToolsConf import Analysis__DetailedTrackGradeFactory
IP3DSpcPosDetailedTrackGradeFactory = Analysis__DetailedTrackGradeFactory(
    name="IP3DSpcPosDetailedTrackGradeFactory",
コード例 #3
0
def add_ipfordg(ToolSvc,
                calibration_tool,
                BTaggingFlags,
                track_to_vertex_tool,
                track_to_vertex_ip_estimator,
                do_neg=False):
    # each tagger needs own instance, can't be shared!
    from JetTagTools.JetTagToolsConf import Analysis__NewLikelihoodTool
    likelihood_tool = Analysis__NewLikelihoodTool(
        name="IPFordGNegProbTool" if do_neg else "IPFordGProbTool",
        OutputLevel=BTaggingFlags.OutputLevel,
        taggerName="IP3D",
        calibrationTool=calibration_tool,
    )
    ToolSvc += likelihood_tool
    if BTaggingFlags.OutputLevel < 3:
        print likelihood_tool

    # each tagger needs own instance, can't be shared! ( -> not sure here ... ask Laurent, JB)
    from JetTagTools.JetTagToolsConf import Analysis__TrackSelector
    track_selector = Analysis__TrackSelector(
        useBLayerHitPrediction=True,
        name="IPFordGNegTrackSel" if do_neg else "IPFordGTrackSel",
        trackToVertexTool=track_to_vertex_tool,
        OutputLevel=BTaggingFlags.OutputLevel)
    ToolSvc += track_selector
    if BTaggingFlags.OutputLevel < 3:
        print track_selector

    from JetTagTools.JetTagToolsConf import Analysis__SVForIPTool
    sv_for_ip_tool = Analysis__SVForIPTool(
        name="SVForIPTool_IPFordGNeg" if do_neg else "SVForIPTool_IPFordG",
        OutputLevel=BTaggingFlags.OutputLevel)

    ToolSvc += sv_for_ip_tool
    if BTaggingFlags.OutputLevel < 3:
        print sv_for_ip_tool

    from JetTagTools.JetTagToolsConf import (
        Analysis__DetailedTrackGradeFactory)
    detailed_track_grade_factory = Analysis__DetailedTrackGradeFactory(
        name="IPFordGNegDetailedTGF" if do_neg else "IPFordGNegDetailedTGF",
        OutputLevel=BTaggingFlags.OutputLevel,
        hitBLayerGrade=True,
        TrackSummaryTool=None,
        useDetailSharedHitInfo=True,
        useSharedHitInfo=True)

    ToolSvc += detailed_track_grade_factory

    if BTaggingFlags.OutputLevel < 3:
        print basic_track_grade_factory
        print detailed_track_grade_factory

    if do_neg:
        flip_args = dict(
            usePosIP=True,
            useNegIP=False,
            flipIPSign=True,
        )
        vx_tool_name = "InDetVKalVxInJetToolFordGNeg"
    else:
        flip_args = dict()
        vx_tool_name = "InDetVKalVxInJetToolFordG"

    from InDetVKalVxInJetTool.InDetVKalVxInJetToolConf import (
        InDet__InDetVKalVxInJetTool)
    vx_in_jet_tool = InDet__InDetVKalVxInJetTool(
        name=vx_tool_name,
        TrackSummaryTool=None,  #Do not need it in b-tagging
        OutputLevel=BTaggingFlags.OutputLevel)
    ToolSvc += vx_in_jet_tool

    from JetTagTools.JetTagToolsConf import Analysis__IPTag
    ip3d_tool = Analysis__IPTag(
        # IPTag strips the Tag of the end of the name and uses the rest as
        # the TagInfo object name
        name="IPFordGNegTag" if do_neg else "IPFordGTag",
        Runmodus=BTaggingFlags.Runmodus,
        referenceType=BTaggingFlags.ReferenceType,
        impactParameterView="3D",
        OutputLevel=BTaggingFlags.OutputLevel,
        LikelihoodTool=likelihood_tool,
        trackSelectorTool=track_selector,
        trackToVertexTool=track_to_vertex_tool,
        trackGradePartitions=[
            "Good", "BlaShared", "PixShared", "SctShared", "0HitBLayer"
        ],
        RejectBadTracks=False,
        writeInfoPlus=False,
        originalTPCollectionName=BTaggingFlags.TrackParticleCollectionName,
        jetCollectionList=BTaggingFlags.Jets,
        jetWithInfoPlus=BTaggingFlags.JetsWithInfoPlus,
        SecVxFinderNameForV0Removal=vx_tool_name,
        SecVxFinderNameForIPSign=vx_tool_name,
        SVForIPTool=sv_for_ip_tool,
        trackGradeFactory=detailed_track_grade_factory,
        TrackToVertexIPEstimator=track_to_vertex_ip_estimator,
        UseCHypo=True,

        #switch to true (better!) when creating new PDFs
        unbiasIPEstimation=False,
        **flip_args)

    # Ford's cuts
    track_selector.nHitBLayer = 0
    track_selector.nHitPix = 1
    # track_selector.d0Max=2.0
    # track_selector.z0Max=2.5
    # InDetVKalVxNegInJetTool.CutPixelHits=1
    vx_in_jet_tool.CutPixelHits = 1

    if BTaggingFlags.OutputLevel < 3:
        print vx_in_jet_tool

    ToolSvc += ip3d_tool
    if BTaggingFlags.OutputLevel < 3:
        print ip3d_tool
    return ip3d_tool
コード例 #4
0
if BTaggingFlags.OutputLevel < 3:
    print IP2DNegNewLikelihood

# each tagger needs own instance, can't be shared! ( -> not sure here ... ask Laurent, JB)
from JetTagTools.JetTagToolsConf import Analysis__TrackSelector
IP2DNegTrackSelector = Analysis__TrackSelector(
    useBLayerHitPrediction=True,
    name="IP2DNegTrackSelector",
    trackToVertexTool=BTagTrackToVertexTool,
    OutputLevel=BTaggingFlags.OutputLevel)
ToolSvc += IP2DNegTrackSelector
if BTaggingFlags.OutputLevel < 3:
    print IP2DNegTrackSelector

from JetTagTools.JetTagToolsConf import Analysis__SVForIPTool
SVForIPTool_IP2DNeg = Analysis__SVForIPTool(
    name="SVForIPTool_IP2DNeg", OutputLevel=BTaggingFlags.OutputLevel)

ToolSvc += SVForIPTool_IP2DNeg
if BTaggingFlags.OutputLevel < 3:
    print SVForIPTool_IP2DNeg

from JetTagTools.JetTagToolsConf import Analysis__BasicTrackGradeFactory
IP2DNegBasicTrackGradeFactory = Analysis__BasicTrackGradeFactory(
    name="IP2DNegBasicTrackGradeFactory",
    OutputLevel=BTaggingFlags.OutputLevel,
    TrackSummaryTool=None,
    useSharedHitInfo=True)

from JetTagTools.JetTagToolsConf import Analysis__DetailedTrackGradeFactory
IP2DNegDetailedTrackGradeFactory = Analysis__DetailedTrackGradeFactory(
    name="IP2DNegDetailedTrackGradeFactory",
コード例 #5
0

# each tagger needs own instance, can't be shared! ( -> not sure here ... ask Laurent, JB)
from JetTagTools.JetTagToolsConf import Analysis__TrackSelector
IP2DSpcFlipTrackSelector = Analysis__TrackSelector( 
                                         useBLayerHitPrediction = True,
                                         name = "IP2DSpcFlipTrackSelector",
                                         trackToVertexTool = BTagTrackToVertexTool,
                                         OutputLevel = BTaggingFlags.OutputLevel
                                        )
ToolSvc += IP2DSpcFlipTrackSelector
if BTaggingFlags.OutputLevel < 3:
  print IP2DSpcFlipTrackSelector

from JetTagTools.JetTagToolsConf import Analysis__SVForIPTool
SVForIPTool_IP2DSpcFlip = Analysis__SVForIPTool(name = "SVForIPTool_IP2DSpcFlip",
                                         OutputLevel = BTaggingFlags.OutputLevel)

ToolSvc += SVForIPTool_IP2DSpcFlip
if BTaggingFlags.OutputLevel < 3:
  print SVForIPTool_IP2DSpcFlip

from JetTagTools.JetTagToolsConf import Analysis__BasicTrackGradeFactory
IP2DSpcFlipBasicTrackGradeFactory = Analysis__BasicTrackGradeFactory(name = "IP2DSpcFlipBasicTrackGradeFactory",
                                                              OutputLevel = BTaggingFlags.OutputLevel,
                                                              TrackSummaryTool = None,
                                                              useSharedHitInfo = True)

from JetTagTools.JetTagToolsConf import Analysis__DetailedTrackGradeFactory
IP2DSpcFlipDetailedTrackGradeFactory = Analysis__DetailedTrackGradeFactory(name = "IP2DSpcFlipDetailedTrackGradeFactory",
                                                                           OutputLevel = BTaggingFlags.OutputLevel,
                                                                           hitBLayerGrade=True,
コード例 #6
0
# each tagger needs own instance, can't be shared!
from JetTagTools.JetTagToolsConf import Analysis__TrackSelector
TrackCountingFlipTrackSelector = Analysis__TrackSelector(
    name="TrackCountingFlipTrackSelector",
    trackToVertexTool=BTagTrackToVertexTool,
    OutputLevel=BTaggingFlags.OutputLevel)
ToolSvc += TrackCountingFlipTrackSelector
if BTaggingFlags.OutputLevel < 3:
    print TrackCountingFlipTrackSelector

from JetTagTools.JetTagToolsConf import Analysis__SVForIPTool
SVForIPTool_TrackCountingFlip = Analysis__SVForIPTool(
    name="SVForIPTool_TrackCountingFlip",
    OutputLevel=BTaggingFlags.OutputLevel)

ToolSvc += SVForIPTool_TrackCountingFlip
if BTaggingFlags.OutputLevel < 3:
    print SVForIPTool_TrackCountingFlip

from JetTagTools.JetTagToolsConf import Analysis__BasicTrackGradeFactory
TrackCountingFlipBasicTrackGradeFactory = Analysis__BasicTrackGradeFactory(
    name="TrackCountingFlipBasicTrackGradeFactory",
    OutputLevel=BTaggingFlags.OutputLevel,
    TrackSummaryTool=None,
    useSharedHitInfo=True)

ToolSvc += TrackCountingFlipBasicTrackGradeFactory
if BTaggingFlags.OutputLevel < 3:
    print TrackCountingFlipBasicTrackGradeFactory

from JetTagTools.JetTagToolsConf import Analysis__TrackCounting
コード例 #7
0
# each tagger needs own instance, can't be shared! ( -> not sure here ... ask Laurent, JB)
from JetTagTools.JetTagToolsConf import Analysis__TrackSelector
JetProbTrackSelector = Analysis__TrackSelector(
    name="JetProbTrackSelector",
    OutputLevel=BTaggingFlags.OutputLevel,
    trackToVertexTool=BTagTrackToVertexTool)
ToolSvc += JetProbTrackSelector
if BTaggingFlags.OutputLevel < 3:
    print JetProbTrackSelector

from JetTagTools.JetTagToolsConf import Analysis__SVForIPTool
SVForIPTool_JetProb = Analysis__SVForIPTool(
    name="SVForIPTool_JetProb", OutputLevel=BTaggingFlags.OutputLevel)

ToolSvc += SVForIPTool_JetProb
if BTaggingFlags.OutputLevel < 3:
    print SVForIPTool_JetProb

from JetTagTools.JetTagToolsConf import Analysis__BasicTrackGradeFactory
JetProbBasicTrackGradeFactory = Analysis__BasicTrackGradeFactory(
    name="JetProbBasicTrackGradeFactory",
    OutputLevel=BTaggingFlags.OutputLevel,
    TrackSummaryTool=None,
    useSharedHitInfo=True)

ToolSvc += JetProbBasicTrackGradeFactory
if BTaggingFlags.OutputLevel < 3:
    print JetProbBasicTrackGradeFactory

from JetTagTools.JetTagToolsConf import Analysis__JetProbTag
JetProbTagTool = Analysis__JetProbTag(