ATLAS Offline Software
ViewInheritance.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 
12 
13 #--------------------------------------------------------------
14 # ATLAS default Application Configuration options
15 #--------------------------------------------------------------
16 
17 totalViews = 3
18 
19 # Configure the scheduler
20 from AthenaCommon.AlgScheduler import AlgScheduler
21 AlgScheduler.ShowControlFlow( True )
22 AlgScheduler.ShowDataDependencies( True )
23 AlgScheduler.EnableVerboseViews( True )
24 
25 # Control flow
26 from AthenaCommon.AlgSequence import AthSequencer
27 view_1 = AthSequencer( "view_1" )
28 view_1.ModeOR = False
29 view_1.Sequential = False
30 view_1.StopOverride = False
31 view_2 = AthSequencer( "view_2" )
32 view_2.ModeOR = False
33 view_2.Sequential = False
34 view_2.StopOverride = False
35 viewSequence = AthSequencer( "viewSequence" )
36 viewSequence.ModeOR = False
37 viewSequence.Sequential = True
38 viewSequence.StopOverride = False
39 
40 # Event-level algorithm sequence
41 from AthenaCommon.AlgSequence import AlgSequence
42 job = AlgSequence()
43 
44 # Make views
45 view_make_1 = CfgMgr.AthViews__ViewSubgraphAlg("view_make_1")
46 view_make_1.ViewBaseName = "view_1"
47 view_make_1.ViewStart = "view_data_1"
48 view_make_1.ViewNumber = totalViews
49 view_make_1.AllViews = "view_collection_1"
50 view_make_1.ViewNodeName = view_1.name()
51 view_make_1.Scheduler = AlgScheduler.getScheduler()
52 viewSequence += view_make_1
53 
54 # View 1 algorithm
55 view_verify_1 = CfgMgr.AthViews__ViewDataVerifier("view_verify_1")
56 view_verify_1.DataObjects = { ('int','view_data_1') }
57 view_1 += view_verify_1
58 
59 # Add the view node to the job
60 viewSequence += view_1
61 
62 # Make child views
63 view_make_2 = CfgMgr.AthViews__ViewSubgraphAlg("view_make_2")
64 view_make_2.ViewBaseName = "view_2"
65 view_make_2.ViewStart = "view_data_2"
66 view_make_2.ViewNumber = totalViews
67 view_make_2.AllViews = "view_collection_2"
68 view_make_2.ParentViews = "view_collection_1"
69 view_make_2.ViewNodeName = view_2.name()
70 view_make_2.Scheduler = AlgScheduler.getScheduler()
71 viewSequence += view_make_2
72 
73 # View 2 algorithm - should find both pieces of data
74 view_verify_2 = CfgMgr.AthViews__ViewDataVerifier("view_verify_2")
75 view_verify_2.DataObjects = { ('int','view_data_1'), ('int', 'view_data_2') }
76 view_test = CfgMgr.AthViews__ViewTestAlg("view_test")
77 view_2 += view_verify_2
78 view_2 += view_test
79 
80 # Add the view node to the job
81 viewSequence += view_2
82 
83 job += viewSequence
84 
85 #--------------------------------------------------------------
86 # Event related parameters
87 #--------------------------------------------------------------
88 theApp.EvtMax = 10
89 
90 #==============================================================
91 #
92 # End of job options file
93 #
94 
python.AlgSequence.AlgSequence
AlgSequence
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py:7
python.AlgSequence.AthSequencer
AthSequencer
Definition: Control/AthenaCommon/python/AlgSequence.py:64