| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

VolumeCheck.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # =============================================================================
00003 # $Id: VolumeCheck.py,v 1.3 2008/06/30 13:23:50 cattanem Exp $ 
00004 # =============================================================================
00005 # $Id: VolumeCheck.py,v 1.3 2008/06/30 13:23:50 cattanem Exp $
00006 # =============================================================================
00007 import os 
00008 import gaudimodule as gaudi
00009 from Gaudi.Configuration import *
00010 
00011 def init() :
00012 
00013     importOptions( "$DDDBROOT/options/DDDB.py" )
00014     importOptions( "$DDDBROOT/options/DC06.py" )
00015 
00016     g=gaudi.AppMgr()
00017     
00018 
00019 def run( volume , event = 1 ) :
00020     g = gaudi.AppMgr() 
00021     g.TopAlg = ["VolumeCheckAlg/Check"]
00022     
00023     alg = g.algorithm('Check')
00024     alg.Shots3D = 10000
00025     alg.ShotsXY = 10000
00026     alg.ShotsYZ = 10000
00027     alg.ShotsZX = 10000
00028     alg.Volume  = volume
00029     g.run( event )
00030     
00031 def _dir_ ( self , node = None , level = -1 ) :
00032     """
00033     The simple tool to perform the inspection fo Data Store
00034     
00035     Usage:
00036     
00037     evtSvc = gaudi.evtSvc()
00038     evtSvc.dir('MC')
00039     data = evtSvc['Rec/Calo']
00040     evtSvc.dir( data)
00041     
00042     """
00043     if 0 == level          : return gaudi.SUCCESS ;
00044     if   str is type(node) : node = self.retrieveObject( node )
00045     elif  not node         : return self.dir('', level )
00046     if not node            : return gaudi.FAILURE
00047     if     hasattr ( node , 'registry'   ) : node = node.registry()
00048     if     hasattr ( node , 'identifier' ) :
00049         obj = node.object ()
00050         if not obj :
00051             obj = self.retrieveObject( node.identifier() ) 
00052             print  node.identifier()
00053         else :
00054             if hasattr( obj , 'size'    ) :
00055                 size = obj.size()
00056                 if 0 == size : print "%s (empty) %s" % (  node.identifier() , type( obj ) )
00057                 elif hasattr ( obj , 'containedObjects' ) :
00058                     c = obj.containedObjects()[0]
00059                     print "%s container of %d %s objects " % ( node.identifier() , obj.size() , type(c))
00060                 else : 
00061                     print  "%s %s " % (  node.identifier() , type( node.object()) )
00062             else :
00063                 print  "%s %s " % (  node.identifier() , type( node.object()) )
00064     else : print "The node has no 'identifier'"
00065     # start the recursion 
00066     for l in self.leaves( node ) :
00067         if l : self.dir( l , level - 1 )  
00068     return gaudi.SUCCESS 
00069 
00070 def _get_( self , node = None , cut = lambda x : True ) :
00071     if   str is type(node) : node = self.retrieveObject( node )
00072     elif  not node         : return _get_( self , '' , cut  )
00073     if not node            : return []
00074     if     hasattr ( node , 'registry'   ) : node = node.registry()
00075     result = []
00076     if     hasattr ( node , 'identifier' ) :
00077         obj = node.object()
00078         if cut( obj ) : result += [ obj ]
00079     for l in self.leaves ( node ) :
00080         if l : result += _get_( self , l , cut )
00081     return result 
00082     
00083 gaudi.iDataSvc.dir = _dir_ 
00084 gaudi.iDataSvc.DIR = _get_ 
00085 
00086 
00087 if "__main__" == __name__  :
00088     init()
00089     run ("/dd/Geometry/MagnetRegion/Magnet/Magnet")
00090 
00091 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:05:13 2011 for DetDescChecks by doxygen 1.4.7