Skip to content

Instantly share code, notes, and snippets.

@jpivarski
Created July 2, 2020 19:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpivarski/3263b0810749c407f3f68bff929b5a33 to your computer and use it in GitHub Desktop.
Save jpivarski/3263b0810749c407f3f68bff929b5a33 to your computer and use it in GitHub Desktop.

Requires scikit-hep/uproot4#35.

>>> import uproot4
>>> tbranchelement1 = uproot4.open("Event.root : T/fH")
>>> tbranchelement1
<TBranchElement 'fH' at 0x7f5ef03c92d0>
>>> tbranchelement1.interpretation
AsObjects(Model_TH1F)
>>> tbranchelement1.array(library="np", entry_stop=5)
array([<TH1F (version 2) at 0x7f5ef0208310>,
       <TH1F (version 2) at 0x7f5ef0209850>,
       <TH1F (version 2) at 0x7f5ef026c290>,
       <TH1F (version 2) at 0x7f5ef026cb50>,
       <TH1F (version 2) at 0x7f5ef01fc390>], dtype=object)

>>> tbranchelement2 = uproot4.open("uproot-issue399.root : Event/Histos.histograms1D")
>>> tbranchelement2
<TBranchElement 'Histos.histograms1D' at 0x7f5ed19d4890>
>>> tbranchelement2.interpretation
AsObjects(AsVector(True, AsPointer(Model_TH1D)))
>>> tbranchelement2.array(library="np", entry_stop=5)
array([<STLVector [<TH1D (version 3) at 0x7f5ed1869dd0>, ...] at 0x7f5ed17a1750>,
       <STLVector [<TH1D (version 3) at 0x7f5ed17a1890>, ...] at 0x7f5ed17b2850>,
       <STLVector [<TH1D (version 3) at 0x7f5ed17b28d0>, ...] at 0x7f5ed1813890>,
       <STLVector [<TH1D (version 3) at 0x7f5ed1813910>, ...] at 0x7f5ed18358d0>,
       <STLVector [<TH1D (version 3) at 0x7f5ed1835950>, ...] at 0x7f5ed17d7910>],
      dtype=object)

>>> tbranchobject = uproot4.open("uproot-issue-tbranch-of-th2.root : g4SimHits/tree/histogram")
>>> tbranchobject
<TBranchObject 'histogram' at 0x7f5ed17e10d0>
>>> tbranchobject.interpretation
AsObjects(AsDynamic(model=Model_TH2F))
>>> tbranchobject.array(library="np")
array([<TH2F (version 4) at 0x7f5ed16a7750>], dtype=object)

These are Python objects in the arrays (because of library="np", but that's required for something as complex as a histogram).

>>> tbranchobject.array(library="np")[0].all_members
{'@fUniqueID': 0, '@fBits': 50331656, 'fName': 'h', 'fTitle': 'hist', 'fLineColor': 602, 'fLineStyle': 1, 'fLineWidth': 1, 'fFillColor': 0, 'fFillStyle': 1001, 'fMarkerColor': 1, 'fMarkerStyle': 1, 'fMarkerSize': 1.0, 'fNcells': 10404, 'fXaxis': <TAxis (version 10) at 0x7f5ed1657210>, 'fYaxis': <TAxis (version 10) at 0x7f5ed1657350>, 'fZaxis': <TAxis (version 10) at 0x7f5ed16574d0>, 'fBarOffset': 0, 'fBarWidth': 1000, 'fEntries': 180896.0, 'fTsumw': 39210.27981503617, 'fTsumw2': 76245.37256001418, 'fTsumwx': 53909107.115444295, 'fTsumwx2': 74176449176.45732, 'fMaximum': -1111.0, 'fMinimum': -1111.0, 'fNormFactor': 0.0, 'fContour': <TArrayD [] at 0x7f5ed1657690>, 'fSumw2': <TArrayD [162.403, 49.0274, 101.237, ..., 31.0101, 74.1206, 43.8587] at 0x7f5ed16578d0>, 'fOption': <TString '' at 0x7f5ed16a4650>, 'fFunctions': <TList of 0 items at 0x7f5ed1657850>, 'fBufferSize': 0, 'fBuffer': array([], dtype=float64), 'fBinStatErrOpt': 0, 'fStatOverflows': 2, 'fScalefactor': 1.0, 'fTsumwy': -96857.05894189973, 'fTsumwy2': 487909.84696922696, 'fTsumwxy': -132561598.89932798, 'fN': 10404}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment