diff --git a/LArCalorimeter/LArExample/LArConditionsCommon/share/LArConditionsCommon_MC_jobOptions.py b/LArCalorimeter/LArExample/LArConditionsCommon/share/LArConditionsCommon_MC_jobOptions.py
index 337b450a78f821b56a893775d42987c4d9531f1c..18c0314c9c33a375c1fc70f4391520d4aef45736 100755
--- a/LArCalorimeter/LArExample/LArConditionsCommon/share/LArConditionsCommon_MC_jobOptions.py
+++ b/LArCalorimeter/LArExample/LArConditionsCommon/share/LArConditionsCommon_MC_jobOptions.py
@@ -65,20 +65,21 @@ if SuperCells:
if larCondFlags.useMCShape():
larCondDBFolders += [("LArShape32MC","/LAR/ElecCalibMCSC/Shape","LArShape",LArShapeSymAlg,None)]
else:
- larCondDBFolders = [("LArRampMC","/LAR/ElecCalibMC/Ramp","LArRamp", LArRampSymAlg ,None),
- ("LArAutoCorrMC","/LAR/ElecCalibMC/AutoCorr","LArAutoCorr", LArAutoCorrSymAlg,None),
- ("LArDAC2uAMC","/LAR/ElecCalibMC/DAC2uA","LArDAC2uA",LArDAC2uASymAlg,None),
- ("LArPedestalMC","/LAR/ElecCalibMC/Pedestal","LArPedestal",None,None),
- ("LArNoiseMC","/LAR/ElecCalibMC/Noise","LArNoise",LArNoiseSymAlg,None),
+ larCondDBFolders = [
+ #("LArRampMC","/LAR/ElecCalibMC/Ramp","LArRamp", LArRampSymAlg ,None),
+ #("LArAutoCorrMC","/LAR/ElecCalibMC/AutoCorr","LArAutoCorr", LArAutoCorrSymAlg,None),
+ #("LArDAC2uAMC","/LAR/ElecCalibMC/DAC2uA","LArDAC2uA",LArDAC2uASymAlg,None),
+ #("LArPedestalMC","/LAR/ElecCalibMC/Pedestal","LArPedestal",None,None),
+ #("LArNoiseMC","/LAR/ElecCalibMC/Noise","LArNoise",LArNoiseSymAlg,None),
("LArfSamplMC","/LAR/ElecCalibMC/fSampl","LArfSampl",LArfSamplSymAlg,None),
- ("LAruA2MeVMC","/LAR/ElecCalibMC/uA2MeV","LAruA2MeV", LAruA2MeVSymAlg,None),
- ("LArMinBiasMC","/LAR/ElecCalibMC/MinBias","LArMinBias",LArMinBiasSymAlg,None),
+ #("LAruA2MeVMC","/LAR/ElecCalibMC/uA2MeV","LAruA2MeV", LAruA2MeVSymAlg,None),
+ #("LArMinBiasMC","/LAR/ElecCalibMC/MinBias","LArMinBias",LArMinBiasSymAlg,None),
]
- if not isPileUpDigi:
- larCondDBFolders += [("LArMinBiasAverageMC","/LAR/ElecCalibMC/MinBiasAverage","LArMinBiasAverage",LArMinBiasAverageSymAlg,None)]
+ #if not isPileUpDigi:
+ # larCondDBFolders += [("LArMinBiasAverageMC","/LAR/ElecCalibMC/MinBiasAverage","LArMinBiasAverage",LArMinBiasAverageSymAlg,None)]
- if larCondFlags.useMCShape():
- larCondDBFolders += [("LArShape32MC","/LAR/ElecCalibMC/Shape","LArShape",LArShapeSymAlg,None)]
+ #if larCondFlags.useMCShape():
+ # larCondDBFolders += [("LArShape32MC","/LAR/ElecCalibMC/Shape","LArShape",LArShapeSymAlg,None)]
include( "LArConditionsCommon/LArIdMap_MC_jobOptions.py" )
@@ -104,9 +105,9 @@ else:
conddb.addFolder(LArDB,MissingFEBsFolder,className='AthenaAttributeList')
condSeq+=LArBadFebCondAlg(ReadKey=MissingFEBsFolder)
-if not isPileUpDigi:
- condSeq+=LArBadFebCondAlg("LArKnownBadFebAlg",ReadKey="",WriteKey="LArKnownBadFEBs")
- condSeq+=LArBadFebCondAlg("LArKnownMNBFebAlg",ReadKey="",WriteKey="LArKnownMNBFEBs")
+#if not isPileUpDigi:
+# condSeq+=LArBadFebCondAlg("LArKnownBadFebAlg",ReadKey="",WriteKey="LArKnownBadFEBs")
+# condSeq+=LArBadFebCondAlg("LArKnownMNBFebAlg",ReadKey="",WriteKey="LArKnownMNBFEBs")
## these may be conditional.
diff --git a/Simulation/FastShower/FastCaloSim/python/FastCaloSimFactoryNew.py b/Simulation/FastShower/FastCaloSim/python/FastCaloSimFactoryNew.py
index a51050c1b6daba429064744f14b4c6d544917896..cd8d25f39ab220ba02a7260cb7c158a7cf9df36b 100644
--- a/Simulation/FastShower/FastCaloSim/python/FastCaloSimFactoryNew.py
+++ b/Simulation/FastShower/FastCaloSim/python/FastCaloSimFactoryNew.py
@@ -7,7 +7,7 @@ import TrkConfig.AtlasExtrapolatorToolsConfig as TC
# UPDATORS
-def NIMatEffUpdatorCfg(flags, name="NIMatEffUpdator", **kwargs):
+def NIMatEffUpdatorCfg(flags, name="ISF_NIMatEffUpdator", **kwargs):
mlog = logging.getLogger(name)
mlog.debug("Start configuration")
result = ComponentAccumulator()
diff --git a/Simulation/ISF/ISF_Config/python/ISF_MainConfigNew.py b/Simulation/ISF/ISF_Config/python/ISF_MainConfigNew.py
index 059b83a057a6725e5fede970a2fb241258845247..a1c67fd6b748f28d7e861e41836a86d05bd2d288 100644
--- a/Simulation/ISF/ISF_Config/python/ISF_MainConfigNew.py
+++ b/Simulation/ISF/ISF_Config/python/ISF_MainConfigNew.py
@@ -378,7 +378,7 @@ def Kernel_ATLFASTIIF_G4MSCfg(flags, name="ISF_Kernel_ATLFASTIIF_G4MS", **kwargs
kwargs.setdefault("CavernSimulationSelectors" , [ acc.getPublicTool("ISF_DefaultParticleKillerSelector") ])
# not migrated simFlags.SimulationFlavour = "ATLFASTIIF_MS"
# simFlags.SimulationFlavour = "ATLFASTIIF_G4MS"
-
+ kwargs.setdefault("OutputLevel", 1)
acc.merge(Kernel_GenericSimulatorCfg(flags, name, **kwargs)) # Merge properly configured SimKernel here and let deduplication sort it out.
return acc
diff --git a/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py b/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py
index e4525894b7ad7427531a03eaa2f35d8296cf6da3..0d2e6c826fac429eb03e0bf9ba89ab01d78b9ec8 100644
--- a/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py
+++ b/Simulation/ISF/ISF_Core/ISF_Services/python/ISF_ServicesConfigNew.py
@@ -85,6 +85,9 @@ def ParticleBrokerSvcNoOrderingCfg(ConfigFlags, name="ISF_ParticleBrokerSvcNoOrd
result.addPublicTool(tool)
kwargs.setdefault("EntryLayerTool", result.getPublicTool(tool.name))
kwargs.setdefault("GeoIDSvc", result.getService("ISF_GeoIDSvc").name) # FIXME
+ if ConfigFlags.Sim.ISF.Simulator in ["ATLFASTIIF_G4MS", "ATLFAST3F_G4MS"]:
+ from ISF_Services.ISF_ServicesCoreConfigNew import GeoIDSvcCfg
+ kwargs["GeoIDSvc"] = result.getPrimaryAndMerge(GeoIDSvcCfg(ConfigFlags)).name #HACK
# assume "GeoIDSvc" has been set alongside "EntryLayerTool"
kwargs.setdefault("AlwaysUseGeoIDSvc", False)
kwargs.setdefault("ValidateGeoIDs", ConfigFlags.Sim.ISF.ValidationMode)
diff --git a/Simulation/Tests/ISF_Validation/test/test_MC16_ATLFAST3F_G4MS_ttbar.sh b/Simulation/Tests/ISF_Validation/test/test_MC16_ATLFAST3F_G4MS_ttbar.sh
index 9575cb2b8393c04e57cfef9fb73a669d93da1f20..5c2a497abeaababb8be92c3ba42608530f49874a 100755
--- a/Simulation/Tests/ISF_Validation/test/test_MC16_ATLFAST3F_G4MS_ttbar.sh
+++ b/Simulation/Tests/ISF_Validation/test/test_MC16_ATLFAST3F_G4MS_ttbar.sh
@@ -26,8 +26,9 @@ Sim_tf.py \
--imf False
rc=$?
-rc2=-9999
echo "art-result: $rc simOLD"
+
+rc2=-9999
if [ $rc -eq 0 ]
then
ArtPackage=$1
diff --git a/Simulation/Tests/ISF_ValidationMT/test/test_RUN3Sym_ATLFAST3F_G4MS_ttbar_CAvsCG.sh b/Simulation/Tests/ISF_ValidationMT/test/test_RUN3Sym_ATLFAST3F_G4MS_ttbar_CAvsCG.sh
index 0964b8148b7c210e0b018e2ff742c9be34f80ae0..85a633fa05e8419123ee6e2e7e007c58eb58c44c 100755
--- a/Simulation/Tests/ISF_ValidationMT/test/test_RUN3Sym_ATLFAST3F_G4MS_ttbar_CAvsCG.sh
+++ b/Simulation/Tests/ISF_ValidationMT/test/test_RUN3Sym_ATLFAST3F_G4MS_ttbar_CAvsCG.sh
@@ -18,13 +18,13 @@ Sim_tf.py \
--physicsList 'FTFP_BERT_ATL' \
--truthStrategy 'MC15aPlus' \
--simulator 'ATLFAST3F_G4MS' \
- --postInclude 'PyJobTransforms.UseFrontier' \
+ --postInclude 'PyJobTransforms.UseFrontier,AthenaConfiguration.JobOptsDumper.JobOptsDumperCfg' \
--preInclude 'EVNTtoHITS:SimuJobTransforms.BeamPipeKill' \
--DataRunNumber '330000' \
--geometryVersion 'default:ATLAS-R3S-2021-01-00-02' \
--inputEVNTFile "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SimCoreTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.evgen.EVNT.e4993.EVNT.08166201._000012.pool.root.1" \
--outputHITSFile "test.CA.HITS.pool.root" \
- --maxEvents 4 \
+ --maxEvents 2 \
--postExec 'with open("ConfigSimCA.pkl", "wb") as f: cfg.store(f)' \
--imf False
@@ -42,12 +42,13 @@ then
--truthStrategy 'MC15aPlus' \
--simulator 'ATLFAST3F_G4MS' \
--postInclude 'default:PyJobTransforms/UseFrontier.py' \
+ --postExec 'default:topSeq+=CfgMgr.JobOptsDumperAlg(FileName="CGSimConfig.txt")' \
--preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py' \
--DataRunNumber '330000' \
--geometryVersion 'default:ATLAS-R3S-2021-01-00-02_VALIDATION' \
--inputEVNTFile "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SimCoreTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.evgen.EVNT.e4993.EVNT.08166201._000012.pool.root.1" \
--outputHITSFile "test.CA.HITS.pool.root" \
- --maxEvents 4 \
+ --maxEvents 2 \
--imf False \
--athenaopts '"--config-only=ConfigSimCG.pkl"'
@@ -57,6 +58,7 @@ then
--truthStrategy 'MC15aPlus' \
--simulator 'ATLFAST3F_G4MS' \
--postInclude 'default:PyJobTransforms/UseFrontier.py' \
+ --postExec 'default:topSeq+=CfgMgr.JobOptsDumperAlg(FileName="CGSimConfig.txt")' \
--preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py' \
--DataRunNumber '330000' \
--geometryVersion 'default:ATLAS-R3S-2021-01-00-02_VALIDATION' \
@@ -71,18 +73,18 @@ then
fi
echo "art-result: $rc2 simOLD"
-#rc3=-9999
-#if [ $rc2 -eq 0 ]
-#then
-# # Compare the outputs
-# acmd.py diff-root test.CG.HITS.pool.root test.CA.HITS.pool.root \
-# --error-mode resilient \
-# --mode semi-detailed \
-# --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings index_ref
-# rc3=$?
-# status=$rc3
-#fi
-#
-#echo "art-result: $rc3 CAvsCG"
+rc3=-9999
+if [ $rc2 -eq 0 ]
+then
+ # Compare the outputs
+ acmd.py diff-root test.CG.HITS.pool.root test.CA.HITS.pool.root \
+ --error-mode resilient \
+ --mode semi-detailed \
+ --ignore-leaves RecoTimingObj_p1_EVNTtoHITS_timings index_ref
+ rc3=$?
+ status=$rc3
+fi
+
+echo "art-result: $rc3 CAvsCG"
exit $status
diff --git a/TileCalorimeter/TileConditions/share/TileConditions_jobOptions.py b/TileCalorimeter/TileConditions/share/TileConditions_jobOptions.py
index bfd70ce640e972147fdd61ad8914384a26505d50..2b845ca10c4c8e9a235d3948c110a59d124a48fd 100644
--- a/TileCalorimeter/TileConditions/share/TileConditions_jobOptions.py
+++ b/TileCalorimeter/TileConditions/share/TileConditions_jobOptions.py
@@ -129,7 +129,9 @@ if TileUseCOOL or athenaCommonFlags.isOnline():
if not 'TileUseCOOLPULSE' in dir() or not TileUseCOOLOFC:
TileUseCOOLPULSE=True; # read pulse from COOL
- tileInfoConfigurator.setupCOOL(type=(TileGapTiming+TilePulse))
+ from AthenaCommon.DetFlags import DetFlags
+ if not DetFlags.simulate.Tile_on():
+ tileInfoConfigurator.setupCOOL(type=(TileGapTiming+TilePulse))
if TileUseDCS:
tileInfoConfigurator.setupCOOLDCS();
diff --git a/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py b/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py
index e726cf284b0ce4f3a612bd0c24a07ef79d2d297f..101494668e7c3f94d09a32c7cd62be26c878a7ae 100644
--- a/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py
+++ b/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py
@@ -3,7 +3,7 @@
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from AthenaConfiguration.ComponentFactory import CompFactory
from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
-from SubDetectorEnvelopes.SubDetectorEnvelopesConfigNew import EnvelopeDefSvcCfg
+from SubDetectorEnvelopes.SubDetectorEnvelopesConfigNew import EnvelopeDefSvcCfg
from GaudiKernel.GaudiHandles import PrivateToolHandleArray
@@ -12,87 +12,77 @@ from GaudiKernel.GaudiHandles import PrivateToolHandleArray
def _setupCondDB(flags, CoolDataBaseFolder, quiet=True):
result=ComponentAccumulator()
-
+
# the tag names
materialTagBase = 'AtlasLayerMat_v'
- version = 21
+ version = 21
sub_version = ''
-
+
AtlasMaterialTag = materialTagBase+str(version)+sub_version+'_'
if flags.Detector.GeometryITk:
- AtlasMaterialTag = flags.ITk.trackingGeometry.materialTag+str(flags.ITk.trackingGeometry.version)+'_'
+ AtlasMaterialTag = flags.ITk.trackingGeometry.materialTag+str(flags.ITk.trackingGeometry.version)+'_'
cfolder = CoolDataBaseFolder +'TagInfoMajor/'+AtlasMaterialTag+'/GeoAtlas'
-
+
if flags.Detector.GeometryITk and flags.ITk.trackingGeometry.loadLocalDbForMaterialMaps:
DataBaseName=flags.ITk.trackingGeometry.localDatabaseName
from IOVDbSvc.IOVDbSvcConfig import addFolders
result.merge(addFolders(flags,"/GLOBAL/TrackingGeo/LayerMaterialITK",detDb=DataBaseName, tag=AtlasMaterialTag))
cfolder = CoolDataBaseFolder +'TagInfoMajor/'+AtlasMaterialTag+''
-
+
# if not quiet:
# print('[ TrackingGeometrySvc ] base material tag : ' + AtlasMaterialTag)
# print('[ TrackingGeometrySvc ] translated to COOL: ' + cfolder)
# load the right folders
result.merge( addFoldersSplitOnline(flags,'GLOBAL',[cfolder],[cfolder],splitMC=True) )
-
+
+ return result
+
+
+def BeamPipeBuilderCfg(flags, namePrefix=''):
+ result = ComponentAccumulator()
+ from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
+ result.merge(BeamPipeGeometryCfg(flags))
+ InDet__BeamPipeBuilder=CompFactory.InDet.BeamPipeBuilder
+ beamPipeBuilder = InDet__BeamPipeBuilder(name=namePrefix+'BeamPipeBuilder')
+ result.setPrivateTools(beamPipeBuilder)
return result
-
-def _getInDetTrackingGeometryBuilder(name, flags,result, envelopeDefinitionSvc, namePrefix='', setLayerAssociation = True, buildTrtStrawLayers = False):
- # Based on https://gitlab.cern.ch/atlas/athena/blob/master/InnerDetector/InDetDetDescr/InDetTrackingGeometry/python/ConfiguredInDetTrackingGeometryBuilder.py
- # A lot of comments below are to help people understand differences from the above, in case we need to revert some simplifications I made
- # i.e. this is far from complete, but is better than what was there before.
-
- # beampipe
- from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
- result.merge(BeamPipeGeometryCfg(flags))
- InDet__BeamPipeBuilder=CompFactory.InDet.BeamPipeBuilder
- beamPipeBuilder = InDet__BeamPipeBuilder(name=namePrefix+'BeamPipeBuilder')
-
- result.addPublicTool(beamPipeBuilder)
- layerbuilders = []
- binnings = []
- colors = []
-
- # Pixel
- if flags.Detector.GeometryPixel:
+
+
+def PixelLayerBuilderCfg(flags, namePrefix='', setLayerAssociation = True):
+ result = ComponentAccumulator()
from AthenaConfiguration.Enums import ProductionStep
if flags.Common.ProductionStep != ProductionStep.Simulation: # Not needed by FATRAS
from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
- result.merge(PixelReadoutGeometryCfg( flags ))
+ result.merge(PixelReadoutGeometryCfg(flags))
else:
from PixelGeoModel.PixelGeoModelConfig import PixelSimulationGeometryCfg
- result.merge(PixelSimulationGeometryCfg( flags ))
+ result.merge(PixelSimulationGeometryCfg(flags))
InDet__SiLayerBuilder=CompFactory.InDet.SiLayerBuilder
PixelLayerBuilder = InDet__SiLayerBuilder(name=namePrefix+'PixelLayerBuilder')
- PixelLayerBuilder.PixelCase = True
- PixelLayerBuilder.Identification = 'Pixel'
+ PixelLayerBuilder.PixelCase = True
+ PixelLayerBuilder.Identification = 'Pixel'
PixelLayerBuilder.SiDetManagerLocation = 'Pixel'
# additional layers - handle with care !
- PixelLayerBuilder.BarrelAdditionalLayerRadii = [ 130.0 ] # The PST
- PixelLayerBuilder.BarrelAdditionalLayerType = [ 0 ] # -- will shift volume boundary to PST
+ PixelLayerBuilder.BarrelAdditionalLayerRadii = [ 130.0 ] # The PST
+ PixelLayerBuilder.BarrelAdditionalLayerType = [ 0 ] # -- will shift volume boundary to PST
PixelLayerBuilder.EndcapAdditionalLayerPositionsZ = [ -1900. , 1900. ] # DBM
- PixelLayerBuilder.EndcapAdditionalLayerType = [ 1 , 1 ] # DBM
+ PixelLayerBuilder.EndcapAdditionalLayerType = [ 1 , 1 ] # DBM
# Pixel barrel specifications
- PixelLayerBuilder.BarrelLayerBinsZ = 1
- PixelLayerBuilder.BarrelLayerBinsPhi = 1
- PixelLayerBuilder.EndcapLayerBinsR = 1
- PixelLayerBuilder.EndcapLayerBinsPhi = 1
-
+ PixelLayerBuilder.BarrelLayerBinsZ = 1
+ PixelLayerBuilder.BarrelLayerBinsPhi = 1
+ PixelLayerBuilder.EndcapLayerBinsR = 1
+ PixelLayerBuilder.EndcapLayerBinsPhi = 1
+
# set the layer association
- PixelLayerBuilder.SetLayerAssociation = setLayerAssociation
-
- # the binning type of the layers a
- PixelLayerBinning = 2
- # add it to tool service
- result.addPublicTool(PixelLayerBuilder)
- # put them to the caches
- layerbuilders += [ PixelLayerBuilder ]
- binnings += [ PixelLayerBinning ]
- colors += [ 3 ]
-
- if flags.Detector.GeometrySCT:
+ PixelLayerBuilder.SetLayerAssociation = setLayerAssociation
+ result.setPrivateTools(PixelLayerBuilder)
+ return result
+
+
+def SCT_LayerBuilderCfg(flags, namePrefix='', setLayerAssociation = True):
+ result = ComponentAccumulator()
from AthenaConfiguration.Enums import ProductionStep
if flags.Common.ProductionStep != ProductionStep.Simulation: # Not needed by FATRAS
from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
@@ -108,30 +98,25 @@ def _getInDetTrackingGeometryBuilder(name, flags,result, envelopeDefinitionSvc,
SCT_LayerBuilder.Identification = 'SCT'
SCT_LayerBuilder.SiDetManagerLocation = 'SCT'
# additionall layers - handle with care !
- SCT_LayerBuilder.BarrelAdditionalLayerRadii = []
- SCT_LayerBuilder.BarrelAdditionalLayerType = []
+ SCT_LayerBuilder.BarrelAdditionalLayerRadii = []
+ SCT_LayerBuilder.BarrelAdditionalLayerType = []
- SCT_LayerBuilder.EndcapAdditionalLayerPositionsZ = [ -2850. , 2850. ]
- SCT_LayerBuilder.EndcapAdditionalLayerType = [ 0 , 0 ]
+ SCT_LayerBuilder.EndcapAdditionalLayerPositionsZ = [ -2850. , 2850. ]
+ SCT_LayerBuilder.EndcapAdditionalLayerType = [ 0 , 0 ]
SCT_LayerBuilder.BarrelLayerBinsZ = 1
SCT_LayerBuilder.BarrelLayerBinsPhi = 1
- # SCT endcap specifications
+ # SCT endcap specifications
SCT_LayerBuilder.EndcapLayerBinsR = 1
SCT_LayerBuilder.EndcapLayerBinsPhi = 1
- SCT_LayerBuilder.EndcapComplexRingBinning = True
- # set the layer association
- SCT_LayerBuilder.SetLayerAssociation = setLayerAssociation
- # the binning type of the layer
- SCT_LayerBinning = 2
- # SCT -> ToolSvc
- result.addPublicTool(SCT_LayerBuilder)
-
- # put them to the caches
- layerbuilders += [ SCT_LayerBuilder ]
- binnings += [ SCT_LayerBinning ]
- colors += [ 4 ]
-
- if flags.Detector.GeometryTRT:
+ SCT_LayerBuilder.EndcapComplexRingBinning = True
+ # set the layer association
+ SCT_LayerBuilder.SetLayerAssociation = setLayerAssociation
+ result.setPrivateTools(SCT_LayerBuilder)
+ return result
+
+
+def TRT_LayerBuilderCfg(flags, namePrefix='', buildTrtStrawLayers = False):
+ result = ComponentAccumulator()
from AthenaConfiguration.Enums import ProductionStep
if flags.Common.ProductionStep != ProductionStep.Simulation: # Not needed by FATRAS
from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
@@ -144,279 +129,365 @@ def _getInDetTrackingGeometryBuilder(name, flags,result, envelopeDefinitionSvc,
TRT_LayerBuilder = InDet__TRT_LayerBuilder(name=namePrefix+'TRT_LayerBuilder')
# TRT barrel specifications - assume defaults
# SCT endcap specifications - assume defaults
-
- # set the binning from bi-aequidistant to arbitrary for complex TRT volumes
- TRT_LayerBinning = 1
- if buildTrtStrawLayers or (flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain] and flags.Sim.ISF.Simulator not in ["ATLFASTIIMT"]):
- TRT_LayerBinning = 2
+
if buildTrtStrawLayers:
- TRT_LayerBuilder.ModelLayersOnly = False
- # TRT -> ToolSvc
- result.addPublicTool(TRT_LayerBuilder)
-
- # put them to the caches
- layerbuilders += [ TRT_LayerBuilder ]
- binnings += [ TRT_LayerBinning ]
- colors += [ 5 ]
-
- # helpers for the InDetTrackingGeometry Builder : layer array creator
- Trk__LayerArrayCreator=CompFactory.Trk.LayerArrayCreator
- InDetLayerArrayCreator = Trk__LayerArrayCreator(name = 'InDetLayerArrayCreator')
- InDetLayerArrayCreator.EmptyLayerMode = 2 # deletes empty material layers from arrays
- # add to ToolSvc
- result.addPublicTool(InDetLayerArrayCreator)
-
- # helpers for the InDetTrackingGeometry Builder : volume array creator
- InDetTrackingVolumeArrayCreator= CompFactory.Trk.TrackingVolumeArrayCreator(name = 'InDetTrackingVolumeArrayCreator')
- # add to ToolSvc
- result.addPublicTool(InDetTrackingVolumeArrayCreator)
-
- # helpers for the InDetTrackingGeometry Builder : tracking volume helper for gluing
- Trk__TrackingVolumeHelper=CompFactory.Trk.TrackingVolumeHelper
- InDetTrackingVolumeHelper = Trk__TrackingVolumeHelper(name ='InDetTrackingVolumeHelper')
- # the material bins - assume defaults
- # add to ToolSvc
- result.addPublicTool(InDetTrackingVolumeHelper)
-
- # helpers for the InDetTrackingGeometry Builder : cylinder volume creator
- Trk__CylinderVolumeCreator=CompFactory.Trk.CylinderVolumeCreator
- InDetCylinderVolumeCreator = Trk__CylinderVolumeCreator(name = 'InDetCylinderVolumeCreator')
- # give it the layer array creator
- InDetCylinderVolumeCreator.LayerArrayCreator = InDetLayerArrayCreator
- # specifiy the binning, passive layers, entry layers - assume defaults
- # add to ToolSvc
- result.addPublicTool(InDetCylinderVolumeCreator)
-
- # the tracking geometry builder
- InDet__RobustTrackingGeometryBuilder=CompFactory.InDet.RobustTrackingGeometryBuilder
- return InDet__RobustTrackingGeometryBuilder(namePrefix+name,
- BeamPipeBuilder = beamPipeBuilder,
- LayerBuilders = layerbuilders,
- LayerBinningType = binnings,
- ColorCodes = colors,
+ TRT_LayerBuilder.ModelLayersOnly = False
+ result.setPrivateTools(TRT_LayerBuilder)
+ return result
+
+
+def InDetTrackingGeometryBuilderCfg(name, flags, envelopeDefinitionSvc, namePrefix='', setLayerAssociation = True):
+ # Based on https://gitlab.cern.ch/atlas/athena/blob/master/InnerDetector/InDetDetDescr/InDetTrackingGeometry/python/ConfiguredInDetTrackingGeometryBuilder.py
+ # A lot of comments below are to help people understand differences from the above, in case we need to revert some simplifications I made
+ # i.e. this is far from complete, but is better than what was there before.
+
+ result = ComponentAccumulator()
+
+ # beampipe
+ beamPipeBuilder = result.popToolsAndMerge(BeamPipeBuilderCfg(flags, namePrefix))
+ result.addPublicTool(beamPipeBuilder)
+
+ layerbuilders = [] # Used to set a PublicToolHandleArray
+ binnings = []
+ colors = []
+
+ if flags.Detector.GeometryPixel:
+ PixelLayerBuilder = result.popToolsAndMerge(PixelLayerBuilderCfg(flags, namePrefix, setLayerAssociation))
+ # the binning type of the layers
+ PixelLayerBinning = 2
+ # add it to tool service
+ result.addPublicTool(PixelLayerBuilder)
+ # put them to the caches
+ layerbuilders += [ PixelLayerBuilder ]
+ binnings += [ PixelLayerBinning ]
+ colors += [ 3 ]
+
+ if flags.Detector.GeometrySCT:
+ SCT_LayerBuilder = result.popToolsAndMerge(SCT_LayerBuilderCfg(flags, namePrefix, setLayerAssociation))
+ # the binning type of the layer
+ SCT_LayerBinning = 2
+ # add it to tool service
+ result.addPublicTool(SCT_LayerBuilder)
+ # put them to the caches
+ layerbuilders += [ SCT_LayerBuilder ]
+ binnings += [ SCT_LayerBinning ]
+ colors += [ 4 ]
+
+ if flags.Detector.GeometryTRT:
+ buildTrtStrawLayers = flags.Beam.Type=='cosmics'
+ TRT_LayerBuilder = result.popToolsAndMerge(TRT_LayerBuilderCfg(flags, namePrefix, buildTrtStrawLayers))
+ # set the binning from bi-aequidistant to arbitrary for complex TRT volumes
+ TRT_LayerBinning = 1
+ if buildTrtStrawLayers or (flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain] and flags.Sim.ISF.Simulator not in ["ATLFASTIIMT"]):
+ TRT_LayerBinning = 2
+ # add it to tool service
+ result.addPublicTool(TRT_LayerBuilder)
+ # put them to the caches
+ layerbuilders += [ TRT_LayerBuilder ]
+ binnings += [ TRT_LayerBinning ]
+ colors += [ 5 ]
+
+ # helpers for the InDetTrackingGeometry Builder : layer array creator
+ Trk__LayerArrayCreator = CompFactory.Trk.LayerArrayCreator
+ InDetLayerArrayCreator = Trk__LayerArrayCreator(name = 'InDetLayerArrayCreator')
+ InDetLayerArrayCreator.EmptyLayerMode = 2 # deletes empty material layers from arrays
+ # add to ToolSvc
+ result.addPublicTool(InDetLayerArrayCreator)
+
+ # helpers for the InDetTrackingGeometry Builder : volume array creator
+ InDetTrackingVolumeArrayCreator = CompFactory.Trk.TrackingVolumeArrayCreator(name = 'InDetTrackingVolumeArrayCreator')
+ # add to ToolSvc
+ result.addPublicTool(InDetTrackingVolumeArrayCreator)
+
+ # helpers for the InDetTrackingGeometry Builder : tracking volume helper for gluing
+ Trk__TrackingVolumeHelper = CompFactory.Trk.TrackingVolumeHelper
+ InDetTrackingVolumeHelper = Trk__TrackingVolumeHelper(name ='InDetTrackingVolumeHelper')
+ # the material bins - assume defaults
+ # add to ToolSvc
+ result.addPublicTool(InDetTrackingVolumeHelper)
+
+ # helpers for the InDetTrackingGeometry Builder : cylinder volume creator
+ Trk__CylinderVolumeCreator = CompFactory.Trk.CylinderVolumeCreator
+ InDetCylinderVolumeCreator = Trk__CylinderVolumeCreator(name = 'InDetCylinderVolumeCreator')
+ # give it the layer array creator
+ InDetCylinderVolumeCreator.LayerArrayCreator = InDetLayerArrayCreator
+ # specifiy the binning, passive layers, entry layers - assume defaults
+ # add to ToolSvc
+ result.addPublicTool(InDetCylinderVolumeCreator)
+
+ # the tracking geometry builder
+ InDet__RobustTrackingGeometryBuilder=CompFactory.InDet.RobustTrackingGeometryBuilder
+ result.setPrivateTools(InDet__RobustTrackingGeometryBuilder(namePrefix+name,
+ BeamPipeBuilder = beamPipeBuilder,
+ LayerBuilders = layerbuilders,
+ LayerBinningType = binnings,
+ ColorCodes = colors,
EnvelopeDefinitionSvc = envelopeDefinitionSvc,
VolumeEnclosureDiscPositions = [ 3000., 3450. ],
- TrackingVolumeCreator = InDetCylinderVolumeCreator,
- LayerArrayCreator = InDetLayerArrayCreator,
- ReplaceAllJointBoundaries=True,
- VolumeEnclosureCylinderRadii=[],
- BuildBoundaryLayers=True,
- ExitVolumeName='InDet::Containers::InnerDetector')
+ TrackingVolumeCreator = InDetCylinderVolumeCreator,
+ LayerArrayCreator = InDetLayerArrayCreator,
+ ReplaceAllJointBoundaries = True,
+ VolumeEnclosureCylinderRadii = [],
+ BuildBoundaryLayers = True,
+ ExitVolumeName = 'InDet::Containers::InnerDetector')
# FIXME - not sure what to do about the following:
# BuildBoundaryLayers = TrkDetFlags.InDetBuildMaterialBoundaries(),
# ReplaceAllJointBoundaries = TrkDetFlags.InDetBuildJointBoundaries(),
# OutputLevel = TrkDetFlags.InDetBuildingOutputLevel(),
# ExitVolumeName = TrkDetFlags.InDetContainerName(),
-
+
# Probably they should just be dropped, but I leave this comment for the moment so reviewers can have a think as well.
-
+
# Barrel Entry layers (in old config) etc were removed in 323990adfce581a635ae1809fd2ecc6a093a704c (!)
+ )
+ return result
def _getITkTrackingGeometryBuilder(name, flags,result, envelopeDefinitionSvc, namePrefix='', setLayerAssociation = True, buildTrtStrawLayers = False):
- # Based on https://gitlab.cern.ch/atlas/athena/blob/master/InnerDetector/InDetDetDescr/InDetTrackingGeometry/python/ConfiguredInDetTrackingGeometryBuilder.py
- # A lot of comments below are to help people understand differences from the above, in case we need to revert some simplifications I made
- # i.e. this is far from complete, but is better than what was there before.
-
- # beampipe
- from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
- result.merge(BeamPipeGeometryCfg(flags))
- InDet__BeamPipeBuilder=CompFactory.InDet.BeamPipeBuilder
- beamPipeBuilder = InDet__BeamPipeBuilder(name=namePrefix+'BeamPipeBuilder')
- beamPipeBuilder.BeamPipeMaterialBinsZ = flags.ITk.trackingGeometry.beampipeMatZbins
-
- result.addPublicTool(beamPipeBuilder)
- BeamPipeBinning = 2
-
- Trk__LayerProvider=CompFactory.Trk.LayerProvider
- beamPipeProvider = Trk__LayerProvider(name=namePrefix+'BeamPipeProvider')
- beamPipeProvider.LayerBuilder = beamPipeBuilder
- result.addPublicTool(beamPipeProvider)
-
- layerProviders = [beamPipeProvider]
- binnings_barrel = [BeamPipeBinning]
- binnings_endcap = [BeamPipeBinning]
- colors = [2]
-
- # Pixel
- if flags.Detector.GeometryITkPixel:
- from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
- result.merge(ITkPixelReadoutGeometryCfg(flags))
+ # Based on https://gitlab.cern.ch/atlas/athena/blob/master/InnerDetector/InDetDetDescr/InDetTrackingGeometry/python/ConfiguredInDetTrackingGeometryBuilder.py
+ # A lot of comments below are to help people understand differences from the above, in case we need to revert some simplifications I made
+ # i.e. this is far from complete, but is better than what was there before.
+
+ # beampipe
+ from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
+ result.merge(BeamPipeGeometryCfg(flags))
+ InDet__BeamPipeBuilder=CompFactory.InDet.BeamPipeBuilder
+ beamPipeBuilder = InDet__BeamPipeBuilder(name=namePrefix+'BeamPipeBuilder')
+ beamPipeBuilder.BeamPipeMaterialBinsZ = flags.ITk.trackingGeometry.beampipeMatZbins
+
+ result.addPublicTool(beamPipeBuilder)
+ BeamPipeBinning = 2
+
+ Trk__LayerProvider=CompFactory.Trk.LayerProvider
+ beamPipeProvider = Trk__LayerProvider(name=namePrefix+'BeamPipeProvider')
+ beamPipeProvider.LayerBuilder = beamPipeBuilder
+ result.addPublicTool(beamPipeProvider)
+
+ layerProviders = [beamPipeProvider]
+ binnings_barrel = [BeamPipeBinning]
+ binnings_endcap = [BeamPipeBinning]
+ colors = [2]
+
+ # Pixel
+ if flags.Detector.GeometryITkPixel:
+ from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
+ result.merge(ITkPixelReadoutGeometryCfg(flags))
+
+ InDet__SiLayerBuilder=CompFactory.InDet.SiLayerBuilder
+ PixelLayerBuilderInner = InDet__SiLayerBuilder(name=namePrefix+'PixelLayerBuilderInner')
+ PixelLayerBuilderInner.PixelCase = True
+ PixelLayerBuilderInner.Identification = 'ITkPixelInner'
+ PixelLayerBuilderInner.SiDetManagerLocation = 'ITkPixel'
+ PixelLayerBuilderInner.LayerIndicesBarrel = [0,1]
+ PixelLayerBuilderInner.LayerIndicesEndcap = [0,1,2]
+ PixelLayerBuilderInner.UseRingLayout = True
+ # Pixel barrel specifications
+ PixelLayerBuilderInner.BarrelLayerBinsZ = flags.ITk.trackingGeometry.pixelBarrelMatZbins
+ PixelLayerBuilderInner.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.pixelBarrelMatPhiBins
+ PixelLayerBuilderInner.EndcapLayerBinsR = flags.ITk.trackingGeometry.pixelEndcapMatRbins
+ PixelLayerBuilderInner.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.pixelEndcapMatPhiBins
+
+ # set the layer association
+ PixelLayerBuilderInner.SetLayerAssociation = setLayerAssociation
+
+ # the binning type of the layers a
+ PixelLayerBinning = 2
+ # add it to tool service
+ result.addPublicTool(PixelLayerBuilderInner)
+
+ pixelProviderInner = Trk__LayerProvider(name=namePrefix+'PixelProviderInner')
+ pixelProviderInner.LayerBuilder = PixelLayerBuilderInner
+ result.addPublicTool(pixelProviderInner)
+ # put them to the caches
+ layerProviders += [pixelProviderInner]
+ binnings_barrel += [ PixelLayerBinning ]
+ binnings_endcap += [ PixelLayerBinning ]
+ colors += [ 3 ]
+
+ PixelLayerBuilderOuter = InDet__SiLayerBuilder(name=namePrefix+'PixelLayerBuilderOuter')
+ PixelLayerBuilderOuter.PixelCase = True
+ PixelLayerBuilderOuter.Identification = 'ITkPixelOuter'
+ PixelLayerBuilderOuter.SiDetManagerLocation = 'ITkPixel'
+ PixelLayerBuilderOuter.LayerIndicesBarrel = [2,3,4]
+ PixelLayerBuilderOuter.LayerIndicesEndcap = [3,4,5,6,7,8]
+ PixelLayerBuilderOuter.UseRingLayout=True
+ PixelLayerBuilderOuter.BarrelLayerBinsZ = flags.ITk.trackingGeometry.pixelBarrelMatZbins
+ PixelLayerBuilderOuter.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.pixelBarrelMatPhiBins
+ PixelLayerBuilderOuter.EndcapLayerBinsR = flags.ITk.trackingGeometry.pixelEndcapMatRbins
+ PixelLayerBuilderOuter.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.pixelEndcapMatPhiBins
+
+ # set the layer association
+ PixelLayerBuilderOuter.SetLayerAssociation = setLayerAssociation
+
+ # the binning type of the layers a
+ PixelLayerBinning = 2
+ # add it to tool service
+ result.addPublicTool(PixelLayerBuilderOuter)
+
+ pixelProviderOuter = Trk__LayerProvider(name=namePrefix+'PixelProviderOuter')
+ pixelProviderOuter.LayerBuilder = PixelLayerBuilderOuter
+ result.addPublicTool(pixelProviderOuter)
+ # put them to the caches
+ layerProviders += [pixelProviderOuter]
+ binnings_barrel += [ PixelLayerBinning ]
+ binnings_endcap += [ PixelLayerBinning ]
+ colors += [ 3 ]
+
+ if flags.Detector.GeometryITkStrip:
+ from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
+ result.merge(ITkStripReadoutGeometryCfg(flags))
+
+ # SCT building
+ InDet__SiLayerBuilder=CompFactory.InDet.SiLayerBuilder
+ SCT_LayerBuilder = InDet__SiLayerBuilder(name=namePrefix+'SCT_LayerBuilder')
+ SCT_LayerBuilder.PixelCase = False
+ SCT_LayerBuilder.Identification = 'ITkStrip'
+ SCT_LayerBuilder.SiDetManagerLocation = 'ITkStrip'
+ SCT_LayerBuilder.AddMoreSurfaces = True
+ SCT_LayerBuilder.BarrelLayerBinsZ = flags.ITk.trackingGeometry.stripBarrelMatZbins
+ SCT_LayerBuilder.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.stripBarrelMatPhiBins
+ SCT_LayerBuilder.EndcapLayerBinsR = flags.ITk.trackingGeometry.stripEndcapMatRbins
+ SCT_LayerBuilder.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.stripEndcapMatPhiBins
+ # set the layer association
+ SCT_LayerBuilder.SetLayerAssociation = setLayerAssociation
+ # the binning type of the layer
+ SCT_LayerBinning = 2
+ # SCT -> ToolSvc
+ result.addPublicTool(SCT_LayerBuilder)
+
+ stripProvider = Trk__LayerProvider(name=namePrefix+'StripProvider')
+ stripProvider.LayerBuilder = SCT_LayerBuilder
+ result.addPublicTool(stripProvider)
+
+ # put them to the caches
+ layerProviders += [stripProvider]
+ binnings_barrel += [ SCT_LayerBinning ]
+ binnings_endcap += [ SCT_LayerBinning ]
+ colors += [ 4 ]
+
+ # helpers for the InDetTrackingGeometry Builder : layer array creator
+ Trk__LayerArrayCreator=CompFactory.Trk.LayerArrayCreator
+ InDetLayerArrayCreator = Trk__LayerArrayCreator(name = 'InDetLayerArrayCreator')
+ InDetLayerArrayCreator.EmptyLayerMode = 2 # deletes empty material layers from arrays
+ # add to ToolSvc
+ result.addPublicTool(InDetLayerArrayCreator)
+
+ # helpers for the InDetTrackingGeometry Builder : volume array creator
+ Trk__TrackingVolumeArrayCreator= CompFactory.Trk.TrackingVolumeArrayCreator
+ InDetTrackingVolumeArrayCreator = Trk__TrackingVolumeArrayCreator(name = 'InDetTrackingVolumeArrayCreator')
+ # add to ToolSvc
+ result.addPublicTool(InDetTrackingVolumeArrayCreator)
+
+ # helpers for the InDetTrackingGeometry Builder : tracking volume helper for gluing
+ Trk__TrackingVolumeHelper=CompFactory.Trk.TrackingVolumeHelper
+ InDetTrackingVolumeHelper = Trk__TrackingVolumeHelper(name ='InDetTrackingVolumeHelper')
+ InDetTrackingVolumeHelper.BarrelLayerBinsZ = flags.ITk.trackingGeometry.passiveBarrelMatZbins
+ InDetTrackingVolumeHelper.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.passiveBarrelMatPhiBins
+ InDetTrackingVolumeHelper.EndcapLayerBinsR = flags.ITk.trackingGeometry.passiveEndcapMatRbins
+ InDetTrackingVolumeHelper.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.passiveEndcapMatPhiBins
+
+ # the material bins - assume defaults
+ # add to ToolSvc
+ result.addPublicTool(InDetTrackingVolumeHelper)
+
+ # helpers for the InDetTrackingGeometry Builder : cylinder volume creator
+ Trk__CylinderVolumeCreator=CompFactory.Trk.CylinderVolumeCreator
+ InDetCylinderVolumeCreator = Trk__CylinderVolumeCreator(name = 'InDetCylinderVolumeCreator')
+ # give it the layer array creator
+ InDetCylinderVolumeCreator.LayerArrayCreator = InDetLayerArrayCreator
+ InDetCylinderVolumeCreator.TrackingVolumeArrayCreator = InDetTrackingVolumeArrayCreator
+ InDetCylinderVolumeCreator.TrackingVolumeHelper = InDetTrackingVolumeHelper
+ InDetCylinderVolumeCreator.PassiveLayerThickness = 1. ## mm
+ InDetCylinderVolumeCreator.PassiveLayerBinsRZ = flags.ITk.trackingGeometry.passiveBarrelMatZbins
+ InDetCylinderVolumeCreator.PassiveLayerBinsPhi = flags.ITk.trackingGeometry.passiveBarrelMatPhiBins
+
+ # specifiy the binning, passive layers, entry layers - assume defaults
+ # add to ToolSvc
+ result.addPublicTool(InDetCylinderVolumeCreator)
+
+ # the tracking geometry builder
+ InDet__StagedTrackingGeometryBuilder=CompFactory.InDet.StagedTrackingGeometryBuilder
+ return InDet__StagedTrackingGeometryBuilder(namePrefix+name,
+ LayerBuilders = layerProviders,
+ LayerBinningTypeCenter = binnings_barrel,
+ LayerBinningTypeEndcap = binnings_endcap,
+ ColorCodes = colors,
+ EnvelopeDefinitionSvc = envelopeDefinitionSvc,
+ TrackingVolumeCreator = InDetCylinderVolumeCreator,
+ LayerArrayCreator = InDetLayerArrayCreator,
+ CheckForRingLayout = True,
+ MinimalRadialGapForVolumeSplit = flags.ITk.trackingGeometry.minimalRadialGapForVolumeSplit,
+ ReplaceAllJointBoundaries = True,
+ BuildBoundaryLayers=True,
+ ExitVolumeName='InDet::Containers::InnerDetector')
- InDet__SiLayerBuilder=CompFactory.InDet.SiLayerBuilder
- PixelLayerBuilderInner = InDet__SiLayerBuilder(name=namePrefix+'PixelLayerBuilderInner')
- PixelLayerBuilderInner.PixelCase = True
- PixelLayerBuilderInner.Identification = 'ITkPixelInner'
- PixelLayerBuilderInner.SiDetManagerLocation = 'ITkPixel'
- PixelLayerBuilderInner.LayerIndicesBarrel = [0,1]
- PixelLayerBuilderInner.LayerIndicesEndcap = [0,1,2]
- PixelLayerBuilderInner.UseRingLayout = True
- # Pixel barrel specifications
- PixelLayerBuilderInner.BarrelLayerBinsZ = flags.ITk.trackingGeometry.pixelBarrelMatZbins
- PixelLayerBuilderInner.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.pixelBarrelMatPhiBins
- PixelLayerBuilderInner.EndcapLayerBinsR = flags.ITk.trackingGeometry.pixelEndcapMatRbins
- PixelLayerBuilderInner.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.pixelEndcapMatPhiBins
-
- # set the layer association
- PixelLayerBuilderInner.SetLayerAssociation = setLayerAssociation
-
- # the binning type of the layers a
- PixelLayerBinning = 2
- # add it to tool service
- result.addPublicTool(PixelLayerBuilderInner)
-
- pixelProviderInner = Trk__LayerProvider(name=namePrefix+'PixelProviderInner')
- pixelProviderInner.LayerBuilder = PixelLayerBuilderInner
- result.addPublicTool(pixelProviderInner)
- # put them to the caches
- layerProviders += [pixelProviderInner]
- binnings_barrel += [ PixelLayerBinning ]
- binnings_endcap += [ PixelLayerBinning ]
- colors += [ 3 ]
-
- PixelLayerBuilderOuter = InDet__SiLayerBuilder(name=namePrefix+'PixelLayerBuilderOuter')
- PixelLayerBuilderOuter.PixelCase = True
- PixelLayerBuilderOuter.Identification = 'ITkPixelOuter'
- PixelLayerBuilderOuter.SiDetManagerLocation = 'ITkPixel'
- PixelLayerBuilderOuter.LayerIndicesBarrel = [2,3,4]
- PixelLayerBuilderOuter.LayerIndicesEndcap = [3,4,5,6,7,8]
- PixelLayerBuilderOuter.UseRingLayout=True
- PixelLayerBuilderOuter.BarrelLayerBinsZ = flags.ITk.trackingGeometry.pixelBarrelMatZbins
- PixelLayerBuilderOuter.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.pixelBarrelMatPhiBins
- PixelLayerBuilderOuter.EndcapLayerBinsR = flags.ITk.trackingGeometry.pixelEndcapMatRbins
- PixelLayerBuilderOuter.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.pixelEndcapMatPhiBins
-
- # set the layer association
- PixelLayerBuilderOuter.SetLayerAssociation = setLayerAssociation
-
- # the binning type of the layers a
- PixelLayerBinning = 2
- # add it to tool service
- result.addPublicTool(PixelLayerBuilderOuter)
-
- pixelProviderOuter = Trk__LayerProvider(name=namePrefix+'PixelProviderOuter')
- pixelProviderOuter.LayerBuilder = PixelLayerBuilderOuter
- result.addPublicTool(pixelProviderOuter)
- # put them to the caches
- layerProviders += [pixelProviderOuter]
- binnings_barrel += [ PixelLayerBinning ]
- binnings_endcap += [ PixelLayerBinning ]
- colors += [ 3 ]
-
- if flags.Detector.GeometryITkStrip:
- from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
- result.merge(ITkStripReadoutGeometryCfg(flags))
- # SCT building
- InDet__SiLayerBuilder=CompFactory.InDet.SiLayerBuilder
- SCT_LayerBuilder = InDet__SiLayerBuilder(name=namePrefix+'SCT_LayerBuilder')
- SCT_LayerBuilder.PixelCase = False
- SCT_LayerBuilder.Identification = 'ITkStrip'
- SCT_LayerBuilder.SiDetManagerLocation = 'ITkStrip'
- SCT_LayerBuilder.AddMoreSurfaces = True
- SCT_LayerBuilder.BarrelLayerBinsZ = flags.ITk.trackingGeometry.stripBarrelMatZbins
- SCT_LayerBuilder.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.stripBarrelMatPhiBins
- SCT_LayerBuilder.EndcapLayerBinsR = flags.ITk.trackingGeometry.stripEndcapMatRbins
- SCT_LayerBuilder.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.stripEndcapMatPhiBins
- # set the layer association
- SCT_LayerBuilder.SetLayerAssociation = setLayerAssociation
- # the binning type of the layer
- SCT_LayerBinning = 2
- # SCT -> ToolSvc
- result.addPublicTool(SCT_LayerBuilder)
-
- stripProvider = Trk__LayerProvider(name=namePrefix+'StripProvider')
- stripProvider.LayerBuilder = SCT_LayerBuilder
- result.addPublicTool(stripProvider)
-
- # put them to the caches
- layerProviders += [stripProvider]
- binnings_barrel += [ SCT_LayerBinning ]
- binnings_endcap += [ SCT_LayerBinning ]
- colors += [ 4 ]
-
- # helpers for the InDetTrackingGeometry Builder : layer array creator
- Trk__LayerArrayCreator=CompFactory.Trk.LayerArrayCreator
- InDetLayerArrayCreator = Trk__LayerArrayCreator(name = 'InDetLayerArrayCreator')
- InDetLayerArrayCreator.EmptyLayerMode = 2 # deletes empty material layers from arrays
- # add to ToolSvc
- result.addPublicTool(InDetLayerArrayCreator)
-
- # helpers for the InDetTrackingGeometry Builder : volume array creator
- Trk__TrackingVolumeArrayCreator= CompFactory.Trk.TrackingVolumeArrayCreator
- InDetTrackingVolumeArrayCreator = Trk__TrackingVolumeArrayCreator(name = 'InDetTrackingVolumeArrayCreator')
- # add to ToolSvc
- result.addPublicTool(InDetTrackingVolumeArrayCreator)
-
- # helpers for the InDetTrackingGeometry Builder : tracking volume helper for gluing
- Trk__TrackingVolumeHelper=CompFactory.Trk.TrackingVolumeHelper
- InDetTrackingVolumeHelper = Trk__TrackingVolumeHelper(name ='InDetTrackingVolumeHelper')
- InDetTrackingVolumeHelper.BarrelLayerBinsZ = flags.ITk.trackingGeometry.passiveBarrelMatZbins
- InDetTrackingVolumeHelper.BarrelLayerBinsPhi = flags.ITk.trackingGeometry.passiveBarrelMatPhiBins
- InDetTrackingVolumeHelper.EndcapLayerBinsR = flags.ITk.trackingGeometry.passiveEndcapMatRbins
- InDetTrackingVolumeHelper.EndcapLayerBinsPhi = flags.ITk.trackingGeometry.passiveEndcapMatPhiBins
-
- # the material bins - assume defaults
- # add to ToolSvc
- result.addPublicTool(InDetTrackingVolumeHelper)
-
- # helpers for the InDetTrackingGeometry Builder : cylinder volume creator
- Trk__CylinderVolumeCreator=CompFactory.Trk.CylinderVolumeCreator
- InDetCylinderVolumeCreator = Trk__CylinderVolumeCreator(name = 'InDetCylinderVolumeCreator')
- # give it the layer array creator
- InDetCylinderVolumeCreator.LayerArrayCreator = InDetLayerArrayCreator
- InDetCylinderVolumeCreator.TrackingVolumeArrayCreator = InDetTrackingVolumeArrayCreator
- InDetCylinderVolumeCreator.TrackingVolumeHelper = InDetTrackingVolumeHelper
- InDetCylinderVolumeCreator.PassiveLayerThickness = 1. ## mm
- InDetCylinderVolumeCreator.PassiveLayerBinsRZ = flags.ITk.trackingGeometry.passiveBarrelMatZbins
- InDetCylinderVolumeCreator.PassiveLayerBinsPhi = flags.ITk.trackingGeometry.passiveBarrelMatPhiBins
-
- # specifiy the binning, passive layers, entry layers - assume defaults
- # add to ToolSvc
- result.addPublicTool(InDetCylinderVolumeCreator)
-
- # the tracking geometry builder
- InDet__StagedTrackingGeometryBuilder=CompFactory.InDet.StagedTrackingGeometryBuilder
- return InDet__StagedTrackingGeometryBuilder(namePrefix+name,
- LayerBuilders = layerProviders,
- LayerBinningTypeCenter = binnings_barrel,
- LayerBinningTypeEndcap = binnings_endcap,
- ColorCodes = colors,
- EnvelopeDefinitionSvc = envelopeDefinitionSvc,
- TrackingVolumeCreator = InDetCylinderVolumeCreator,
- LayerArrayCreator = InDetLayerArrayCreator,
- CheckForRingLayout = True,
- MinimalRadialGapForVolumeSplit = flags.ITk.trackingGeometry.minimalRadialGapForVolumeSplit,
- ReplaceAllJointBoundaries = True,
- BuildBoundaryLayers=True,
- ExitVolumeName='InDet::Containers::InnerDetector')
-
# Replaces https://gitlab.cern.ch/atlas/athena/blob/master/Calorimeter/CaloTrackingGeometry/python/ConfiguredCaloTrackingGeometryBuilder.py
-def _getCaloTrackingGeometryBuilder(name, flags,result, envelopeDefinitionSvc, trackingVolumeHelper, namePrefix=''):
- # The following replaces LArCalorimeter/LArTrackingGeometry/python/ConfiguredLArVolumeBuilder.py
- from LArGeoAlgsNV.LArGMConfig import LArGMCfg
- result.merge(LArGMCfg(flags))
- LAr__LArVolumeBuilder=CompFactory.LAr.LArVolumeBuilder
- lArVolumeBuilder = LAr__LArVolumeBuilder(name="LArVolumeBuilderCond", TrackingVolumeHelper = trackingVolumeHelper,)
- result.addPublicTool(lArVolumeBuilder)
-
- # The following replaces TileCalorimeter/TileTrackingGeometry/python/ConfiguredTileVolumeBuilder.py
- from TileGeoModel.TileGMConfig import TileGMCfg
- result.merge(TileGMCfg(flags))
- Tile__TileVolumeBuilder=CompFactory.Tile.TileVolumeBuilder
- tileVolumeBuilder = Tile__TileVolumeBuilder(name="TileVolumeBuilderCond", TrackingVolumeHelper = trackingVolumeHelper, )
- result.addPublicTool(tileVolumeBuilder)
-
- Calo__CaloTrackingGeometryBuilder=CompFactory.Calo.CaloTrackingGeometryBuilder
- return Calo__CaloTrackingGeometryBuilder(namePrefix+name, LArVolumeBuilder = lArVolumeBuilder,
- TileVolumeBuilder = tileVolumeBuilder,
- TrackingVolumeHelper = trackingVolumeHelper,
- EnvelopeDefinitionSvc = envelopeDefinitionSvc,
- EntryVolumeName = "InDet::Containers::EntryVolume",
- ExitVolumeName = "Calo::Container",
- GapLayerEnvelope=5.0
- )
+def CaloTrackingGeometryBuilderCfg(name, flags, envelopeDefinitionSvc, namePrefix=''):
+ result = ComponentAccumulator()
+ # The following replaces LArCalorimeter/LArTrackingGeometry/python/ConfiguredLArVolumeBuilder.py
+ from LArGeoAlgsNV.LArGMConfig import LArGMCfg
+ result.merge(LArGMCfg(flags))
+ LAr__LArVolumeBuilder=CompFactory.LAr.LArVolumeBuilder
+ lArVolumeBuilder = LAr__LArVolumeBuilder(name="LArVolumeBuilder", TrackingVolumeHelper = trackingVolumeHelper,)
+ result.addPublicTool(lArVolumeBuilder)
+
+ # The following replaces TileCalorimeter/TileTrackingGeometry/python/ConfiguredTileVolumeBuilder.py
+ from TileGeoModel.TileGMConfig import TileGMCfg
+ result.merge(TileGMCfg(flags))
+ Tile__TileVolumeBuilder=CompFactory.Tile.TileVolumeBuilder
+ tileVolumeBuilder = Tile__TileVolumeBuilder(name="TileVolumeBuilder", TrackingVolumeHelper = trackingVolumeHelper, )
+ result.addPublicTool(tileVolumeBuilder)
+
+ Trk__TrackingVolumeHelper = CompFactory.Trk.TrackingVolumeHelper
+ trackingVolumeHelper = Trk__TrackingVolumeHelper(name='TrackingVolumeHelper')
+ result.addPublicTool(trackingVolumeHelper)
+
+ Trk__CylinderVolumeCreator = CompFactory.Trk.CylinderVolumeCreator
+ caloVolumeCreator = Trk__CylinderVolumeCreator("CaloVolumeCreator")
+ result.addPublicTool(caloVolumeCreator)
+
+ Calo__CaloTrackingGeometryBuilder=CompFactory.Calo.CaloTrackingGeometryBuilder
+ result.setPrivateTools(Calo__CaloTrackingGeometryBuilder(namePrefix+name, LArVolumeBuilder = lArVolumeBuilder,
+ TileVolumeBuilder = tileVolumeBuilder,
+ TrackingVolumeHelper = trackingVolumeHelper,
+ EnvelopeDefinitionSvc = envelopeDefinitionSvc,
+ EntryVolumeName = "InDet::Containers::EntryVolume",
+ ExitVolumeName = "Calo::Container",
+ GapLayerEnvelope=5.0,
+ TrackingVolumeCreator = caloVolumeCreator
+ ))
+ return result
+
+
+def MuonTrackingGeometryBuilderCfg(flags, envelopeDefinitionSvc):
+ result = ComponentAccumulator()
+ # Copied from from MuonTrackingGeometry.ConfiguredMuonTrackingGeometry import MuonTrackingGeometryBuilder
+ # Add the muon geometry model to the CA
+ from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
+ result.merge(MuonGeoModelCfg(flags))
+ Muon__MuonStationTypeBuilder = CompFactory.Muon.MuonStationTypeBuilder
+ muonStationTypeBuilder= Muon__MuonStationTypeBuilder(name = 'MuonStationTypeBuilder')
+
+ Muon__MuonStationBuilder=CompFactory.Muon.MuonStationBuilder
+ muonStationBuilder= Muon__MuonStationBuilder(name = 'MuonStationBuilder')
+ muonStationBuilder.StationTypeBuilder = muonStationTypeBuilder
+
+ muonInertMaterialBuilder= CompFactory.Muon.MuonInertMaterialBuilder(name = 'MuonInertMaterialBuilder')
+
+ Muon__MuonTrackingGeometryBuilder=CompFactory.Muon.MuonTrackingGeometryBuilder
+ muonTrackingGeometryBuilder= Muon__MuonTrackingGeometryBuilder(name = 'MuonTrackingGeometryBuilder',
+ EnvelopeDefinitionSvc=envelopeDefinitionSvc,
+ MuonStationBuilder = muonStationBuilder,
+ InertMaterialBuilder=muonInertMaterialBuilder
+ )
+ # import pdb ; pdb.set_trace()
+ muonTrackingGeometryBuilder.EntryVolumeName = 'MuonSpectrometerEntrance'
+ muonTrackingGeometryBuilder.ExitVolumeName = 'Muon::Containers::MuonSystem'
+ result.setPrivateTools(muonTrackingGeometryBuilder)
+ return result
+
# Originally this function would use was TrkDetFlags.MaterialSource() and TrkDetFlags.MaterialValidation(). For new configuration, (temporarily?) pass as parameters.
# https://gitlab.cern.ch/atlas/athena/blob/master/Tracking/TrkDetDescr/TrkDetDescrSvc/python/AtlasTrackingGeometrySvc.py#L112
@@ -426,104 +497,68 @@ def TrackingGeometrySvcCfg( flags , name = 'AtlasTrackingGeometrySvc', doMateria
"""
result = ComponentAccumulator()
atlas_tracking_geometry_name = 'AtlasTrackingGeometry'
- atlas_geometry_builder = CompFactory.Trk.GeometryBuilder(name = 'AtlasGeometryBuilder', WorldDimension=[], WorldMaterialProperties=[],
- TrackingVolumeArrayCreator=CompFactory.Trk.TrackingVolumeArrayCreator(name="TrackingVolumeArrayCreator"),
+ atlas_geometry_builder = CompFactory.Trk.GeometryBuilder(name = 'AtlasGeometryBuilder', WorldDimension=[], WorldMaterialProperties=[],
+ TrackingVolumeArrayCreator=CompFactory.Trk.TrackingVolumeArrayCreator(name="TrackingVolumeArrayCreator"),
TrackingVolumeHelper = CompFactory.Trk.TrackingVolumeHelper(name="TrackingVolumeHelper") )
-
- envelopSvcCfg= EnvelopeDefSvcCfg(flags)
- atlas_env_def_service=envelopSvcCfg.getPrimary()
- result.merge(envelopSvcCfg)
+
+ atlas_env_def_service = result.getPrimaryAndMerge(EnvelopeDefSvcCfg(flags))
# Depending on the job configuration, setup the various detector builders, and add to atlas_geometry_builder
if flags.Detector.GeometryID:
- # TODO Not sure how to handle TrkDetFlags, specifically ISF_FatrasCustomGeometry, XMLFastCustomGeometry
- # So, here we only setup the default InDet geometry builder!
- inDetTrackingGeometryBuilder = _getInDetTrackingGeometryBuilder(name ='InDetTrackingGeometryBuilder', flags=flags, result=result, envelopeDefinitionSvc=atlas_env_def_service,
- buildTrtStrawLayers=(flags.Beam.Type=='cosmics'))
-
- atlas_geometry_builder.InDetTrackingGeometryBuilder = inDetTrackingGeometryBuilder
-
- elif flags.Detector.GeometryITk:
- inDetTrackingGeometryBuilder = _getITkTrackingGeometryBuilder(name ='InDetTrackingGeometryBuilder', flags=flags, result=result,
- envelopeDefinitionSvc=atlas_env_def_service)
- atlas_geometry_builder.InDetTrackingGeometryBuilder = inDetTrackingGeometryBuilder
-
- if flags.Detector.GeometryCalo:
- Trk__CylinderVolumeCreator=CompFactory.Trk.CylinderVolumeCreator
- caloVolumeCreator = Trk__CylinderVolumeCreator("CaloVolumeCreator")
- result.addPublicTool(caloVolumeCreator)
+ # TODO Not sure how to handle TrkDetFlags, specifically ISF_FatrasCustomGeometry, XMLFastCustomGeometry
+ # So, here we only setup the default InDet geometry builder!
+ atlas_geometry_builder.InDetTrackingGeometryBuilder = result.popToolsAndMerge(InDetTrackingGeometryBuilderCfg(name = 'InDetTrackingGeometryBuilder',
+ flags = flags,
+ envelopeDefinitionSvc = atlas_env_def_service))
- Trk__TrackingVolumeHelper=CompFactory.Trk.TrackingVolumeHelper
- trackingVolumeHelper = Trk__TrackingVolumeHelper(name='TrackingVolumeHelper')
- result.addPublicTool(trackingVolumeHelper)
+ elif flags.Detector.GeometryITk:
+ inDetTrackingGeometryBuilder = _getITkTrackingGeometryBuilder(name ='InDetTrackingGeometryBuilder', flags=flags, result=result,
+ envelopeDefinitionSvc=atlas_env_def_service)
+ atlas_geometry_builder.InDetTrackingGeometryBuilder = inDetTrackingGeometryBuilder
- caloTrackingGeometryBuilder = _getCaloTrackingGeometryBuilder(name ='CaloTrackingGeometryBuilder', flags=flags,
- result=result, envelopeDefinitionSvc=atlas_env_def_service, trackingVolumeHelper=trackingVolumeHelper)
- caloTrackingGeometryBuilder.TrackingVolumeCreator=caloVolumeCreator
- atlas_geometry_builder.CaloTrackingGeometryBuilder = caloTrackingGeometryBuilder
+ if flags.Detector.GeometryCalo:
+ atlas_geometry_builder.CaloTrackingGeometryBuilder = result.popToolsAndMerge(CaloTrackingGeometryBuilderCfg(name = 'CaloTrackingGeometryBuilder',
+ flags = flags,
+ envelopeDefinitionSvc = atlas_env_def_service))
if flags.Detector.GeometryMuon:
- # Copied from from MuonTrackingGeometry.ConfiguredMuonTrackingGeometry import MuonTrackingGeometryBuilder
- # Add the muon geometry model to the CA
- from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
- result.merge(MuonGeoModelCfg(flags))
- Muon__MuonStationTypeBuilder=CompFactory.Muon.MuonStationTypeBuilder
- muonStationTypeBuilder= Muon__MuonStationTypeBuilder(name = 'MuonStationTypeBuilder')
-
- Muon__MuonStationBuilder=CompFactory.Muon.MuonStationBuilder
- muonStationBuilder= Muon__MuonStationBuilder(name = 'MuonStationBuilder')
- muonStationBuilder.StationTypeBuilder = muonStationTypeBuilder
-
- muonInertMaterialBuilder= CompFactory.Muon.MuonInertMaterialBuilder(name = 'MuonInertMaterialBuilder')
-
- Muon__MuonTrackingGeometryBuilder=CompFactory.Muon.MuonTrackingGeometryBuilder
- muonTrackingGeometryBuilder= Muon__MuonTrackingGeometryBuilder(name = 'MuonTrackingGeometryBuilder',
- EnvelopeDefinitionSvc=atlas_env_def_service,
- MuonStationBuilder = muonStationBuilder,
- InertMaterialBuilder=muonInertMaterialBuilder
- )
- # import pdb ; pdb.set_trace()
- muonTrackingGeometryBuilder.EntryVolumeName = 'MuonSpectrometerEntrance'
- muonTrackingGeometryBuilder.ExitVolumeName = 'Muon::Containers::MuonSystem'
- # result.addPublicTool(muonTrackingGeometryBuilder)
-
- atlas_geometry_builder.MuonTrackingGeometryBuilder = muonTrackingGeometryBuilder
-
+ atlas_geometry_builder.MuonTrackingGeometryBuilder = result.popToolsAndMerge(MuonTrackingGeometryBuilderCfg(flags,
+ envelopeDefinitionSvc = atlas_env_def_service))
+
# Now set up processors
- atlas_geometry_processors=[]
-
+ atlas_geometry_processors=[] # array of private ToolHandles
+
if flags.TrackingGeometry.MaterialSource == 'COOL':
-
- CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialV2'
- if flags.Detector.GeometryITk:
- CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialITK'
-
- # the material provider
- Trk__LayerMaterialProvider=CompFactory.Trk.LayerMaterialProvider
- atlasMaterialProvider = Trk__LayerMaterialProvider('AtlasMaterialProvider', LayerMaterialMapName=CoolDataBaseFolder, LayerMaterialMapKey='')
- atlas_geometry_processors += [ atlasMaterialProvider ]
-
- # Setup DBs
- result.merge(_setupCondDB(flags, CoolDataBaseFolder))
-
+
+ CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialV2'
+ if flags.Detector.GeometryITk:
+ CoolDataBaseFolder = '/GLOBAL/TrackingGeo/LayerMaterialITK'
+
+ # the material provider
+ Trk__LayerMaterialProvider=CompFactory.Trk.LayerMaterialProvider
+ atlasMaterialProvider = Trk__LayerMaterialProvider('AtlasMaterialProvider', LayerMaterialMapName=CoolDataBaseFolder, LayerMaterialMapKey='')
+ atlas_geometry_processors += [ atlasMaterialProvider ]
+
+ # Setup DBs
+ result.merge(_setupCondDB(flags, CoolDataBaseFolder))
+
elif flags.TrackingGeometry.MaterialSource == 'Input':
- Trk__InputLayerMaterialProvider=CompFactory.Trk.InputLayerMaterialProvider
- atlasMaterialProvider = Trk__InputLayerMaterialProvider('AtlasMaterialProvider')
- atlas_geometry_processors += [ atlasMaterialProvider ]
-
+ Trk__InputLayerMaterialProvider=CompFactory.Trk.InputLayerMaterialProvider
+ atlasMaterialProvider = Trk__InputLayerMaterialProvider('AtlasMaterialProvider')
+ atlas_geometry_processors += [ atlasMaterialProvider ]
+
if doMaterialValidation:
- Trk__LayerMaterialInspector=CompFactory.Trk.LayerMaterialInspector
- atlasLayerMaterialInspector = Trk__LayerMaterialInspector('AtlasLayerMaterialInspector')
- atlas_geometry_processors += [ atlasLayerMaterialInspector ]
+ Trk__LayerMaterialInspector=CompFactory.Trk.LayerMaterialInspector
+ atlasLayerMaterialInspector = Trk__LayerMaterialInspector('AtlasLayerMaterialInspector')
+ atlas_geometry_processors += [ atlasLayerMaterialInspector ]
- svc = CompFactory.Trk.TrackingGeometrySvc( name, GeometryBuilder = atlas_geometry_builder,
+ result.addService(CompFactory.Trk.TrackingGeometrySvc( name, GeometryBuilder = atlas_geometry_builder,
TrackingGeometryName = atlas_tracking_geometry_name,
- GeometryProcessors = PrivateToolHandleArray(atlas_geometry_processors),
- BuildGeometryFromTagInfo = True)
- result.addService(svc, primary = True)
+ GeometryProcessors = PrivateToolHandleArray(atlas_geometry_processors),
+ BuildGeometryFromTagInfo = True), primary = True)
return result
-
+
if __name__ == '__main__':
from AthenaCommon.Configurable import Configurable
Configurable.configurableRun3Behavior=1