go-hep.org/x/hep@v0.38.1/groot/riofs/riofs.go (about) 1 // Copyright ©2017 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package riofs contains the types and low-level functions to deal with opening 6 // and creating ROOT files, and decoding the internal structure of ROOT files. 7 // 8 // Users should prefer to use the groot package to open or create ROOT files instead of this one. 9 package riofs // import "go-hep.org/x/hep/groot/riofs" 10 11 import ( 12 "go-hep.org/x/hep/groot/root" 13 ) 14 15 //go:generate go run ./gen-code.go 16 //go:generate go run ./gendata/gen-dirs.go -f ../testdata/dirs.root 17 //go:generate go run ./gendata/gen-evnt-tree.go -f ../testdata/small-evnt-tree-nosplit.root 18 //go:generate go run ./gendata/gen-evnt-tree.go -f ../testdata/small-evnt-tree-fullsplit.root -split=99 19 //go:generate go run ./gendata/gen-flat-tree.go -f ../testdata/leaves.root 20 //go:generate go run ./gendata/gen-map-tree.go -f ../testdata/std-map-split0.root -split=0 21 //go:generate go run ./gendata/gen-map-tree.go -f ../testdata/std-map-split1.root -split=1 22 //go:generate go run ./gendata/gen-map-tree.go -f ../testdata/std-map-split2.root -split=2 23 //go:generate go run ./gendata/gen-multi-leaves-tree.go -f ../testdata/padding.root 24 //go:generate go run ./gendata/gen-join-trees.go -d ../testdata 25 //go:generate go run ./gendata/gen-bitset-tree.go -f ../testdata/std-bitset.root 26 //go:generate go run ./gendata/gen-std-containers.go -f ../testdata/std-containers-split00.root -split=0 27 //go:generate go run ./gendata/gen-tlv.go -f ../testdata/tlv-split00.root -split=0 28 //go:generate go run ./gendata/gen-tlv.go -f ../testdata/tlv-split01.root -split=1 29 //go:generate go run ./gendata/gen-tlv.go -f ../testdata/tlv-split99.root -split=99 30 //go:generate go run ./gendata/gen-tntuple.go -f ../testdata/tntuple.root 31 //go:generate go run ./gendata/gen-tntupled.go -f ../testdata/tntupled.root 32 //go:generate go run ./gendata/gen-tformula.go -f ../testdata/tformula.root 33 //go:generate go run ./gendata/gen-tconflvl.go -f ../testdata/tconfidence-level.root 34 //go:generate go run ./gendata/gen-tprofile.go -f ../testdata/tprofile.root 35 //go:generate go run ./gendata/gen-tgme.go -f ../testdata/tgme.root 36 //go:generate go run ./gendata/gen-tscatter.go -f ../testdata/tscatter.root 37 //go:generate go run ./gendata/gen-tdatime.go -f ../testdata/tdatime.root 38 //go:generate go run ./gendata/gen-base.go -f ../testdata/tbase.root 39 //go:generate go run ./gendata/gen-tcanvas.go -f ../testdata/tcanvas.root 40 41 // Directory describes a ROOT directory structure in memory. 42 type Directory interface { 43 // Get returns the object identified by namecycle 44 // namecycle has the format name;cycle 45 // name = * is illegal, cycle = * is illegal 46 // cycle = "" or cycle = 9999 ==> apply to a memory object 47 // 48 // examples: 49 // foo : get object named foo in memory 50 // if object is not in memory, try with highest cycle from file 51 // foo;1 : get cycle 1 of foo on file 52 Get(namecycle string) (root.Object, error) 53 54 // Put puts the object v under the key with the given name. 55 Put(name string, v root.Object) error 56 57 // Keys returns the list of keys being held by this directory. 58 Keys() []Key 59 60 // Mkdir creates a new subdirectory 61 Mkdir(name string) (Directory, error) 62 63 // Parent returns the directory holding this directory. 64 // Parent returns nil if this is the top-level directory. 65 Parent() Directory 66 } 67 68 // SetFiler is a simple interface to establish File ownership. 69 type SetFiler interface { 70 SetFile(f *File) 71 }