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

In This Package:

check_xmldetdesc.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # =============================================================================
00003 # minimal test of det desc based on VolumeCheck.py
00004 import os 
00005 import gaudimodule as gaudi
00006 
00007 
00008 def init(loc) :
00009 
00010     #gaudi.loaddict('DetDict')
00011     g=gaudi.AppMgr()
00012     #g.DLLs   += [ "XmlTools"   , "DetDescCnv"    ,
00013     #              "DetDescSvc" , "DetDescChecks" , "RootHistCnv" ]
00014     g.DLLs += [ "DetDescChecks" ]
00015 
00016     g.HistogramPersistency = "ROOT"
00017     g.config()
00018 
00019     hsvc = g.service('HistogramPersistencySvc')
00020     hsvc.OutputFile = "test.root"
00021 
00022 
00023     g.DLLs += [ "RootHistCnv" ]
00024     g.ExtSvc += [ "XmlCnvSvc" , "XmlParserSvc" ] 
00025     g.EvtSel = "NONE"
00026     
00027     det = g.service('DetectorPersistencySvc')
00028     det.CnvServices = ["XmlCnvSvc"]
00029 
00030     det = g.service('XmlCnvSvc')
00031     det.AllowGenericConversion = True
00032 
00033     det = g.service('DetectorDataSvc')
00034     det.UsePersistency = True
00035     det.DetDbRootName  = "dd"
00036     det.DetStorageType = 7
00037     det.DetDbLocation  = loc
00038     
00039     
00040 
00041 def run( volume , event = 1 ) :
00042     g = gaudi.AppMgr() 
00043     g.TopAlg = ["VolumeCheckAlg/Check"]
00044     
00045     alg = g.algorithm('Check')
00046     alg.Shots3D = 10000
00047     alg.ShotsXY = 100000
00048     alg.ShotsYZ = 10000
00049     alg.ShotsZX = 10000
00050     alg.Volume  = volume
00051     g.run( event )
00052     
00053 def _dir_ ( self , node = None , level = -1 ) :
00054     """
00055     The simple tool to perform the inspection fo Data Store
00056     
00057     Usage:
00058     
00059     evtSvc = gaudi.evtSvc()
00060     evtSvc.dir('MC')
00061     data = evtSvc['Rec/Calo']
00062     evtSvc.dir( data)
00063     
00064     """
00065     if 0 == level          : return gaudi.SUCCESS ;
00066     if   str is type(node) : node = self.retrieveObject( node )
00067     elif  not node         : return self.dir('', level )
00068     if not node            : return gaudi.FAILURE
00069     if     hasattr ( node , 'registry'   ) : node = node.registry()
00070     if     hasattr ( node , 'identifier' ) :
00071         obj = node.object ()
00072         if not obj :
00073             obj = self.retrieveObject( node.identifier() ) 
00074             print  node.identifier()
00075         else :
00076             if hasattr( obj , 'size'    ) :
00077                 size = obj.size()
00078                 if 0 == size : print "%s (empty) %s" % (  node.identifier() , type( obj ) )
00079                 elif hasattr ( obj , 'containedObjects' ) :
00080                     c = obj.containedObjects()[0]
00081                     print "%s container of %d %s objects " % ( node.identifier() , obj.size() , type(c))
00082                 else : 
00083                     print  "%s %s " % (  node.identifier() , type( node.object()) )
00084             else :
00085                 print  "%s %s " % (  node.identifier() , type( node.object()) )
00086     else : print "The node has no 'identifier'"
00087     # start the recursion 
00088     for l in self.leaves( node ) :
00089         if l : self.dir( l , level - 1 )  
00090     return gaudi.SUCCESS 
00091 
00092 def _get_( self , node = None , cut = lambda x : True ) :
00093     if   str is type(node) : node = self.retrieveObject( node )
00094     elif  not node         : return _get_( self , '' , cut  )
00095     if not node            : return []
00096     if     hasattr ( node , 'registry'   ) : node = node.registry()
00097     result = []
00098     if     hasattr ( node , 'identifier' ) :
00099         obj = node.object()
00100         if cut( obj ) : result += [ obj ]
00101     for l in self.leaves ( node ) :
00102         if l : result += _get_( self , l , cut )
00103     return result 
00104     
00105 gaudi.iDataSvc.dir = _dir_ 
00106 gaudi.iDataSvc.DIR = _get_ 
00107 
00108 
00109 if "__main__" == __name__  :
00110     import sys
00111 
00112     try: 
00113         loc = sys.argv[1]
00114     except:
00115         import os
00116         loc=os.getenv("XMLDETDESCROOT") + "/DDDB/dayabay.xml"
00117         print "Using default XML file:\n",loc
00118 
00119     try:
00120         vol = sys.argv[2]
00121     except:
00122         vol='/dd/Geometry/lvSimpleBox'
00123         print "using default volume:\n",vol
00124 
00125     init(loc)
00126     run (vol)
00127 
00128 
00129 
00130 
00131 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:14:33 2011 for XmlDetDescChecks by doxygen 1.4.7