27 dcf = AthConfigFlags()
31 dcf.addFlag(
'Detector.GeometryBpipe',
True)
34 dcf.addFlag(
'Detector.GeometryBCM',
lambda prevFlags :
'BCM' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
35 dcf.addFlag(
'Detector.GeometryPixel',
lambda prevFlags :
'Pixel' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
36 dcf.addFlag(
'Detector.GeometrySCT',
lambda prevFlags :
'SCT' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
37 dcf.addFlag(
'Detector.GeometryTRT',
lambda prevFlags :
'TRT' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
38 dcf.addFlag(
'Detector.GeometryID',
lambda prevFlags : (prevFlags.Detector.GeometryBCM
39 or prevFlags.Detector.GeometryPixel
or prevFlags.Detector.GeometrySCT
40 or prevFlags.Detector.GeometryTRT))
43 dcf.addFlag(
'Detector.GeometryPLR',
lambda prevFlags :
'PLR' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
44 dcf.addFlag(
'Detector.GeometryBCMPrime',
lambda prevFlags :
'BCMPrime' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
45 dcf.addFlag(
'Detector.GeometryITkPixel',
lambda prevFlags :
'ITkPixel' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
46 dcf.addFlag(
'Detector.GeometryITkStrip',
lambda prevFlags :
'ITkStrip' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
47 dcf.addFlag(
'Detector.GeometryITk',
lambda prevFlags : (prevFlags.Detector.GeometryBCMPrime
48 or prevFlags.Detector.GeometryITkPixel
49 or prevFlags.Detector.GeometryITkStrip
50 or prevFlags.Detector.GeometryPLR))
52 dcf.addFlag(
'Detector.GeometryHGTD',
lambda prevFlags :
'HGTD' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
55 dcf.addFlag(
'Detector.GeometryLAr',
lambda prevFlags :
'LAr' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
56 dcf.addFlag(
'Detector.GeometryTile',
lambda prevFlags :
'Tile' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
57 dcf.addFlag(
'Detector.GeometryMBTS',
lambda prevFlags : (prevFlags.Detector.GeometryLAr
and 'MBTS' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath)))
58 dcf.addFlag(
'Detector.GeometryCalo',
lambda prevFlags : (prevFlags.Detector.GeometryLAr
or prevFlags.Detector.GeometryTile))
61 dcf.addFlag(
'Detector.GeometryCSC',
lambda prevFlags :
'CSC' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
62 dcf.addFlag(
'Detector.GeometryMDT',
lambda prevFlags :
'MDT' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
63 dcf.addFlag(
'Detector.GeometryRPC',
lambda prevFlags :
'RPC' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
64 dcf.addFlag(
'Detector.GeometryTGC',
lambda prevFlags :
'TGC' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
65 dcf.addFlag(
'Detector.GeometrysTGC',
lambda prevFlags :
'sTGC' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
66 dcf.addFlag(
'Detector.GeometryMM',
lambda prevFlags :
'MM' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB,prevFlags.GeoModel.SQLiteDBFullPath))
67 dcf.addFlag(
'Detector.GeometryMuon',
lambda prevFlags : (prevFlags.Detector.GeometryCSC
or prevFlags.Detector.GeometryMDT
68 or prevFlags.Detector.GeometryRPC
or prevFlags.Detector.GeometryTGC
69 or prevFlags.Detector.GeometrysTGC
or prevFlags.Detector.GeometryMM))
74 dcf.addFlag(
'Detector.SpecialGeometryToroid',
False)
77 dcf.addFlag(
'Detector.GeometryLucid',
lambda prevFlags :
'Lucid' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB, prevFlags.GeoModel.SQLiteDBFullPath, includeForward=
not prevFlags.Input.isMC))
78 dcf.addFlag(
'Detector.GeometryZDC',
lambda prevFlags :
'ZDC' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB, prevFlags.GeoModel.SQLiteDBFullPath, includeForward=
not prevFlags.Input.isMC))
79 dcf.addFlag(
'Detector.GeometryALFA',
lambda prevFlags :
'ALFA' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB, prevFlags.GeoModel.SQLiteDBFullPath, includeForward=
not prevFlags.Input.isMC))
80 dcf.addFlag(
'Detector.GeometryAFP',
lambda prevFlags :
'AFP' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB, prevFlags.GeoModel.SQLiteDBFullPath, includeForward=
not prevFlags.Input.isMC))
81 dcf.addFlag(
'Detector.GeometryFwdRegion',
lambda prevFlags :
'FwdRegion' in getDefaultDetectors(prevFlags.GeoModel.AtlasVersion,prevFlags.GeoModel.SQLiteDB, prevFlags.GeoModel.SQLiteDBFullPath, includeForward=
not prevFlags.Input.isMC))
82 dcf.addFlag(
'Detector.GeometryForward',
lambda prevFlags : (prevFlags.Detector.GeometryLucid
or prevFlags.Detector.GeometryZDC
83 or prevFlags.Detector.GeometryALFA
or prevFlags.Detector.GeometryAFP
84 or prevFlags.Detector.GeometryFwdRegion))
87 dcf.addFlag(
'Detector.GeometryCavern',
False)
93 dcf.addFlag(
'Detector.EnableBCM',
lambda prevFlags : prevFlags.Detector.GeometryBCM)
94 dcf.addFlag(
'Detector.EnablePixel',
lambda prevFlags : prevFlags.Detector.GeometryPixel)
95 dcf.addFlag(
'Detector.EnableSCT',
lambda prevFlags : prevFlags.Detector.GeometrySCT)
96 dcf.addFlag(
'Detector.EnableTRT',
lambda prevFlags : prevFlags.Detector.GeometryTRT)
97 dcf.addFlag(
'Detector.EnableID',
lambda prevFlags : prevFlags.Detector.GeometryID
and
98 (prevFlags.Detector.EnableBCM
99 or prevFlags.Detector.EnablePixel
or prevFlags.Detector.EnableSCT
100 or prevFlags.Detector.EnableTRT))
103 dcf.addFlag(
'Detector.EnablePLR',
lambda prevFlags : prevFlags.Detector.GeometryPLR)
104 dcf.addFlag(
'Detector.EnableBCMPrime',
lambda prevFlags : prevFlags.Detector.GeometryBCMPrime)
105 dcf.addFlag(
'Detector.EnableITkPixel',
lambda prevFlags : prevFlags.Detector.GeometryITkPixel)
106 dcf.addFlag(
'Detector.EnableITkStrip',
lambda prevFlags : prevFlags.Detector.GeometryITkStrip)
107 dcf.addFlag(
'Detector.EnableITk',
lambda prevFlags : prevFlags.Detector.GeometryITk
and
108 (prevFlags.Detector.EnableBCMPrime
109 or prevFlags.Detector.EnableITkPixel
110 or prevFlags.Detector.EnableITkStrip
111 or prevFlags.Detector.EnablePLR))
113 dcf.addFlag(
'Detector.EnableHGTD',
lambda prevFlags : prevFlags.Detector.GeometryHGTD)
116 dcf.addFlag(
'Detector.EnableLAr',
lambda prevFlags : prevFlags.Detector.GeometryLAr)
117 dcf.addFlag(
'Detector.EnableTile',
lambda prevFlags : prevFlags.Detector.GeometryTile)
118 dcf.addFlag(
'Detector.EnableMBTS',
lambda prevFlags : prevFlags.Detector.GeometryMBTS)
119 dcf.addFlag(
'Detector.EnableL1Calo',
lambda prevFlags : (prevFlags.Detector.EnableLAr
or prevFlags.Detector.EnableTile))
120 dcf.addFlag(
'Detector.EnableCalo',
lambda prevFlags : prevFlags.Detector.GeometryCalo
and
121 (prevFlags.Detector.EnableLAr
or prevFlags.Detector.EnableTile))
124 dcf.addFlag(
'Detector.EnableCSC',
lambda prevFlags : prevFlags.Detector.GeometryCSC)
125 dcf.addFlag(
'Detector.EnableMDT',
lambda prevFlags : prevFlags.Detector.GeometryMDT)
126 dcf.addFlag(
'Detector.EnableRPC',
lambda prevFlags : prevFlags.Detector.GeometryRPC)
127 dcf.addFlag(
'Detector.EnableTGC',
lambda prevFlags : prevFlags.Detector.GeometryTGC)
128 dcf.addFlag(
'Detector.EnablesTGC',
lambda prevFlags : prevFlags.Detector.GeometrysTGC)
129 dcf.addFlag(
'Detector.EnableMM',
lambda prevFlags : prevFlags.Detector.GeometryMM)
130 dcf.addFlag(
'Detector.EnableMuon',
lambda prevFlags : prevFlags.Detector.GeometryMuon
and
131 (prevFlags.Detector.EnableCSC
or prevFlags.Detector.EnableMDT
132 or prevFlags.Detector.EnableRPC
or prevFlags.Detector.EnableTGC
133 or prevFlags.Detector.EnablesTGC
or prevFlags.Detector.EnableMM))
136 dcf.addFlag(
'Detector.EnableLucid',
lambda prevFlags : prevFlags.Detector.GeometryLucid)
138 dcf.addFlag(
'Detector.EnableZDC',
lambda prevFlags : prevFlags.Detector.GeometryZDC)
139 dcf.addFlag(
'Detector.EnableZDC_ZDC',
lambda prevFlags : prevFlags.Detector.GeometryZDC)
140 dcf.addFlag(
'Detector.EnableZDC_RPD',
lambda prevFlags : prevFlags.Detector.GeometryZDC)
141 dcf.addFlag(
'Detector.EnableALFA',
lambda prevFlags : prevFlags.Detector.GeometryALFA)
142 dcf.addFlag(
'Detector.EnableAFP',
lambda prevFlags : prevFlags.Detector.GeometryAFP)
143 dcf.addFlag(
'Detector.EnableFwdRegion',
lambda prevFlags : prevFlags.Detector.GeometryFwdRegion)
144 dcf.addFlag(
'Detector.EnableForward',
lambda prevFlags : prevFlags.Detector.GeometryForward
and
145 (prevFlags.Detector.EnableLucid
or prevFlags.Detector.EnableZDC
146 or prevFlags.Detector.EnableALFA
or prevFlags.Detector.EnableAFP
147 or prevFlags.Detector.EnableFwdRegion))
297def setupDetectorFlags(flags, custom_list=None, use_metadata=False, toggle_geometry=False, validate_only=False, keep_beampipe=False):
298 """Setup detector flags from metadata or a list"""
301 from AthenaCommon.Logging
import logging
302 log = logging.getLogger(
'DetectorConfigFlags')
309 final_set = initial_set
321 if digitized_set
and digitized_set != initial_set:
322 final_set = digitized_set
323 elif simulated_set
and simulated_set != initial_set:
324 final_set = simulated_set
326 requested_inconsistency_set =
set()
327 if custom_list
is not None and custom_list:
332 info_dict[
'requested_geometry'] = info_dict[
'initial_geometry']
336 requested_inconsistency_set = requested_set.difference(final_set)
337 final_set = requested_set.intersection(final_set)
339 final_set = requested_set
346 if requested_inconsistency_set:
347 log.error(
'Requested detectors %s which are not enabled in the input file.', list(requested_inconsistency_set))
348 raise ValueError(list(requested_inconsistency_set))
350 if initial_set != final_set:
351 diff_enable = final_set.difference(initial_set)
352 if 'Bpipe' in diff_enable
and (keep_beampipe
or flags.Detector.GeometryBpipe):
353 diff_enable.remove(
'Bpipe')
354 diff_disable = initial_set.difference(final_set)