go-hep.org/x/hep@v0.38.1/groot/rjson/rjson_example_test.go (about) 1 // Copyright ©2023 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 rjson_test 6 7 import ( 8 "bytes" 9 "encoding/json" 10 "fmt" 11 "log" 12 13 "go-hep.org/x/hep/groot/rhist" 14 "go-hep.org/x/hep/groot/rjson" 15 "go-hep.org/x/hep/hbook" 16 ) 17 18 func ExampleMarshal() { 19 h := hbook.NewH1D(5, 0, 5) 20 h.Fill(1, 1) 21 h.Fill(-1, 1) 22 h.Ann["name"] = "h1" 23 h.Ann["title"] = "my title" 24 25 raw, err := rjson.Marshal(rhist.NewH1FFrom(h)) 26 if err != nil { 27 log.Fatalf("could not marshal to ROOT JSON: %+v", err) 28 } 29 30 buf := new(bytes.Buffer) 31 err = json.Indent(buf, raw, "", " ") 32 if err != nil { 33 log.Fatalf("could not indent JSON: %+v", err) 34 } 35 36 fmt.Printf("json: %s\n", buf.String()) 37 38 // Output: 39 // json: { 40 // "_typename": "TH1F", 41 // "fUniqueID": 0, 42 // "fBits": 50331648, 43 // "fName": "h1", 44 // "fTitle": "my title", 45 // "fLineColor": 602, 46 // "fLineStyle": 1, 47 // "fLineWidth": 1, 48 // "fFillColor": 0, 49 // "fFillStyle": 1001, 50 // "fMarkerColor": 1, 51 // "fMarkerStyle": 1, 52 // "fMarkerSize": 1, 53 // "fNcells": 7, 54 // "fXaxis": { 55 // "_typename": "TAxis", 56 // "fUniqueID": 0, 57 // "fBits": 50331648, 58 // "fName": "xaxis", 59 // "fTitle": "", 60 // "fNdivisions": 510, 61 // "fAxisColor": 1, 62 // "fLabelColor": 1, 63 // "fLabelFont": 42, 64 // "fLabelOffset": 0.005, 65 // "fLabelSize": 0.035, 66 // "fTickLength": 0.03, 67 // "fTitleOffset": 1, 68 // "fTitleSize": 0.035, 69 // "fTitleColor": 1, 70 // "fTitleFont": 42, 71 // "fNbins": 5, 72 // "fXmin": 0, 73 // "fXmax": 5, 74 // "fXbins": [ 75 // 0, 76 // 1, 77 // 2, 78 // 3, 79 // 4, 80 // 5 81 // ], 82 // "fFirst": 0, 83 // "fLast": 0, 84 // "fBits2": 0, 85 // "fTimeDisplay": false, 86 // "fTimeFormat": "", 87 // "fLabels": null, 88 // "fModLabs": null 89 // }, 90 // "fYaxis": { 91 // "_typename": "TAxis", 92 // "fUniqueID": 0, 93 // "fBits": 50331648, 94 // "fName": "yaxis", 95 // "fTitle": "", 96 // "fNdivisions": 510, 97 // "fAxisColor": 1, 98 // "fLabelColor": 1, 99 // "fLabelFont": 42, 100 // "fLabelOffset": 0.005, 101 // "fLabelSize": 0.035, 102 // "fTickLength": 0.03, 103 // "fTitleOffset": 1, 104 // "fTitleSize": 0.035, 105 // "fTitleColor": 1, 106 // "fTitleFont": 42, 107 // "fNbins": 1, 108 // "fXmin": 0, 109 // "fXmax": 1, 110 // "fXbins": [], 111 // "fFirst": 0, 112 // "fLast": 0, 113 // "fBits2": 0, 114 // "fTimeDisplay": false, 115 // "fTimeFormat": "", 116 // "fLabels": null, 117 // "fModLabs": null 118 // }, 119 // "fZaxis": { 120 // "_typename": "TAxis", 121 // "fUniqueID": 0, 122 // "fBits": 50331648, 123 // "fName": "zaxis", 124 // "fTitle": "", 125 // "fNdivisions": 510, 126 // "fAxisColor": 1, 127 // "fLabelColor": 1, 128 // "fLabelFont": 42, 129 // "fLabelOffset": 0.005, 130 // "fLabelSize": 0.035, 131 // "fTickLength": 0.03, 132 // "fTitleOffset": 1, 133 // "fTitleSize": 0.035, 134 // "fTitleColor": 1, 135 // "fTitleFont": 42, 136 // "fNbins": 1, 137 // "fXmin": 0, 138 // "fXmax": 1, 139 // "fXbins": [], 140 // "fFirst": 0, 141 // "fLast": 0, 142 // "fBits2": 0, 143 // "fTimeDisplay": false, 144 // "fTimeFormat": "", 145 // "fLabels": null, 146 // "fModLabs": null 147 // }, 148 // "fBarOffset": 0, 149 // "fBarWidth": 1000, 150 // "fEntries": 2, 151 // "fTsumw": 2, 152 // "fTsumw2": 2, 153 // "fTsumwx": 0, 154 // "fTsumwx2": 2, 155 // "fMaximum": -1111, 156 // "fMinimum": -1111, 157 // "fNormFactor": 0, 158 // "fContour": [], 159 // "fSumw2": [ 160 // 1, 161 // 0, 162 // 1, 163 // 0, 164 // 0, 165 // 0, 166 // 0 167 // ], 168 // "fOption": "", 169 // "fFunctions": { 170 // "_typename": "TList", 171 // "name": "", 172 // "arr": [], 173 // "opt": [] 174 // }, 175 // "fBufferSize": 0, 176 // "fBuffer": [], 177 // "fBinStatErrOpt": 0, 178 // "fStatOverflows": 2, 179 // "fArray": [ 180 // 1, 181 // 0, 182 // 1, 183 // 0, 184 // 0, 185 // 0, 186 // 0 187 // ] 188 // } 189 }