ATLAS Offline Software
ActsConfigFlags.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
4 from AthenaConfiguration.Enums import FlagEnum
5 
6 class SeedingStrategy(FlagEnum):
7  Default = "Default"
8  Orthogonal = "Orthogonal"
9  Gbts = "Gbts"
10 
11 class AmbiguitySolverStrategy(FlagEnum):
12  Greedy = "GreedySolver"
13  ScoreBased = "ScoreBasedAmbiguitySolver"
14 
15 
16 # This is temporary during the integration of ACTS.
17 class SpacePointStrategy(FlagEnum):
18  ActsCore = "ActsCore" # ACTS-based SP formation
19  ActsTrk = "ActsTrk" #SP formation without ACTS
20 
21 class TrackFitterType(FlagEnum):
22  KalmanFitter = 'KalmanFitter' # default ACTS fitter to choose
23  GaussianSumFitter = 'GaussianSumFitter' # new experimental implementation
24  GlobalChiSquareFitter = 'GlobalChiSquareFitter' # new experimental implementation
25 
26 # Flag for pixel calibration strategy during track finding
27 # - use cluster as is (Uncalibrated)
28 # - perform AnalogueClustering either before selecting
29 # measurements for extending tracks (AnalogueClustering)
30 # - or only apply the AnalogueClustering to selected measurements
31 # (AnalogueClusteringAfterSelection)
32 class PixelCalibrationStrategy(FlagEnum):
33  Uncalibrated = "Uncalibrated"
34  AnalogueClustering = "AnalogueClustering"
35  AnalogueClusteringAfterSelection = "AnalogueClusteringAfterSelection"
36 
38  actscf = AthConfigFlags()
39 
40  # General Flags
41  actscf.addFlag('Acts.EDM.PersistifyClusters', False)
42  actscf.addFlag('Acts.EDM.PersistifySpacePoints', False)
43  actscf.addFlag('Acts.EDM.PersistifyTracks', False)
44  actscf.addFlag('Acts.EDM.PersistifyTrackParticles',False)
45  actscf.addFlag('Acts.useCache', False)
46 
47  # Scheduling
48  actscf.addFlag('Acts.doITkConversion', False)
49  actscf.addFlag('Acts.doLargeRadius', False)
50  actscf.addFlag('Acts.doLowPt', False)
51 
52  # Geometry Flags
53 
54  # MaterialSource can be:
55  # a path to a local JSON file
56  # 'Default' : material map source is evaluated from the geometry tag
57  # 'None' : no material map is provided
58  actscf.addFlag('Acts.TrackingGeometry.MaterialSource', 'Default')
59  actscf.addFlag('Acts.TrackingGeometry.MaterialCalibrationFolder', 'ACTS/MaterialMaps/ITk')
60 
61  # Monitoring
62  actscf.addFlag('Acts.doMonitoring', False)
63  actscf.addFlag('Acts.doAnalysis', False)
64  actscf.addFlag('Acts.storeTrackStateInfo', False)
65 
66  # SpacePoint
67  actscf.addFlag("Acts.SpacePointStrategy", SpacePointStrategy.ActsTrk, type=SpacePointStrategy) # Define SpacePoint Strategy
68 
69  # Seeding
70  actscf.addFlag("Acts.SeedingStrategy", SeedingStrategy.Default, type=SeedingStrategy) # Define Seeding Strategy
71 
72  # Track finding
73  actscf.addFlag('Acts.PixelCalibrationStrategy', PixelCalibrationStrategy.AnalogueClusteringAfterSelection, type=PixelCalibrationStrategy)
74  actscf.addFlag('Acts.doRotCorrection', True)
75  actscf.addFlag('Acts.doPrintTrackStates', False)
76  actscf.addFlag('Acts.skipDuplicateSeeds', True)
77  actscf.addFlag('Acts.trackFindingTrackSelectorConfig', 1) # 0=no selection, 1=default track selection (chi2<25,25), 2=Athena chi2 cut (chi2<9,25), 3=no looser cuts in branch stopper, 4=no pix hit/pix hole/str hole cuts
78  actscf.addFlag('Acts.doTwoWayCKF', True) # run CKF twice, first with forward propagation with smoothing, then with backward propagation
79  actscf.addFlag('Acts.useStripSeedsFirst', False) # switch order of seed collections
80  actscf.addFlag('Acts.reverseTrackFindingForStrips', False) # track finding starts going inward for strip seeds
81  actscf.addFlag('Acts.useHGTDClusterInTrackFinding', False) # use HGTD cluster in track finding
82 
83  actscf.addFlag('Acts.doAmbiguityResolution', True)
84  actscf.addFlag('Acts.AmbiguitySolverStrategy', AmbiguitySolverStrategy.Greedy, type=AmbiguitySolverStrategy) # Define Ambiguity Solver Strategy
85 
86  # Track fitting
87  actscf.addFlag('Acts.writeTrackCollection', False) # save to file (ESD, AOD) the Resolved and Refitted track collections
88  actscf.addFlag('Acts.fitFromPRD', False) # Acts.writeTrackCollection needs to be True for either cases. If Acts.fitFromPRD is False, fit from ROT; else, fit from PRD
89  actscf.addFlag('Acts.trackFitterType', TrackFitterType.KalmanFitter, type=TrackFitterType) # Define Tracking algorithm for refitting
90 
91  # GSF specific flags
92  actscf.addFlag("Acts.useActsGsfInEgamma", False)
93  actscf.addFlag("Acts.GsfMaxComponents", 12)
94  actscf.addFlag("Acts.GsfComponentMergeMethod", 'eMaxWeight')
95  actscf.addFlag("Acts.GsfDirectNavigation", False)
96  actscf.addFlag("Acts.GsfOutlierChi2Cut", 20.0)
97 
98  actscf.addFlag('Acts.useDefaultActsMeasurementSelector', False) # if True, uses no outlier chi2 cut as before (chi2<25,inf)
99 
100  return actscf
ActsConfigFlags.TrackFitterType
Definition: ActsConfigFlags.py:21
ActsConfigFlags.PixelCalibrationStrategy
Definition: ActsConfigFlags.py:32
ActsConfigFlags.createActsConfigFlags
def createActsConfigFlags()
Definition: ActsConfigFlags.py:37
ActsConfigFlags.SeedingStrategy
Definition: ActsConfigFlags.py:6
ActsConfigFlags.SpacePointStrategy
Definition: ActsConfigFlags.py:17
ActsConfigFlags.AmbiguitySolverStrategy
Definition: ActsConfigFlags.py:11