go-hep.org/x/hep@v0.38.1/hbook/rootcnv/testdata/make-hbook.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  //go:build ignore
     6  
     7  package main
     8  
     9  import (
    10  	"fmt"
    11  	"log"
    12  	"os"
    13  
    14  	"go-hep.org/x/hep/hbook"
    15  )
    16  
    17  func main() {
    18  	{
    19  		f, err := os.Open("gauss-1d-data.dat")
    20  		if err != nil {
    21  			log.Fatal(err)
    22  		}
    23  		defer f.Close()
    24  
    25  		h1 := hbook.NewH1D(10, -4, 4)
    26  		h1.Annotation()["name"] = "h1"
    27  		h1.Annotation()["title"] = "h1"
    28  
    29  		const n = 10004
    30  		for i := 0; i < n; i++ {
    31  			var x, w float64
    32  			_, err = fmt.Fscanf(f, "%g %g\n", &x, &w)
    33  			if err != nil {
    34  				log.Fatal(err)
    35  			}
    36  			h1.Fill(x, w)
    37  		}
    38  
    39  		raw1, err := h1.MarshalYODA()
    40  		if err != nil {
    41  			log.Fatal(err)
    42  		}
    43  		fmt.Printf("=== YODA ===\n%v\n", string(raw1))
    44  	}
    45  
    46  	{
    47  		f, err := os.Open("gauss-2d-data.dat")
    48  		if err != nil {
    49  			log.Fatal(err)
    50  		}
    51  		defer f.Close()
    52  
    53  		h2 := hbook.NewH2D(3, 0, 3, 3, 0, 3)
    54  		h2.Annotation()["name"] = "h2d"
    55  		h2.Annotation()["title"] = "h2d"
    56  
    57  		for i := 0; i < 10000; i++ {
    58  			var x, y, w float64
    59  			_, err = fmt.Fscanf(f, "%g %g %g\n", &x, &y, &w)
    60  			if err != nil {
    61  				log.Fatal(err)
    62  			}
    63  			h2.Fill(x, y, w)
    64  		}
    65  		h2.Fill(+5, +5, 101) // NE
    66  		h2.Fill(+0, +5, 102) // N
    67  		h2.Fill(-5, +5, 103) // NW
    68  		h2.Fill(-5, +0, 104) // W
    69  		h2.Fill(-5, -5, 105) // SW
    70  		h2.Fill(+0, -5, 106) // S
    71  		h2.Fill(+5, -5, 107) // SE
    72  		h2.Fill(+5, +0, 108) // E
    73  
    74  		raw2, err := h2.MarshalYODA()
    75  		if err != nil {
    76  			log.Fatal(err)
    77  		}
    78  		fmt.Printf("=== YODA ===\n%v\n", string(raw2))
    79  	}
    80  }