diff --git a/InnerDetector/InDetConfig/python/BackTrackingConfig.py b/InnerDetector/InDetConfig/python/BackTrackingConfig.py index 9ee028686b5d1c787f406a04497e41ca483d8929..64ecb46c4e37848def2937e500644ed68210048e 100644 --- a/InnerDetector/InDetConfig/python/BackTrackingConfig.py +++ b/InnerDetector/InDetConfig/python/BackTrackingConfig.py @@ -104,11 +104,7 @@ def TRT_SeededTrackFinder_ATLCfg(flags, name='InDetTRT_SeededTrackMaker', InputC # # --- decide which TRT seed space point finder to use # - if flags.InDet.Tracking.loadSimpleTRTSeededSPFinder: - InDetTRT_SeededSpacePointFinder = acc.popToolsAndMerge(SimpleTRT_SeededSpacePointFinder_ATLCfg(flags, InputCollections=InputCollections)) - else: - InDetTRT_SeededSpacePointFinder = acc.popToolsAndMerge(TRT_SeededSpacePointFinder_ATLCfg(flags, InputCollections=InputCollections)) - + InDetTRT_SeededSpacePointFinder = acc.popToolsAndMerge(TRT_SeededSpacePointFinder_ATLCfg(flags, InputCollections=InputCollections)) acc.addPublicTool(InDetTRT_SeededSpacePointFinder) kwargs.setdefault("PropagatorTool", InDetPatternPropagator) @@ -371,7 +367,7 @@ if __name__ == "__main__": ########################## TRTPreProcessing Configuration ################################ - if not flags.InDet.doDBMstandalone: + if not flags.InDet.Tracking.doDBMstandalone: from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg top_acc.merge(TRTPreProcessingCfg(flags, useTimeInfo = not flags.InDet.Tracking.doTRTPhaseCalculation or flags.Beam.Type=="collisions", diff --git a/InnerDetector/InDetConfig/python/ITkConfigFlags.py b/InnerDetector/InDetConfig/python/ITkConfigFlags.py index fea350a8e5628c4a4d088d07e71f5a243fe1e208..eaad6dc7d8d48ca5a5bf48e6b13543cbb37c924e 100644 --- a/InnerDetector/InDetConfig/python/ITkConfigFlags.py +++ b/InnerDetector/InDetConfig/python/ITkConfigFlags.py @@ -18,7 +18,6 @@ def createITkConfigFlags(): itkcf.addFlag("ITk.Tracking.doStoreTrackSeeds", False) # Turn on to save the Track Seeds in a xAOD track collecting for development studies itkcf.addFlag("ITk.Tracking.doDigitalROTCreation", False) # use PixelClusterOnTrackToolDigital during ROT creation to save CPU itkcf.addFlag("ITk.Tracking.trackFitterType", "GlobalChi2Fitter") # control which fitter to be used: 'KalmanFitter', 'KalmanDNAFitter', 'DistributedKalmanFilter', 'GlobalChi2Fitter', 'GaussianSumFilter' - itkcf.addFlag("ITk.Tracking.useHolesFromPattern", False) itkcf.addFlag("ITk.Tracking.doFastTracking", False) # Turn running of ITk FastTracking on and off itkcf.addFlag("ITk.Tracking.doConversionFinding",True) # Turn running of ConversionFinding second pass on and off itkcf.addFlag("ITk.Tracking.doLargeD0", False) diff --git a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py index fb0db531eab0de4a844e6bb89407a2c9937b4762..eb294774f771791b261630961c3beacdc0f66f3c 100644 --- a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py @@ -399,7 +399,7 @@ def ITkDenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "ITkAmbiguityPro kwargs.setdefault("caloSeededBrem", flags.ITk.Tracking.doCaloSeededBrem and flags.Detector.EnableCalo) kwargs.setdefault("pTminBrem", flags.ITk.Tracking.Pass.minPTBrem[0]) kwargs.setdefault("RefitPrds", True) - kwargs.setdefault("KeepHolesFromBeforeRefit", flags.ITk.Tracking.useHolesFromPattern) + kwargs.setdefault("KeepHolesFromBeforeRefit", False) # DenseEnvironmentsAmbiguityProcessorTool ProcessorTool = CompFactory.Trk.DenseEnvironmentsAmbiguityProcessorTool diff --git a/InnerDetector/InDetConfig/python/InDetConfigFlags.py b/InnerDetector/InDetConfig/python/InDetConfigFlags.py index ea163ec5b75275761a17ddb2cd9e805a981e160b..c9096f68b7ae584e75bc18d03a47f36d73a98a30 100644 --- a/InnerDetector/InDetConfig/python/InDetConfigFlags.py +++ b/InnerDetector/InDetConfig/python/InDetConfigFlags.py @@ -9,34 +9,39 @@ def createInDetConfigFlags(): ### Detector flags - icf.addFlag("InDet.doDBMstandalone",False) icf.addFlag("InDet.doSplitReco", False) # Turn running of the truth seeded pseudo tracking only for pileup on and off. Only makes sense to run on RDO file where SplitDigi was used! - icf.addFlag("InDet.doTruth", lambda f: f.Input.isMC) # Turn running of truth matching on and off (by default on for MC off for data) - icf.addFlag("InDet.selectSCTIntimeHits", True) # defines if the X1X mode is used for the offline or not + icf.addFlag("InDet.doTruth", lambda prevFlags: prevFlags.Input.isMC) # Turn running of truth matching on and off (by default on for MC off for data) + icf.addFlag("InDet.selectSCTIntimeHits", lambda prevFlags: not(prevFlags.Beam.Type=="cosmics" or prevFlags.InDet.Tracking.doVtxBeamSpot) ) # defines if the X1X mode is used for the offline or not icf.addFlag("InDet.useDCS", True) icf.addFlag("InDet.usePixelDCS", lambda prevFlags : (prevFlags.InDet.useDCS and prevFlags.Detector.EnablePixel)) icf.addFlag("InDet.useSctDCS", lambda prevFlags : (prevFlags.InDet.useDCS and prevFlags.Detector.EnableSCT)) + icf.addFlag("InDet.ForceCoraCool", False) # Use old (non CoolVectorPayload) SCT Conditions + icf.addFlag("InDet.ForceCoolVectorPayload", False) # Use new (CoolVectorPayload) SCT Conditions + icf.addFlag("InDet.doSCTModuleVeto", False) # Turn on SCT_ModuleVetoSvc, allowing it to be configured later + icf.addFlag("InDet.checkDeadElementsOnTrack", True) # Enable check for dead modules and FEs + icf.addFlag("InDet.doTRTGlobalOccupancy", False) # Turn running of Event Info TRT Occupancy Filling Alg on and off (also whether it is used in TRT PID calculation) + icf.addFlag("InDet.noTRTTiming", lambda prevFlags: prevFlags.Beam.Type=="singlebeam") + ### Tracking parameters + icf.addFlag("InDet.Tracking.doStoreTrackSeeds", False) # Turn on to save the Track Seeds in a xAOD track collecting for development studies icf.addFlag("InDet.Tracking.materialInteractions", True) - icf.addFlag("InDet.Tracking.materialInteractionsType", 3) # Control which type of particle hypothesis to use for the material interactions 0=non-interacting,1=electron,2=muon,3=pion,4=kaon,5=proton. See ParticleHypothesis.h for full definition. - icf.addFlag("InDet.Tracking.useHolesFromPattern", False) - icf.addFlag("InDet.Tracking.useZvertexTool", False) # start with Zvertex finding + icf.addFlag("InDet.Tracking.materialInteractionsType", lambda prevFlags: 2 if prevFlags.Beam.Type=="cosmics" else 3) # Control which type of particle hypothesis to use for the material interactions 0=non-interacting,1=electron,2=muon,3=pion,4=kaon,5=proton. See ParticleHypothesis.h for full definition. + icf.addFlag("InDet.Tracking.doDigitalROTCreation",False) # use PixelClusterOnTrackToolDigital during ROT creation to save CPU icf.addFlag("InDet.Tracking.holeSearchInGX2Fit", True) icf.addFlag("InDet.Tracking.trackFitterType", "GlobalChi2Fitter") # control which fitter to be used: 'KalmanFitter', 'KalmanDNAFitter', 'DistributedKalmanFilter', 'GlobalChi2Fitter', 'GaussianSumFilter' icf.addFlag("InDet.Tracking.kalmanUpdator", "smatrix") # control which updator to load for KalmanFitter ("None"/"fast"/"smatrix"/"weight"/"amg") icf.addFlag("InDet.Tracking.propagatorType", "RungeKutta") # control which propagator to use ('RungeKutta'/'STEP') icf.addFlag("InDet.Tracking.doSharedHits", True) # control if the shared hits are recorded in TrackPatricles - icf.addFlag("InDet.Tracking.perigeeExpression", "BeamLine") # Express track parameters wrt. to : 'BeamLine','BeamSpot','Vertex' (first primary vertex) + icf.addFlag("InDet.Tracking.perigeeExpression", lambda prevFlags: "Vertex" if prevFlags.Reco.EnableHI else "BeamLine") # Express track parameters wrt. to : 'BeamLine','BeamSpot','Vertex' (first primary vertex) icf.addFlag("InDet.Tracking.cutLevel", 19) # Control cuts and settings for different lumi to limit CPU and disk space - icf.addFlag("InDet.Tracking.doTIDE_Ambi", True) # Switch for running TIDE Ambi - icf.addFlag("InDet.Tracking.doBremRecovery", True) # Turn on running of Brem Recover in tracking + icf.addFlag("InDet.Tracking.doTIDE_Ambi", lambda prevFlags: not prevFlags.InDet.Tracking.doInnerDetectorCommissioning) # Switch for running TIDE Ambi + icf.addFlag("InDet.Tracking.doBremRecovery", lambda prevFlags: not(prevFlags.InDet.Tracking.doVtxLumi or prevFlags.InDet.Tracking.doVtxBeamSpot or prevFlags.InDet.Tracking.doLowMu or prevFlags.Beam.Type!="collisions" or not prevFlags.BField.solenoidOn) ) # Turn on running of Brem Recover in tracking icf.addFlag("InDet.Tracking.doCaloSeededBrem", True) # Brem Recover in tracking restricted to Calo ROIs icf.addFlag("InDet.Tracking.doHadCaloSeededSSS", False) # Use Recover SSS to Calo ROIs icf.addFlag("InDet.Tracking.doCaloSeededAmbi", lambda prevFlags: prevFlags.Detector.EnableCalo) # Use Calo ROIs to seed specific cuts for the ambi - icf.addFlag("InDet.Tracking.doBeamHalo", False) # Turn running of BeamHalo second pass on and off / Which second pass? - icf.addFlag("InDet.Tracking.doPixelClusterSplitting", True) # Try to split pixel clusters + icf.addFlag("InDet.Tracking.doPixelClusterSplitting", lambda prevFlags: not prevFlags.InDet.Tracking.doInnerDetectorCommissioning) # Try to split pixel clusters icf.addFlag("InDet.Tracking.pixelClusterSplittingType", "NeuralNet") # choose splitter type: NeuralNet or AnalogClus icf.addFlag("InDet.Tracking.pixelClusterSplitProb1", lambda prevFlags: 0.5 if prevFlags.GeoModel.Run == 'RUN1' else 0.55) # Cut value for splitting clusters into two parts icf.addFlag("InDet.Tracking.pixelClusterSplitProb2", lambda prevFlags: 0.5 if prevFlags.GeoModel.Run == 'RUN1' else 0.45) # Cut value for splitting clusters into three parts @@ -44,50 +49,41 @@ def createInDetConfigFlags(): icf.addFlag("InDet.Tracking.nnCutLargeD0Threshold", -1.0) # Enable check for dead modules and FEs icf.addFlag("InDet.Tracking.useBroadPixClusterErrors", False) # Use broad cluster errors for Pixel icf.addFlag("InDet.Tracking.useBroadSCTClusterErrors", False) # Use broad cluster errors for SCT - icf.addFlag("InDet.Tracking.trtExtensionType", 'xk') # which extension type ("xk"/"DAF") - icf.addFlag("InDet.Tracking.redoTRT_LR", True) # use smart TRT LR/tube hit creator and redo ROTs - icf.addFlag("InDet.Tracking.doTRTPhaseCalculation", False) # control to run TRT phase calculation - icf.addFlag("InDet.Tracking.loadSimpleTRTSeededSPFinder", False) # control which TRT SP finder is used - icf.addFlag("InDet.Tracking.noTRTTiming", False) + icf.addFlag("InDet.Tracking.doRefitInvalidCov", False) # Try Kalman fitter if the track fit in the ambiguity processor produces non positive definitematrices. + icf.addFlag("InDet.Tracking.trtExtensionType", "xk") # which extension type ("xk"/"DAF") + icf.addFlag("InDet.Tracking.redoTRT_LR", lambda prevFlags: not prevFlags.InDet.Tracking.trtExtensionType=="DAF") # use smart TRT LR/tube hit creator and redo ROTs + icf.addFlag("InDet.Tracking.doTRTPhaseCalculation", lambda prevFlags: prevFlags.Beam.Type=="cosmics") # control to run TRT phase calculation ### Tracking passes/configurations scheduled - icf.addFlag("InDet.Tracking.doTrackSegmentsPixel", False) # Turn running of track segment creation in pixel on and off - icf.addFlag("InDet.Tracking.doTrackSegmentsSCT", False) # Turn running of track segment creation in SCT on and off - icf.addFlag("InDet.Tracking.doTrackSegmentsTRT", False) # Turn running of track segment creation in TRT on and off + icf.addFlag("InDet.Tracking.doTrackSegmentsPixel", lambda prevFlags: prevFlags.InDet.Tracking.doMinBias or prevFlags.InDet.Tracking.doLowMu or prevFlags.InDet.Tracking.doInnerDetectorCommissioning) # Turn running of track segment creation in pixel on and off + icf.addFlag("InDet.Tracking.doTrackSegmentsSCT", lambda prevFlags: prevFlags.InDet.Tracking.doLowMu or prevFlags.InDet.Tracking.doInnerDetectorCommissioning) # Turn running of track segment creation in SCT on and off + icf.addFlag("InDet.Tracking.doTrackSegmentsTRT", lambda prevFlags: prevFlags.InDet.Tracking.doLowMu or prevFlags.InDet.Tracking.doInnerDetectorCommissioning) # Turn running of track segment creation in TRT on and off + icf.addFlag("InDet.Tracking.doDBMstandalone",False) icf.addFlag("InDet.Tracking.doHighPileup", False) # Turn running of high pile-up reconstruction on and off icf.addFlag("InDet.Tracking.doTRTExtension", True) # turn on / off TRT extensions icf.addFlag("InDet.Tracking.doTRTSegments", lambda prevFlags: prevFlags.InDet.Tracking.doBackTracking or prevFlags.InDet.Tracking.doTRTStandalone) # control to run TRT Segment finding (do it always after new tracking!) - icf.addFlag("InDet.Tracking.doBackTracking", True) # Turn running of backtracking on and off + icf.addFlag("InDet.Tracking.doBackTracking", lambda prevFlags: not(prevFlags.Beam.Type in ["singlebeam", "cosmics"] or prevFlags.Reco.EnableHI or prevFlags.InDet.Tracking.doHighPileup or prevFlags.InDet.Tracking.doVtxLumi or prevFlags.InDet.Tracking.doVtxBeamSpot) ) # Turn running of backtracking on and off icf.addFlag("InDet.Tracking.doLargeD0", False) - icf.addFlag("InDet.Tracking.doR3LargeD0", True) + icf.addFlag("InDet.Tracking.doR3LargeD0", lambda prevFlags: not(prevFlags.Beam.Type in ["singlebeam", "cosmics"] or prevFlags.Reco.EnableHI or prevFlags.InDet.Tracking.doHighPileup or prevFlags.InDet.Tracking.doVtxLumi or prevFlags.InDet.Tracking.doVtxBeamSpot) ) icf.addFlag("InDet.Tracking.doLowPtLargeD0", False) # Turn running of doLargeD0 second pass down to 100 MeV on and off Turn running of doLargeD0 second pass on and off icf.addFlag("InDet.Tracking.storeSeparateLargeD0Container", True) - icf.addFlag("InDet.Tracking.doLowPt", False) # Turn running of doLowPt second pass on and off + icf.addFlag("InDet.Tracking.doLowPt", lambda prevFlags: prevFlags.InDet.Tracking.doLowMu) # Turn running of doLowPt second pass on and off icf.addFlag("InDet.Tracking.doVeryLowPt", False) # Turn running of doVeryLowPt thrid pass on and off - icf.addFlag("InDet.Tracking.doTRTStandalone", True) # control TRT Standalone - icf.addFlag("InDet.Tracking.doForwardTracks", True) # Turn running of doForwardTracks pass on and off - icf.addFlag("InDet.Tracking.doTrackSegmentsDisappearing", True) - icf.addFlag("InDet.Tracking.doBeamGas", False) # Turn running of BeamGas second pass on and off + icf.addFlag("InDet.Tracking.doTRTStandalone", lambda prevFlags: not(prevFlags.Reco.EnableHI or prevFlags.InDet.Tracking.doHighPileup or prevFlags.InDet.Tracking.doVtxLumi or prevFlags.InDet.Tracking.doVtxBeamSpot) ) # control TRT Standalone + icf.addFlag("InDet.Tracking.doForwardTracks", lambda prevFlags: not(prevFlags.Beam.Type in ["singlebeam", "cosmics"] or prevFlags.Reco.EnableHI or prevFlags.InDet.Tracking.doHighPileup or prevFlags.InDet.Tracking.doVtxLumi or prevFlags.InDet.Tracking.doVtxBeamSpot or prevFlags.InDet.Tracking.doMinBias or prevFlags.InDet.Tracking.doLowMu)) # Turn running of doForwardTracks pass on and off + icf.addFlag("InDet.Tracking.doTrackSegmentsDisappearing", lambda prevFlags: not(prevFlags.Reco.EnableHI or prevFlags.Reco.EnableHI or prevFlags.InDet.Tracking.doInnerDetectorCommissioning) ) + icf.addFlag("InDet.Tracking.doBeamGas", lambda prevFlags: prevFlags.Beam.Type=="singlebeam") # Turn running of BeamGas second pass on and off icf.addFlag("InDet.Tracking.doMinBias", False) # Switch for running MinBias settings + icf.addFlag("InDet.Tracking.doHIP300", False) # Switch for running MinBias settings with a 300 MeV pT cut (for Heavy Ion Proton) icf.addFlag("InDet.Tracking.doRobustReco", False) # Switch for running Robust settings icf.addFlag("InDet.Tracking.doInnerDetectorCommissioning", False) # Switch for running looser settings in ID for commissioning + icf.addFlag("InDet.Tracking.doBLS", False) # Special reconstruction for BLS physics + icf.addFlag("InDet.Tracking.doVtxLumi", False) # Special reconstruction for vertex lumi measurement + icf.addFlag("InDet.Tracking.doVtxBeamSpot", False) # Special reconstruction for vertex beamspot measurement + icf.addFlag("InDet.Tracking.doLowMu", False) # Special configuration for low-mu runs - - icf.addFlag("InDet.doRefitInvalidCov", False) # Try Kalman fitter if the track fit in the ambiguity processor produces non positive definitematrices. - icf.addFlag("InDet.doSSSfilter", True) # Switch for running SSS filter - icf.addFlag("InDet.ForceCoraCool", False) # Use old (non CoolVectorPayload) SCT Conditions - icf.addFlag("InDet.ForceCoolVectorPayload", False) # Use new (CoolVectorPayload) SCT Conditions - icf.addFlag("InDet.doTRTGlobalOccupancy", False) # Turn running of Event Info TRT Occupancy Filling Alg on and off (also whether it is used in TRT PID calculation) - icf.addFlag("InDet.doNNToTCalibration", False ) # USe ToT calibration for NN clustering rather than Charge - icf.addFlag("InDet.useNNTTrainedNetworks", False ) # Use older NNs stored as TTrainedNetworks in place of default MDNs/other more recent networks. This is necessary for older configuration tags where the trainings were not available. - icf.addFlag("InDet.doSCTModuleVeto", False) # Turn on SCT_ModuleVetoSvc, allowing it to be configured later - icf.addFlag("InDet.doStoreTrackSeeds", False) # Turn on to save the Track Seeds in a xAOD track collecting for development studies - icf.addFlag("InDet.doHIP300", False) # Switch for running MinBias settings with a 300 MeV pT cut (for Heavy Ion Proton) - icf.addFlag("InDet.checkDeadElementsOnTrack", True) # Enable check for dead modules and FEs - icf.addFlag("InDet.doDigitalROTCreation",False) # use PixelClusterOnTrackToolDigital during ROT creation to save CPU - - from InDetConfig.TrackingPassFlags import createTrackingPassFlags, createIBLTrackingPassFlags, createHighPileupTrackingPassFlags, \ + from InDetConfig.TrackingPassFlags import createTrackingPassFlags, createHighPileupTrackingPassFlags, \ createMinBiasTrackingPassFlags, createLargeD0TrackingPassFlags, createR3LargeD0TrackingPassFlags, createLowPtLargeD0TrackingPassFlags, \ createLowPtTrackingPassFlags, createVeryLowPtTrackingPassFlags, createForwardTracksTrackingPassFlags, createBeamGasTrackingPassFlags, \ createVtxLumiTrackingPassFlags, createVtxBeamSpotTrackingPassFlags, createCosmicsTrackingPassFlags, createHeavyIonTrackingPassFlags, \ @@ -95,7 +91,6 @@ def createInDetConfigFlags(): createTRTStandaloneTrackingPassFlags, createDBMTrackingPassFlags, createRobustRecoTrackingPassFlags icf.addFlagsCategory ("InDet.Tracking.Pass", createTrackingPassFlags, prefix=True) - icf.addFlagsCategory ("InDet.Tracking.IBLPass", createIBLTrackingPassFlags, prefix=True) icf.addFlagsCategory ("InDet.Tracking.HighPileupPass", createHighPileupTrackingPassFlags, prefix=True) icf.addFlagsCategory ("InDet.Tracking.MinBiasPass", createMinBiasTrackingPassFlags, prefix=True) icf.addFlagsCategory ("InDet.Tracking.LargeD0Pass", createLargeD0TrackingPassFlags, prefix=True) diff --git a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py index 9446178d7ee49dbff342ce6cf0fc392a8ba81c67..2d4648471948d43b8699b1b86cc0f4ab0620ac6c 100644 --- a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py @@ -93,6 +93,7 @@ def InDetBoundaryCheckToolCfg(flags, name='InDetBoundarySearchTool', **kwargs): kwargs.setdefault("UsePixel", flags.Detector.EnablePixel) kwargs.setdefault("UseSCT", flags.Detector.EnableSCT) + kwargs.setdefault("CheckBadSCT", flags.InDet.checkDeadElementsOnTrack) result.setPrivateTools(CompFactory.InDet.InDetBoundaryCheckTool(name, **kwargs)) return result diff --git a/InnerDetector/InDetConfig/python/SiliconPreProcessing.py b/InnerDetector/InDetConfig/python/SiliconPreProcessing.py index 1be93631ef70cb46a8880895593c7fbae478eaaf..a14f880143789f7618daf4a9161595260a2922b5 100644 --- a/InnerDetector/InDetConfig/python/SiliconPreProcessing.py +++ b/InnerDetector/InDetConfig/python/SiliconPreProcessing.py @@ -17,7 +17,7 @@ def SiSpacePointMakerToolCfg(flags, name="InDetSiSpacePointMakerTool", **kwargs) # --- SiSpacePointMakerTool (public) # - if flags.Beam.Type == "cosmics" or flags.InDet.Tracking.doBeamHalo: + if flags.Beam.Type == "cosmics" or flags.InDet.Tracking.doBeamGas: kwargs.setdefault("StripLengthTolerance", 0.05) kwargs.setdefault("UsePerpendicularProjection", True) @@ -49,7 +49,7 @@ def InDetSiTrackerSpacePointFinderCfg(flags, name = "InDetSiTrackerSpacePointFin kwargs.setdefault("ProcessSCTs", flags.Detector.EnableSCT) kwargs.setdefault("ProcessOverlaps", flags.Detector.EnableSCT) - if flags.InDet.doDBMstandalone: + if flags.InDet.Tracking.doDBMstandalone: kwargs.setdefault("OverlapLimitEtaMax", 5.0) kwargs.setdefault("OverlapLimitEtaMin", 0) diff --git a/InnerDetector/InDetConfig/python/TRTExtensionConfig.py b/InnerDetector/InDetConfig/python/TRTExtensionConfig.py index 76f8136d83701cb97307192140c8c2938d9b30a1..09722cc880fc7091def6c26fcb66b7fe20a8d7ce 100644 --- a/InnerDetector/InDetConfig/python/TRTExtensionConfig.py +++ b/InnerDetector/InDetConfig/python/TRTExtensionConfig.py @@ -160,7 +160,6 @@ if __name__ == "__main__": ConfigFlags.Detector.GeometryTRT = True ConfigFlags.InDet.Tracking.doTRTExtension = True - ConfigFlags.InDet.Tracking.useHolesFromPattern = False ConfigFlags.InDet.Tracking.holeSearchInGX2Fit = True from AthenaConfiguration.TestDefaults import defaultTestFiles @@ -226,7 +225,7 @@ if __name__ == "__main__": #################### Additional Configuration ######################## ####################################################################### ################# TRTPreProcessing Configuration ###################### - if not ConfigFlags.InDet.doDBMstandalone: + if not ConfigFlags.InDet.Tracking.doDBMstandalone: from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg top_acc.merge(TRTPreProcessingCfg(ConfigFlags, useTimeInfo = not ConfigFlags.InDet.Tracking.doTRTPhaseCalculation or ConfigFlags.Beam.Type=="collisions", diff --git a/InnerDetector/InDetConfig/python/TRTPreProcessing.py b/InnerDetector/InDetConfig/python/TRTPreProcessing.py index 68bbcd6a5bdb94ac957f3150c9b0a9cd45cca218..9de5b5c2b37719b5603ca9bf4d55e81838bdd449 100644 --- a/InnerDetector/InDetConfig/python/TRTPreProcessing.py +++ b/InnerDetector/InDetConfig/python/TRTPreProcessing.py @@ -55,7 +55,7 @@ def InDetTRT_DriftFunctionToolCfg(flags, useTimeInfo, usePhase, name = "InDetTRT acc.addPublicTool(CalDbTool) # --- overwrite for uncalibrated DC production - if (not useTimeInfo) or flags.InDet.Tracking.noTRTTiming: + if (not useTimeInfo) or flags.InDet.noTRTTiming: kwargs.setdefault("DummyMode", True) kwargs.setdefault("UniversalError", 1.15) @@ -305,7 +305,7 @@ if __name__ == "__main__": top_acc.merge( PixelReadoutGeometryCfg(ConfigFlags) ) top_acc.merge( SCT_ReadoutGeometryCfg(ConfigFlags) ) - if not ConfigFlags.InDet.doDBMstandalone: + if not ConfigFlags.InDet.Tracking.doDBMstandalone: top_acc.merge(TRTPreProcessingCfg(ConfigFlags, useTimeInfo = not ConfigFlags.InDet.Tracking.doTRTPhaseCalculation or ConfigFlags.Beam.Type=="collisions", usePhase = False)) diff --git a/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py b/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py index 76dfafd5183132554902124fec63d4f6b38d2a55..5d78489a2e5fc3270597cefff2fb88853ba8bc12 100644 --- a/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py +++ b/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py @@ -224,7 +224,7 @@ if __name__ == "__main__": # NewTracking collection keys InputCombinedInDetTracks = [] - if not flags.InDet.doDBMstandalone: + if not flags.InDet.Tracking.doDBMstandalone: from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg top_acc.merge(TRTPreProcessingCfg(flags, useTimeInfo = not flags.InDet.Tracking.doTRTPhaseCalculation or flags.Beam.Type =="collisions", diff --git a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py index 08551f002d7cddeb82e9414b0c9535d201aba391..18ad631e3604f7582ef7b5e29f6002cf947de68a 100644 --- a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py +++ b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py @@ -263,7 +263,7 @@ if __name__ == "__main__": top_acc.merge(TRTActiveCondAlgCfg(ConfigFlags)) top_acc.merge(TC.TRT_DetElementsRoadCondAlgCfg()) ############################# TRTPreProcessing configuration ############################ - if not ConfigFlags.InDet.doDBMstandalone: + if not ConfigFlags.InDet.Tracking.doDBMstandalone: from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg top_acc.merge(TRTPreProcessingCfg(ConfigFlags,(not ConfigFlags.InDet.doTRTPhaseCalculation or ConfigFlags.Beam.Type =="collisions"),False)) ########################### TRTSegmentFindingCfg configuration ########################## diff --git a/InnerDetector/InDetConfig/python/TrackRecoConfig.py b/InnerDetector/InDetConfig/python/TrackRecoConfig.py index 1de41d97fb3c8f948b2981c2104a6004521a1ab6..02c0af03218be39aff12af73b2a9005728de9c69 100644 --- a/InnerDetector/InDetConfig/python/TrackRecoConfig.py +++ b/InnerDetector/InDetConfig/python/TrackRecoConfig.py @@ -316,7 +316,7 @@ def InDetTrackRecoCfg(flags): # TRT track segment finding if flags.InDet.Tracking.doTrackSegmentsTRT: - flagsTRT = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.TrackingTRTPass") + flagsTRT = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.TRTPass") from InDetConfig.TRTSegmentFindingConfig import TRTSegmentFindingCfg result.merge(TRTSegmentFindingCfg(flagsTRT, extension = "_TRT", @@ -335,8 +335,20 @@ def InDetTrackRecoCfg(flags): # # ------------------------------------------------------------ - if flags.InDet.Tracking.doHighPileup: + if flags.InDet.Tracking.doDBMstandalone: + flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.DBMPass") + elif flags.InDet.Tracking.doVtxLumi: + flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.VtxLumiPass") + elif flags.InDet.Tracking.doVtxBeamSpot: + flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.VtxBeamSpotPass") + elif flags.Beam.Type == "cosmics": + flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.CosmicsPass") + elif flags.Reco.EnableHI: + flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.HeavyIonPass") + elif flags.InDet.Tracking.doHighPileup: flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.HighPileupPass") + elif flags.InDet.Tracking.doMinBias: + flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.MinBiasPass") elif flags.InDet.Tracking.doRobustReco: flags = flags.cloneAndReplace("InDet.Tracking.Pass", "InDet.Tracking.RobustRecoPass") @@ -555,7 +567,11 @@ def InDetTrackRecoCfg(flags): result.merge(TrackParticleCnvAlgCfg(flags)) - # TODO add followup algs + if flags.InDet.Tracking.doStoreTrackSeeds: + result.merge(TrackParticleCnvAlgCfg(flags, + name = "SiSPSeedSegmentsCnvAlg", + TrackContainerName = "SiSPSeedSegments", + OutputTrackParticleContainer = "SiSPSeedSegmentsTrackParticles")) if flags.InDet.PriVertex.doVertexFinding: from InDetConfig.VertexFindingConfig import primaryVertexFindingCfg diff --git a/InnerDetector/InDetConfig/python/TrackTruthConfig.py b/InnerDetector/InDetConfig/python/TrackTruthConfig.py index 3f117522bb925104f4c5fed0c9219290fd7809ff..f4650b30e4be5e42edfff30098ead96366f86d89 100644 --- a/InnerDetector/InDetConfig/python/TrackTruthConfig.py +++ b/InnerDetector/InDetConfig/python/TrackTruthConfig.py @@ -79,7 +79,6 @@ if __name__ == "__main__": ConfigFlags.Detector.GeometryTRT = True ConfigFlags.InDet.Tracking.doPixelClusterSplitting = True - ConfigFlags.InDet.Tracking.useHolesFromPattern = False from AthenaConfiguration.TestDefaults import defaultTestFiles ConfigFlags.Input.Files = defaultTestFiles.RDO diff --git a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py index 49e0ea048d8a9350ab9fd98372fe567db0ec2a11..fdfbc51b7a4437dd788154765fbdfa90fba2caae 100644 --- a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py @@ -89,24 +89,22 @@ def NnClusterizationFactoryCfg(flags, name="NnClusterizationFactory", **kwargs): PixelLorentzAngleTool = PixelLorentzAngleTool(flags, name="PixelLorentzAngleTool", **kwargs) kwargs.setdefault("PixelLorentzAngleTool", PixelLorentzAngleTool) - do_runI = flags.GeoModel.Run == "RUN1" - - if flags.InDet.useNNTTrainedNetworks: - acc.merge(PixelClusterNnCondAlgCfg(flags, name="PixelClusterNnCondAlg", GetInputsInfo=do_runI)) - acc.merge(PixelClusterNnWithTrackCondAlgCfg(flags, name="PixelClusterNnWithTrackCondAlg", GetInputsInfo=do_runI)) + if flags.GeoModel.Run=="RUN1": + acc.merge(PixelClusterNnCondAlgCfg(flags, name="PixelClusterNnCondAlg", GetInputsInfo=True)) + acc.merge(PixelClusterNnWithTrackCondAlgCfg(flags, name="PixelClusterNnWithTrackCondAlg", GetInputsInfo=True)) else: acc.merge(LWTNNCondAlgCfg(flags, name="LWTNNCondAlg")) - kwargs.setdefault("doRunI", do_runI) - kwargs.setdefault("useToT", False if do_runI else flags.InDet.doNNToTCalibration) - kwargs.setdefault("useRecenteringNNWithoutTracks", True if do_runI else False) - kwargs.setdefault("useRecenteringNNWithTracks", False if do_runI else False) + kwargs.setdefault("doRunI", flags.GeoModel.Run=="RUN1") + kwargs.setdefault("useToT", False) + kwargs.setdefault("useRecenteringNNWithoutTracks", flags.GeoModel.Run=="RUN1") + kwargs.setdefault("useRecenteringNNWithTracks", False) kwargs.setdefault("correctLorShiftBarrelWithoutTracks", 0) - kwargs.setdefault("correctLorShiftBarrelWithTracks", 0.030 if do_runI else 0.000) - kwargs.setdefault("useTTrainedNetworks", flags.InDet.useNNTTrainedNetworks) - kwargs.setdefault("NnCollectionReadKey", "PixelClusterNN" if flags.InDet.useNNTTrainedNetworks else "") - kwargs.setdefault("NnCollectionWithTrackReadKey", "PixelClusterNNWithTrack" if flags.InDet.useNNTTrainedNetworks else "") - kwargs.setdefault("NnCollectionJSONReadKey", "" if flags.InDet.useNNTTrainedNetworks else "PixelClusterNNJSON") + kwargs.setdefault("correctLorShiftBarrelWithTracks", 0.030 if flags.GeoModel.Run=="RUN1" else 0.000) + kwargs.setdefault("useTTrainedNetworks", flags.GeoModel.Run=="RUN1") + kwargs.setdefault("NnCollectionReadKey", "PixelClusterNN" if flags.GeoModel.Run=="RUN1" else "") + kwargs.setdefault("NnCollectionWithTrackReadKey", "PixelClusterNNWithTrack" if flags.GeoModel.Run=="RUN1" else "") + kwargs.setdefault("NnCollectionJSONReadKey", "" if flags.GeoModel.Run=="RUN1" else "PixelClusterNNJSON") acc.setPrivateTools(CompFactory.InDet.NnClusterizationFactory(the_name, **kwargs)) return acc @@ -118,14 +116,14 @@ def InDetPixelClusterOnTrackToolBaseCfg(flags, name="PixelClusterOnTrackTool", * from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDistortionAlgCfg, PixelOfflineCalibCondAlgCfg acc.merge(PixelOfflineCalibCondAlgCfg(flags)) - if not flags.InDet.doDBMstandalone: + if not flags.InDet.Tracking.doDBMstandalone: acc.merge(PixelDistortionAlgCfg(flags)) - if flags.Beam.Type == "cosmics" or flags.InDet.doDBMstandalone: + if flags.Beam.Type == "cosmics" or flags.InDet.Tracking.doDBMstandalone: kwargs.setdefault("ErrorStrategy", 0) kwargs.setdefault("PositionStrategy", 0) - kwargs.setdefault("DisableDistortions", flags.InDet.doDBMstandalone) + kwargs.setdefault("DisableDistortions", flags.InDet.Tracking.doDBMstandalone) kwargs.setdefault("applyNNcorrection", flags.InDet.Tracking.doPixelClusterSplitting and flags.InDet.Tracking.pixelClusterSplittingType == "NeuralNet") kwargs.setdefault("NNIBLcorrection", flags.InDet.Tracking.doPixelClusterSplitting and flags.InDet.Tracking.pixelClusterSplittingType == "NeuralNet") split_cluster_map_extension = flags.InDet.Tracking.Pass.extension if flags.InDet.Tracking.Pass.useTIDE_Ambi else "" @@ -146,12 +144,12 @@ def InDetPixelClusterOnTrackToolDigitalCfg(flags, name="InDetPixelClusterOnTrack PixelLorentzAngleTool = acc.popToolsAndMerge(PixelLorentzAngleCfg(flags)) kwargs.setdefault("LorentzAngleTool", PixelLorentzAngleTool) - if flags.InDet.doDigitalROTCreation: + if flags.InDet.Tracking.doDigitalROTCreation: kwargs.setdefault("applyNNcorrection", False) kwargs.setdefault("NNIBLcorrection", False) kwargs.setdefault("ErrorStrategy", 2) kwargs.setdefault("PositionStrategy", 1) - else : + else: kwargs.setdefault("SplitClusterAmbiguityMap", "") acc.setPrivateTools(acc.popToolsAndMerge(InDetPixelClusterOnTrackToolBaseCfg(flags, name, **kwargs))) @@ -176,7 +174,7 @@ def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleCfg kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleCfg(flags))) - if flags.InDet.doDigitalROTCreation: + if flags.InDet.Tracking.doDigitalROTCreation: PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolDigitalCfg(flags, name, **kwargs)) else: PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolNNSplittingCfg(flags, name, **kwargs)) @@ -280,8 +278,8 @@ def InDetRotCreatorCfg(flags, name='InDetRotCreator', **kwargs): for an_arg in strip_args: kwargs.pop(an_arg, None) - use_broad_cluster_pix = flags.InDet.Tracking.useBroadPixClusterErrors and (not flags.InDet.doDBMstandalone) - use_broad_cluster_sct = flags.InDet.Tracking.useBroadSCTClusterErrors and (not flags.InDet.doDBMstandalone) + use_broad_cluster_pix = flags.InDet.Tracking.useBroadPixClusterErrors and not flags.InDet.Tracking.doDBMstandalone + use_broad_cluster_sct = flags.InDet.Tracking.useBroadSCTClusterErrors and not flags.InDet.Tracking.doDBMstandalone if 'ToolPixelCluster' not in kwargs : if use_broad_cluster_pix : @@ -720,14 +718,14 @@ def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', **kwargs) : InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, **pix_cluster_on_track_args)) kwargs.setdefault('BroadRotCreatorTool', InDetBroadRotCreator) - if flags.InDet.doDBMstandalone: + if flags.InDet.Tracking.doDBMstandalone: kwargs.setdefault('StraightLine', True) kwargs.setdefault('OutlierCut', 5) kwargs.setdefault('RecalibrateTRT', False) kwargs.setdefault('TRTExtensionCuts', False) kwargs.setdefault('TrackChi2PerNDFCut', 20) - if (flags.InDet.Tracking.useBroadPixClusterErrors or flags.InDet.Tracking.useBroadSCTClusterErrors) and not flags.InDet.doDBMstandalone: + if (flags.InDet.Tracking.useBroadPixClusterErrors or flags.InDet.Tracking.useBroadSCTClusterErrors) and not flags.InDet.Tracking.doDBMstandalone: kwargs.setdefault('RecalibrateSilicon', False) if flags.InDet.Tracking.doRobustReco: @@ -737,7 +735,7 @@ def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', **kwargs) : if flags.InDet.Tracking.doRobustReco or flags.Beam.Type == 'cosmics': kwargs.setdefault('MaxOutliers', 99) - if flags.Beam.Type == 'cosmics' or flags.InDet.Tracking.doBeamHalo: + if flags.Beam.Type == 'cosmics' or flags.InDet.Tracking.doBeamGas: kwargs.setdefault('Acceleration', False) if flags.InDet.Tracking.materialInteractions and not flags.BField.solenoidOn: @@ -831,7 +829,7 @@ def InDetGlobalChi2FitterBaseCfg(flags, name='GlobalChi2FitterBase', **kwargs): kwargs.setdefault("TRTTubeHitCut", 1.75) kwargs.setdefault("MaxIterations", 40) kwargs.setdefault("Acceleration", True) - kwargs.setdefault("RecalculateDerivatives", flags.InDet.Tracking.doMinBias or flags.Beam.Type == 'cosmics' or flags.InDet.Tracking.doBeamHalo) + kwargs.setdefault("RecalculateDerivatives", flags.InDet.Tracking.doMinBias or flags.Beam.Type == 'cosmics' or flags.InDet.Tracking.doBeamGas) kwargs.setdefault("TRTExtensionCuts", True) kwargs.setdefault("TrackChi2PerNDFCut", 7) @@ -1034,12 +1032,12 @@ def InDetTRT_TrackExtensionTool_xkCfg(flags, name='InDetTRT_ExtensionTool', **kw kwargs.setdefault("TRT_ClustersContainer", "TRT_DriftCircles") kwargs.setdefault("TrtManagerLocation", "TRT") - kwargs.setdefault("UseDriftRadius", not flags.InDet.Tracking.noTRTTiming) + kwargs.setdefault("UseDriftRadius", not flags.InDet.noTRTTiming) kwargs.setdefault("MinNumberDriftCircles", flags.InDet.Tracking.Pass.minTRTonTrk) kwargs.setdefault("ScaleHitUncertainty", 2) kwargs.setdefault("RoadWidth", 20.) kwargs.setdefault("UseParameterization", flags.InDet.Tracking.Pass.useParameterizedTRTCuts) - kwargs.setdefault("maxImpactParameter", 500 if flags.InDet.Tracking.doBeamHalo or flags.InDet.Tracking.doBeamGas else 50 ) # single beam running, open cuts + kwargs.setdefault("maxImpactParameter", 500 if flags.InDet.Tracking.doBeamGas else 50 ) # single beam running, open cuts if flags.InDet.Tracking.Pass.RoISeededBackTracking: kwargs.setdefault("minTRTSegmentpT", flags.InDet.Tracking.Pass.minSecondaryPt) @@ -1323,14 +1321,8 @@ def InDetRotCreatorDBMCfg(flags, name='InDetRotCreatorDBM', **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : pix_cluster_on_track_args = copyArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - - if flags.Detector.EnablePixel and flags.InDet.loadRotCreator: - ToolPixelCluster = InDetPixelClusterOnTrackToolDBMCfg(flags, pix_cluster_on_track_args) - kwargs.setdefault('ToolPixelCluster', ToolPixelCluster) - else : - ToolPixelCluster= InDetPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args) - kwargs.setdefault('ToolPixelCluster', ToolPixelCluster) - + ToolPixelCluster = InDetPixelClusterOnTrackToolDBMCfg(flags, pix_cluster_on_track_args) + kwargs.setdefault('ToolPixelCluster', ToolPixelCluster) acc.setPrivateTools(acc.popToolsAndMerge(InDetRotCreatorCfg(flags, name=name, **kwargs))) return acc diff --git a/InnerDetector/InDetConfig/python/TrackingPassFlags.py b/InnerDetector/InDetConfig/python/TrackingPassFlags.py index 671085f97e89c853aaefcb2a3685ae3e4b215753..8a5b2c70693a292f4da964ddac31b6c20406badd 100644 --- a/InnerDetector/InDetConfig/python/TrackingPassFlags.py +++ b/InnerDetector/InDetConfig/python/TrackingPassFlags.py @@ -229,13 +229,14 @@ def createTrackingPassFlags(): icf.addFlag("maxShared", 1) # cut is now on number of shared modules icf.addFlag("minPixel", 0) - icf.addFlag("maxHoles", lambda pcf: maxHoles_ranges( pcf ) ) - icf.addFlag("maxPixelHoles", lambda pcf: maxPixelHoles_ranges( pcf ) ) + icf.addFlag("maxHoles", maxHoles_ranges ) + icf.addFlag("maxPixelHoles", maxPixelHoles_ranges ) icf.addFlag("maxSctHoles", 2) icf.addFlag("maxDoubleHoles", 1) - icf.addFlag("maxPrimaryImpact", maxPrimaryImpact_ranges ) - icf.addFlag("maxZImpact", lambda pcf: maxZImpact_ranges( pcf ) ) + icf.addFlag("maxPrimaryImpact", lambda pcf: 10.0 * Units.mm if pcf.InDet.Tracking.doBLS + else maxPrimaryImpact_ranges(pcf) ) + icf.addFlag("maxZImpact", maxZImpact_ranges ) # --- this is for the TRT-extension icf.addFlag("minTRTonTrk", 9) @@ -255,7 +256,8 @@ def createTrackingPassFlags(): icf.addFlag("seedFilterLevel", seedFilterLevel_ranges ) icf.addFlag("maxTracksPerSharedPRD", 0) ## is 0 ok for default?? icf.addFlag("maxdImpactPPSSeeds", 2) - icf.addFlag("maxdImpactSSSSeeds", maxdImpactSSSSeeds_ranges ) + icf.addFlag("maxdImpactSSSSeeds", lambda pcf: 10.0 * Units.mm if pcf.InDet.Tracking.doBLS + else maxdImpactSSSSeeds_ranges(pcf) ) icf.addFlag("maxZSpacePointsPPPSeeds", 2700.0 * Units.mm ) icf.addFlag("maxZSpacePointsSSSSeeds", 2700.0 * Units.mm ) icf.addFlag("maxSeedsPerSP_Pixels", maxSeedsPerSP_Pixels_ranges ) @@ -294,10 +296,10 @@ def createTrackingPassFlags(): icf.addFlag("minSecondaryTRTonTrk" , minSecondaryTRTonTrk_ranges) icf.addFlag("minSecondaryTRTPrecFrac" , minSecondaryTRTPrecFrac_ranges) - icf.addFlag("maxSecondaryHoles" , lambda pcf: maxSecondaryHoles_ranges( pcf ) ) - icf.addFlag("maxSecondaryPixelHoles" , lambda pcf: maxSecondaryPixelHoles_ranges( pcf )) - icf.addFlag("maxSecondarySCTHoles" , lambda pcf: maxSecondarySCTHoles_ranges( pcf ) ) - icf.addFlag("maxSecondaryDoubleHoles" , lambda pcf: maxSecondaryDoubleHoles_ranges( pcf ) ) + icf.addFlag("maxSecondaryHoles" , maxSecondaryHoles_ranges) + icf.addFlag("maxSecondaryPixelHoles" , maxSecondaryPixelHoles_ranges) + icf.addFlag("maxSecondarySCTHoles" , maxSecondarySCTHoles_ranges) + icf.addFlag("maxSecondaryDoubleHoles" , maxSecondaryDoubleHoles_ranges) icf.addFlag("SecondarynHolesMax" , 2 ) icf.addFlag("SecondarynHolesGapMax" , 2 ) @@ -490,17 +492,6 @@ def createITkLargeD0FastTrackingPassFlags(): return icf -### IBL mode #################### -def createIBLTrackingPassFlags(): - icf = createTrackingPassFlags() - icf.extension = "IBL" - icf.seedFilterLevel = 1 - icf.minPT = 0.900 * Units.GeV - icf.minClusters = 10 - icf.maxPixelHoles = 1 - - return icf - ### HighPileUP mode #################### def createHighPileupTrackingPassFlags(): icf = createTrackingPassFlags() @@ -516,7 +507,7 @@ def createHighPileupTrackingPassFlags(): def createMinBiasTrackingPassFlags(): icf = createTrackingPassFlags() icf.extension = "MinBias" - icf.minPT = lambda pcf: (0.3 if pcf.InDet.doHIP300 else 0.1) * Units.GeV + icf.minPT = lambda pcf: (0.3 if pcf.InDet.Tracking.doHIP300 else 0.1) * Units.GeV icf.minClusters = 5 icf.minSecondaryPt = 0.4 * Units.GeV # Pt cut for back tracking + segment finding for these @@ -857,7 +848,7 @@ def createPixelTrackingPassFlags(): if pcf.Reco.EnableHI: return 0.1 * Units.GeV if pcf.InDet.Tracking.doMinBias: - if pcf.InDet.doHIP300: + if pcf.InDet.Tracking.doHIP300: return 0.300 * Units.GeV else: return 0.05 * Units.GeV @@ -935,7 +926,7 @@ def createSCTTrackingPassFlags(): if pcf.Beam.Type == "cosmics": return cosmics if pcf.InDet.Tracking.doMinBias: - if pcf.InDet.doHIP300: + if pcf.InDet.Tracking.doHIP300: return hion else: return minbias diff --git a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py index 65a591b4bc19de9476948d3a002b1e9be6f3c0c3..dd89cf1763d5e1a9d72be5f037d19a5c1ce0a939 100644 --- a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py @@ -127,7 +127,7 @@ def SiCombinatorialTrackFinder_xkCfg(flags, name="InDetSiComTrackFinder", **kwar # # --- Local track finding using sdCaloSeededSSSpace point seed # - if flags.InDet.doDBMstandalone or flags.InDet.Tracking.Pass.extension == 'DBM': + if flags.InDet.Tracking.doDBMstandalone: RotCreator = acc.popToolsAndMerge(TC.InDetRotCreatorDBMCfg(flags)) kwargs.setdefault("useSCT", False) kwargs.setdefault("MagneticFieldMode", "NoField") @@ -149,9 +149,6 @@ def SiCombinatorialTrackFinder_xkCfg(flags, name="InDetSiComTrackFinder", **kwar kwargs.setdefault("PixelClusterContainer", "PixelClusters") kwargs.setdefault("SCT_ClusterContainer", "SCT_Clusters") - if flags.InDet.Tracking.Pass.extension == "": - kwargs.setdefault("writeHolesFromPattern", flags.InDet.Tracking.useHolesFromPattern) - if flags.Detector.EnablePixel: from PixelConditionsTools.PixelConditionsSummaryConfig import PixelConditionsSummaryCfg kwargs.setdefault("PixelSummaryTool", acc.popToolsAndMerge(PixelConditionsSummaryCfg(flags))) @@ -198,7 +195,7 @@ def SiTrackMaker_xkCfg(flags, name="InDetSiTrackMaker", InputCollections = None, kwargs.setdefault("nWeightedClustersMin", flags.InDet.Tracking.Pass.nWeightedClustersMin) kwargs.setdefault("CosmicTrack", flags.Beam.Type == 'cosmics') kwargs.setdefault("Xi2maxMultiTracks", flags.InDet.Tracking.Pass.Xi2max) - kwargs.setdefault("useSSSseedsFilter", flags.InDet.doSSSfilter) + kwargs.setdefault("useSSSseedsFilter", True) kwargs.setdefault("doMultiTracksProd", True) kwargs.setdefault("useBremModel", flags.InDet.Tracking.doBremRecovery and flags.InDet.Tracking.Pass.extension == "" and flags.Detector.EnableCalo) kwargs.setdefault("doCaloSeededBrem", flags.InDet.Tracking.doCaloSeededBrem and flags.Detector.EnableCalo) @@ -250,7 +247,7 @@ def SiTrackMaker_xkCfg(flags, name="InDetSiTrackMaker", InputCollections = None, else: kwargs.setdefault("TrackPatternRecoInfo", 'SiSPSeededFinder') - if flags.InDet.doStoreTrackSeeds: + if flags.InDet.Tracking.doStoreTrackSeeds: from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg kwargs.setdefault("SeedToTrackConversion", CompFactory.InDet.SeedToTrackConversionTool( name="InDet_SeedToTrackConversion", @@ -279,11 +276,14 @@ def SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", InputCollection # not all classes have that property !!! kwargs.setdefault("PRDtoTrackMap", 'InDetPRDtoTrackMap'+ flags.InDet.Tracking.Pass.extension) - if flags.InDet.Tracking.Pass.extension == "ForwardTracks" or flags.InDet.Tracking.Pass.extension == "DBM": - kwargs.setdefault("useZvertexTool", flags.InDet.Tracking.useZvertexTool and flags.InDet.Tracking.Pass.extension == "ForwardTracks") + if flags.InDet.Tracking.Pass.extension == "ForwardTracks": + kwargs.setdefault("useZvertexTool", flags.Reco.EnableHI) # For heavy-ion + kwargs.setdefault("useZBoundFinding", False) + elif flags.InDet.Tracking.Pass.extension == "DBM": + kwargs.setdefault("useZvertexTool", False) kwargs.setdefault("useZBoundFinding", False) else: - kwargs.setdefault("useZvertexTool", flags.InDet.Tracking.useZvertexTool) + kwargs.setdefault("useZvertexTool", flags.Reco.EnableHI) # For heavy-ion kwargs.setdefault("useZBoundFinding", flags.InDet.Tracking.Pass.doZBoundary) # @@ -295,9 +295,6 @@ def SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", InputCollection if flags.Reco.EnableHI: kwargs.setdefault("FreeClustersCut",2) #Heavy Ion optimization from Igor - if flags.InDet.Tracking.Pass.extension == "": - kwargs.setdefault("writeHolesFromPattern", flags.InDet.Tracking.useHolesFromPattern) - InDetSiSPSeededTrackFinder = CompFactory.InDet.SiSPSeededTrackFinder(name = name+flags.InDet.Tracking.Pass.extension, **kwargs) acc.addEventAlgo(InDetSiSPSeededTrackFinder) return acc @@ -441,7 +438,7 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProces InDetTrackFitterAmbi = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, name='InDetTrackFitterAmbi'+flags.InDet.Tracking.Pass.extension, **fitter_args)) fitter_list.append(InDetTrackFitterAmbi) - if flags.InDet.doRefitInvalidCov: + if flags.InDet.Tracking.doRefitInvalidCov: if not flags.InDet.Tracking.Pass.extension=="": KalmanFitter = acc.popToolsAndMerge(TC.KalmanFitterCfg(flags, name='KalmanFitter'+flags.InDet.Tracking.Pass.extension)) fitter_list.append(KalmanFitter) @@ -476,7 +473,7 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProces kwargs.setdefault("caloSeededBrem", flags.InDet.Tracking.doCaloSeededBrem and flags.Detector.EnableCalo and flags.InDet.Tracking.Pass.extension == "") kwargs.setdefault("pTminBrem", flags.InDet.Tracking.Pass.minPTBrem) kwargs.setdefault("RefitPrds", True) - kwargs.setdefault("KeepHolesFromBeforeRefit", flags.InDet.Tracking.useHolesFromPattern) + kwargs.setdefault("KeepHolesFromBeforeRefit", False) InDetAmbiguityProcessor = CompFactory.Trk.DenseEnvironmentsAmbiguityProcessorTool(name=name+flags.InDet.Tracking.Pass.extension, **kwargs) acc.setPrivateTools(InDetAmbiguityProcessor)