ATLAS Offline Software
Loading...
Searching...
No Matches
menu_config_tests.PartialEventBuildingChecks Class Reference
Inheritance diagram for menu_config_tests.PartialEventBuildingChecks:
Collaboration diagram for menu_config_tests.PartialEventBuildingChecks:

Public Types

typedef HLT::TypeInformation::for_each_type_c< typenameEDMLIST::map, my_functor, my_result<>, my_arg< HLT::TypeInformation::get_cont, CONTAINER > >::type result

Public Member Functions

 __init__ (self)
 run (self, config)

Public Attributes

 description = description
list failures = []

Detailed Description

Definition at line 207 of file menu_config_tests.py.

Member Typedef Documentation

◆ result

Definition at line 90 of file EDM_MasterSearch.h.

Constructor & Destructor Documentation

◆ __init__()

menu_config_tests.PartialEventBuildingChecks.__init__ ( self)

Definition at line 208 of file menu_config_tests.py.

208 def __init__(self):
209 super(PartialEventBuildingChecks, self).__init__(
210 description='Config consistency of Partial Event Building')
211

Member Function Documentation

◆ run()

menu_config_tests.PartialEventBuildingChecks.run ( self,
config )

Reimplemented from menu_config_tests.MenuVerification.

Definition at line 212 of file menu_config_tests.py.

212 def run(self, config):
213 from TriggerMenuMT.HLT.Menu import EventBuildingInfo
214 eb_identifiers = EventBuildingInfo.getAllEventBuildingIdentifiers()
215
216 for chain_name, chain_config in config['chains'].items():
217 peb_identifiers = [idf for idf in eb_identifiers if '_'+idf+'_' in chain_name]
218 peb_writers = [seq for seq in chain_config['sequencers'] if 'PEBInfoWriter' in seq]
219
220 is_peb_chain = (len(peb_identifiers) > 0 or len(peb_writers) > 0)
221
222 # Check streaming configuration
223 for stream_name in chain_config['streams']:
224 if stream_name not in config['streams']:
225 self.failures.append(
226 'Stream {:s} for chain {:s} is not defined in streaming configuration'.format(
227 stream_name, chain_name))
228
229 is_feb_stream = config['streams'][stream_name]['forceFullEventBuilding']
230
231 if is_peb_chain and is_feb_stream:
232 self.failures.append(
233 'PEB chain {:s} streamed to a full-event-building stream {:s} '
234 '(forceFullEventBuilding=True)'.format(
235 chain_name, stream_name))
236
237 elif not is_peb_chain and not is_feb_stream:
238 self.failures.append(
239 'Full-event-building chain {:s} streamed to the stream {:s} which allows partial '
240 'event building (forceFullEventBuilding=False)'.format(
241 chain_name, stream_name))
242
243 if not is_peb_chain:
244 # Not a PEB chain, skip further PEB-specific checks
245 continue
246
247 if len(peb_identifiers) != 1:
248 self.failures.append(
249 '{:s} has {:d} event building identifiers'.format(chain_name, len(peb_identifiers)))
250
251 if len(peb_writers) != 1:
252 self.failures.append(
253 '{:s} has {:d} PEBInfoWriter sequences'.format(chain_name, len(peb_writers)))
254
255 if peb_identifiers and peb_writers and not peb_writers[0].endswith(peb_identifiers[0]):
256 self.failures.append(
257 '{:s} PEB sequence name {:s} doesn\'t end with PEB identifier {:s}'.format(
258 chain_name, peb_writers[0], peb_identifiers[0]))
259
260
261
Definition run.py:1

Member Data Documentation

◆ description

menu_config_tests.MenuVerification.description = description
inherited

Definition at line 29 of file menu_config_tests.py.

◆ failures

list menu_config_tests.MenuVerification.failures = []
inherited

Definition at line 30 of file menu_config_tests.py.


The documentation for this class was generated from the following file: