Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-26 02:34:37

0001 #____________________________________________________________
0002 #
0003 #  cuy
0004 #
0005 # A very simple way to make plots with ROOT via an XML file
0006 #
0007 # Francisco Yumiceva
0008 # yumiceva@fnal.gov
0009 #
0010 # Fermilab, 2008
0011 #
0012 #____________________________________________________________
0013 
0014 import sys
0015 import ROOT
0016 from ROOT import TFile
0017 
0018 
0019 class Inspector:
0020 
0021     def SetFilename(self, value):
0022         self.Filename = value
0023     def Verbose(self, value):
0024         self.Verbose = value
0025 
0026     def createXML(self, value):
0027         self.XML = value
0028 
0029     def SetTag(self,value):
0030         self.tag = value
0031         self.TagOption = True
0032 
0033     def Loop(self):
0034 
0035         afile = TFile(self.Filename)
0036         afilename = self.Filename
0037         stripfilename = afilename
0038 
0039         try:
0040             if self.TagOption:
0041                 stripfilename = self.tag
0042         except:
0043             stripfilename = afilename.split('/')[len(afilename.split('/')) -1]
0044             stripfilename = stripfilename[0:(len(stripfilename)-5)]
0045 
0046         alist = self.dir.GetListOfKeys()
0047 
0048         for i in alist:
0049             aobj = i.ReadObj()
0050             if aobj.IsA().InheritsFrom("TDirectory"):
0051                 if self.Verbose:
0052                     print(' found directory: '+i.GetName())
0053 
0054                 if self.XML:
0055                     print('   <!-- '+i.GetName()+' -->')
0056 
0057                 bdir = self.dir
0058                 afile.GetObject(i.GetName(),bdir)
0059                 blist = bdir.GetListOfKeys()
0060                 for j in blist:
0061                     bobj = j.ReadObj()
0062                     if bobj.IsA().InheritsFrom(ROOT.TH1.Class()):
0063                         if self.Verbose:
0064                             print('  --> found TH1: name = '+j.GetName() + ' title = '+j.GetTitle())
0065                         if self.XML:
0066                             print('   <TH1 name=\"'+stripfilename+'_'+j.GetName()+'\" source=\"'+'/'+i.GetName()+'/'+j.GetName()+'\"/>')
0067 
0068     def GetListObjects(self):
0069 
0070         afile = TFile(self.Filename)
0071 
0072         if afile.IsZombie():
0073             print(" error trying to open file: " + self.Filename)
0074             sys.exit()
0075 
0076         if self.XML:
0077 
0078             print('''
0079 <cuy>
0080 ''')    
0081             print('  <validation type=\"'+afile.GetName()+'\" file=\"'+self.Filename+'\" release=\"x.y.z\">')
0082 
0083         self.dir = ROOT.gDirectory
0084         self.Loop()
0085 
0086         if self.XML:
0087 
0088             print('''
0089   </validation>
0090 
0091 </cuy>
0092 ''')
0093 
0094 
0095 
0096 
0097 
0098 
0099 
0100 
0101