27def createRecoConfigFlags():
28 """Return an AthConfigFlags object with required flags"""
29 flags = AthConfigFlags()
30
31
32
33
34
35
36
37 flags.addFlag("Reco.EnableTracking",
38 lambda prevFlags: prevFlags.Detector.EnableID or
39 prevFlags.Detector.EnableITk)
40
41 flags.addFlag("Reco.EnableHGTDExtension",
42 lambda prevFlags: prevFlags.Reco.EnableTracking and
43 prevFlags.Detector.EnableHGTD)
44
45 flags.addFlag("Reco.EnableEgamma",
46 lambda prevFlags: prevFlags.Detector.EnableCalo)
47
48
49 flags.addFlag("Reco.EnableCaloExtension", lambda prevFlags: (
50 (
51 prevFlags.Reco.EnablePFlow
52 or prevFlags.Reco.EnableTau
53 or prevFlags.Reco.EnableCombinedMuon
54 )
55 and prevFlags.Detector.EnableCalo
56 and prevFlags.Reco.EnableTracking))
57
58 flags.addFlag("Reco.EnableCombinedMuon",
59 lambda prevFlags: prevFlags.Detector.EnableMuon and
60 prevFlags.Reco.EnableTracking)
61
62 flags.addFlag("Reco.EnableTrackOverlay", lambda prevFlags: False)
63
64 flags.addFlag("Reco.EnablePFlow", lambda prevFlags: (
65 prevFlags.Reco.EnableTracking
66 and prevFlags.Detector.EnableCalo
67 and prevFlags.Tracking.doVertexFinding))
68
69 flags.addFlag("Reco.EnableIsolation", lambda prevFlags: (
70 prevFlags.Tracking.doVertexFinding
71 and (prevFlags.Reco.EnableCombinedMuon
72 or prevFlags.Reco.EnableEgamma)))
73
74 flags.addFlag("Reco.EnableJet", lambda prevFlags: (
75 prevFlags.Detector.EnableCalo
76 and prevFlags.Reco.EnableTracking
77 and prevFlags.Reco.EnableEgamma
78 and prevFlags.Reco.EnableCombinedMuon
79 and prevFlags.Reco.EnablePFlow
80 and prevFlags.Reco.HIMode is not HIMode.HI) or
81 prevFlags.Common.ProductionStep is ProductionStep.Derivation)
82
83
84 flags.addFlag("Reco.EnableTau", lambda prevFlags: prevFlags.Reco.EnableJet)
85
86 flags.addFlag("Reco.EnableBTagging",
87 lambda prevFlags: prevFlags.Reco.EnableJet or
88 (prevFlags.Reco.EnableHI and prevFlags.HeavyIon.doJet))
89
90 flags.addFlag("Reco.EnableMet", lambda prevFlags: (
91 prevFlags.Reco.EnableJet
92 and prevFlags.Reco.EnableTau))
93
94
95
96 flags.addFlag("Reco.EnableGlobalFELinking",
97 lambda prevFlags: prevFlags.Reco.EnableJet and
98 prevFlags.Reco.EnableTau and prevFlags.Reco.EnablePFlow and
99 prevFlags.Reco.EnableEgamma and
100 prevFlags.Reco.EnableCombinedMuon)
101
102 flags.addFlag("Reco.EnableTrackCellAssociation",
103 lambda prevFlags: prevFlags.Detector.EnableCalo and
104 prevFlags.Reco.EnableTracking)
105
106 flags.addFlag("Reco.EnableCaloRinger",
107 lambda prevFlags: prevFlags.Reco.EnableEgamma and
108 not prevFlags.Reco.EnableHI)
109
110
111
112
113 flags.addFlag("Reco.EnableTrigger",
114 lambda prevFlags: prevFlags.Trigger.EDMVersion > 0)
115
116
117 flags.addFlag("Reco.EnableHI",
118 lambda prevFlags: prevFlags.Reco.HIMode is not HIMode.pp)
119
120 flags.addFlag("Reco.HIMode", _hiModeChoice, type=HIMode)
121
122
123
124 flags.addFlag("Reco.EnableBeamSpotDecoration",
125 lambda prevFlags: not prevFlags.Common.isOnline)
126
127
128 flags.addFlag("Reco.EnableZDC",_recoZDC)
129
130
131 flags.addFlag("Reco.EnablePostProcessing", True)
132 flags.addFlag("Reco.PostProcessing.ThinNegativeClusters",
133 lambda prevFlags: prevFlags.Reco.EnablePostProcessing and
134 prevFlags.Detector.EnableCalo and
135 prevFlags.Output.doWriteAOD and
136 prevFlags.Calo.Thin.NegativeEnergyCaloClusters and
137 not prevFlags.Reco.EnableHI)
138
139 flags.addFlag("Reco.PostProcessing.TRTAloneThinning",
140 lambda prevFlags: prevFlags.Reco.EnablePostProcessing and
141 prevFlags.Reco.EnableTracking and
142 prevFlags.Output.doWriteAOD)
143 flags.addFlag("Reco.PostProcessing.GeantTruthThinning",
144 lambda prevFlags: prevFlags.Reco.EnablePostProcessing and
145 prevFlags.Input.isMC and
146 prevFlags.Output.doWriteAOD)
147 flags.addFlag("Reco.PostProcessing.InDetForwardTrackParticleThinning",
148 lambda prevFlags: prevFlags.Reco.EnablePostProcessing and
149 prevFlags.Reco.EnableTracking and
150 prevFlags.Reco.EnableCombinedMuon and
151 prevFlags.Output.doWriteAOD)
152 return flags
153
154