Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Functions | Variables
python.RecoConfigFlags Namespace Reference

Functions

def createRecoConfigFlags ()
 
def printRecoFlags (flags)
 
def recoRunArgsToFlags (runArgs, flags)
 
def _recoZDC (prevFlags)
 
def _hiModeChoice (prevFlags)
 

Variables

list _all_domains
 

Function Documentation

◆ _hiModeChoice()

def python.RecoConfigFlags._hiModeChoice (   prevFlags)
private

Definition at line 231 of file RecoConfigFlags.py.

231 def _hiModeChoice(prevFlags):
232 
233  if ("_hip" in prevFlags.Input.ProjectName):
234  return HIMode.HIP
235  elif ("_hi" in prevFlags.Input.ProjectName):
236  if (prevFlags.Input.TriggerStream == "physics_UPC"):
237  return HIMode.UPC
238  else:
239  return HIMode.HI
240  return HIMode.pp

◆ _recoZDC()

def python.RecoConfigFlags._recoZDC (   prevFlags)
private

Definition at line 218 of file RecoConfigFlags.py.

218 def _recoZDC(prevFlags):
219  if prevFlags.Input.isMC:
220  return prevFlags.Detector.EnableZDC
221  else:
222  from AthenaConfiguration.AutoConfigFlags import GetFileMD
223  from libpyeformat_helper import SubDetector, DetectorMask
224  maskbits=GetFileMD(prevFlags.Input.Files).get("detectorMask",[0x0])
225  maskbits=maskbits[0] #Check the first input file
226  detMask=DetectorMask(maskbits & 0xFFFFFFFFFFFFFFFF, maskbits >> 64) #DetectorMask constructor swallows two 64bit ints
227  return detMask.is_set(SubDetector.FORWARD_ZDC)
228 
229 
230 

◆ createRecoConfigFlags()

def python.RecoConfigFlags.createRecoConfigFlags ( )
Return an AthConfigFlags object with required flags

Definition at line 27 of file RecoConfigFlags.py.

28  """Return an AthConfigFlags object with required flags"""
29  flags = AthConfigFlags()
30 
31  # The various reconstruction domains/steps.
32  # Note that Calo and Muon System Reconstruction
33  # depend just on the Detector.EnableCalo and
34  # Detector.EnableMuon flags.
35 
36  # Enable Tracking Reconstruction
37  flags.addFlag("Reco.EnableTracking",
38  lambda prevFlags: prevFlags.Detector.EnableID or
39  prevFlags.Detector.EnableITk)
40  # Enable HGTD Reconstruction
41  flags.addFlag("Reco.EnableHGTDExtension",
42  lambda prevFlags: prevFlags.Reco.EnableTracking and
43  prevFlags.Detector.EnableHGTD)
44  # Enable Electron/Photon (EGamma) Reconstruction
45  flags.addFlag("Reco.EnableEgamma",
46  lambda prevFlags: prevFlags.Detector.EnableCalo)
47  # Enable Caching of InDet TrackParticles extension to
48  # Calorimeter. Used by (Muon,PFlow,Tau)
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  # Enable Combined (InDet+MS) Muon Reconstruction
58  flags.addFlag("Reco.EnableCombinedMuon",
59  lambda prevFlags: prevFlags.Detector.EnableMuon and
60  prevFlags.Reco.EnableTracking)
61  # Enable TrackOverlay Reconstruction
62  flags.addFlag("Reco.EnableTrackOverlay", lambda prevFlags: False)
63  # Enable PFlow Reconstruction
64  flags.addFlag("Reco.EnablePFlow", lambda prevFlags: (
65  prevFlags.Reco.EnableTracking
66  and prevFlags.Detector.EnableCalo
67  and prevFlags.Tracking.doVertexFinding))
68  # Enable Isolation Reconstruction
69  flags.addFlag("Reco.EnableIsolation", lambda prevFlags: (
70  prevFlags.Tracking.doVertexFinding
71  and (prevFlags.Reco.EnableCombinedMuon
72  or prevFlags.Reco.EnableEgamma)))
73  # Enable Jet Reconstruction
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  # Enable Tau Reconstruction
84  flags.addFlag("Reco.EnableTau", lambda prevFlags: prevFlags.Reco.EnableJet)
85  # Enable BTagging Reconstruction
86  flags.addFlag("Reco.EnableBTagging",
87  lambda prevFlags: prevFlags.Reco.EnableJet or
88  (prevFlags.Reco.EnableHI and prevFlags.HeavyIon.doJet))
89  # Enable MET Reconstruction
90  flags.addFlag("Reco.EnableMet", lambda prevFlags: (
91  prevFlags.Reco.EnableJet
92  and prevFlags.Reco.EnableTau))
93  # Enable the building of links between the newly
94  # created jet constituents (GlobalFE)
95  # and electrons,photons,muons and taus
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  # Enable association of calorimeter cells to Tracks
102  flags.addFlag("Reco.EnableTrackCellAssociation",
103  lambda prevFlags: prevFlags.Detector.EnableCalo and
104  prevFlags.Reco.EnableTracking)
105  # Enable creation of "Rings" of calorimeter cells
106  flags.addFlag("Reco.EnableCaloRinger",
107  lambda prevFlags: prevFlags.Reco.EnableEgamma and
108  not prevFlags.Reco.EnableHI)
109 
110  # This flags enables trigger data decoding (not trigger simulation)
111  # EDMVersion > 0 check prevents this flag being true in jobs before
112  # the trigger has executed, or where it was not executed.
113  flags.addFlag("Reco.EnableTrigger",
114  lambda prevFlags: prevFlags.Trigger.EDMVersion > 0)
115 
116  # enable automatically for HI data
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  # Enable alg for decorating EventInfo with BeamSpot info
123  # (maybe not always available for calibration runs, etc)
124  flags.addFlag("Reco.EnableBeamSpotDecoration",
125  lambda prevFlags: not prevFlags.Common.isOnline)
126 
127  # Enable ZDC reconstruction if ZDC data is in Bytestream or simulated
128  flags.addFlag("Reco.EnableZDC",_recoZDC)
129 
130  # Enable common thinning and other post-processing
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 

◆ printRecoFlags()

def python.RecoConfigFlags.printRecoFlags (   flags)

Definition at line 155 of file RecoConfigFlags.py.

155 def printRecoFlags(flags):
156  # setup logging
157  from AthenaCommon.Logging import logging
158  log = logging.getLogger('RecoSteering')
159 
160  # load flags
161  flags._loadDynaFlags('Detector')
162  flags._loadDynaFlags('Reco')
163 
164  # generate common formatting string
165  item_len = 7
166  format_common = f'%-{item_len}s'
167 
168  domain_len = 7
169  for d in _all_domains:
170  domain_len = max(domain_len, len(d) + 2)
171 
172  enabled = []
173  for d in _all_domains:
174  if flags.hasFlag(f'Detector.Enable{d}'):
175  name = f'Detector.Enable{d}'
176  elif flags.hasFlag(f'Reco.Enable{d}'):
177  name = f'Reco.Enable{d}'
178  else:
179  raise RuntimeError(f'Unknown reconstruction domain {d}')
180 
181  if flags[name] is not False:
182  enabled.append('ON')
183  else:
184  enabled.append('--')
185 
186  format_header = f'%{domain_len}s ' + format_common
187  format = f'%{domain_len}s : ' + format_common
188  data = [_all_domains, enabled]
189  data = list(map(list, zip(*data)))
190 
191  # print header rows
192  log.info(format_header, *(['', 'Enbl.']))
193  # print data
194  for row in data:
195  log.info(format, *row)
196 
197 

◆ recoRunArgsToFlags()

def python.RecoConfigFlags.recoRunArgsToFlags (   runArgs,
  flags 
)

Definition at line 198 of file RecoConfigFlags.py.

198 def recoRunArgsToFlags(runArgs, flags):
199  if hasattr(runArgs, "runNumber") and not flags.Input.isMC and runArgs.runNumber not in flags.Input.RunNumbers:
200  flags.Input.RunNumbers = [runArgs.runNumber]
201  flags.Input.OverrideRunNumber = True
202 
203  if hasattr(runArgs, "projectName"):
204  flags.Input.projectName = runArgs.projectName
205 
206  # TODO: not handled yet
207  # --autoConfiguration
208  # --trigStream
209  # --topOptions
210  # --valid
211 
212  # --AMITag
213  # --userExec
214  # --triggerConfig
215  # --trigFilterList
216 
217 

Variable Documentation

◆ _all_domains

list python.RecoConfigFlags._all_domains
private
Initial value:
1 = [
2  "Trigger",
3  "BeamSpotDecoration",
4  "Calo", "Tracking",
5  "HGTDExtension",
6  "Muon", "CombinedMuon",
7  "Egamma",
8  "Isolation",
9  "CaloExtension",
10  "TrackCellAssociation",
11  "PFlow", "Jet", "BTagging",
12  "Tau",
13  "GlobalFELinking",
14  "Met",
15  "CaloRinger",
16  "AFP",
17  "HI",
18  "PostProcessing",
19  "TrackOverlay",
20 ]

Definition at line 5 of file RecoConfigFlags.py.

python.AutoConfigFlags.GetFileMD
def GetFileMD(filenames, allowEmpty=True, maxLevel='peeker')
Definition: AutoConfigFlags.py:65
python.RecoConfigFlags._hiModeChoice
def _hiModeChoice(prevFlags)
Definition: RecoConfigFlags.py:231
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
python.RecoConfigFlags.createRecoConfigFlags
def createRecoConfigFlags()
Definition: RecoConfigFlags.py:27
python.RecoConfigFlags.printRecoFlags
def printRecoFlags(flags)
Definition: RecoConfigFlags.py:155
python.RecoConfigFlags.recoRunArgsToFlags
def recoRunArgsToFlags(runArgs, flags)
Definition: RecoConfigFlags.py:198
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
python.RecoConfigFlags._recoZDC
def _recoZDC(prevFlags)
Definition: RecoConfigFlags.py:218
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition: hcg.cxx:127