def configureExtrapolator(egammaExtrapolator): # this turns off dynamic calculation of eloss in calorimeters egammaExtrapolator.DoCaloDynamic = False # all left to MaterialEffects/EnergyLossUpdators from TrkExTools.TrkExToolsConf import (Trk__MaterialEffectsUpdator as MaterialEffectsUpdator) egammaMaterialEffectsUpdator = MaterialEffectsUpdator( name='egammaMaterialEffectsUpdator') egammaNoElossMaterialEffectsUpdator = MaterialEffectsUpdator( name='egammaNoElossMaterialEffectsUpdator') egammaNoElossMaterialEffectsUpdator.EnergyLoss = False MyUpdators = [] MyUpdators += [egammaMaterialEffectsUpdator] MyUpdators += [egammaNoElossMaterialEffectsUpdator] MySubUpdators = [] MySubUpdators += [egammaMaterialEffectsUpdator.name()] # for Global MySubUpdators += [egammaMaterialEffectsUpdator.name()] # for ID MySubUpdators += [egammaMaterialEffectsUpdator.name()] # for BeamPipe MySubUpdators += [egammaNoElossMaterialEffectsUpdator.name()] # for Calo # for muon spectrometer MySubUpdators += [egammaNoElossMaterialEffectsUpdator.name()] MySubUpdators += [egammaMaterialEffectsUpdator.name()] # for cavern # egamma RungeKutta Propagator from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import ( Trk__RungeKuttaPropagator as RkPropagator) egammaRungeKuttaPropagator = RkPropagator( name='egammaRungeKuttaPropagator') # egamma STEP_Propagator with no material effects from TrkExSTEP_Propagator.TrkExSTEP_PropagatorConf import ( Trk__STEP_Propagator as STEP_Propagator) egammaNoMatSTEP_Propagator = STEP_Propagator( name='egammaNoMatSTEP_Propagator') egammaNoMatSTEP_Propagator.MaterialEffects = False myPropagators = [] myPropagators += [egammaRungeKuttaPropagator] myPropagators += [egammaNoMatSTEP_Propagator] MySubPropagators = [] MySubPropagators += [egammaRungeKuttaPropagator.name()] # for Global MySubPropagators += [egammaRungeKuttaPropagator.name()] # for ID MySubPropagators += [egammaRungeKuttaPropagator.name()] # for BeamPipe MySubPropagators += [egammaRungeKuttaPropagator.name()] # for Calo MySubPropagators += [egammaNoMatSTEP_Propagator.name()] # for MS MySubPropagators += [egammaRungeKuttaPropagator.name()] # for cavern egammaExtrapolator.MaterialEffectsUpdators = MyUpdators egammaExtrapolator.SubMEUpdators = MySubUpdators egammaExtrapolator.Propagators = myPropagators egammaExtrapolator.SubPropagators = MySubPropagators # egamma STEP with no eloss for calo intersections egammaExtrapolator.STEP_Propagator = egammaNoMatSTEP_Propagator
# # Setup the Navigator (default, could be removed) # from TrkExTools.TrkExToolsConf import Trk__Navigator InDetNavigator = Trk__Navigator(name = 'InDetNavigator', TrackingGeometrySvc = AtlasTrackingGeometrySvc) ToolSvc += InDetNavigator if InDetFlags.doPrintConfigurables: print InDetNavigator # # Setup the MaterialEffectsUpdator # from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator InDetMaterialUpdator = Trk__MaterialEffectsUpdator(name = "InDetMaterialEffectsUpdator") if not InDetFlags.solenoidOn(): InDetMaterialUpdator.EnergyLoss = False InDetMaterialUpdator.ForceMomentum = True InDetMaterialUpdator.ForcedMomentumValue = 1000*MeV ToolSvc += InDetMaterialUpdator if InDetFlags.doPrintConfigurables: print InDetMaterialUpdator # CONFIGURE PROPAGATORS/UPDATORS ACCORDING TO GEOMETRY SIGNATURE InDetSubPropagators = [] InDetSubUpdators = [] # -------------------- set it depending on the geometry ---------------------------------------------------- # default for ID is (Rk,Mat) InDetSubPropagators += [ InDetPropagator.name() ]
TestSTEP_Propagator = STEP_Propagator(name='TestSTEP_Propagator') ToolSvc += TestSTEP_Propagator TestSTEP_Propagator.DetailedEloss = True TestPropagators += [TestSTEP_Propagator] # UPDATOR DEFAULTS ----------------------------------------------------------------------------------------- TestUpdators = [] from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator as MaterialEffectsUpdator TestMaterialEffectsUpdator = MaterialEffectsUpdator( name='TestMaterialEffectsUpdator') ToolSvc += TestMaterialEffectsUpdator if myPDG == 998: TestMaterialEffectsUpdator.EnergyLoss = False TestMaterialEffectsUpdator.MultipleScattering = False TestUpdators += [TestMaterialEffectsUpdator] TestMaterialEffectsUpdatorLandau = MaterialEffectsUpdator( name='TestMaterialEffectsUpdatorLandau') TestMaterialEffectsUpdatorLandau.LandauMode = True ToolSvc += TestMaterialEffectsUpdatorLandau if myPDG == 998: TestMaterialEffectsUpdatorLandau.EnergyLoss = False TestMaterialEffectsUpdatorLandau.MultipleScattering = False ##TestUpdators += [ TestMaterialEffectsUpdatorLandau ] # the UNIQUE NAVIGATOR ( === UNIQUE GEOMETRY) --------------------------------------------------------------
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
mlog = logging.getLogger ('MCTruthCalssifierBase.py::configure:') mlog.info('entering') from AthenaCommon.AppMgr import ToolSvc # Configure the extrapolator from TrkExTools.AtlasExtrapolator import AtlasExtrapolator theAtlasExtrapolator=AtlasExtrapolator(name = 'egammaExtrapolator') theAtlasExtrapolator.DoCaloDynamic = False # this turns off dynamic calculation of eloss in calorimeters # all left to MaterialEffects/EnergyLossUpdators 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 ID MyUpdators += [NoElossMaterialEffectsUpdator] # for Calo MyUpdators += [NoElossMaterialEffectsUpdator] # for muon # MyUpdators += [NoElossMaterialEffectsUpdator] # for muon MySubUpdators = [] MySubUpdators += [NoElossMaterialEffectsUpdator.name()] # for ID # MySubUpdators += [AtlasMaterialEffectsUpdator.name()] # for ID MySubUpdators += [NoElossMaterialEffectsUpdator.name()] # for Calo MySubUpdators += [NoElossMaterialEffectsUpdator.name()] # for muon