Gaudi Framework, version v21r9

Home   Generated: 3 May 2010

GaudiPython::Parallel::Reader Class Reference

List of all members.

Public Member Functions

def __init__
def readerConfig
def read

Public Attributes

 inq
 c
 commonQ
 cstatq
 workers
 qToParent
 qLimit
 id
 ct
 a
 evt
 hvt
 ts
 omitHistos

Private Attributes

 _app


Detailed Description

Definition at line 396 of file Parallel.py.


Member Function Documentation

def GaudiPython::Parallel::Reader::__init__ (   self,
  inq,
  commonQueue,
  rstatq,
  qToParent,
  workers,
  config,
  qLimit,
  _app 
)

Definition at line 397 of file Parallel.py.

00397                                                                                              :
00398         self.inq       = inq
00399         self.c         = config
00400         self.commonQ   = commonQueue
00401         self.cstatq    = rstatq
00402         self.workers   = workers
00403         self.qToParent = qToParent
00404         self.qLimit    = qLimit
00405         self.id        = -1
00406         self._app      = _app
00407 
00408         # from ParallelStats import constructReaderDict
00409         # self.constructReaderDict = constructReaderDict
00410 
00411         r = Process( target=self.read )
00412         r.start()
00413 
    def readerConfig( self ) :

def GaudiPython::Parallel::Reader::readerConfig (   self  ) 

Definition at line 414 of file Parallel.py.

00414                              :
00415         ks = self.c.keys()
00416         if 'ApplicationMgr' in ks :
00417             self.c['ApplicationMgr'].OutStream = []
00418             if self._app == 'Gauss' : pass
00419             else : self.c['ApplicationMgr'].TopAlg  = []
00420         else :
00421             self.qToParent.put(None)
00422             print 'Reader : readerConfig : ApplicationMgr not available for configuration?'
00423 
00424         try    : self.c['HistogramPersistencySvc'].OutputFile = ''
00425         except : print 'Reader : No Histogram output to cancel!  Config continues...'
00426 
00427         if 'MessageSvc' in ks :
00428             self.c['MessageSvc'].Format      = '[Reader]% F%18W%S%7W%R%T %0W%M'
00429             self.c['MessageSvc'].OutputLevel = ERROR
00430         else :
00431             self.qToParent.put(None)
00432             print 'Reader : readerConfig : MessageSvc not available for configuration?'
00433         if self._app == 'Gauss' :
00434             gs = self.c['GaussSequencer']
00435             # Sequencer has two stages : generation and simulation, so let
00436             # the reader generate events one by one, and pass to workers for full Simulation step
00437             ed = [gs.Members[0]]
00438             gs.Members = ed
00439 
    def read( self ):

def GaudiPython::Parallel::Reader::read (   self  ) 

Definition at line 440 of file Parallel.py.

00440                     :
00441         currentProcess().setName('+Reader+')
00442         appendPostConfigAction( self.readerConfig() )
00443 
00444         # print '[ GaudiPython.Parallel ] Reader Started : Process %i'%( os.getpid() )
00445 
00446         self.ct       = 0
00447 
00448         # GaudiPython Tools
00449         self.a = AppMgr()
00450         self.evt = self.a.evtsvc()
00451         self.hvt = self.a.histsvc()
00452         self.ts = gbl.GaudiPython.TESSerializer(self.evt._idp)
00453         self.omitHistos = ['/stat/CaloPIDs']
00454         collectHistos = CollectHistograms( self )
00455         self.a.addAlgorithm( collectHistos )
00456         self.a.initialize()
00457         self.a.start()
00458 
00459         for i in xrange( self.c['ApplicationMgr'].EvtMax ) :
00460             self.a.run(1)
00461             self.ts = gbl.GaudiPython.TESSerializer(self.evt._idp)
00462 
00463             if self._app == 'Gauss' :
00464                 if self.evt.getHistoNames() :
00465                     for i in self.evt.getHistoNames() : self.ts.addOptItem(i,1)
00466             else :
00467                 if self.evt.getList() :
00468                     for i in self.evt.getList() : self.ts.addOptItem(i,1)
00469             buf = dumpTES( self )
00470             sent = False
00471             while sent == False :
00472                 try :
00473                     self.inq.put( buf, block=True )
00474                     while self.inq._buffer : pass # try pause until the background thread is complete
00475                     sent = True ; self.ct += 1
00476                 except :
00477                     self.errs += 1
00478             self.evt.clearStore()
00479         # signal the end
00480         for w in range(self.workers) : self.inq.put(None)
00481 
00482 
00483         # Termination
00484         self.a.stop()
00485         self.a.finalize()
00486 
00487         # print '='*80
00488         # print 'Reader Finished, AppMgr stopped, finalized.'
00489         # print line
00490         # print 'Events Sent : %i'%( self.ct )
00491         # print '='*80
00492 
00493         self.qToParent.put(None) # ; print 'READER has returned None Flag to setupSystem'
00494 
00495 # ===========================================================================================
00496 # The Worker
00497 # ===========================================================================================
00498 
class Worker( ) :


Member Data Documentation

Definition at line 398 of file Parallel.py.

Definition at line 399 of file Parallel.py.

Definition at line 400 of file Parallel.py.

Definition at line 401 of file Parallel.py.

Definition at line 402 of file Parallel.py.

Definition at line 403 of file Parallel.py.

Definition at line 404 of file Parallel.py.

Definition at line 405 of file Parallel.py.

Definition at line 406 of file Parallel.py.

Definition at line 446 of file Parallel.py.

Definition at line 449 of file Parallel.py.

Definition at line 450 of file Parallel.py.

Definition at line 451 of file Parallel.py.

Definition at line 452 of file Parallel.py.

Definition at line 453 of file Parallel.py.


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

Generated at Mon May 3 12:29:03 2010 for Gaudi Framework, version v21r9 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004