AssoTool=InDetTrigPrdAssociationTool, DoSharedHits=False, HoleSearch=InDetTrigHoleSearchTool, TestBLayerTool=None, PixelToTPIDTool=None, usePixel=False, useSCT=False, 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_ParticleCreatorTool = Trk__TrackParticleCreatorTool( name=" FTK_ParticleCreatorTool", Extrapolator=InDetTrigExtrapolator, TrackSummaryTool=FTK_TrackSummaryHelperTool, KeepParameters=True, ForceTrackSummaryUpdate=False, #summary update moved (in the slimmer now) )
PixelToTPIDTool = None, TestBLayerTool = None, DoSharedHits = False, HoleSearch = ToolSvc.CombinedMuonIDHoleSearch, usePixel = DetFlags.haveRIO.pixel_on(), useSCT = DetFlags.haveRIO.SCT_on(), useTRT = DetFlags.haveRIO.TRT_on() ) # default CombinedMuonTrackSummary from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool ToolSvc += Trk__TrackSummaryTool( 'CombinedMuonTrackSummary', doSharedHits=False, doHolesMuon=False, AddDetailedInDetSummary=True, AddDetailedMuonSummary=True, InDetSummaryHelperTool=ToolSvc.CombinedMuonIDSummaryHelper, TRT_ElectronPidTool=None, PixelToTPIDTool=None, MuonSummaryHelperTool=muonTrackSummaryHelper, InDetHoleSearchTool=ToolSvc.CombinedMuonIDHoleSearch, PixelExists=True) # load tools requiring pixels if DetFlags.haveRIO.pixel_on(): # use AssoTool for shared hits (provided we have RDO) # commented as this doesn't work... # from RecExConfig.RecFlags import rec # if rec.readRDO: # #ToolSvc.CombinedMuonIDSummaryHelper.AssoTool = ToolSvc.InDetPrdAssociationTool # ToolSvc.CombinedMuonTrackSummary.doSharedHits = True
CountDeadModulesAfterLastHit = CountDeadModulesAfterLastHit) ToolSvc += InDetHoleSearchTool from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool InDetTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool(name = 'InDetSummaryHelper', AssoTool = InDetPrdAssociationTool, DoSharedHits = False, HoleSearch = InDetHoleSearchTool, usePixel = DetFlags.haveRIO.pixel_on(), useSCT = DetFlags.haveRIO.SCT_on(), useTRT = DetFlags.haveRIO.TRT_on()) ToolSvc += InDetTrackSummaryHelperTool from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool InDetTrackSummaryTool = Trk__TrackSummaryTool(name = 'InDetTrackSummaryTool', InDetSummaryHelperTool = InDetTrackSummaryHelperTool, doSharedHits = False, InDetHoleSearchTool = InDetHoleSearchTool) ToolSvc += InDetTrackSummaryTool #------------------------------------------------------------------------------ # Configure vertex fitters #------------------------------------------------------------------------------ from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter TrkVKalVrtFitter = Trk__TrkVKalVrtFitter(name = 'VKalVrtFitterName', Extrapolator = InDetExtrapolator, MagFieldSvc = InDetMagField, FirstMeasuredPoint = True, #FirstMeasuredPointLimit = True, MakeExtendedVertex = True) ToolSvc += TrkVKalVrtFitter print TrkVKalVrtFitter
from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool InDetTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool( name="CascInDetSummaryHelper", AssoTool=InDetPrdAssociationTool, DoSharedHits=False, HoleSearch=InDetHoleSearchTool, usePixel=DetFlags.haveRIO.pixel_on(), useSCT=DetFlags.haveRIO.SCT_on(), useTRT=DetFlags.haveRIO.TRT_on()) ToolSvc += InDetTrackSummaryHelperTool print InDetTrackSummaryHelperTool from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool InDetTrackSummaryTool = Trk__TrackSummaryTool( name="CascadeInDetTrackSummaryTool", InDetSummaryHelperTool=InDetTrackSummaryHelperTool, doSharedHits=False, doHolesInDet=True) ToolSvc += InDetTrackSummaryTool print InDetTrackSummaryTool from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool InDetTrackSelectorTool = InDet__InDetDetailedTrackSelectorTool( name="cascade_InDetDetailedTrackSelectorTool", pTMin=400.0, IPd0Max=10000.0, IPz0Max=10000.0, z0Max=10000.0, sigIPd0Max=10000.0, sigIPz0Max=10000.0,
def getPhotonConversionTool(): if jobproperties.tauRecFlags.useVertexBasedConvFinder(): from AthenaCommon.AppMgr import ToolSvc name = "_PhotonConversionVertex" ## from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator as MaterialEffectsUpdator AtlasMaterialEffectsUpdator = MaterialEffectsUpdator( name='AtlasMaterialEffectsUpdator') ToolSvc += AtlasMaterialEffectsUpdator #default material effects updator NoElossMaterialEffectsUpdator = MaterialEffectsUpdator( name='NoElossMaterialEffectsUpdator') NoElossMaterialEffectsUpdator.EnergyLoss = False ToolSvc += NoElossMaterialEffectsUpdator # setup MaterialEffectsUpdator arrays MyUpdators = [] MyUpdators += [AtlasMaterialEffectsUpdator] # for ID MyUpdators += [NoElossMaterialEffectsUpdator] # for Calo # MyUpdators += [NoElossMaterialEffectsUpdator] # for muon MySubUpdators = [] MySubUpdators += [AtlasMaterialEffectsUpdator.name()] # for ID MySubUpdators += [NoElossMaterialEffectsUpdator.name()] # for Calo MySubUpdators += [NoElossMaterialEffectsUpdator.name()] # for muon #Configure the extrapolator from TrkExTools.AtlasExtrapolator import AtlasExtrapolator theAtlasExtrapolator = AtlasExtrapolator(name='theAtlasExtrapolator' + name) theAtlasExtrapolator.DoCaloDynamic = False # this turns off dynamic theAtlasExtrapolator.MaterialEffectsUpdators = MyUpdators theAtlasExtrapolator.SubMEUpdators = MySubUpdators ToolSvc += theAtlasExtrapolator # from TrkMagFieldTools.TrkMagFieldToolsConf import Trk__MagneticFieldTool # InDetMagField = Trk__MagneticFieldTool('InDetMagField'+name) # ToolSvc += InDetMagField ### Ly S swith bellow off Oct 7 # from AthenaCommon.AppMgr import ServiceMgr # from MagFieldServices.MagFieldServicesConf import MagField__AtlasFieldSvc # ServiceMgr += MagField__AtlasFieldSvc("myAtlasFieldSvc") # # Setup track summary tool # from InDetAssociationTools.InDetAssociationToolsConf import InDet__InDetPRD_AssociationToolGangedPixels tauInDetPrdAssociationTool = InDet__InDetPRD_AssociationToolGangedPixels( name="tauInDetPrdAssociationTool", PixelClusterAmbiguitiesMapName='PixelClusterAmbiguitiesMap') ToolSvc += tauInDetPrdAssociationTool from InDetRecExample.InDetJobProperties import InDetFlags from InDetTrackHoleSearch.InDetTrackHoleSearchConf import InDet__InDetTrackHoleSearchTool tauInDetHoleSearchTool = InDet__InDetTrackHoleSearchTool( name="tauInDetHoleSearchTool", Extrapolator=theAtlasExtrapolator, checkBadSCTChip=InDetFlags.checkDeadElementsOnTrack()) ToolSvc += tauInDetHoleSearchTool from AthenaCommon.DetFlags import DetFlags from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool tauInDetTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool( name="tauInDetTrackSummaryHelper", AssoTool=tauInDetPrdAssociationTool, DoSharedHits=False, HoleSearch=tauInDetHoleSearchTool, usePixel=DetFlags.haveRIO.pixel_on(), useSCT=DetFlags.haveRIO.SCT_on(), useTRT=DetFlags.haveRIO.TRT_on()) ToolSvc += tauInDetTrackSummaryHelperTool # from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool # MyInDetTrackSummaryTool = AtlasTrackSummaryTool( # InDetSummaryHelperTool = tauInDetTrackSummaryHelperTool, # doSharedHits = False ) from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool MyInDetTrackSummaryTool = Trk__TrackSummaryTool( name="MyInDetTrackSummaryTool", InDetSummaryHelperTool=tauInDetTrackSummaryHelperTool, doSharedHits=False, InDetHoleSearchTool=tauInDetHoleSearchTool) ToolSvc += MyInDetTrackSummaryTool from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter InDetConversionVxFitterTool = Trk__TrkVKalVrtFitter( name="InDetConversionVxFitter" + name, Extrapolator=theAtlasExtrapolator, # Extrapolator = "Trk::Extrapolator/AtlasExtrapolator", IterationNumber=30, MakeExtendedVertex=True, FirstMeasuredPoint=False, # MagFieldSvc = InDetMagField, ## MagFieldSvc="Trk::MagneticFieldTool/InDetMagField", # AtlasMagFieldSvc="myAtlasFieldSvc", Robustness=6, usePhiCnst=True, useThetaCnst=True, FirstMeasuredPointLimit=True, InputParticleMasses=[0.511, 0.511], VertexForConstraint=[0., 0., 0.], CovVrtForConstraint=[ 0.015 * 0.015, 0., 0.015 * 0.015, 0., 0., 10000. * 10000. ]) ToolSvc += InDetConversionVxFitterTool print InDetConversionVxFitterTool # Distance of minimum approach utility # from TrkVertexSeedFinderUtils.TrkVertexSeedFinderUtilsConf import Trk__SeedNewtonTrkDistanceFinder InDetConversionTrkDistanceFinder = Trk__SeedNewtonTrkDistanceFinder( name='InDetConversionTrkDistanceFinder' + name) ToolSvc += InDetConversionTrkDistanceFinder print InDetConversionTrkDistanceFinder # Straight line propagator needed to clean-up single track conversions # # from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator # Helper Tool # from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__ConversionFinderUtils InDetConversionHelper = InDet__ConversionFinderUtils( name="InDetConversionFinderUtils" + name) ToolSvc += InDetConversionHelper print InDetConversionHelper # Track selector tool # from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetConversionTrackSelectorTool InDetConversionTrackSelector = InDet__InDetConversionTrackSelectorTool( name="InDetConversionTrackSelector" + name, TrackSummaryTool=MyInDetTrackSummaryTool, Extrapolator=theAtlasExtrapolator, maxSiD0=10000., #50.0, maxTrtD0=10000., #100., maxSiZ0=10000., #350.0, maxTrtZ0=10000., #1400., minPt=300, #InDetNewTrackingCuts.minSecondaryPt() RatioCut1=0.0, #0.5, RatioCut2=0.05, RatioCut3=0.05, RatioTRT=0.05, IsConversion=True, significanceD0_Si=-1., RatioV0=-1.) ToolSvc += InDetConversionTrackSelector print InDetConversionTrackSelector # Track pairs selector # ## There are many tunings on Oct 5 from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__TrackPairsSelector InDetConversionTrackPairsSelector = InDet__TrackPairsSelector( name="InDetConversionTrackPairsSelector" + name, ConversionFinderHelperTool=InDetConversionHelper, DistanceTool=InDetConversionTrkDistanceFinder, # MaxEta = [0.12,10000.,10000.], #[0.5,1.0,0.5]) MaxEta=[0.15, 0.3, 0.5], #[0.5,1.0,0.5]) # MaxDistBetweenTracks = [6.6,10000.,10000.], #[6.,80.,30.] MaxDistBetweenTracks=[7.5, 15., 30.], #[6.,80.,30.] MaxInitDistance=[10000., 10000., 10000.], MinTrackAngle=0.) ToolSvc += InDetConversionTrackPairsSelector print InDetConversionTrackPairsSelector # Vertex point estimator # from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__VertexPointEstimator InDetConversionVtxPointEstimator = InDet__VertexPointEstimator( name="InDetConversionVtxPointEstimator" + name, MaxTrkXYDiffAtVtx=[10000., 10000., 10000.], MaxTrkZDiffAtVtx=[10000., 10000., 10000.], MaxTrkXYValue=[10000., 10000., 10000.], MinArcLength=[-10000., -10000., -10000.], MaxArcLength=[10000., 10000., 10000.], MinDeltaR=[-5., -25., -50.], # MaxDeltaR = [10000.,10000.,10000.], MaxDeltaR=[5., 10., 10.], # MaxHl = [10000.,10000.,10000.], # MaxPhi = [0.034, 10000., 10000.] #[0.05, 0.1, 0.1] # MaxPhi = [ 10000., 10000., 10000.] MaxPhi=[0.05, 0.1, 0.2]) ToolSvc += InDetConversionVtxPointEstimator print InDetConversionVtxPointEstimator # Conversion post selector # from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__ConversionPostSelector InDetConversionPostSelector = InDet__ConversionPostSelector( name="InDetConversionPostSelector" + name, # MaxChi2Vtx = [10000.,10000.,10000.], #[40.,100.,80.], MaxChi2Vtx=[500., 700., 900.], #[40.,100.,80.], # MaxInvariantMass = [45.,25000.,25000.], #[60.,60.,30.], MaxInvariantMass=[350., 400., 500.], #[60.,60.,30.], MinFitMomentum=[0., 0., 0.], #[2000.,2000.,2000.], MinRadius=[21, 20., 15.], #[30.,35.,250.], # MinRadius = [ -10000.0, -10000.0, -10000.0 ], #[30.,35.,250.], MinPt=0., # MaxdR = 10000., #-250., ## equivalent to InDetConversionFinderTools.MaxDistVtxHit MaxdR=-10000., #-250., # MaxPhiVtxTrk = 0.046 #0.2 MaxPhiVtxTrk=0.05) ToolSvc += InDetConversionPostSelector print InDetConversionPostSelector # Single track conversion tool # from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__SingleTrackConversionTool InDetSingleTrackConversion = InDet__SingleTrackConversionTool( name="InDetSingleTrackConversionTool" + name, ConversionFinderHelperTool=InDetConversionHelper, TrackSummaryTool=MyInDetTrackSummaryTool, Extrapolator=theAtlasExtrapolator, MaxBLayerHits=0, MinInitialHitRadius=70., MinInitialHitRadius_noBlay=90., MinRatioOfHLhits=0.95) ToolSvc += InDetSingleTrackConversion print InDetSingleTrackConversion ## Oct 5, following egamma from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__InDetConversionFinderTools MyInDetConversionFinderTools = InDet__InDetConversionFinderTools( name="InDetConversionFinderTools" + name, VertexFitterTool=InDetConversionVxFitterTool, TrackSelectorTool=InDetConversionTrackSelector, TrackPairsSelector=InDetConversionTrackPairsSelector, ConversionFinderHelperTool=InDetConversionHelper, VertexPointEstimator=InDetConversionVtxPointEstimator, PostSelector=InDetConversionPostSelector, SingleTrackConversionTool=InDetSingleTrackConversion, Extrapolator=theAtlasExtrapolator, TrackParticleCollection="InDetTrackParticles", # MinDistVtxHit = -10000., MinDistVtxHit=-350., MaxDistVtxHit=230., MinFlightAngle=0.0, MinInitVtxR=0.0, RemoveTrtTracks=False, IsConversion=True) ToolSvc += MyInDetConversionFinderTools print MyInDetConversionFinderTools from tauRecTools.tauRecToolsConf import PhotonConversionVertex photonConv = PhotonConversionVertex( name="PhotonConversionVertex", TauRecContainer="TauJets", TrackParticleContainer="InDetTrackParticles", OutputConversionVertexContainerName="ConversionsVertex_Container", MaxTauJetDr=0.5, ConversionFinderTool=MyInDetConversionFinderTools) return photonConv else: from tauRecTools.tauRecToolsConf import PhotonConversionPID photonConv = PhotonConversionPID( ConversionCandidatesName="ConversionCandidate", ConversionOutputName="ConversionsPID_Container", ElectronProbability=0.9) return photonConv
def __init__(self,name = 'AtlasTrackSummaryTool'): from AthenaCommon.AppMgr import ToolSvc # # Setup Atlas Extrapolator # from TrkExTools.AtlasExtrapolator import AtlasExtrapolator AtlasExtrapolator = AtlasExtrapolator() ToolSvc += AtlasExtrapolator # # Setup Association Tool # from InDetAssociationTools.InDetAssociationToolsConf import InDet__InDetPRD_AssociationToolGangedPixels AtlasPrdAssociationTool = InDet__InDetPRD_AssociationToolGangedPixels( name = "AtlasPrdAssociationTool", PixelClusterAmbiguitiesMapName = "PixelClusterAmbiguitiesMap" ) ToolSvc += AtlasPrdAssociationTool #print AtlasPrdAssociationTool # # Setup Boundary Check Tool # from InDetBoundaryCheckTool.InDetBoundaryCheckToolConf import InDet__InDetBoundaryCheckTool AtlasBoundaryCheckTool = InDet__InDetBoundaryCheckTool( name="AtlasBoundaryCheckTool", UsePixel = DetFlags.haveRIO.pixel_on(), UseSCT = DetFlags.haveRIO.SCT_on() ) ToolSvc += AtlasBoundaryCheckTool # # Loading Configurable HoleSearchTool # from InDetTrackHoleSearch.InDetTrackHoleSearchConf import InDet__InDetTrackHoleSearchTool AtlasHoleSearchTool = InDet__InDetTrackHoleSearchTool(name = "AtlasHoleSearchTool", Extrapolator = AtlasExtrapolator, BoundaryCheckTool=AtlasBoundaryCheckTool ) ToolSvc += AtlasHoleSearchTool #print AtlasHoleSearchTool # # Configrable version of loading the AtlasTrackSummaryHelperTool # from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool if DetFlags.haveRIO.TRT_on(): AtlasTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool( name = "AtlasTrackSummaryHelperTool", HoleSearch = AtlasHoleSearchTool, AssoTool = AtlasPrdAssociationTool, DoSharedHits = False ) else: AtlasTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool( name = "AtlasTrackSummaryHelperTool", HoleSearch = AtlasHoleSearchTool, AssoTool = AtlasPrdAssociationTool, DoSharedHits = False, TRTStrawSummarySvc = "" ) ToolSvc += AtlasTrackSummaryHelperTool #print AtlasTrackSummaryHelperTool # # Configurable version of TrkTrackSummaryTool # from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool AtlasTrackSummaryTool = Trk__TrackSummaryTool( ) # call the base class constructor Trk__TrackSummaryTool.__init__(self, name = name, InDetSummaryHelperTool = AtlasTrackSummaryHelperTool, doHolesOnTrack = True, doSharedHits = AtlasTrackSummaryHelperTool.DoSharedHits )
from InDetTrigRecExample.InDetTrigCommonTools import InDetTrigTRTStrawStatusSummaryTool InDetTrigTrackSummaryHelperToolCosmics = \ InDet__InDetTrackSummaryHelperTool(name = "InDetTrigSummaryHelperCosmics", HoleSearch = InDetTrigHoleSearchTool, TRTStrawSummarySvc=InDetTrigTRTStrawStatusSummaryTool, DoSharedHits = False) ToolSvc += InDetTrigTrackSummaryHelperToolCosmics if (InDetTrigFlags.doPrintConfigurables()): print(InDetTrigTrackSummaryHelperToolCosmics) from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool InDetTrigTrackSummaryToolCosmics = \ Trk__TrackSummaryTool(name = "InDetTrigTrackSummaryToolCosmics", InDetSummaryHelperTool = InDetTrigTrackSummaryHelperToolCosmics, doHolesInDet = True) ToolSvc += InDetTrigTrackSummaryToolCosmics if (InDetTrigFlags.doPrintConfigurables()): print(InDetTrigTrackSummaryToolCosmics) from InDetTrackScoringTools.InDetTrackScoringToolsConf import InDet__InDetCosmicScoringTool InDetTrigScoringToolCosmics_SiPattern = \ InDet__InDetCosmicScoringTool(name = 'InDetTrigCosmicScoringTool_SiPattern', SummaryTool = InDetTrigTrackSummaryToolCosmics) InDetTrigScoringToolCosmics_SiPattern.nWeightedClustersMin = EFIDTrackingCutsCosmics.nWeightedClustersMin( ) InDetTrigScoringToolCosmics_SiPattern.minTRTHits = 0 ToolSvc += InDetTrigScoringToolCosmics_SiPattern
from InDetTrigRecExample.InDetTrigConditionsAccess import TRT_ConditionsSetup InDetTrigTrackSummaryHelperToolCosmics = \ InDet__InDetTrackSummaryHelperTool(name = "InDetTrigSummaryHelperCosmics", HoleSearch = InDetTrigHoleSearchTool, TRTStrawSummarySvc=TRT_ConditionsSetup.instanceName('InDetTRTStrawStatusSummarySvc'), DoSharedHits = False) ToolSvc += InDetTrigTrackSummaryHelperToolCosmics if (InDetTrigFlags.doPrintConfigurables()): print InDetTrigTrackSummaryHelperToolCosmics from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool InDetTrigTrackSummaryToolCosmics = \ Trk__TrackSummaryTool(name = "InDetTrigTrackSummaryToolCosmics", InDetSummaryHelperTool = InDetTrigTrackSummaryHelperToolCosmics, InDetHoleSearchTool = InDetTrigHoleSearchTool) ToolSvc += InDetTrigTrackSummaryToolCosmics if (InDetTrigFlags.doPrintConfigurables()): print InDetTrigTrackSummaryToolCosmics from InDetTrackScoringTools.InDetTrackScoringToolsConf import InDet__InDetCosmicScoringTool InDetTrigScoringToolCosmics_SiPattern = \ InDet__InDetCosmicScoringTool(name = 'InDetTrigCosmicScoringTool_SiPattern', SummaryTool = InDetTrigTrackSummaryToolCosmics) InDetTrigScoringToolCosmics_SiPattern.nWeightedClustersMin = EFIDTrackingCutsCosmics.nWeightedClustersMin( ) InDetTrigScoringToolCosmics_SiPattern.minTRTHits = 0 ToolSvc += InDetTrigScoringToolCosmics_SiPattern
CountDeadModulesAfterLastHit = CountDeadModulesAfterLastHit) ToolSvc += InDetHoleSearchTool from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool InDetTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool(name = "TrigBphysInDetSummaryHelper", AssoTool = InDetPrdAssociationTool, DoSharedHits = False, HoleSearch = InDetHoleSearchTool, usePixel = DetFlags.haveRIO.pixel_on(), useSCT = DetFlags.haveRIO.SCT_on(), useTRT = DetFlags.haveRIO.TRT_on()) ToolSvc += InDetTrackSummaryHelperTool from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool InDetTrackSummaryTool = Trk__TrackSummaryTool(name = "TrigBphysInDetTrackSummaryTool", InDetSummaryHelperTool = InDetTrackSummaryHelperTool, doSharedHits = False, InDetHoleSearchTool = InDetHoleSearchTool) ToolSvc += InDetTrackSummaryTool # ===================================================== # THIS IS WHERE THE USER CONTROLS MAIN TRACK SELECTIONS # ===================================================== from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool InDetTrackSelectorTool = InDet__InDetDetailedTrackSelectorTool(name = "TrigBphysInDetDetailedTrackSelectorTool", pTMin = 400.0, IPd0Max = 10000.0, IPz0Max = 10000.0, z0Max = 10000.0, sigIPd0Max = 10000.0, sigIPz0Max = 10000.0, d0significanceMax = -1.,
___author___ = "Jiri Masik" ___version___ = "$Id: TrigInDetRecCommonTools.py 724055 2016-02-15 17:43:24Z masik $" from AthenaCommon.AppMgr import ToolSvc from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackSummaryHelperTool,\ InDetTrigTrackSummaryHelperToolSharedHits,InDetTrigTRT_ElectronPidTool from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool InDetTrigFastTrackSummaryTool = Trk__TrackSummaryTool(name = "InDetTrigFastTrackSummaryTool", InDetSummaryHelperTool = InDetTrigTrackSummaryHelperTool, InDetHoleSearchTool = None, doSharedHits = False, TRT_ElectronPidTool = None ) ToolSvc += InDetTrigFastTrackSummaryTool if (InDetTrigFlags.doPrintConfigurables()): print InDetTrigFastTrackSummaryTool from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigHoleSearchTool InDetTrigTrackSummaryToolWithHoleSearch = Trk__TrackSummaryTool(name = "InDetTrigTrackSummaryToolWithHoleSearch", InDetSummaryHelperTool = InDetTrigTrackSummaryHelperTool, InDetHoleSearchTool = InDetTrigHoleSearchTool, doSharedHits = False, TRT_ElectronPidTool = None ) ToolSvc += InDetTrigTrackSummaryToolWithHoleSearch
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]
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
# OutputLevel = ERROR ) #ToolSvc +=TrigMuonEF_MCTBHitHandler # START SUMMARY TOOL # particle creation, Analysis::Muon building and CBNT filling need summary helpers # indet and muon TrackSummaryHelper's: take existing public instances when available from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool MuonTrackSummaryHelperTool = MuonRecTools.getPublicTool( "MuonTrackSummaryHelper") from AthenaCommon.DetFlags import DetFlags if not DetFlags.detdescr.ID_on(): MuidTrackSummaryTool = Trk__TrackSummaryTool( name="MuidTrackSummaryTool", MuonSummaryHelperTool=MuonTrackSummaryHelperTool, doSharedHits=False) else: from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackSummaryHelperTool, InDetTrigHoleSearchTool from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool MuidTrackSummaryTool = Trk__TrackSummaryTool( name="MuidTrackSummaryTool", InDetSummaryHelperTool=InDetTrigTrackSummaryHelperTool, InDetHoleSearchTool=InDetTrigHoleSearchTool, MuonSummaryHelperTool=MuonTrackSummaryHelperTool, doSharedHits=False) ToolSvc += MuidTrackSummaryTool #END SUMMARY TOOL
from ISF_FatrasRecoTools.ISF_FatrasRecoToolsConf import iFatras__ISF_TrackSummaryHelperTool ISF_TrackSummaryHelperTool = iFatras__ISF_TrackSummaryHelperTool( name="ISF_TrackSummaryHelperTool", AssoTool="", DoSharedHits=True) ISF_TrackSummaryHelperTool.OutputLevel = OutputLevel #VERBOSE ToolSvc += ISF_TrackSummaryHelperTool print ISF_TrackSummaryHelperTool # @TODO does th ISF_TrackSummaryHelperTool do hole search and if so is that intedned ? from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool InDetTrackSummaryTool = Trk__TrackSummaryTool( name="InDetTrackSummaryTool", doSharedHits=True, InDetSummaryHelperTool=ISF_TrackSummaryHelperTool, AddDetailedInDetSummary=False, doHolesInDet=False, doHolesMuon=False, MuonSummaryHelperTool="", AddDetailedMuonSummary=False, TRT_ElectronPidTool="", PixelToTPIDTool="", PixelExists=True) InDetTrackSummaryTool.OutputLevel = OutputLevel #VERBOSE ToolSvc += InDetTrackSummaryTool print InDetTrackSummaryTool # --- the truth track creation algorithm from InDetRecExample.TrackingCommon import getInDetPRDtoTrackMapToolGangedPixels from TrkTruthTrackAlgs.TrkTruthTrackAlgsConf import Trk__TruthTrackCreation InDetTruthTrackCreation = Trk__TruthTrackCreation( name='InDetTruthTrackCreation', PRD_TruthTrajectoryBuilder=ISF_PRD_TruthTrajectoryBuilder,
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