You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem with METAssoc_AnalysisMETAux./METAssoc_AnalysisMETAux.jetLink:
ValueError('basket 0 in tree/branch /CollectionTree;1:METAssoc_AnalysisMETAux./METAssoc_AnalysisMETAux.jetLink has the wrong number of bytes (4340) for interpretation AsStridedObjects(Model_ElementLink_3c_DataVector_3c_xAOD_3a3a_Jet_5f_v1_3e3e__v1)\nin file DAOD_PHYSLITE_24.0.2.art.pool.root')
Problem with EventInfoAuxDyn.hardScatterVertexLink:
<UnknownInterpretation 'none of the rules matched'>
Problem with TruthMuonsAuxDyn.parentLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Problem with TruthTausAuxDyn.parentLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Problem with TruthTausAuxDyn.childLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Problem with GSFConversionVerticesAuxDyn.trackParticleLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Playing a bit with this i believe there are 3 different issues - let's call them The Good, The Bad and The Ugly
The Good
METAssoc_AnalysisMETAux.jetLink seems to fail because it is stored memberwise. Memberwise seems on by default for ATLAS and (normal) splitting for this branch has been deactivated due to some issues it caused in existing code. So, since this is a single-jagged vector we now seem to have this memberwise:
It seems this has 16 header bytes and then come all numbers for the m_persKey, followed by all numbers for the m_persIndex. If we wanted to put in a workaround for this we could abuse the fact that both these members are int32 and read it as a single list
... and then do some tricks to split each list in half and rezip it into the two record fields.
But it may be that it's actually a bug that this branch is not split (and splitting would cause it to be not memberwise). The discussion in athena!61982 seemed to have concluded that we can actually split these branches in newer ROOT versions, so i'll have to follow this up with the experts.
The Bad
For TruthMuonsAuxDyn.parentLinks, TruthTausAuxDyn.parentLinks, TruthTausAuxDyn.childLinks and GSFConversionVerticesAuxDyn.trackParticleLinks there seems to be a problem only in AwkwardForth mode
The Exception that is thrown in forth-mode always complains about object dtypes in awkward array and it seems in AwkwardForth mode (at least some) STLVector instances are produced.
The reason why i put all the previous examples in with uproot.open(...) blocks is that trying the second time (no matter if forth was used the first time or not) it actually works for these branches:
First Try
=========
Problem with METAssoc_AnalysisMETAux./METAssoc_AnalysisMETAux.jetLink:
ValueError('basket 0 in tree/branch /CollectionTree;1:METAssoc_AnalysisMETAux./METAssoc_AnalysisMETAux.jetLink has the wrong number of bytes (4340) for interpretation AsStridedObjects(Model_ElementLink_3c_DataVector_3c_xAOD_3a3a_Jet_5f_v1_3e3e__v1)\nin file DAOD_PHYSLITE_24.0.2.art.pool.root')
Problem with EventInfoAuxDyn.hardScatterVertexLink:
<UnknownInterpretation 'none of the rules matched'>
Problem with TruthMuonsAuxDyn.parentLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Problem with TruthTausAuxDyn.parentLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Problem with TruthTausAuxDyn.childLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Problem with GSFConversionVerticesAuxDyn.trackParticleLinks:
TypeError('Awkward Array does not support arrays with object dtypes.')
Second Try
==========
Problem with METAssoc_AnalysisMETAux./METAssoc_AnalysisMETAux.jetLink:
ValueError('basket 0 in tree/branch /CollectionTree;1:METAssoc_AnalysisMETAux./METAssoc_AnalysisMETAux.jetLink has the wrong number of bytes (4340) for interpretation AsStridedObjects(Model_ElementLink_3c_DataVector_3c_xAOD_3a3a_Jet_5f_v1_3e3e__v1)\nin file DAOD_PHYSLITE_24.0.2.art.pool.root')
Problem with EventInfoAuxDyn.hardScatterVertexLink:
<UnknownInterpretation 'none of the rules matched'>
The Ugly
EventInfoAuxDyn.hardScatterVertexLink is weird. It seems to have a sub branch with the same name
>>> tree = uproot.open("DAOD_PHYSLITE_24.0.2.art.pool.root:CollectionTree")
>>> tree["EventInfoAuxDyn.hardScatterVertexLink"].keys()
['EventInfoAuxDyn.hardScatterVertexLink']
For which uproot doesn't know how to interpret it
>>> tree["EventInfoAuxDyn.hardScatterVertexLink/EventInfoAuxDyn.hardScatterVertexLink"].interpretation
<UnknownInterpretation 'none of the rules matched'>
TTree.show shows this is an ElementLink, this time not in a vector (makes sense, probably supposed to point to the hard scatter vertex of the event). We can see the key and index by skipping 10 bytes:
Sorry for the long text - just wanted to write down what i found so far (some things i found while writing this, so writing it down was already helpful 🙂 )
I guess for all these issues we have workarounds, but the AwkardForth ones are a bit worrisome (probably i should have called these "the ugly") since they seem to pop up a bit randomly and from our last debugging session i learned it can be quite difficult to find out what the issue is.
The text was updated successfully, but these errors were encountered:
I found some more issues with ElementLink branches in newer DAOD_PHYSLITE files.
An example file can be found in DAOD_PHYSLITE_24.0.2.art.pool.root.zip
(produced with produce_mc21_physlite_testfile_24.0.2_2023-09-01.sh)
Trying to read all ElementLink branches:
gives us
Playing a bit with this i believe there are 3 different issues - let's call them The Good, The Bad and The Ugly
The Good
METAssoc_AnalysisMETAux.jetLink
seems to fail because it is stored memberwise. Memberwise seems on by default for ATLAS and (normal) splitting for this branch has been deactivated due to some issues it caused in existing code. So, since this is a single-jagged vector we now seem to have this memberwise:It seems this has 16 header bytes and then come all numbers for the
m_persKey
, followed by all numbers for them_persIndex
. If we wanted to put in a workaround for this we could abuse the fact that both these members areint32
and read it as a single list... and then do some tricks to split each list in half and rezip it into the two record fields.
But it may be that it's actually a bug that this branch is not split (and splitting would cause it to be not memberwise). The discussion in athena!61982 seemed to have concluded that we can actually split these branches in newer ROOT versions, so i'll have to follow this up with the experts.
The Bad
For
TruthMuonsAuxDyn.parentLinks
,TruthTausAuxDyn.parentLinks
,TruthTausAuxDyn.childLinks
andGSFConversionVerticesAuxDyn.trackParticleLinks
there seems to be a problem only in AwkwardForth modeWith
They don't show up anymore as having a problem.
The Exception that is thrown in forth-mode always complains about object dtypes in awkward array and it seems in AwkwardForth mode (at least some)
STLVector
instances are produced.The reason why i put all the previous examples in
with uproot.open(...)
blocks is that trying the second time (no matter if forth was used the first time or not) it actually works for these branches:The Ugly
EventInfoAuxDyn.hardScatterVertexLink
is weird. It seems to have a sub branch with the same nameFor which uproot doesn't know how to interpret it
TTree.show
shows this is an ElementLink, this time not in a vector (makes sense, probably supposed to point to the hard scatter vertex of the event). We can see the key and index by skipping 10 bytes:Sorry for the long text - just wanted to write down what i found so far (some things i found while writing this, so writing it down was already helpful 🙂 )
I guess for all these issues we have workarounds, but the AwkardForth ones are a bit worrisome (probably i should have called these "the ugly") since they seem to pop up a bit randomly and from our last debugging session i learned it can be quite difficult to find out what the issue is.
The text was updated successfully, but these errors were encountered: