Skip to content
Snippets Groups Projects
Commit 45fd531a authored by Zaza Chubinidze's avatar Zaza Chubinidze Committed by Walter Lampl
Browse files

New configuration TrackTruthConfig.py and package updates

parent a297806d
No related branches found
No related tags found
No related merge requests found
......@@ -94,10 +94,9 @@ def TRT_SeededTrackFinder_ATLCfg(flags, name='InDetTRT_SeededTrackMaker', Tracki
InDetSiComTrackFinder = acc.popToolsAndMerge(TC.SiCombinatorialTrackFinder_xkCfg(flags))
acc.addPublicTool(InDetSiComTrackFinder)
InDetTRT_SeededSiRoadMaker = acc.popToolsAndMerge(SiDetElementsRoadMaker_xkCfg(flags, TrackingFlags=TrackingFlags))
acc.addPublicTool(InDetTRT_SeededSiRoadMaker)
if (TrackingFlags.usePixel and TrackingFlags.useSCT) is not False:
InDetTRT_SeededSiRoadMaker = acc.popToolsAndMerge(SiDetElementsRoadMaker_xkCfg(flags, TrackingFlags=TrackingFlags))
acc.addPublicTool(InDetTRT_SeededSiRoadMaker)
kwargs.setdefault("RoadTool", InDetTRT_SeededSiRoadMaker)
#
......@@ -155,8 +154,8 @@ def TRT_SeededTrackFinderCfg(flags, name='InDetTRT_SeededTrackFinder', TrackingF
suffix = ''
usePrdAssociationTool = False
InDetTrackFitter = acc.popToolsAndMerge(TC.InDetKalmanFitterCfg(flags))
acc.addPublicTool(InDetTrackFitter)
InDetTrackFitterBT = acc.popToolsAndMerge(TC.InDetTrackFitterBTCfg(flags))
acc.addPublicTool(InDetTrackFitterBT)
InDetTrackSummaryToolNoHoleSearch = acc.popToolsAndMerge(TC.InDetTrackSummaryToolNoHoleSearchCfg(flags))
acc.addPublicTool(InDetTrackSummaryToolNoHoleSearch)
......@@ -174,7 +173,7 @@ def TRT_SeededTrackFinderCfg(flags, name='InDetTRT_SeededTrackFinder', TrackingF
InputCollections=InputCollections))
acc.addPublicTool(InDetTRT_SeededTrackTool)
kwargs.setdefault("RefitterTool", InDetTrackFitter)
kwargs.setdefault("RefitterTool", InDetTrackFitterBT)
kwargs.setdefault("TrackTool", InDetTRT_SeededTrackTool)
kwargs.setdefault("PRDtoTrackMap", prefix+'PRDtoTrackMap'+suffix if usePrdAssociationTool else "")
kwargs.setdefault("TrackSummaryTool", InDetTrackSummaryToolNoHoleSearch)
......@@ -251,8 +250,8 @@ def SimpleAmbiguityProcessorToolCfg(flags, name='InDetTRT_SeededAmbiguityProcess
#
# --- load Ambiguity Processor
#
InDetTrackFitter = acc.popToolsAndMerge(TC.InDetKalmanFitterCfg(flags))
acc.addPublicTool(InDetTrackFitter)
InDetTrackFitterBT = acc.popToolsAndMerge(TC.InDetTrackFitterBTCfg(flags))
acc.addPublicTool(InDetTrackFitterBT)
InDetPRDtoTrackMapToolGangedPixels = TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags)
acc.addPublicTool(InDetPRDtoTrackMapToolGangedPixels)
......@@ -274,7 +273,7 @@ def SimpleAmbiguityProcessorToolCfg(flags, name='InDetTRT_SeededAmbiguityProcess
InDetTRT_SeededAmbiTrackSelectionTool = acc.popToolsAndMerge(InDetAmbiTrackSelectionToolCfg(flags, TrackingFlags=TrackingFlags))
acc.addPublicTool(InDetTRT_SeededAmbiTrackSelectionTool)
kwargs.setdefault("Fitter", InDetTrackFitter)
kwargs.setdefault("Fitter", InDetTrackFitterBT)
kwargs.setdefault("AssociationTool", InDetPRDtoTrackMapToolGangedPixels)
kwargs.setdefault("TrackSummaryTool", InDetTRT_SeededSummaryTool)
kwargs.setdefault("SelectionTool", InDetTRT_SeededAmbiTrackSelectionTool)
......@@ -383,9 +382,6 @@ if __name__ == "__main__":
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
top_acc.merge(PoolReadCfg(ConfigFlags))
from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
top_acc.merge(MagneticFieldSvcCfg(ConfigFlags))
from PixelGeoModel.PixelGeoModelConfig import PixelGeometryCfg
top_acc.merge( PixelGeometryCfg(ConfigFlags) )
......@@ -418,7 +414,7 @@ if __name__ == "__main__":
from SiLorentzAngleTool.SCT_LorentzAngleConfig import SCT_LorentzAngleCfg
top_acc.addPublicTool(top_acc.popToolsAndMerge(SCT_LorentzAngleCfg(ConfigFlags)))
##
from PixelConditionsAlgorithms.PixelConditionsConfig import (PixelOfflineCalibCondAlgCfg, PixelDistortionAlgCfg)
from PixelConditionsAlgorithms.PixelConditionsConfig import PixelOfflineCalibCondAlgCfg, PixelDistortionAlgCfg
top_acc.merge(PixelOfflineCalibCondAlgCfg(ConfigFlags))
top_acc.merge(PixelDistortionAlgCfg(ConfigFlags))
##
......@@ -462,8 +458,6 @@ if __name__ == "__main__":
iovsvc = top_acc.getService('IOVDbSvc')
iovsvc.OutputLevel=5
top_acc.getService('StoreGateSvc').Dump = True
top_acc.printConfig(withDetails = True, summariseProps = True)
top_acc.printConfig()
top_acc.run(25)
top_acc.store(open("test_BackTrackingConfig.pkl", "wb"))
\ No newline at end of file
......@@ -5,14 +5,6 @@ import InDetConfig.TrackingCommonConfig as TC
import AthenaCommon.SystemOfUnits as Units
#///////////// Temporary location TrackingSiPatternConfig configurations ///////////////////////
def SiDetElementBoundaryLinksCondAlg_xkCfg(name="InDetSiDetElementBoundaryLinksPixelCondAlg", **kwargs) :
acc = ComponentAccumulator()
kwargs.setdefault("ReadKey", "PixelDetectorElementCollection")
kwargs.setdefault("WriteKey", "PixelDetElementBoundaryLinks_xk")
acc.addCondAlgo(CompFactory.InDet.SiDetElementBoundaryLinksCondAlg_xk(name = name))
return acc
def SiCombinatorialTrackFinder_xkCfg(flags, name="InDetSiComTrackFinder", TrackingFlags = None, **kwargs) :
acc = ComponentAccumulator()
#
......@@ -33,14 +25,22 @@ def SiCombinatorialTrackFinder_xkCfg(flags, name="InDetSiComTrackFinder", Tracki
InDetPatternUpdator = TC.InDetPatternUpdatorCfg()
acc.addPublicTool(InDetPatternUpdator)
from InDetConfig.InDetRecToolConfig import InDetBoundaryCheckToolCfg
boundary_check_tool = acc.popToolsAndMerge(InDetBoundaryCheckToolCfg(flags))
acc.addPublicTool(boundary_check_tool)
kwargs.setdefault("PropagatorTool", InDetPatternPropagator)
kwargs.setdefault("UpdatorTool", InDetPatternUpdator)
kwargs.setdefault("BoundaryCheckTool", boundary_check_tool)
kwargs.setdefault("RIOonTrackTool", rot_creator_digital)
kwargs.setdefault("usePixel", flags.Detector.RecoPixel)
kwargs.setdefault("useSCT", flags.Detector.RecoSCT if not is_dbm else False)
kwargs.setdefault("PixelClusterContainer", 'PixelClusters') # InDetKeys.PixelClusters()
kwargs.setdefault("SCT_ClusterContainer", 'SCT_Clusters') # InDetKeys.SCT_Clusters()
if TrackingFlags.extension == "Offline":
kwargs.setdefault("writeHolesFromPattern", flags.InDet.useHolesFromPattern)
if is_dbm :
kwargs.setdefault("MagneticFieldMode", "NoField")
kwargs.setdefault("TrackQualityCut", 9.3)
......@@ -56,11 +56,42 @@ def SiCombinatorialTrackFinder_xkCfg(flags, name="InDetSiComTrackFinder", Tracki
acc.setPrivateTools(track_finder)
return acc
def SiDetElementsRoadMaker_xkCfg(flags, name="InDetSiRoadMaker", TrackingFlags = None, **kwargs) :
acc = ComponentAccumulator()
#
# --- SCT and Pixel detector elements road builder
#
InDetPatternPropagator = TC.InDetPatternPropagatorCfg()
acc.addPublicTool(InDetPatternPropagator)
kwargs.setdefault("PropagatorTool", InDetPatternPropagator)
kwargs.setdefault("usePixel", TrackingFlags.usePixel )
kwargs.setdefault("PixManagerLocation", 'Pixel')
kwargs.setdefault("useSCT", TrackingFlags.useSCT)
kwargs.setdefault("SCTManagerLocation", 'SCT')
kwargs.setdefault("RoadWidth", TrackingFlags.roadWidth)
InDetSiDetElementsRoadMaker = CompFactory.InDet.SiDetElementsRoadMaker_xk(name = name+TrackingFlags.extension, **kwargs)
acc.setPrivateTools(InDetSiDetElementsRoadMaker)
return acc
def SiTrackMaker_xkCfg(flags, name="InDetSiTrackMaker", InputCollections = None, TrackingFlags = None, **kwargs) :
acc = ComponentAccumulator()
useBremMode = TrackingFlags.extension == "Offline" or TrackingFlags.extension == "SLHC" or TrackingFlags.extension == "DBM"
#InDetSiDetElementsRoadMaker = acc.popToolsAndMerge(SiDetElementsRoadMaker_xkCfg(flags, TrackingFlags = TrackingFlags ))
#acc.addPublicTool(InDetSiDetElementsRoadMaker)
InDetSiDetElementsRoadMaker = acc.popToolsAndMerge(SiDetElementsRoadMaker_xkCfg(flags, TrackingFlags = TrackingFlags ))
acc.addPublicTool(InDetSiDetElementsRoadMaker)
if flags.Detector.RecoPixel:
acc.addCondAlgo( CompFactory.InDet.SiDetElementBoundaryLinksCondAlg_xk( name = "InDetSiDetElementBoundaryLinksPixelCondAlg",
ReadKey = "PixelDetectorElementCollection",
WriteKey = "PixelDetElementBoundaryLinks_xk") )
if TrackingFlags.useSCT:
acc.addCondAlgo(CompFactory.InDet.SiDetElementsRoadCondAlg_xk(name = "InDet__SiDetElementsRoadCondAlg_xk"))
acc.addCondAlgo( CompFactory.InDet.SiDetElementBoundaryLinksCondAlg_xk( name = "InDetSiDetElementBoundaryLinksSCTCondAlg",
ReadKey = "SCT_DetectorElementCollection",
WriteKey = "SCT_DetElementBoundaryLinks_xk") )
track_finder = acc.popToolsAndMerge(SiCombinatorialTrackFinder_xkCfg(flags, TrackingFlags = TrackingFlags))
acc.addPublicTool(track_finder)
......@@ -74,7 +105,7 @@ def SiTrackMaker_xkCfg(flags, name="InDetSiTrackMaker", InputCollections = None,
kwargs.setdefault("useSCT", TrackingFlags.useSCT) #TrackingFlags.useSCT()
kwargs.setdefault("usePixel", TrackingFlags.usePixel) #TrackingFlags.usePixel()
#kwargs.setdefault("RoadTool", InDetSiDetElementsRoadMaker)
kwargs.setdefault("RoadTool", InDetSiDetElementsRoadMaker)
kwargs.setdefault("CombinatorialTrackFinder", track_finder)
kwargs.setdefault("pTmin", TrackingFlags.minPT)
kwargs.setdefault("pTminBrem", TrackingFlags.minPTBrem)
......@@ -214,6 +245,8 @@ def SiSpacePointsSeedMakerCfg(flags, name="InDetSpSeedsMaker", InputCollections
kwargs.setdefault("alwaysKeepConfirmedPixelSeeds", TrackingFlags.keepAllConfirmedPixelSeeds)
kwargs.setdefault("mindRadius", 10)
kwargs.setdefault("maxSizeSP", 200)
kwargs.setdefault("dImpactCutSlopeUnconfirmedSSS", 1.25)
kwargs.setdefault("dImpactCutSlopeUnconfirmedPPP", 2.0)
if TrackingFlags.extension == "R3LargeD0":
kwargs.setdefault("optimisePhiBinning", False)
......@@ -346,6 +379,9 @@ def SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", InputCollection
if flags.InDet.doHeavyIon :
kwargs.setdefault("FreeClustersCut",2) #Heavy Ion optimization from Igor
if TrackingFlags.extension == "Offline":
kwargs.setdefault("writeHolesFromPattern", flags.InDet.useHolesFromPattern)
InDetSiSPSeededTrackFinder = CompFactory.InDet.SiSPSeededTrackFinder(name = name+TrackingFlags.extension, **kwargs)
acc.addEventAlgo(InDetSiSPSeededTrackFinder)
return acc
......@@ -401,6 +437,7 @@ def DeterministicAnnealingFilterCfg(flags, name = 'InDetDAF', **kwargs):
def InDetExtensionProcessorCfg(flags, TrackingFlags, SiTrackCollection=None, ExtendedTrackCollection = None, ExtendedTracksMap = None, doPhase=True, **kwargs):
acc = ComponentAccumulator()
ForwardTrackCollection = ExtendedTrackCollection
# set output extension map name
OutputExtendedTracks = ExtendedTracksMap
......@@ -412,8 +449,19 @@ def InDetExtensionProcessorCfg(flags, TrackingFlags, SiTrackCollection=None, Ext
InDetExtensionFitter = acc.popToolsAndMerge(DeterministicAnnealingFilterCfg(flags, name = 'InDetDAF'+ TrackingFlags.extension))
acc.addPublicTool(InDetExtensionFitter)
else:
InDetExtensionFitter = acc.popToolsAndMerge(TC.InDetKalmanFitterCfg(flags, name = "InDetTrackFitter"))
acc.addPublicTool(InDetExtensionFitter)
fitter_args = {}
if flags.InDet.holeSearchInGX2Fit:
fitter_args.setdefault("DoHoleSearch", True)
from InDetConfig.InDetRecToolConfig import InDetBoundaryCheckToolCfg
InDetBoundaryCheckTool = acc.popToolsAndMerge(InDetBoundaryCheckToolCfg(flags))
acc.addPublicTool(InDetBoundaryCheckTool)
fitter_args.setdefault("BoundaryCheckTool", InDetBoundaryCheckTool)
if TrackingFlags.extension != "LowPt":
InDetExtensionFitter = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, 'InDetTrackFitter_TRTExtension'+TrackingFlags.extension, **fitter_args))
acc.addPublicTool(InDetExtensionFitter)
else:
InDetExtensionFitter = acc.popToolsAndMerge(TC.InDetTrackFitterLowPt(flags, 'InDetTrackFitter_TRTExtension'+TrackingFlags.extension, **fitter_args))
acc.addPublicTool(InDetExtensionFitter)
#
# --- load scoring for extension
#
......@@ -519,6 +567,8 @@ if __name__ == "__main__":
ConfigFlags.addFlag('InDet.doTRTExtension', True)
ConfigFlags.addFlag('InDet.doExtensionProcessor', True)
ConfigFlags.addFlag('InDet.useHolesFromPattern', False)
ConfigFlags.addFlag('InDet.holeSearchInGX2Fit', True)
# SiliconPreProcessing
ConfigFlags.InDet.doPixelClusterSplitting = True
......@@ -535,9 +585,6 @@ if __name__ == "__main__":
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
top_acc.merge(PoolReadCfg(ConfigFlags))
from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
top_acc.merge(MagneticFieldSvcCfg(ConfigFlags))
from PixelGeoModel.PixelGeoModelConfig import PixelGeometryCfg
from SCT_GeoModel.SCT_GeoModelConfig import SCT_GeometryCfg
top_acc.merge(PixelGeometryCfg(ConfigFlags))
......@@ -553,8 +600,7 @@ if __name__ == "__main__":
from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
top_acc.merge(BeamSpotCondAlgCfg(ConfigFlags))
from PixelConditionsAlgorithms.PixelConditionsConfig import (PixelOfflineCalibCondAlgCfg, PixelDistortionAlgCfg)
top_acc.merge(PixelOfflineCalibCondAlgCfg(ConfigFlags))
from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDistortionAlgCfg
top_acc.merge(PixelDistortionAlgCfg(ConfigFlags))
from InDetConfig.TRTSegmentFindingConfig import TRTActiveCondAlgCfg
......@@ -569,14 +615,6 @@ if __name__ == "__main__":
from SiLorentzAngleTool.SCT_LorentzAngleConfig import SCT_LorentzAngleCfg
top_acc.addPublicTool(top_acc.popToolsAndMerge(SCT_LorentzAngleCfg(ConfigFlags)))
from PixelConditionsAlgorithms.PixelConditionsConfig import (PixelChargeCalibCondAlgCfg, PixelConfigCondAlgCfg, PixelCablingCondAlgCfg, PixelReadoutSpeedAlgCfg, PixelOfflineCalibCondAlgCfg, PixelDistortionAlgCfg)
top_acc.merge(PixelChargeCalibCondAlgCfg(ConfigFlags))
top_acc.merge(PixelConfigCondAlgCfg(ConfigFlags))
top_acc.merge(PixelCablingCondAlgCfg(ConfigFlags))
top_acc.merge(PixelReadoutSpeedAlgCfg(ConfigFlags))
top_acc.merge(PixelOfflineCalibCondAlgCfg(ConfigFlags))
top_acc.merge(PixelDistortionAlgCfg(ConfigFlags))
top_acc.merge(TC.PixelClusterNnCondAlgCfg(ConfigFlags))
top_acc.merge(TC.PixelClusterNnWithTrackCondAlgCfg(ConfigFlags))
......@@ -587,30 +625,13 @@ if __name__ == "__main__":
InputCollections = []
InDetSpSeededTracksKey = 'SiSPSeededTracks' # InDetKeys.SiSpSeededTracks()
if ConfigFlags.InDet.doDBMstandalone:
InDetSpSeededTracksKey = 'SiSPSeededDBMTracks' # InDetKeys.SiSpSeededDBMTracks()
SiSPSeededTrackCollectionKey = InDetSpSeededTracksKey
ExtendedTrackCollection = 'ExtendedTracksPhase' # InDetKeys.ExtendedTracksPhase
ExtendedTracksMap = 'ExtendedTracksMapPhase' # InDetKeys.ExtendedTracksMapPhase
#################### Additional Configuration ########################
from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
top_acc.merge(addFoldersSplitOnline(ConfigFlags, "TRT", "/TRT/Onl/Cond/StatusHT", "/TRT/Cond/StatusHT", className='TRTCond::StrawStatusMultChanContainer'))
top_acc.merge(addFoldersSplitOnline(ConfigFlags, 'INDET','/Indet/Onl/TrkErrorScaling','/Indet/TrkErrorScaling', className="CondAttrListCollection"))
top_acc.addCondAlgo( CompFactory.InDet.SiDetElementBoundaryLinksCondAlg_xk( name = "InDetSiDetElementBoundaryLinksPixelCondAlg",
ReadKey = "PixelDetectorElementCollection",
WriteKey = "PixelDetElementBoundaryLinks_xk") )
top_acc.addCondAlgo( CompFactory.InDet.SiDetElementBoundaryLinksCondAlg_xk( name = "InDetSiDetElementBoundaryLinksSCTCondAlg",
ReadKey = "SCT_DetectorElementCollection",
WriteKey = "SCT_DetElementBoundaryLinks_xk") )
top_acc.addCondAlgo(CompFactory.InDet.SiDetElementsRoadCondAlg_xk(name = "InDet__SiDetElementsRoadCondAlg_xk"))
#######################################################################
################# TRTPreProcessing Configuration ######################
from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg
if not ConfigFlags.InDet.doDBMstandalone:
......@@ -627,8 +648,6 @@ if __name__ == "__main__":
####################### TrackingSiPattern #############################
if ConfigFlags.InDet.doSiSPSeededTrackFinder:
if ConfigFlags.Detector.RecoPixel:
top_acc.merge(SiDetElementBoundaryLinksCondAlg_xkCfg())
top_acc.merge(SiSPSeededTrackFinderCfg( ConfigFlags,
InputCollections = InputCollections,
SiSPSeededTrackCollectionKey = InDetSpSeededTracksKey,
......@@ -659,4 +678,4 @@ if __name__ == "__main__":
#
top_acc.printConfig()
top_acc.run(25)
top_acc.store(open("NewTrackingTRTExtensionConfig.pkl", "wb"))
\ No newline at end of file
top_acc.store(open("TRTExtensionConfig.pkl", "wb"))
\ No newline at end of file
......@@ -52,7 +52,7 @@ def TRT_SegmentToTrackToolCfg(flags, name ='InDetTRT_SegmentToTrackTool', Tracki
else:
asso_tool = None
InDetTrackFitterTRT = acc.popToolsAndMerge(TC.GlobalChi2FitterCfg(flags))
InDetTrackFitterTRT = acc.popToolsAndMerge(TC.InDetTrackFitterTRTCfg(flags))
acc.addPublicTool(InDetTrackFitterTRT)
InDetTrackSummaryTool = acc.popToolsAndMerge(TC.InDetTrackSummaryToolCfg(flags))
......@@ -230,9 +230,6 @@ if __name__ == "__main__":
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
top_acc.merge(PoolReadCfg(ConfigFlags))
from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
top_acc.merge(MagneticFieldSvcCfg(ConfigFlags))
from TRT_GeoModel.TRT_GeoModelConfig import TRT_GeometryCfg
top_acc.merge(TRT_GeometryCfg( ConfigFlags ))
......@@ -264,9 +261,6 @@ if __name__ == "__main__":
PixeldEdxAlg = CompFactory.PixeldEdxAlg(name="PixeldEdxAlg", ReadFromCOOL = True)
top_acc.addCondAlgo(PixeldEdxAlg)
###
###
top_acc.merge(addFoldersSplitOnline(ConfigFlags, "TRT", "/TRT/Onl/Cond/Status", "/TRT/Cond/Status", className='TRTCond::StrawStatusMultChanContainer'))
InDetTRTStrawStatusSummaryTool = top_acc.popToolsAndMerge(TC.InDetTRTStrawStatusSummaryToolCfg(ConfigFlags))
top_acc.addPublicTool(InDetTRTStrawStatusSummaryTool)
......@@ -302,11 +296,11 @@ if __name__ == "__main__":
top_acc.merge(TRTActiveCondAlgCfg(ConfigFlags))
top_acc.merge(TC.TRT_DetElementsRoadCondAlgCfg())
############################# TRTPreProcessing configuration ############################
from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg
if not ConfigFlags.InDet.doDBMstandalone:
top_acc.merge(TRTPreProcessingCfg(ConfigFlags,(not ConfigFlags.InDet.doTRTPhaseCalculation or ConfigFlags.Beam.Type =="collisions"),False))
########################### TRTSegmentFindingCfg configuration ##########################
TrackingFlags = ConfigFlags.InDet.Tracking
# NewTracking collection keys
InputCombinedInDetTracks = []
......@@ -316,7 +310,7 @@ if __name__ == "__main__":
InputCombinedInDetTracks,
TrackingFlags,
'TRTSegments')) # InDetKeys.TRT_Segments
#########################################################################################
############################### TRTStandalone configuration #############################
top_acc.merge(TRTStandaloneCfg( ConfigFlags,
extension = "",
......@@ -327,7 +321,5 @@ if __name__ == "__main__":
iovsvc = top_acc.getService('IOVDbSvc')
iovsvc.OutputLevel=5
top_acc.getService('StoreGateSvc').Dump = True
top_acc.printConfig(withDetails = True, summariseProps = True)
top_acc.run(25)
top_acc.store(open("test_TRTStandaloneConfig.pkl", "wb"))
\ No newline at end of file
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from AthenaConfiguration.ComponentFactory import CompFactory
# -------------------------------------------------------------------------
#
# ------- fragment to handle track truth association
#
# -------------------------------------------------------------------------
def InDetDetailedTrackTruthMakerCfg(flags, Tracks, DetailedTruth, name='Maker',**kwargs) :
acc = ComponentAccumulator()
kwargs.setdefault("TrackCollectionName", Tracks)
kwargs.setdefault("DetailedTrackTruthName", DetailedTruth)
kwargs.setdefault("TruthNamePixel", 'PRD_MultiTruthPixel')
kwargs.setdefault("TruthNameSCT", 'PRD_MultiTruthSCT')
kwargs.setdefault("TruthNameTRT", 'PRD_MultiTruthTRT')
# this is how the truth maker gets to know which detector is on ...
if (not flags.Detector.RecoPixel):
kwargs.setdefault("TruthNamePixel", "")
if (not flags.Detector.RecoSCT):
kwargs.setdefault("TruthNameSCT", "")
# for cosmics, at the stage of SiPatternRecognition, the TRT truth information is not yet available
if ((not flags.Detector.RecoTRT) or (flags.Beam.Type == 'cosmics' and (DetailedTruth == "SiSPSeededTracksDetailedTruth" or DetailedTruth == "ResolvedTracksDetailedTruth"))):
kwargs.setdefault("TruthNameTRT", "")
acc.addEventAlgo(CompFactory.InDet.InDetDetailedTrackTruthMaker(name = DetailedTruth+name, **kwargs))
return acc
def InDetTruthMatchToolCfg(flags, name='InDetTruthMatchTool', **kwargs) :
acc = ComponentAccumulator()
if flags.InDet.truthMatchStrategy == 'TruthMatchRatio':
InDetTruthMatchTool = CompFactory.Trk.TruthMatchRatio
elif flags.InDet.truthMatchStrategy == 'TruthMatchTanimoto':
InDetTruthMatchTool = CompFactory.Trk.TruthMatchTanimoto
kwargs.setdefault("WeightPixel", 10.)
kwargs.setdefault("WeightSCT", 5.)
kwargs.setdefault("WeightTRT", 1.)
InDetTruthMatchSimilarityTool = InDetTruthMatchTool(name = name, **kwargs)
acc.setPrivateTools(InDetTruthMatchSimilarityTool)
return acc
def TrackTruthSimilaritySelectorCfg(flags, DetailedTruth, TracksTruth, name='Selector', **kwargs) :
acc = ComponentAccumulator()
InDetTruthMatchSimilarityTool = acc.popToolsAndMerge(InDetTruthMatchToolCfg(flags))
acc.addPublicTool(InDetTruthMatchSimilarityTool)
kwargs.setdefault("DetailedTrackTruthName", DetailedTruth)
kwargs.setdefault("OutputName", TracksTruth)
kwargs.setdefault("TrackTruthSimilarityTool", InDetTruthMatchSimilarityTool)
acc.addEventAlgo(CompFactory.TrackTruthSimilaritySelector(name = TracksTruth+name, **kwargs))
return acc
def InDetTrackTruthCfg(flags, Tracks = None, DetailedTruth = None, TracksTruth = None):
acc = ComponentAccumulator()
#
# --- Enable the detailed track truth
#
acc.merge(InDetDetailedTrackTruthMakerCfg(flags, Tracks, DetailedTruth))
#
# --- Detailed to old TrackTruth
#
acc.merge(TrackTruthSimilaritySelectorCfg(flags, DetailedTruth, TracksTruth))
return acc
if __name__ == "__main__":
from AthenaCommon.Configurable import Configurable
Configurable.configurableRun3Behavior=1
from AthenaConfiguration.AllConfigFlags import ConfigFlags
numThreads=1
ConfigFlags.Concurrency.NumThreads=numThreads
ConfigFlags.Concurrency.NumConcurrentEvents=numThreads # Might change this later, but good enough for the moment.
ConfigFlags.Detector.GeometryPixel = True
ConfigFlags.Detector.GeometrySCT = True
ConfigFlags.Detector.GeometryTRT = True
ConfigFlags.InDet.doPixelClusterSplitting = True
ConfigFlags.Detector.RecoIBL = True
ConfigFlags.Detector.RecoPixel = True
ConfigFlags.Detector.RecoTRT = True
ConfigFlags.Detector.RecoSCT = True
ConfigFlags.addFlag('InDet.useHolesFromPattern', False)
from AthenaConfiguration.TestDefaults import defaultTestFiles
ConfigFlags.Input.Files = defaultTestFiles.RDO
ConfigFlags.lock()
ConfigFlags.dump()
from AthenaConfiguration.MainServicesConfig import MainServicesCfg
top_acc = MainServicesCfg(ConfigFlags)
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
top_acc.merge(PoolReadCfg(ConfigFlags))
####################### Aditional Configurations #########################
from PixelGeoModel.PixelGeoModelConfig import PixelGeometryCfg
top_acc.merge( PixelGeometryCfg(ConfigFlags) )
from SCT_GeoModel.SCT_GeoModelConfig import SCT_GeometryCfg
top_acc.merge(SCT_GeometryCfg(ConfigFlags))
from TRT_GeoModel.TRT_GeoModelConfig import TRT_GeometryCfg
top_acc.merge(TRT_GeometryCfg( ConfigFlags ))
from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
top_acc.merge(BeamSpotCondAlgCfg(ConfigFlags))
from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDistortionAlgCfg, PixelHitDiscCnfgAlgCfg
top_acc.merge(PixelDistortionAlgCfg(ConfigFlags))
top_acc.merge(PixelHitDiscCnfgAlgCfg(ConfigFlags))
from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleTool, PixelLorentzAngleCfg
top_acc.addPublicTool(PixelLorentzAngleTool(ConfigFlags))
top_acc.addPublicTool(top_acc.popToolsAndMerge(PixelLorentzAngleCfg(ConfigFlags)))
from InDetOverlay.PixelOverlayConfig import PixelRawDataProviderAlgCfg
top_acc.merge(PixelRawDataProviderAlgCfg(ConfigFlags))
################## SiliconPreProcessing Configurations ###################
from InDetConfig.SiliconPreProcessing import InDetRecPreProcessingSiliconCfg
top_acc.merge(InDetRecPreProcessingSiliconCfg(ConfigFlags))
#################### TRTPreProcessing Configurations #####################
from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg
top_acc.merge(TRTPreProcessingCfg(ConfigFlags,(not ConfigFlags.InDet.doTRTPhaseCalculation or ConfigFlags.Beam.Type =="collisions"),False))
#//// TrackingSiPatternConfig configurations from Temporary location /////
################# SiSPSeededTrackFinder Configurations ###################
TrackingFlags = ConfigFlags.InDet.Tracking
InputCollections = []
SiSPSeededTrackCollectionKey = 'SiSPSeededPixelTracks'
ResolvedTrackCollectionKey = 'ResolvedPixelTracks'
from InDetConfig.TRTExtensionConfig import SiSPSeededTrackFinderCfg
top_acc.merge(SiSPSeededTrackFinderCfg( ConfigFlags,
InputCollections = InputCollections,
SiSPSeededTrackCollectionKey = SiSPSeededTrackCollectionKey,
TrackingFlags = TrackingFlags))
##########################################################################
#################### InDetTrackTruth Configurations ######################
InputTrackCollection = 'SiSPSeededPixelTracks'
InputDetailedTrackTruth = 'DetailedTrackTruth'
InputTrackCollectionTruth = 'TrackTruthCollection'
top_acc.merge(InDetTrackTruthCfg(flags=ConfigFlags,
Tracks = InputTrackCollection,
DetailedTruth = InputDetailedTrackTruth,
TracksTruth = InputTrackCollectionTruth))
#################################################################
top_acc.printConfig()
top_acc.run(25)
top_acc.store(open("TrackTruthConfig.pkl", "wb"))
\ No newline at end of file
This diff is collapsed.
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