Gaudi Framework, version v23r0

Home   Generated: Mon Jan 30 2012
Public Member Functions | Public Attributes | Private Attributes

GaudiMP::pTools::HistoAgent Class Reference

List of all members.

Public Member Functions

def __init__
def register
def Receive
def RebuildHistoStore
def bookDataObject
def bookTH1D
def bookTH2D
def bookTH3D
def bookTProfile
def bookTProfile2D

Public Attributes

 hvt
 histos
 qin
 log
 bookingDict

Private Attributes

 _gmpc

Detailed Description

Definition at line 49 of file pTools.py.


Constructor & Destructor Documentation

def GaudiMP::pTools::HistoAgent::__init__ (   self,
  gmpComponent 
)

Definition at line 50 of file pTools.py.

00051                                        :
00052         self._gmpc = gmpComponent
00053         self.hvt = self._gmpc.hvt
00054         self.histos = []
00055         self.qin = self._gmpc.hq
00056         self.log = self._gmpc.log
00057 
00058         # There are many methods for booking Histogram Objects to Histo store
00059         # here they are collected in a dictionary, with key = a relevant name
00060         self.bookingDict = {}
00061         self.bookingDict['DataObject']        = self.bookDataObject
00062         self.bookingDict['NTuple::Directory'] = self.bookDataObject
00063         self.bookingDict['NTuple::File']      = self.bookDataObject
00064         self.bookingDict['TH1D']       = self.bookTH1D
00065         self.bookingDict['TH2D']       = self.bookTH2D
00066         self.bookingDict['TH3D']       = self.bookTH3D
00067         self.bookingDict['TProfile']   = self.bookTProfile
00068         self.bookingDict['TProfile2D'] = self.bookTProfile2D


Member Function Documentation

def GaudiMP::pTools::HistoAgent::bookDataObject (   self,
  n,
  o 
)
Register a DataObject to the Histo Store

Definition at line 132 of file pTools.py.

00133                                     :
00134         '''
00135         Register a DataObject to the Histo Store
00136         '''
00137         self._gmpc.hvt.registerObject( n, o )

def GaudiMP::pTools::HistoAgent::bookTH1D (   self,
  n,
  o 
)
Register a ROOT 1D THisto to the Histo Store

Definition at line 138 of file pTools.py.

00139                                :
00140         '''
00141         Register a ROOT 1D THisto to the Histo Store
00142         '''
00143         obj = self.hvt._ihs.book( n, o.GetTitle(),\
00144                                      o.GetXaxis().GetNbins(),\
00145                                      o.GetXaxis().GetXmin(),\
00146                                      o.GetXaxis().GetXmax() )
00147         aida2root(obj).Add(o)

def GaudiMP::pTools::HistoAgent::bookTH2D (   self,
  n,
  o 
)
Register a ROOT 2D THisto to the Histo Store

Definition at line 148 of file pTools.py.

00149                                :
00150         '''
00151         Register a ROOT 2D THisto to the Histo Store
00152         '''
00153         obj = self.hvt._ihs.book( n, o.GetTitle(),\
00154                                      o.GetXaxis().GetNbins(),\
00155                                      o.GetXaxis().GetXmin(),\
00156                                      o.GetXaxis().GetXmax(),\
00157                                      o.GetYaxis().GetNbins(),\
00158                                      o.GetYaxis().GetXmin(),\
00159                                      o.GetYaxis().GetXmax() )
00160         aida2root(obj).Add(o)

def GaudiMP::pTools::HistoAgent::bookTH3D (   self,
  n,
  o 
)
Register a ROOT 3D THisto to the Histo Store

Definition at line 161 of file pTools.py.

00162                                :
00163         '''
00164         Register a ROOT 3D THisto to the Histo Store
00165         '''
00166         obj = self.hvt._ihs.book( n, o.GetTitle(),\
00167                                      o.GetXaxis().GetXbins(),\
00168                                      o.GetXaxis().GetXmin(),\
00169                                      o.GetXaxis().GetXmax(),\
00170                                      o.GetYaxis().GetXbins(),\
00171                                      o.GetYaxis().GetXmin(),\
00172                                      o.GetYaxis().GetXmax(),\
00173                                      o.GetZaxis().GetXbins(),\
00174                                      o.GetZaxis().GetXmin(),\
00175                                      o.GetZaxis().GetXmax() )
00176         aida2root(obj).Add(o)

def GaudiMP::pTools::HistoAgent::bookTProfile (   self,
  n,
  o 
)
Register a ROOT TProfile to the Histo Store

Definition at line 177 of file pTools.py.

00178                                    :
00179         '''
00180         Register a ROOT TProfile to the Histo Store
00181         '''
00182         obj = self.hvt._ihs.bookProf( n, o.GetTitle(),\
00183                                          o.GetXaxis().GetNbins(),\
00184                                          o.GetXaxis().GetXmin(),\
00185                                          o.GetXaxis().GetXmax(),\
00186                                          o.GetOption() )
00187         aida2root(obj).Add(o)

def GaudiMP::pTools::HistoAgent::bookTProfile2D (   self,
  n,
  o 
)
Register a ROOT TProfile2D to the Histo Store

Definition at line 188 of file pTools.py.

00189                                      :
00190         '''
00191         Register a ROOT TProfile2D to the Histo Store
00192         '''
00193         obj = self.hvt._ihs.bookProf( n, o.GetTitle(),\
00194                                          o.GetXaxis().GetNbins(),\
00195                                          o.GetXaxis().GetXmin(),\
00196                                          o.GetXaxis().GetXmax(),\
00197                                          o.GetYaxis().GetNbins(),\
00198                                          o.GetYaxis().GetXmin(),\
00199                                          o.GetYaxis().GetXmax()  )
00200         aida2root(obj).Add(o)
00201 
00202 # =============================================================================

def GaudiMP::pTools::HistoAgent::RebuildHistoStore (   self )
Rebuild the Histogram Store from the histos received by Receive()
If we have a histo which is not in the store,
book and fill it according to self.bookingDict
If we have a histo with a matching histo in the store,
add the two histos, remembering that aida2root must be used on
the Stored histo for compatibility.

Definition at line 89 of file pTools.py.

00090                                   :
00091         '''
00092         Rebuild the Histogram Store from the histos received by Receive()
00093         If we have a histo which is not in the store,
00094         book and fill it according to self.bookingDict
00095         If we have a histo with a matching histo in the store,
00096         add the two histos, remembering that aida2root must be used on
00097         the Stored histo for compatibility.
00098         '''
00099         errors = 0
00100         for tup in self.histos :
00101             workerID, histDict = tup
00102             added = 0 ; registered = 0; booked = 0
00103             for n in histDict.keys() :
00104                 o = histDict[ n ]
00105                 obj = self.hvt.retrieve( n )
00106                 if obj :
00107                     try    :
00108                         aida2root(obj).Add(o)
00109                     except :
00110                         self.log.warning('FAILED TO ADD : %s'%(str(obj)))
00111                         errors += 1
00112                     added += 1
00113                 else :
00114                     if o.__class__.__name__ in self.bookingDict.keys() :
00115                         try    :
00116                             self.bookingDict[o.__class__.__name__](n, o)
00117                         except :
00118                             self.log.warning('FAILED TO REGISTER : %s\tto%s'\
00119                                              %(o.__class__.__name__, n))
00120                             errors += 1
00121                     else :
00122                         self.log.warning( 'No booking method for: %s\t%s\t%s'\
00123                                           %(n,type(o),o.__class__.__name__) )
00124                         errors += 1
00125                     booked += 1
00126         hs = self.hvt.getHistoNames()
00127         self.log.info( 'Histo Store Rebuilt : ' )
00128         self.log.info( '  Contains %i objects.'%(len(hs)) )
00129         self.log.info( '  Errors in Rebuilding : %i'%(errors) )
00130         return SUCCESS
00131 

def GaudiMP::pTools::HistoAgent::Receive (   self )

Definition at line 74 of file pTools.py.

00075                         :
00076         hstatus = self._gmpc.nWorkers+1    # +1 for the Reader!
00077         while True :
00078             tup = self.qin.get()
00079             if tup == 'HISTOS_SENT' :
00080                 self.log.debug('received HISTOS_SENT message')
00081                 hstatus -= 1
00082                 if not hstatus : break
00083             else   :
00084               self.register( tup )
00085         self._gmpc.sEvent.set()
00086         self.log.info('Writer received all histo bundles and set sync event')
00087         return SUCCESS
00088 

def GaudiMP::pTools::HistoAgent::register (   self,
  tup 
)

Definition at line 69 of file pTools.py.

00070                               :
00071         # add a tuple of (worker-id, histoDict) to self.histos
00072         assert tup.__class__.__name__ == 'tuple'
00073         self.histos.append( tup )


Member Data Documentation

Definition at line 50 of file pTools.py.

Definition at line 50 of file pTools.py.

Definition at line 50 of file pTools.py.

Definition at line 50 of file pTools.py.

Definition at line 50 of file pTools.py.

Definition at line 50 of file pTools.py.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Mon Jan 30 2012 13:53:33 for Gaudi Framework, version v23r0 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004