150 from PyUtils
import PoolFile
154 msg.debug(
'Checking directory %s ...', directory.GetName())
156 listOfKeys=directory.GetListOfKeys()
158 msg.debug(
'Checking %s keys ... ', listOfKeys.GetEntries())
160 for key
in listOfKeys:
162 msg.debug(
'Looking at key %s ...', key.GetName())
163 msg.debug(
'Key is of class %s.', key.GetClassName())
165 the_object=directory.Get(key.GetName())
167 msg.warning(
"Can't get object of key %s.", key.GetName())
170 if requireTree
and not isinstance(the_object, TTree):
171 msg.warning(
"Object of key %s is not of class TTree!", key.GetName())
174 if isinstance(the_object,TTree):
176 msg.debug(
'Checking tree %s ...', the_object.GetName())
179 if PoolFile.PoolOpts.TTreeNames.EventData == the_object.GetName():
180 nentries = the_object.GetEntries()
181 msg.debug(f
' contains {nentries} events')
182 elif PoolFile.PoolOpts.TTreeNames.MetaData == the_object.GetName():
184 msg.debug(
' contains MetaData')
186 if the_type==
'event':
189 elif the_type==
'basket':
193 msg.debug(
'Tree %s looks ok.', the_object.GetName())
197 msg.debug(
'Checking ntuple of key %s ...', key.GetName())
200 reader=RNTupleReader.Open(the_object)
201 except Exception
as err:
202 msg.warning(
'Could not open ntuple %s: %s', the_object, err)
206 if PoolFile.PoolOpts.RNTupleNames.EventData == reader.GetDescriptor().GetName():
207 nentries = reader.GetNEntries()
208 msg.debug(f
' contains {nentries} events')
209 elif PoolFile.PoolOpts.RNTupleNames.MetaData == reader.GetDescriptor().GetName():
211 msg.debug(
' contains MetaData')
213 if the_type==
'event':
216 elif the_type==
'basket':
220 msg.debug(
'NTuple of key %s looks ok.', key.GetName())
222 if isinstance(the_object, TDirectory):
223 if checkDirectory(the_object, the_type, requireTree, depth + 1)==1:
227 if depth == 0
and hasMetadata
and checkNEvents(directory.GetName(), nentries)==1:
230 msg.debug(
'Directory %s looks ok.', directory.GetName())