Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v28r2p1 (f1a77ff4)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GaudiPython.Bindings.AppMgr Class Reference
Inheritance diagram for GaudiPython.Bindings.AppMgr:
Collaboration diagram for GaudiPython.Bindings.AppMgr:

Public Member Functions

def __new__ (cls, args, kwargs)
 
def __reset__ (self)
 
def __init__ (self, outputlevel=-1, joboptions=None, selfoptions={}, dllname=None, factname=None)
 
def state (self)
 
def FSMState (self)
 
def targetFSMState (self)
 
def service (self, name, interface=None)
 
def declSvcType (self, svcname, svctype)
 
def createSvc (self, name)
 
def services (self)
 
def algorithm (self, name, createIf=False)
 
def algorithms (self)
 
def tool (self, name)
 
def property (self, name)
 
def datasvc (self, name)
 
def evtsvc (self)
 
def detsvc (self)
 
def filerecordsvc (self)
 
def evtsel (self)
 
def histsvc (self, name='HistogramDataSvc')
 
def ntuplesvc (self, name='NTupleSvc')
 
def partsvc (self)
 
def toolsvc (self, name='ToolSvc')
 
def optSvc (self, name='JobOptionsSvc')
 
def readOptions (self, file)
 
def addAlgorithm (self, alg)
 
def setAlgorithms (self, algs)
 
def removeAlgorithm (self, alg)
 
def printAlgsSequences (self)
 
def config (self, args)
 
def configure (self)
 
def start (self)
 
def terminate (self)
 
def run (self, n)
 
def executeEvent (self)
 
def execute (self)
 
def runSelectedEvents (self, pfn, events)
 
def exit (self)
 
def __del__ (self)
 Custom destructor to ensure that the application is correctly finalized when exiting from python. More...
 
- Public Member Functions inherited from GaudiPython.Bindings.iService
def __init__ (self, name, isvc=None)
 
def retrieveInterface (self)
 
def isValid (self)
 
- Public Member Functions inherited from GaudiPython.Bindings.iProperty
def __init__ (self, name, ip=None)
 
def getInterface (self)
 
def retrieveInterface (self)
 
def __call_interface_method__ (self, ifname, method, args)
 
def __setattr__ (self, name, value)
 
def __getattr__ (self, name)
 
def properties (self)
 
def name (self)
 

Public Attributes

 JobOptionsType
 
 OutputLevel
 
 topAlg
 

Static Public Attributes

 evtSvc = evtsvc
 
 histSvc = histsvc
 
 ntupleSvc = ntuplesvc
 
 evtSel = evtsel
 
 detSvc = detsvc
 
 toolSvc = toolsvc
 
 partSvc = partsvc
 
- Static Public Attributes inherited from GaudiPython.Bindings.iService
 initialize = lambdaself:self.__call_interface_method__("_isvc","initialize")
 
 start = lambdaself:self.__call_interface_method__("_isvc","start")
 
 stop = lambdaself:self.__call_interface_method__("_isvc","stop")
 
 finalize = lambdaself:self.__call_interface_method__("_isvc","finalize")
 
 reinitialize = lambdaself:self.__call_interface_method__("_isvc","reinitialize")
 
 restart = lambdaself:self.__call_interface_method__("_isvc","restart")
 

Detailed Description

Definition at line 662 of file Bindings.py.

Constructor & Destructor Documentation

def GaudiPython.Bindings.AppMgr.__init__ (   self,
  outputlevel = -1,
  joboptions = None,
  selfoptions = {},
  dllname = None,
  factname = None 
)

Definition at line 684 of file Bindings.py.

684  dllname = None, factname = None) :
685  global _gaudi
686  if _gaudi : return
687  # Protection against multiple calls to exit() if the finalization fails
688  self.__dict__['_exit_called'] = False
689  # keep the Gaudi namespace around (so it is still available during atexit shutdown)...
690  self.__dict__['_gaudi_ns'] = Gaudi
691  try:
692  from GaudiKernel.Proxy.Configurable import expandvars
693  except ImportError:
694  # pass-through implementation if expandvars is not defined (AthenaCommon)
695  expandvars = lambda data : data
696  if dllname and factname:
697  self.__dict__['_appmgr'] = gbl.Gaudi.createApplicationMgr(dllname,factname)
698  elif dllname:
699  self.__dict__['_appmgr'] = gbl.Gaudi.createApplicationMgr(dllname)
700  else:
701  self.__dict__['_appmgr'] = gbl.Gaudi.createApplicationMgr()
702  self.__dict__['_svcloc'] = gbl.Gaudi.svcLocator()
703  self.__dict__['_algmgr'] = InterfaceCast(gbl.IAlgManager)(self._appmgr)
704  self.__dict__['_evtpro'] = InterfaceCast(gbl.IEventProcessor)(self._appmgr)
705  self.__dict__['_svcmgr'] = InterfaceCast(gbl.ISvcManager)(self._appmgr)
706  self.__dict__['pyalgorithms'] = []
707  iService.__init__(self, 'ApplicationMgr', self._appmgr )
708  #------python specific initialization-------------------------------------
709  if self.FSMState() < Gaudi.StateMachine.CONFIGURED : # Not yet configured
710  self.JobOptionsType = 'NONE'
711  if joboptions :
712  from GaudiKernel.ProcessJobOptions import importOptions
713  importOptions(joboptions)
714  # Ensure that the ConfigurableUser instances have been applied
715  import GaudiKernel.Proxy.Configurable
716  if hasattr(GaudiKernel.Proxy.Configurable, "applyConfigurableUsers"):
717  GaudiKernel.Proxy.Configurable.applyConfigurableUsers()
718  # This is the default and could be overridden with "selfopts"
719  self.OutputLevel = 3
720  selfprops = Configurable.allConfigurables.get('ApplicationMgr',{})
721  if selfprops : selfprops = expandvars(selfprops.getValuedProperties())
722  for p,v in selfprops.items() : setattr(self, p, v)
723  for p,v in selfoptions.items() : setattr(self, p, v)
724  # Override job options
725  if outputlevel != -1 : self.OutputLevel = outputlevel
726  self.configure()
727  #---MessageSvc------------------------------------------------------------
728  ms = self.service('MessageSvc')
729  if 'MessageSvc' in Configurable.allConfigurables:
730  msprops = Configurable.allConfigurables['MessageSvc']
731  ms = self.service('MessageSvc')
732  if hasattr(msprops,"getValuedProperties"):
733  msprops = expandvars(msprops.getValuedProperties())
734  for p,v in msprops.items():
735  setattr(ms, p, v)
736  if outputlevel != -1 : ms.OutputLevel = outputlevel
737  #---JobOptions------------------------------------------------------------
738  self.__dict__['_optsvc'] = InterfaceCast(gbl.IJobOptionsSvc)(Helper.service(self._svcloc,'JobOptionsSvc'))
739  #------Configurables initialization (part2)-------------------------------
740  mkStringProperty = gbl.GaudiPython.Helpers.mkStringProperty
741  for n in getNeededConfigurables():
742  c = Configurable.allConfigurables[n]
743  if n in ['ApplicationMgr','MessageSvc'] : continue # These are already done---
744  for p, v in c.getValuedProperties().items() :
745  v = expandvars(v)
746  # Note: AthenaCommon.Configurable does not have Configurable.PropertyReference
747  if hasattr(Configurable,"PropertyReference") and type(v) == Configurable.PropertyReference:
748  # this is done in "getFullName", but the exception is ignored,
749  # so we do it again to get it
750  v = v.__resolve__()
751  if type(v) == str : v = '"%s"' % v # need double quotes
752  elif type(v) == long: v = '%d' % v # prevent pending 'L'
753  self._optsvc.addPropertyToCatalogue(n, mkStringProperty(p,str(v)))
754  if hasattr(Configurable,"_configurationLocked"):
755  Configurable._configurationLocked = True
756 
757  # Ensure that the exit method is called when exiting from Python
758  import atexit
759  atexit.register(self.exit)
760 
761  #---Hack to avoid bad interactions with the ROOT exit handler
762  # Look for an exit handler installed by ROOT
763  root_handler_installed = False
764  for h in atexit._exithandlers:
765  func = h[0]
766  if hasattr(func, "__module__") and func.__module__ == "ROOT":
767  root_handler_installed = True
768  break
769 
770  # If the handler is not yet installed, let's install our private version
771  # that detects that the ROOT exit handler is installed and add our own
772  # after it to ensure it is called before.
773  if not root_handler_installed:
774  orig_register = atexit.register
775  def register(func, *targs, **kargs):
776  orig_register(func, *targs, **kargs)
777  if hasattr(func, "__module__") and func.__module__ == "ROOT":
778  orig_register(self.exit)
779  # we do not need to remove out handler from the list because
780  # it can be safely called more than once
781  register.__doc__ = (orig_register.__doc__ +
782  "\nNote: version hacked by GaudiPython to work " +
783  "around a problem with the ROOT exit handler")
784  atexit.register = register
785 
getNeededConfigurables
Definition: Proxy.py:19
def service(self, name, interface=None)
Definition: Bindings.py:789
def GaudiPython.Bindings.AppMgr.__del__ (   self)

Custom destructor to ensure that the application is correctly finalized when exiting from python.

Definition at line 1024 of file Bindings.py.

1024  def __del__(self):
1025  self.exit()
def __del__(self)
Custom destructor to ensure that the application is correctly finalized when exiting from python...
Definition: Bindings.py:1024

Member Function Documentation

def GaudiPython.Bindings.AppMgr.__new__ (   cls,
  args,
  kwargs 
)

Definition at line 663 of file Bindings.py.

663  def __new__ ( cls, *args, **kwargs ):
664  global _gaudi
665  if not _gaudi :
666  newobj = object.__new__( cls )
667  cls.__init__(newobj, *args, **kwargs)
668  _gaudi = newobj
669  return _gaudi
def __init__(self, name, ip=None)
Definition: Bindings.py:188
def __new__(cls, args, kwargs)
Definition: Bindings.py:663
def GaudiPython.Bindings.AppMgr.__reset__ (   self)

Definition at line 670 of file Bindings.py.

670  def __reset__(self):
671  global _gaudi
672  # Stop, Finalize and Terminate the current AppMgr
673  self.exit()
674  # release interfaces
675  self._evtpro.release()
676  self._svcloc.release()
677  self._appmgr.release()
678  # Reset the C++ globals
679  gbl.Gaudi.setInstance(makeNullPointer('ISvcLocator'))
680  gbl.Gaudi.setInstance(makeNullPointer('IAppMgrUI'))
681  # Reset the Python global
682  _gaudi = None
def GaudiPython.Bindings.AppMgr.addAlgorithm (   self,
  alg 
)
Add an Algorithm to the list of Top algorithms. It can be either a instance of
    an Algorithm class or it name 

Definition at line 849 of file Bindings.py.

849  def addAlgorithm(self, alg) :
850  """ Add an Algorithm to the list of Top algorithms. It can be either a instance of
851  an Algorithm class or it name """
852  if type(alg) is str :
853  self.topAlg += [alg]
854  else :
855  self.pyalgorithms.append(alg)
856  setOwnership(alg,0)
857  if self.targetFSMState() >= Gaudi.StateMachine.INITIALIZED :
858  alg.sysInitialize()
859  if self.targetFSMState() == Gaudi.StateMachine.RUNNING :
860  alg.sysStart()
861  self.topAlg += [alg.name()]
def addAlgorithm(self, alg)
Definition: Bindings.py:849
def GaudiPython.Bindings.AppMgr.algorithm (   self,
  name,
  createIf = False 
)

Definition at line 802 of file Bindings.py.

802  def algorithm(self, name , createIf = False ) :
803  alg = Helper.algorithm( self._algmgr, name , createIf )
804  if not alg : return iAlgorithm ( name , alg )
805  else : return iAlgorithm ( alg.name() , alg )
def algorithm(self, name, createIf=False)
Definition: Bindings.py:802
def GaudiPython.Bindings.AppMgr.algorithms (   self)

Definition at line 806 of file Bindings.py.

806  def algorithms(self) :
807  l = self._algmgr.getAlgorithms()
808  return [a.name() for a in l]
def GaudiPython.Bindings.AppMgr.config (   self,
  args 
)
Simple utility to perform the configuration of Gaudi application.
It reads the set of input job-options files, and set few
additional parameters 'options' through the usage of temporary *.opts file
Usage:
gaudi.config( files   = [ '$GAUSSOPTS/Gauss.opts'                     ,
                  '$DECFILESROOT/options/10022_010.0GeV.opts' ] ,
      options = [ 'EventSelector.PrintFreq   =   5  '         ] )

Definition at line 904 of file Bindings.py.

904  def config ( self, **args ):
905  """
906  Simple utility to perform the configuration of Gaudi application.
907  It reads the set of input job-options files, and set few
908  additional parameters 'options' through the usage of temporary *.opts file
909  Usage:
910  gaudi.config( files = [ '$GAUSSOPTS/Gauss.opts' ,
911  '$DECFILESROOT/options/10022_010.0GeV.opts' ] ,
912  options = [ 'EventSelector.PrintFreq = 5 ' ] )
913  """
914  files = args.get('files',[])
915  for file in files :
916  sc = self.readOptions(file)
917  if sc.isFailure() :
918  raise RuntimeError , ' Unable to read file "' + file +'" '
919  options = args.get('options',None)
920  if options :
921  import tempfile
922  tmpfilename = tempfile.mktemp()
923  tmpfile = open( tmpfilename, 'w' )
924  tmpfile.write ( '#pragma print on \n' )
925  tmpfile.write ( '/// File "' + tmpfilename+'" generated by GaudiPython \n\n' )
926  for opt in options :
927  if type(options) is dict :
928  tmpfile.write( ' \t ' + opt + ' = '+ options[opt]+ ' ; // added by GaudiPython \n' )
929  else :
930  tmpfile.write( ' \t ' + opt + ' ; // added by GaudiPython \n' )
931  tmpfile.write ( '/// End of file "' + tmpfilename+'" generated by GaudiPython \n\n' )
932  tmpfile.close()
933  sc = self.readOptions( tmpfilename )
934  if sc.isFailure() :
935  raise RuntimeError , ' Unable to read file "' + tmpfilename +'" '
936  os.remove( tmpfilename )
937  # We need to make sure that the options are taken by the ApplicationMgr
938  if self.FSMState() != Gaudi.StateMachine.OFFLINE : # The state is already configured, so we need to do something....
939 
940  ## get job-options-service, @see class iJobOptSvc
941  jos = self.optSvc()
942 
943  ## list of all libraries
944  _dlls = jos.getProperty ( self.name() , 'DLLs' )
945  ## take care about libraries : APPEND if not done yet
946  if _dlls :
947  libs = [ l for l in _dlls if not l in self.DLLs ]
948  if libs : self.DLLs += libs
949 
950  ## all external services
951  _svcs = jos.getProperty ( self.name() , 'ExtSvc' )
952  ## take care about services : APPEND if not done yet
953  if _svcs :
954  svcs = [ s for s in _svcs if not s in self.ExtSvc ]
955  if svcs : self.ExtSvc += svcs
956 
957  ## get all properties
958  props = jos.getProperties ( self.name() )
959  ## finally treat all other properties (presumably scalar properties)
960  for key in props :
961  if 'DLLS' == key or 'EXTSVC' == key : continue
962  self.__setattr__( key , props[key] )
963  return SUCCESS # RETURN
def config(self, args)
Definition: Bindings.py:904
def optSvc(self, name='JobOptionsSvc')
Definition: Bindings.py:844
def readOptions(self, file)
Definition: Bindings.py:847
def __setattr__(self, name, value)
Definition: Bindings.py:204
def GaudiPython.Bindings.AppMgr.configure (   self)

Definition at line 964 of file Bindings.py.

964  def configure(self) :
965  return self._appmgr.configure()
def GaudiPython.Bindings.AppMgr.createSvc (   self,
  name 
)

Definition at line 797 of file Bindings.py.

797  def createSvc(self, name ) :
798  return Helper.service( self._svcloc, name, True )
def createSvc(self, name)
Definition: Bindings.py:797
def GaudiPython.Bindings.AppMgr.datasvc (   self,
  name 
)

Definition at line 815 of file Bindings.py.

815  def datasvc(self, name) :
816  if self.state() == Gaudi.StateMachine.CONFIGURED : self.initialize()
817  svc = Helper.service( self._svcloc, name )
818  return iDataSvc(name, svc)
def datasvc(self, name)
Definition: Bindings.py:815
def GaudiPython.Bindings.AppMgr.declSvcType (   self,
  svcname,
  svctype 
)

Definition at line 795 of file Bindings.py.

795  def declSvcType(self, svcname, svctype ) :
796  self._svcmgr.declareSvcType(svcname, svctype)
def declSvcType(self, svcname, svctype)
Definition: Bindings.py:795
def GaudiPython.Bindings.AppMgr.detsvc (   self)

Definition at line 821 of file Bindings.py.

821  def detsvc(self) :
822  return self.datasvc('DetectorDataSvc')
def datasvc(self, name)
Definition: Bindings.py:815
def GaudiPython.Bindings.AppMgr.evtsel (   self)

Definition at line 825 of file Bindings.py.

825  def evtsel(self):
826  if self.state() == Gaudi.StateMachine.CONFIGURED : self.initialize()
827  if not hasattr(self,'_evtsel') : self.__dict__['_evtsel'] = iEventSelector()
828  return self._evtsel
def GaudiPython.Bindings.AppMgr.evtsvc (   self)

Definition at line 819 of file Bindings.py.

819  def evtsvc(self) :
820  return self.datasvc('EventDataSvc')
def datasvc(self, name)
Definition: Bindings.py:815
def GaudiPython.Bindings.AppMgr.execute (   self)

Definition at line 982 of file Bindings.py.

982  def execute(self) :
983  return self._evtpro.executeEvent()
def GaudiPython.Bindings.AppMgr.executeEvent (   self)

Definition at line 980 of file Bindings.py.

980  def executeEvent(self) :
981  return self._evtpro.executeEvent()
def GaudiPython.Bindings.AppMgr.exit (   self)

Definition at line 1011 of file Bindings.py.

1011  def exit(self):
1012  # Protection against multiple calls to exit() if the finalization fails
1013  if not self._exit_called:
1014  self.__dict__['_exit_called'] = True
1015  Gaudi = self._gaudi_ns
1016  if self.FSMState() == Gaudi.StateMachine.RUNNING:
1017  self._appmgr.stop().ignore()
1018  if self.FSMState() == Gaudi.StateMachine.INITIALIZED:
1019  self._appmgr.finalize().ignore()
1020  if self.FSMState() == Gaudi.StateMachine.CONFIGURED:
1021  self._appmgr.terminate()
1022  return SUCCESS
def GaudiPython.Bindings.AppMgr.filerecordsvc (   self)

Definition at line 823 of file Bindings.py.

823  def filerecordsvc(self) :
824  return self.datasvc('FileRecordDataSvc')
def datasvc(self, name)
Definition: Bindings.py:815
def GaudiPython.Bindings.AppMgr.FSMState (   self)

Definition at line 787 of file Bindings.py.

787  def FSMState(self) : return self._isvc.FSMState()
def GaudiPython.Bindings.AppMgr.histsvc (   self,
  name = 'HistogramDataSvc' 
)

Definition at line 829 of file Bindings.py.

829  def histsvc(self, name='HistogramDataSvc') :
830  svc = Helper.service( self._svcloc, name )
831  return iHistogramSvc(name, svc)
def histsvc(self, name='HistogramDataSvc')
Definition: Bindings.py:829
def GaudiPython.Bindings.AppMgr.ntuplesvc (   self,
  name = 'NTupleSvc' 
)

Definition at line 832 of file Bindings.py.

832  def ntuplesvc(self, name='NTupleSvc') :
833  if name not in self.ExtSvc : self.ExtSvc += [name]
834 # if self.HistogramPersistency == 'NONE' : self.HistogramPersistency = 'ROOT'
835  svc = Helper.service( self._svcloc, name, True )
836  return iNTupleSvc(name, svc)
def ntuplesvc(self, name='NTupleSvc')
Definition: Bindings.py:832
def GaudiPython.Bindings.AppMgr.optSvc (   self,
  name = 'JobOptionsSvc' 
)

Definition at line 844 of file Bindings.py.

844  def optSvc (self, name='JobOptionsSvc') :
845  svc = Helper.service( self._svcloc, name, True )
846  return iJobOptSvc(name, svc)
def optSvc(self, name='JobOptionsSvc')
Definition: Bindings.py:844
def GaudiPython.Bindings.AppMgr.partsvc (   self)

Definition at line 837 of file Bindings.py.

837  def partsvc(self ) :
838  if self.FSMState() == Gaudi.StateMachine.CONFIGURED : self.initialize()
839  svc = Helper.service( self._svcloc, 'ParticlePropertySvc' )
840  return InterfaceCast(gbl.IParticlePropertySvc)(svc)
def GaudiPython.Bindings.AppMgr.printAlgsSequences (   self)
Print the sequence of Algorithms.

Definition at line 888 of file Bindings.py.

889  """
890  Print the sequence of Algorithms.
891  """
892  def printAlgo( algName, appMgr, prefix = ' ') :
893  print prefix + algName
894  alg = appMgr.algorithm( algName.split( "/" )[ -1 ] )
895  prop = alg.properties()
896  if prop.has_key( "Members" ) :
897  subs = prop[ "Members" ].value()
898  for i in subs : printAlgo( i.strip( '"' ), appMgr, prefix + " " )
899  mp = self.properties()
900  prefix = 'ApplicationMgr SUCCESS '
901  print prefix + "****************************** Algorithm Sequence ****************************"
902  for i in mp["TopAlg"].value(): printAlgo( i, self, prefix )
903  print prefix + "******************************************************************************"
def GaudiPython.Bindings.AppMgr.property (   self,
  name 
)

Definition at line 811 of file Bindings.py.

811  def property( self , name ) :
812  if name in self.algorithms() : return self.algorithm( name )
813  elif name in self.services() : return self.service(name )
814  else : return iProperty( name )
def service(self, name, interface=None)
Definition: Bindings.py:789
def algorithm(self, name, createIf=False)
Definition: Bindings.py:802
def property(self, name)
Definition: Bindings.py:811
def GaudiPython.Bindings.AppMgr.readOptions (   self,
  file 
)

Definition at line 847 of file Bindings.py.

847  def readOptions(self, file) :
848  return self._optsvc.readOptions(file)
def readOptions(self, file)
Definition: Bindings.py:847
def GaudiPython.Bindings.AppMgr.removeAlgorithm (   self,
  alg 
)
Remove an Algorithm to the list of Top algorithms. It can be either a instance of
    an Algorithm class or it name 

Definition at line 877 of file Bindings.py.

877  def removeAlgorithm(self, alg) :
878  """ Remove an Algorithm to the list of Top algorithms. It can be either a instance of
879  an Algorithm class or it name """
880  tmp = self.topAlg
881  if type(alg) is str :
882  tmp.remove(alg)
883  else :
884  tmp.remove(alg.name())
885  self.pyalgorithms.remove(alg)
886  setOwnership(alg,1)
887  self.topAlg = tmp
def removeAlgorithm(self, alg)
Definition: Bindings.py:877
def GaudiPython.Bindings.AppMgr.run (   self,
  n 
)

Definition at line 970 of file Bindings.py.

970  def run(self, n) :
971  if self.FSMState() == Gaudi.StateMachine.CONFIGURED :
972  sc = self.initialize()
973  if sc.isFailure() or self.ReturnCode != 0:
974  return sc
975  if self.FSMState() == Gaudi.StateMachine.INITIALIZED :
976  sc = self.start()
977  if sc.isFailure() or self.ReturnCode != 0:
978  return sc
979  return self._evtpro.executeRun(n)
def GaudiPython.Bindings.AppMgr.runSelectedEvents (   self,
  pfn,
  events 
)

Definition at line 984 of file Bindings.py.

984  def runSelectedEvents(self, pfn, events):
985  if self.FSMState() == Gaudi.StateMachine.CONFIGURED :
986  sc = self.initialize()
987  if sc.isFailure(): return sc
988  if self.FSMState() == Gaudi.StateMachine.INITIALIZED :
989  sc = self.start()
990  if sc.isFailure(): return sc
991  #--- Access a number of services ----
992  if not hasattr(self,'_perssvc'): self.__dict__['_perssvc'] = self.service('EventPersistencySvc','IAddressCreator')
993  if not hasattr(self,'_filecat'): self.__dict__['_filecat'] = self.service('FileCatalog','Gaudi::IFileCatalog')
994  if not hasattr(self,'_evtmgr'): self.__dict__['_evtmgr'] = self.service('EventDataSvc','IDataManagerSvc')
995  #--- Get FID from PFN and number of events in file
996  if pfn.find('PFN:') == 0: pfn = pfn[4:]
997  fid, maxevt = _getFIDandEvents(pfn)
998  #--- Add FID into catalog if needed ---
999  if not self._filecat.existsFID(fid) : self._filecat.registerPFN(fid, pfn, '')
1000  #--- Loop over events
1001  if type(events) is not list : events = (events,)
1002  for evt in events :
1003  #--- Create POOL Address from Generic Address
1004  gadd = gbl.GenericAddress(0x02, 1, fid, '/Event', 0, evt)
1005  oadd = makeNullPointer('IOpaqueAddress')
1006  self._perssvc.createAddress(gadd.svcType(),gadd.clID(),gadd.par(),gadd.ipar(),oadd)
1007  #--- Clear TES, set root and run all algorithms
1008  self._evtmgr.clearStore()
1009  self._evtmgr.setRoot('/Event',oadd)
1010  self._evtpro.executeEvent()
def runSelectedEvents(self, pfn, events)
Definition: Bindings.py:984
def _getFIDandEvents(pfn)
Definition: Bindings.py:1035
def service(self, name, interface=None)
Definition: Bindings.py:789
def GaudiPython.Bindings.AppMgr.service (   self,
  name,
  interface = None 
)

Definition at line 789 of file Bindings.py.

789  def service(self, name, interface = None) :
790  svc = Helper.service( self._svcloc, name )
791  if interface :
792  return InterfaceCast(interface)(svc)
793  else :
794  return iService(name, svc )
def service(self, name, interface=None)
Definition: Bindings.py:789
def GaudiPython.Bindings.AppMgr.services (   self)

Definition at line 799 of file Bindings.py.

799  def services(self) :
800  l = self._svcloc.getServices()
801  return [s.name() for s in l]
def GaudiPython.Bindings.AppMgr.setAlgorithms (   self,
  algs 
)
Set the list of Top Algorithms.
    It can be an individual of a list of algorithms names or instances 

Definition at line 862 of file Bindings.py.

862  def setAlgorithms(self, algs) :
863  """ Set the list of Top Algorithms.
864  It can be an individual of a list of algorithms names or instances """
865  if type(algs) is not list : algs = [algs]
866  names = []
867  for alg in algs :
868  if type(alg) is str : names.append(alg)
869  else :
870  self.pyalgorithms.append(alg)
871  if self.targetFSMState() >= Gaudi.StateMachine.INITIALIZED :
872  alg.sysInitialize()
873  if self.targetFSMState() == Gaudi.StateMachine.RUNNING :
874  alg.sysStart()
875  names.append(alg.name())
876  self.topAlg = names
def setAlgorithms(self, algs)
Definition: Bindings.py:862
def GaudiPython.Bindings.AppMgr.start (   self)

Definition at line 966 of file Bindings.py.

966  def start(self) :
967  return self._appmgr.start()
def GaudiPython.Bindings.AppMgr.state (   self)

Definition at line 786 of file Bindings.py.

786  def state(self) : return self._isvc.FSMState()
def GaudiPython.Bindings.AppMgr.targetFSMState (   self)

Definition at line 788 of file Bindings.py.

788  def targetFSMState(self) : return self._isvc.targetFSMState()
def GaudiPython.Bindings.AppMgr.terminate (   self)

Definition at line 968 of file Bindings.py.

968  def terminate(self):
969  return self._appmgr.terminate()
def GaudiPython.Bindings.AppMgr.tool (   self,
  name 
)

Definition at line 809 of file Bindings.py.

809  def tool(self, name ) :
810  return iAlgTool(name)
def tool(self, name)
Definition: Bindings.py:809
def GaudiPython.Bindings.AppMgr.toolsvc (   self,
  name = 'ToolSvc' 
)

Definition at line 841 of file Bindings.py.

841  def toolsvc(self, name='ToolSvc') :
842  svc = Helper.service( self._svcloc, name, True )
843  return iToolSvc(name, svc)
def toolsvc(self, name='ToolSvc')
Definition: Bindings.py:841

Member Data Documentation

GaudiPython.Bindings.AppMgr.detSvc = detsvc
static

Definition at line 1030 of file Bindings.py.

GaudiPython.Bindings.AppMgr.evtSel = evtsel
static

Definition at line 1029 of file Bindings.py.

GaudiPython.Bindings.AppMgr.evtSvc = evtsvc
static

Definition at line 1026 of file Bindings.py.

GaudiPython.Bindings.AppMgr.histSvc = histsvc
static

Definition at line 1027 of file Bindings.py.

GaudiPython.Bindings.AppMgr.JobOptionsType

Definition at line 710 of file Bindings.py.

GaudiPython.Bindings.AppMgr.ntupleSvc = ntuplesvc
static

Definition at line 1028 of file Bindings.py.

GaudiPython.Bindings.AppMgr.OutputLevel

Definition at line 719 of file Bindings.py.

GaudiPython.Bindings.AppMgr.partSvc = partsvc
static

Definition at line 1032 of file Bindings.py.

GaudiPython.Bindings.AppMgr.toolSvc = toolsvc
static

Definition at line 1031 of file Bindings.py.

GaudiPython.Bindings.AppMgr.topAlg

Definition at line 876 of file Bindings.py.


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