12 """Test a CF configuration with an algorithm shared between branches that can terminate early.""" 
   14 from Configurables 
import (
 
   16     AvalancheSchedulerSvc,
 
   29 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots, OutputLevel=INFO)
 
   31 slimeventloopmgr = HiveSlimEventLoopMgr(
 
   32     SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=DEBUG
 
   35 AvalancheSchedulerSvc(ThreadPoolSize=algosInFlight, OutputLevel=DEBUG)
 
   39     """parallel OR sequencer""" 
   40     seq = GaudiSequencer(name)
 
   42     seq.Sequential = 
False 
   43     seq.ShortCircuit = 
False 
   51     """sequential AND sequencer""" 
   52     seq = GaudiSequencer(name)
 
   56     seq.ShortCircuit = 
True 
   62 topSequence = GaudiSequencer(
"topSequence")
 
   66 filterA = CPUCruncher(
"filterA")
 
   67 and1A.Members.append(filterA)
 
   71 and1A.Members.append(and2A)
 
   74 and2A.Members.append(orA)
 
   78 orA.Members.append(and3A)
 
   80 alg1 = CPUCruncher(
"Alg1")
 
   81 and3A.Members.append(alg1)
 
   83 hypoA = CPUCruncher(
"hypoA")
 
   84 and2A.Members.append(hypoA)
 
   89 filterB = CPUCruncher(
"filterB", InvertDecision=
True)
 
   90 and1B.Members.append(filterB)
 
   94 and1B.Members.append(and2B)
 
   97 and2B.Members.append(orB)
 
  101 orB.Members.append(and3B)
 
  103 alg2 = CPUCruncher(
"Alg2")
 
  104 and3B.Members.append(alg1)
 
  106 hypoB = CPUCruncher(
"hypoB")
 
  107 and2B.Members.append(hypoB)
 
  111 topSequence.Members.append(and1A)
 
  112 topSequence.Members.append(and1B)
 
  118     EventLoop=slimeventloopmgr,
 
  119     TopAlg=[topSequence],
 
  120     MessageSvcType=
"InertMessageSvc",