Skip to content
Snippets Groups Projects
Forked from atlas / athena
132493 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
GraphViews.py 2.45 KiB
#
#  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
#

###############################################################
#
# Job options file
#
# Based on AthExStoreGateExamples
#
#==============================================================

#--------------------------------------------------------------
# ATLAS default Application Configuration options
#--------------------------------------------------------------

# Configure the scheduler
from AthenaCommon.AlgScheduler import AlgScheduler
AlgScheduler.ShowControlFlow( True )
AlgScheduler.ShowDataDependencies( True )

# Make a separate alg pool for the view algs
from GaudiHive.GaudiHiveConf import AlgResourcePool
viewAlgPoolName = "ViewAlgPool"
svcMgr += AlgResourcePool( viewAlgPoolName )

# Set of view algs
from AthenaCommon.AlgSequence import AthSequencer
allViewAlgorithms = AthSequencer( "allViewAlgorithms" )
allViewAlgorithms.ModeOR = False
allViewAlgorithms.Sequential = True
allViewAlgorithms.StopOverride = False

# Filter to stop view algs from running on whole event
allViewAlgorithms += CfgMgr.AthPrescaler( "alwaysFail" )
allViewAlgorithms.alwaysFail.PercentPass = 0.0

# Method to set up a view algorithm
def DeclareViewAlgorithm( viewAlg ):
	global svcMgr, allViewAlgorithms
	svcMgr.ViewAlgPool.TopAlg += [ viewAlg.name() ]
	allViewAlgorithms += viewAlg

# Event-level algorithm sequence
from AthenaCommon.AlgSequence import AlgSequence
job = AlgSequence()


# Make views
job += CfgMgr.AthViews__ViewSubgraphAlg("make_alg")
job.make_alg.ViewBaseName = "view"
job.make_alg.ViewNumber = 5
job.make_alg.AlgPoolName = viewAlgPoolName
job.make_alg.AlgorithmNameSequence = [ "dflow_alg1", "dflow_alg2", "dflow_alg3" ] #Eventually scheduler will do this

# View algorithms
dflow_alg1 = CfgMgr.AthViews__DFlowAlg1("dflow_alg1")
DeclareViewAlgorithm( dflow_alg1 )
#
dflow_alg2 = CfgMgr.AthViews__DFlowAlg2("dflow_alg2")
DeclareViewAlgorithm( dflow_alg2 )
#
dflow_alg3 = CfgMgr.AthViews__DFlowAlg3("dflow_alg3")
DeclareViewAlgorithm( dflow_alg3 )

# Merge views
job += CfgMgr.AthViews__ViewMergeAlg("merge_alg")

# Add the view algorithms to the job
job += allViewAlgorithms

#--------------------------------------------------------------
# Event related parameters
#--------------------------------------------------------------
theApp.EvtMax = 10

#==============================================================
#
# End of job options file
#
###############################################################