go-hep.org/x/hep@v0.38.1/fmom/eetaphim_test.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 fmom_test 6 7 import ( 8 "math" 9 "testing" 10 11 "go-hep.org/x/hep/fmom" 12 ) 13 14 func TestEEtaPhiM(t *testing.T) { 15 { 16 var p4 fmom.EEtaPhiM 17 if got, want := p4.E(), 0.0; got != want { 18 t.Fatalf("p4.E=%v, want=%v", got, want) 19 } 20 if got, want := p4.Eta(), 0.0; got != want { 21 t.Fatalf("p4.Eta=%v, want=%v", got, want) 22 } 23 if got, want := p4.Phi(), 0.0; got != want { 24 t.Fatalf("p4.Phi=%v, want=%v", got, want) 25 } 26 if got, want := p4.M(), 0.0; got != want { 27 t.Fatalf("p4.M=%v, want=%v", got, want) 28 } 29 if got, want := p4.String(), "fmom.P4{E:0, Eta:0, Phi:0, M:0}"; got != want { 30 t.Fatalf("p4=%v, want=%v", got, want) 31 } 32 } 33 34 { 35 p4 := fmom.NewEEtaPhiM(10, 11, 12, 20) 36 if got, want := p4.E(), 10.0; got != want { 37 t.Fatalf("p4.E=%v, want=%v", got, want) 38 } 39 if got, want := p4.Eta(), 11.0; got != want { 40 t.Fatalf("p4.Eta=%v, want=%v", got, want) 41 } 42 if got, want := p4.Phi(), 12.0; got != want { 43 t.Fatalf("p4.Phi=%v, want=%v", got, want) 44 } 45 if got, want := p4.M(), 20.0; got != want { 46 t.Fatalf("p4.M=%v, want=%v", got, want) 47 } 48 if got, want := p4.String(), "fmom.P4{E:10, Eta:11, Phi:12, M:20}"; got != want { 49 t.Fatalf("p4=%v, want=%v", got, want) 50 } 51 52 p1 := fmom.NewEEtaPhiM(10, 11, 12, 20) 53 if p1 != p4 { 54 t.Fatalf("p4=%v, want=%v", p1, p4) 55 } 56 57 var p2 fmom.EEtaPhiM = p1 58 if p1 != p2 { 59 t.Fatalf("p4=%v, want=%v", p1, p2) 60 } 61 } 62 63 { 64 p1 := fmom.NewEEtaPhiM(10, 11, 12, 20) 65 var p2 fmom.EEtaPhiM 66 p2.Set(&p1) 67 if p1 != p2 { 68 t.Fatalf("p4=%v want=%v", p2, p1) 69 } 70 } 71 72 p := fmom.NewPxPyPzE(10, 11, 12, 20) 73 74 for i, v := range []float64{ 75 math.Abs(math.Atan2(p.SinPhi(), p.CosPhi()) - p.Phi()), 76 math.Abs(p.SinPhi()*p.SinPhi() + p.CosPhi()*p.CosPhi() - 1.0), 77 math.Abs(-math.Log(math.Tan(math.Atan(p.TanTh())*0.5)) - p.Eta()), 78 } { 79 if v > epsilon { 80 t.Fatalf("test [%d]: value out of tolerance", i) 81 } 82 83 } 84 }