1

I have a ROOT file with some TDirectories and TEfficiency contained in them. I need to extract the data from those for further processing.

file = uproot.open("myroot.root")
my_directory = file["AnalysisEfficiency"]["ABC_10"]
my_directory.keys()
[b'hPixelEfficiency;1',,
 b'eTotalEfficiency;1',
 b'efficiencyColumns;1',
 b'efficiencyRows;1']

And after

my_eff = my_directory["eTotalEfficiency"]

I get

NotImplementedError: 

Unimplemented streamer type: TStreamerSTL

members: {'_classversion': 4, '_fOffset': 0, '_fName': b'fBeta_bin_params', '_fTitle': b'parameter for prior beta distribution different bin by bin', '_fType': 500, '_fSize': 24, '_fArrayLength': 0, '_fArrayDim': 0, '_fMaxIndex': array([0, 0, 0, 0, 0], dtype=int32), '_fTypeName': b'vector<pair<double,double> >', '_fXmin': 0.0, '_fXmax': 0.0, '_fFactor': 0.0, '_fSTLtype': 1, '_fCtype': 61}

file contents:

00000153  40 00 00 0c 40 09 00 00  00 d7 be d2 00 00 00 00  |@...@...........|
00000173  3f e5 d8 97 a2 41 a3 f5  40 00 00 11 00 05 00 01  |?....A..@.......|
00000213  00 00 00 00 03 00 00 00  00 00 00 00 00 40 00 02  |.............@..|
00000233  64 ff ff ff ff 54 48 31  44 00 40 00 02 57 00 03  |d....TH1D.@..W..|
00000253  40 00 02 35 00 08 40 00  00 3d 00 01 00 01 00 00  |@..5..@..=......|
00000273  00 00 03 00 00 00 17 65  54 6f 74 61 6c 45 66 66  |.......eTotalEff|
00000313  69 63 69 65 6e 63 79 5f  70 61 73 73 65 64 18 74  |iciency_passed.t|
00000333  6f 74 61 6c 45 66 66 69  63 69 65 6e 63 79 20 28  |otalEfficiency (|
00000353  70 61 73 73 65 64 29 40  00 00 08 00 02 02 5a 00  |passed)@......Z.|
00000373  01 00 01 40 00 00 06 00  02 00 00 03 e9 40 00 00  |...@.........@..|

I checked here and here but I'm not sure if there is a solution yet. I am using uproot 3.4.15. Is there a way to overcome this a retrieve the data using this or another version?

  • 1
    This would be better as a [feature request on Uproot](https://github.com/scikit-hep/uproot4/issues/new?assignees=&labels=feature&template=feature-request.md&title=). It hasn't been implemented, but it could be. I doubt [Uproot 3](https://github.com/scikit-hep/uproot3) implemented it, but if it did, that would be interesting (a big step toward getting it into Uproot 4). Be sure to include a sample file to help in the implementation. – Jim Pivarski Mar 23 '21 at 17:41
  • 1
    I should add that the earliest I could get to it is likely sometime in April. – Jim Pivarski Mar 23 '21 at 17:49
  • So it is not possible right now. Then, I'll request the new feature and have to use plain ROOT for this task – Arturo Rodriguez Mar 23 '21 at 18:17
  • 1
    Right: it's not supported yet. (That's why it's a `NotImplementedError`.) – Jim Pivarski Mar 23 '21 at 21:38

0 Answers0