164 from PyUtils
import PoolFile
168 msg.debug(
'Checking directory %s ...', directory.GetName())
170 listOfKeys=directory.GetListOfKeys()
172 msg.debug(
'Checking %s keys ... ', listOfKeys.GetEntries())
174 for key
in listOfKeys:
176 msg.debug(
'Looking at key %s ...', key.GetName())
177 msg.debug(
'Key is of class %s.', key.GetClassName())
179 the_object=directory.Get(key.GetName())
181 msg.warning(
"Can't get object of key %s.", key.GetName())
184 if requireTree
and not isinstance(the_object, TTree):
185 msg.warning(
"Object of key %s is not of class TTree!", key.GetName())
188 if isinstance(the_object,TTree):
190 msg.debug(
'Checking tree %s ...', the_object.GetName())
193 if PoolFile.PoolOpts.TTreeNames.EventData == the_object.GetName():
194 nentries = the_object.GetEntries()
195 msg.debug(f
' contains {nentries} events')
196 elif PoolFile.PoolOpts.TTreeNames.MetaData == the_object.GetName():
198 msg.debug(
' contains MetaData')
200 if the_type==
'event':
203 elif the_type==
'basket':
207 msg.debug(
'Tree %s looks ok.', the_object.GetName())
211 msg.debug(
'Checking ntuple of key %s ...', key.GetName())
214 reader=RNTupleReader.Open(the_object)
215 except Exception
as err:
216 msg.warning(
'Could not open ntuple %s: %s', the_object, err)
220 if PoolFile.PoolOpts.RNTupleNames.EventData == reader.GetDescriptor().GetName():
221 nentries = reader.GetNEntries()
222 msg.debug(f
' contains {nentries} events')
223 elif PoolFile.PoolOpts.RNTupleNames.MetaData == reader.GetDescriptor().GetName():
225 msg.debug(
' contains MetaData')
227 if the_type==
'event':
230 elif the_type==
'basket':
234 msg.debug(
'NTuple of key %s looks ok.', key.GetName())
236 if isinstance(the_object, TDirectory):
237 if checkDirectory(the_object, the_type, requireTree, depth + 1)==1:
241 if depth == 0
and hasMetadata
and checkNEvents(directory.GetName(), nentries)==1:
244 msg.debug(
'Directory %s looks ok.', directory.GetName())