ATLAS Offline Software
Loading...
Searching...
No Matches
ScanHistFile Namespace Reference

Functions

 _dolsrwrapper (fname)
 _dolsr (dir)
 scanFiles (globstr='testOutFile *')

Variables

 RV = scanFiles()

Function Documentation

◆ _dolsr()

ScanHistFile._dolsr ( dir)
protected

Definition at line 22 of file ScanHistFile.py.

22def _dolsr(dir):
23 import ROOT
24 resultdir = dir.Get('Results'); statusobj = None
25 if resultdir:
26 statusobj = resultdir.Get('Status')
27 if statusobj:
28 l = statusobj.GetListOfKeys()
29 l[0].GetName()
30 keys = dir.GetListOfKeys()
31 for key in keys:
32 name = key.GetName()
33 #print "Reading key named %s"%name
34 keyClass=ROOT.TClass.GetClass(key.GetClassName())
35 if keyClass.InheritsFrom('TDirectory'):
36 dirobj = key.ReadObj()
37 resultdir = dirobj.Get('Results'); statusobj = None
38 if resultdir:
39 statusobj = resultdir.Get('Status')
40 # is a check? is a summary? or recurse?
41 if name[-1] == '_' and resultdir:
42 hist = dir.Get(name[:-1])
43 subkeys = resultdir.GetListOfKeys()
44 for subkey in subkeys:
45 ressub = subkey.GetName()
46 if ressub not in ('Status', 'Reference', 'ResultObject') and ROOT.TClass.GetClass(subkey.GetClassName()).InheritsFrom('TDirectory'):
47 subObj=subkey.ReadObj()
48 l = subObj.GetListOfKeys()
49 l[0].GetName()
50 # status flag
51 l = statusobj.GetListOfKeys()
52 l[0].GetName()
53
54 else:
55 _dolsr(dirobj)
56 del dirobj
57 elif keyClass.InheritsFrom("TTree"):
58 currObj=key.ReadObj()
59 if currObj is None:
60 print("WARNING TTree Object \"%s\" in file:directory \"%s\" is corrupt "\
61 "keylen=%s numbytes=%s objlen=%s fseekkey=%s"%(name,dir.GetPath(),key.GetKeylen(),
62 key.GetNbytes(),key.GetObjlen(),key.GetSeekKey()))
63 return 9
64 else:
65 nentries=currObj.GetEntriesFast()
66 #print "Scanning tree Object \"%s\" in file:directory \"%s\" is corrupt "\
67 #"keylen=%s numbytes=%s objlen=%s fseekkey=%s "%(name,dir.GetPath(),key.GetKeylen(),
68 # key.GetNbytes(),key.GetObjlen(),key.GetSeekKey()),
69 #print "Scanning tree %s"%name,
70 for j in range(nentries):
71 ientry=currObj.LoadTree(j)
72 if ientry<0:
73 break
74 nb=currObj.GetEntry(j)
75 if nb<=0:
76 continue
77 #print " Done"
78 currObj.Delete()
79 del currObj
80 else:
81 currObj=key.ReadObj()
82 if currObj is None:
83 print("WARNING Object \"%s\" in file:directory \"%s\" is corrupt "\
84 "keylen=%s numbytes=%s objlen=%s fseekkey=%s"%(name,dir.GetPath(),key.GetKeylen(),
85 key.GetNbytes(),key.GetObjlen(),key.GetSeekKey()))
86 return 5
87 currObj.Delete()
88 del currObj
89 return 0
void print(char *figname, TCanvas *c1)

◆ _dolsrwrapper()

ScanHistFile._dolsrwrapper ( fname)
protected

Definition at line 7 of file ScanHistFile.py.

7def _dolsrwrapper(fname):
8 import ROOT
9 rf = ROOT.TFile.Open(fname, 'READ')
10 if not rf or not rf.IsOpen():
11 print(' %s is empty or not accessible' % fname)
12 return 3
13 if rf.TestBit(ROOT.TFile.kRecovered):
14 print(" %s is recovered. It means it was corrupt" % fname)
15 return 7
16 cleancache = ROOT.gROOT.MustClean(); ROOT.gROOT.SetMustClean(False)
17 RV=_dolsr(rf)
18 print("dolsr returned %s "%(RV))
19 rf.Close()
20 ROOT.gROOT.SetMustClean(cleancache)
21 return RV

◆ scanFiles()

ScanHistFile.scanFiles ( globstr = 'testOutFile*')

Definition at line 90 of file ScanHistFile.py.

90def scanFiles(globstr='testOutFile*'):
91 RV=_dolsrwrapper(globstr)
92 return RV

Variable Documentation

◆ RV

ScanHistFile.RV = scanFiles()

Definition at line 95 of file ScanHistFile.py.