ATLAS Offline Software
Classes | Functions | Variables
python.DomainsRegistry Namespace Reference

Classes

class  Registry
 classes -----------------------------------------------------------------— More...
 

Functions

def iter_algseq (seq)
 
def _test_main ()
 tests ------------------------------------------------------------------— More...
 

Variables

string __version__ = "$Revision$"
 
string __author__ = "Sebastien Binet <binet@cern.ch>"
 
string __doc__ = """hold a registry of alg names and their association w/ domain"""
 
list __all__
 KNOWN limitations: More...
 
 reg = Registry()
 globals -----------------------------------------------------------------— More...
 
 flag_domain = reg.flag_domain
 functions ---------------------------------------------------------------— More...
 
 domain_registry = reg.domain_registry
 
 has_domain = reg.has_domain
 
 domain_names = reg.domain_names
 
 domain_start = reg.domain_start
 
 domain_algs = reg.domain_algs
 
 set_domain = reg.set_domain
 
 a2d_db = reg.a2d_db
 
 d2a_db = reg.d2a_db
 

Function Documentation

◆ _test_main()

def python.DomainsRegistry._test_main ( )
private

tests ------------------------------------------------------------------—

Definition at line 358 of file DomainsRegistry.py.

358 def _test_main():
359  import AthenaCommon.CfgMgr as CfgMgr
360  from AthenaCommon.AlgSequence import AlgSequence
361  job = AlgSequence()
362 
363  import PerfMonComps.DomainsRegistry as pdr
364  pdr.flag_domain('core')
365  job += CfgMgr.AthSequencer('alg1')
366  job += CfgMgr.AthSequencer('alg2')
367  job += CfgMgr.AthSequencer('alg3')
368  pdr.flag_domain('id')
369  job += CfgMgr.AthSequencer('alg4')
370  job += CfgMgr.AthSequencer('alg5')
371 
372  pdr.flag_domain('empty')
373 
374  pdr.flag_domain('muons')
375  job += CfgMgr.AthSequencer('alg6')
376  job += CfgMgr.AthSequencer('alg7')
377 
378  pdr.flag_domain('empty')
379  pdr.flag_domain('id')
380  job += CfgMgr.AthSequencer('alg4_0')
381  job += CfgMgr.AthSequencer('alg5_0')
382 
383  pdr.flag_domain('empty')
384  pdr.flag_domain('jets')
385  job += CfgMgr.AthSequencer('alg8')
386  job += CfgMgr.AthSequencer('alg9')
387 
388  pdr.flag_domain('empty1')
389  pdr.flag_domain('empty2')
390 
391  pdr.flag_domain('sub-algs-1')
392  job += CfgMgr.AthSequencer('subseq_1')
393  job.subseq_1 += CfgMgr.AthSequencer('subseq1_alg1')
394 
395  pdr.flag_domain('empty3')
396  pdr.flag_domain('sub-algs-1')
397  job.subseq_1 += CfgMgr.AthSequencer('subseq1_alg2')
398 
399  pdr.flag_domain('sub-algs-2')
400  job += CfgMgr.AthSequencer('subseq_2')
401 
402  pdr.flag_domain('empty3')
403  pdr.flag_domain('sub-algs-2')
404  job.subseq_2 += CfgMgr.AthSequencer('subseq2_alg1')
405  pdr.flag_domain('sub-algs-2')
406  job.subseq_2 += CfgMgr.AthSequencer('subseq2_alg2')
407 
408  pdr.flag_domain('sub-algs-1')
409  job.subseq_1 += CfgMgr.AthSequencer('subseq1_alg3')
410 
411  # dummy:
412  pdr.set_domain(domain_name='sub-algs-2',
413  alg_name='subseq2_alg2')
414 
415  ref = {
416  'core' : ['alg1','alg2','alg3'],
417  'id': ['alg4','alg5','alg4_0','alg5_0'],
418  'muons': ['alg6','alg7'],
419  'empty': [],
420  'empty1': [],
421  'empty2': [],
422  'jets': ['alg8','alg9'],
423  'sub-algs-1': ['subseq_1'],
424  'sub-algs-2': ['subseq_2'],
425  }
426 
427  print("=== algs:",[c.getName() for c in job.getChildren()])
428  print("=== domains:",pdr.domain_names())
429  assert sorted(pdr.domain_names()) == \
430  sorted(['core', 'id', 'muons',
431  #'empty', 'empty1', 'empty2',
432  'jets',
433  'sub-algs-1',
434  'sub-algs-2',
435  ])
436  for d in pdr.domain_names():
437  print("::: domain [%s]..." % d)
438  #print(" ->",pdr.domain_start(d))
439  algs = pdr.domain_algs(d)
440  print(" algs:",algs)
441  print(" ref: ",ref[d])
442  assert algs == ref[d]
443 
444  print("OK")
445  return 0
446 

◆ iter_algseq()

def python.DomainsRegistry.iter_algseq (   seq)

Definition at line 35 of file DomainsRegistry.py.

35  def iter_algseq(seq):
36  def _iter_algseq(seq):
37  yield seq
38  for c in seq.getChildren():
39  for sub in _iter_algseq(c):
40  yield sub
41  return _iter_algseq(seq)
42 
43 

Variable Documentation

◆ __all__

list python.DomainsRegistry.__all__
private
Initial value:
1 = [
2  'flag_domain',
3  'domain_registry',
4  'domain_algs',
5  'has_domain',
6  'domain_names',
7  'a2d_db', # the dict of alg->domain
8  'd2a_db', # the dict of domain->[algs]
9  ]

KNOWN limitations:

  • will break if somebody adds a new algorithm somewhere in the top-sequence in a place which is not the end (ie: topseq.insert(0, myalg)) the main assumption here is that everybody does: topseq += myalg

Definition at line 21 of file DomainsRegistry.py.

◆ __author__

string python.DomainsRegistry.__author__ = "Sebastien Binet <binet@cern.ch>"
private

Definition at line 11 of file DomainsRegistry.py.

◆ __doc__

string python.DomainsRegistry.__doc__ = """hold a registry of alg names and their association w/ domain"""
private

Definition at line 12 of file DomainsRegistry.py.

◆ __version__

string python.DomainsRegistry.__version__ = "$Revision$"
private

Definition at line 10 of file DomainsRegistry.py.

◆ a2d_db

python.DomainsRegistry.a2d_db = reg.a2d_db

Definition at line 354 of file DomainsRegistry.py.

◆ d2a_db

python.DomainsRegistry.d2a_db = reg.d2a_db

Definition at line 355 of file DomainsRegistry.py.

◆ domain_algs

python.DomainsRegistry.domain_algs = reg.domain_algs

Definition at line 352 of file DomainsRegistry.py.

◆ domain_names

python.DomainsRegistry.domain_names = reg.domain_names

Definition at line 350 of file DomainsRegistry.py.

◆ domain_registry

python.DomainsRegistry.domain_registry = reg.domain_registry

Definition at line 348 of file DomainsRegistry.py.

◆ domain_start

python.DomainsRegistry.domain_start = reg.domain_start

Definition at line 351 of file DomainsRegistry.py.

◆ flag_domain

python.DomainsRegistry.flag_domain = reg.flag_domain

functions ---------------------------------------------------------------—

Definition at line 347 of file DomainsRegistry.py.

◆ has_domain

python.DomainsRegistry.has_domain = reg.has_domain

Definition at line 349 of file DomainsRegistry.py.

◆ reg

python.DomainsRegistry.reg = Registry()

globals -----------------------------------------------------------------—

Definition at line 343 of file DomainsRegistry.py.

◆ set_domain

python.DomainsRegistry.set_domain = reg.set_domain

Definition at line 353 of file DomainsRegistry.py.

python.AlgSequence.AlgSequence
AlgSequence
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py:7
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
python.DomainsRegistry._test_main
def _test_main()
tests ------------------------------------------------------------------—
Definition: DomainsRegistry.py:358
python.DomainsRegistry.iter_algseq
def iter_algseq(seq)
Definition: DomainsRegistry.py:35
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28