158 from PyUtils
import PoolFile
162 msg.debug(
'Checking directory %s ...', directory.GetName())
164 listOfKeys=directory.GetListOfKeys()
166 msg.debug(
'Checking %s keys ... ', listOfKeys.GetEntries())
168 for key
in listOfKeys:
170 msg.debug(
'Looking at key %s ...', key.GetName())
171 msg.debug(
'Key is of class %s.', key.GetClassName())
173 the_object=directory.Get(key.GetName())
175 msg.warning(
"Can't get object of key %s.", key.GetName())
178 if requireTree
and not isinstance(the_object, TTree):
179 msg.warning(
"Object of key %s is not of class TTree!", key.GetName())
182 if isinstance(the_object,TTree):
184 msg.debug(
'Checking tree %s ...', the_object.GetName())
187 if PoolFile.PoolOpts.TTreeNames.EventData == the_object.GetName():
188 nentries = the_object.GetEntries()
189 msg.debug(f
' contains {nentries} events')
190 elif PoolFile.PoolOpts.TTreeNames.MetaData == the_object.GetName():
192 msg.debug(
' contains MetaData')
194 if the_type==
'event':
197 elif the_type==
'basket':
201 msg.debug(
'Tree %s looks ok.', the_object.GetName())
205 msg.debug(
'Checking ntuple of key %s ...', key.GetName())
208 reader=RNTupleReader.Open(the_object)
209 except Exception
as err:
210 msg.warning(
'Could not open ntuple %s: %s', the_object, err)
214 if PoolFile.PoolOpts.RNTupleNames.EventData == reader.GetDescriptor().GetName():
215 nentries = reader.GetNEntries()
216 msg.debug(f
' contains {nentries} events')
217 elif PoolFile.PoolOpts.RNTupleNames.MetaData == reader.GetDescriptor().GetName():
219 msg.debug(
' contains MetaData')
221 if the_type==
'event':
224 elif the_type==
'basket':
228 msg.debug(
'NTuple of key %s looks ok.', key.GetName())
230 if isinstance(the_object, TDirectory):
231 if checkDirectory(the_object, the_type, requireTree, depth + 1)==1:
235 if depth == 0
and hasMetadata
and checkNEvents(directory.GetName(), nentries)==1:
238 msg.debug(
'Directory %s looks ok.', directory.GetName())