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)
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",
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
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",
# 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,
# 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
# 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(