Skip to content
Snippets Groups Projects
Commit 1bfbed5a authored by Adam Edward Barton's avatar Adam Edward Barton :speech_balloon:
Browse files

Merge branch 'ATLASRECTS_4362' into 'master'

ATLASRECTS-4362, further unify with InDetRecLoadTools.py

See merge request atlas/athena!11026

Former-commit-id: 813a30e8
parents b1b54a7f 7433639b
No related branches found
No related tags found
8 merge requests!58791DataQualityConfigurations: Modify L1Calo config for web display,!46784MuonCondInterface: Enable thread-safety checking.,!46776Updated LArMonitoring config file for WD to match new files produced using MT,!45405updated ART test cron job,!42417Draft: DIRE and VINCIA Base Fragments for Pythia 8.3,!28528Revert 63f845ae,!27054Atr20369 210,!26342Monopole: Handle fractionally charged particles
......@@ -9,11 +9,10 @@ from AthenaCommon.GlobalFlags import globalflags
from egammaRec import egammaRecFlags as egRecFlags
egammaRecFlags = egRecFlags.jobproperties.egammaRecFlags
#Deal with the Rot creator
if hasattr(ToolSvc, 'InDetRotCreator') :
egRotCreator=ToolSvc.InDetRotCreator
else :
#This is more of legacy, in principle we want the one from std tracking
# Seems trigger somehow end up using it ....
def CreateEgammaRotCreator():
global ToolSvc
#Setup e/gamma offline RotCreator if one is not present
if InDetFlags.doPixelClusterSplitting() and InDetFlags.pixelClusterSplittingType() == 'NeuralNet':
# --- temp: read calib file
......@@ -57,9 +56,7 @@ else :
ToolSvc += egNnClusterizationFactory
#End of do cluster splitting
# ----------- control loading of ROT_creator
if DetFlags.haveRIO.pixel_on():
# load Pixel ROT creator, we overwrite the defaults for the
# tool to always make conservative pixel cluster errors
......@@ -68,7 +65,6 @@ else :
DisableDistortions = InDetFlags.doFatras(),
applyNNcorrection = ( InDetFlags.doPixelClusterSplitting()
and InDetFlags.pixelClusterSplittingType() == 'NeuralNet'))
if InDetFlags.doPixelClusterSplitting() and InDetFlags.pixelClusterSplittingType() == 'NeuralNet':
egPixelClusterOnTrackTool.NnClusterizationFactory = egNnClusterizationFactory
......@@ -83,7 +79,6 @@ else :
CorrectionStrategy = 0, # do correct position bias
ErrorStrategy = 2) # do use phi dependent errors
ToolSvc += egSCT_ClusterOnTrackTool
else:
egSCT_ClusterOnTrackTool = None
......@@ -98,36 +93,41 @@ else :
from IOVDbSvc.CondDB import conddb
if not conddb.folderRequested('Indet/TrkErrorScaling'):
conddb.addFolderSplitOnline('INDET','/Indet/Onl/TrkErrorScaling','/Indet/TrkErrorScaling')
##################End of e/gamma Rot Creator ###################
#
#
# Extrapolator to be used for tracking inside egamma i.e GSF , conversions
return egRotCreator
#The following perhaps we need to factor inside the classes using them
#i.e BremCollection Builder or so
#Deal with the Rot creator
if hasattr(ToolSvc, 'InDetRotCreator') :
egRotCreator=ToolSvc.InDetRotCreator
else :
egRotCreator=CreateEgammaRotCreator()
# Extrapolator to be used for tracking inside egamma i.e for GSF and Conversions
from AthenaCommon.AppMgr import ServiceMgr as svcMgr
AtlasTrackingGeometrySvc = svcMgr.AtlasTrackingGeometrySvc
# get propagator
# get Rk propagator
from TrkExRungeKuttaPropagator.TrkExRungeKuttaPropagatorConf import Trk__RungeKuttaPropagator as Propagator
#
egTrkPropagator = Propagator(name = 'egTrkPropagator')
egTrkPropagator.AccuracyParameter = 0.0001
ToolSvc += egTrkPropagator
#
from TrkExSTEP_Propagator.TrkExSTEP_PropagatorConf import Trk__STEP_Propagator as StepPropagator
egTrkStepPropagator = StepPropagator(name = 'egTrkStepPropagator')
ToolSvc += egTrkStepPropagator
# Setup the Navigator (default)
#Setup the Navigator (default)
from TrkExTools.TrkExToolsConf import Trk__Navigator
egTrkNavigator = Trk__Navigator(name = 'egTrkNavigator')
ToolSvc += egTrkNavigator
# Setup the MaterialEffectsUpdator
from TrkExTools.TrkExToolsConf import Trk__MaterialEffectsUpdator
egTrkMaterialUpdator = Trk__MaterialEffectsUpdator(name = "egTrkMaterialEffectsUpdator")
ToolSvc += egTrkMaterialUpdator
# CONFIGURE PROPAGATORS/UPDATORS ACCORDING TO GEOMETRY SIGNATURE
egTrkSubPropagators = []
egTrkSubUpdators = []
# -------------------- set it depending on the geometry ----------------------------------------------------
# default for ID is (Rk,Mat)
egTrkSubPropagators += [ egTrkPropagator.name() ]
egTrkSubUpdators += [ egTrkMaterialUpdator.name() ]
......@@ -135,20 +135,22 @@ egTrkSubUpdators += [ egTrkMaterialUpdator.name() ]
egTrkSubPropagators += [ egTrkPropagator.name() ]
egTrkSubUpdators += [ egTrkMaterialUpdator.name() ]
# default for MS is (STEP,Mat)
egTrkSubPropagators += [ egTrkStepPropagator.name() ]
egTrkSubUpdators += [ egTrkMaterialUpdator.name() ]
# ----------------------------------------------------------------------------------------------------------
# set up extrapolator to be used by egamma during tracking / vertexing operations
from TrkExTools.TrkExToolsConf import Trk__Extrapolator
egTrkExtrapolator = Trk__Extrapolator(name = 'egTrkExtrapolator',
Propagators = [ egTrkPropagator, egTrkStepPropagator ],
Propagators = [ egTrkPropagator ],
MaterialEffectsUpdators = [ egTrkMaterialUpdator ],
Navigator = egTrkNavigator,
SubPropagators = egTrkSubPropagators,
SubMEUpdators = egTrkSubUpdators)
ToolSvc += egTrkExtrapolator
#
###############################################################################
def getTrkExtrapolator():
return egTrkExtrapolator
# Set up the GSF
from TrkGaussianSumFilter.TrkGaussianSumFilterConf import Trk__GsfMaterialMixtureConvolution
GsfMaterialUpdator = Trk__GsfMaterialMixtureConvolution (name = 'GsfMaterialUpdator')
......@@ -192,4 +194,5 @@ GSFTrackFitter = Trk__GaussianSumFitter(name = 'GSFTrackFitte
ToolForROTCreation = egRotCreator)
# --- end of fitter loading
ToolSvc += GSFTrackFitter
#################################################################################
......@@ -4,7 +4,8 @@ __doc__ = "ToolFactories to instantiate InDet tools for egamma with default conf
__author__ = "Bruno Lenzi"
from egammaRec.Factories import FcnWrapper, ToolFactory, PublicToolFactory
#########
import egammaRec.EMCommonRefitter
# Tools for extrapolating to the calo
def configureExtrapolator( egammaExtrapolator ):
......@@ -84,23 +85,14 @@ egammaInDetTrackSummaryTool = PublicToolFactory( Trk__TrackSummaryTool,
InDetHoleSearchTool = egammaInDetHoleSearchTool)
#################################################################
# Configure InDet__ConversionFinderUtils and InDet__SingleTrackConversionTool
# Helper Tool
def getTrkExtrapolator():
import egammaRec.EMCommonRefitter
return egammaRec.EMCommonRefitter.egTrkExtrapolator
from InDetConversionFinderTools import InDetConversionFinderToolsConf
InDet__ConversionFinderUtils = PublicToolFactory( InDetConversionFinderToolsConf.InDet__ConversionFinderUtils)
#
# Single track conversion tool
#
from InDetConversionFinderTools import InDetConversionFinderToolsConf
InDet__SingleTrackConversionTool = PublicToolFactory( InDetConversionFinderToolsConf.InDet__SingleTrackConversionTool,
name = "CPSingleTrackConversionTool",
ConversionFinderHelperTool = InDet__ConversionFinderUtils,
TrackSummaryTool = egammaInDetTrackSummaryTool,
Extrapolator = FcnWrapper(getTrkExtrapolator),
Extrapolator = FcnWrapper(egammaRec.EMCommonRefitter.getTrkExtrapolator),
MinInitialHitRadius = 70.,
MinRatioOfHLhits = 0.95)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment