README

fmom

GoDoc

fmom provides facilities to create and manipulate Lorentz 4-vectors.

Installation

Is done with go get:

$ go get go-hep.org/x/hep/fmom

Documentation

Is provided via godoc:

https://godoc.org/go-hep.org/x/hep/fmom

Documentation

Overview

Package fmom provides types and functions to operate with Lorentz 4-vectors.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CosTheta

func CosTheta(p1, p2 P4) float64

CosTheta returns the cosine of the angle between the momentum of two 4-vectors.

func DeltaEta

func DeltaEta(p1, p2 P4) float64

DeltaEta returns the delta Eta between two P4

func DeltaPhi

func DeltaPhi(p1, p2 P4) float64

DeltaPhi returns the delta Phi in range [-pi,pi[ from two P4

func DeltaR

func DeltaR(p1, p2 P4) float64

DeltaR returns the delta R between two P4

func DotProduct

func DotProduct(p1, p2 P4) float64

DotProduct returns the dot product of two 4-vectors.

func Equal

func Equal(p1, p2 P4) bool

Equal returns true if p1==p2

func InvMass

func InvMass(p1, p2 P4) float64

InvMass computes the invariant mass of two incoming 4-vectors p1 and p2.

Types

type EEtaPhiM

type EEtaPhiM [4]float64

func NewEEtaPhiM

func NewEEtaPhiM(et, eta, phi, m float64) EEtaPhiM

func (*EEtaPhiM) Clone

func (p4 *EEtaPhiM) Clone() P4

func (*EEtaPhiM) CosPhi

func (p4 *EEtaPhiM) CosPhi() float64

func (*EEtaPhiM) CosTh

func (p4 *EEtaPhiM) CosTh() float64

func (*EEtaPhiM) CotTh

func (p4 *EEtaPhiM) CotTh() float64

func (*EEtaPhiM) E

func (p4 *EEtaPhiM) E() float64

func (*EEtaPhiM) Et

func (p4 *EEtaPhiM) Et() float64

func (*EEtaPhiM) Eta

func (p4 *EEtaPhiM) Eta() float64

func (*EEtaPhiM) IPt

func (p4 *EEtaPhiM) IPt() float64

func (*EEtaPhiM) M

func (p4 *EEtaPhiM) M() float64

func (*EEtaPhiM) M2

func (p4 *EEtaPhiM) M2() float64

func (*EEtaPhiM) P

func (p4 *EEtaPhiM) P() float64

func (*EEtaPhiM) P2

func (p4 *EEtaPhiM) P2() float64

func (*EEtaPhiM) Phi

func (p4 *EEtaPhiM) Phi() float64

func (*EEtaPhiM) Pt

func (p4 *EEtaPhiM) Pt() float64

func (*EEtaPhiM) Px

func (p4 *EEtaPhiM) Px() float64

func (*EEtaPhiM) Py

func (p4 *EEtaPhiM) Py() float64

func (*EEtaPhiM) Pz

func (p4 *EEtaPhiM) Pz() float64

func (*EEtaPhiM) Rapidity

func (p4 *EEtaPhiM) Rapidity() float64

func (*EEtaPhiM) Set

func (p4 *EEtaPhiM) Set(p P4)

func (*EEtaPhiM) SinPhi

func (p4 *EEtaPhiM) SinPhi() float64

func (*EEtaPhiM) SinTh

func (p4 *EEtaPhiM) SinTh() float64

func (*EEtaPhiM) TanTh

func (p4 *EEtaPhiM) TanTh() float64

type EtEtaPhiM

type EtEtaPhiM [4]float64

func NewEtEtaPhiM

func NewEtEtaPhiM(et, eta, phi, m float64) EtEtaPhiM

func (*EtEtaPhiM) Clone

func (p4 *EtEtaPhiM) Clone() P4

func (*EtEtaPhiM) CosPhi

func (p4 *EtEtaPhiM) CosPhi() float64

func (*EtEtaPhiM) CosTh

func (p4 *EtEtaPhiM) CosTh() float64

func (*EtEtaPhiM) CotTh

func (p4 *EtEtaPhiM) CotTh() float64

func (*EtEtaPhiM) E

func (p4 *EtEtaPhiM) E() float64

func (*EtEtaPhiM) Et

func (p4 *EtEtaPhiM) Et() float64

func (*EtEtaPhiM) Eta

func (p4 *EtEtaPhiM) Eta() float64

func (*EtEtaPhiM) IPt

func (p4 *EtEtaPhiM) IPt() float64

func (*EtEtaPhiM) M

func (p4 *EtEtaPhiM) M() float64

func (*EtEtaPhiM) M2

func (p4 *EtEtaPhiM) M2() float64

func (*EtEtaPhiM) P

func (p4 *EtEtaPhiM) P() float64

func (*EtEtaPhiM) P2

func (p4 *EtEtaPhiM) P2() float64

func (*EtEtaPhiM) Phi

func (p4 *EtEtaPhiM) Phi() float64

func (*EtEtaPhiM) Pt

func (p4 *EtEtaPhiM) Pt() float64

func (*EtEtaPhiM) Px

func (p4 *EtEtaPhiM) Px() float64

func (*EtEtaPhiM) Py

func (p4 *EtEtaPhiM) Py() float64

func (*EtEtaPhiM) Pz

func (p4 *EtEtaPhiM) Pz() float64

func (*EtEtaPhiM) Rapidity

func (p4 *EtEtaPhiM) Rapidity() float64

func (*EtEtaPhiM) Set

func (p4 *EtEtaPhiM) Set(p P4)

func (*EtEtaPhiM) SinPhi

func (p4 *EtEtaPhiM) SinPhi() float64

func (*EtEtaPhiM) SinTh

func (p4 *EtEtaPhiM) SinTh() float64

func (*EtEtaPhiM) TanTh

func (p4 *EtEtaPhiM) TanTh() float64

type IPtCotThPhiM

type IPtCotThPhiM [4]float64

func NewIPtCotThPhiM

func NewIPtCotThPhiM(pt, eta, phi, m float64) IPtCotThPhiM

func (*IPtCotThPhiM) Clone

func (p4 *IPtCotThPhiM) Clone() P4

func (*IPtCotThPhiM) CosPhi

func (p4 *IPtCotThPhiM) CosPhi() float64

func (*IPtCotThPhiM) CosTh

func (p4 *IPtCotThPhiM) CosTh() float64

func (*IPtCotThPhiM) CotTh

func (p4 *IPtCotThPhiM) CotTh() float64

func (*IPtCotThPhiM) E

func (p4 *IPtCotThPhiM) E() float64

func (*IPtCotThPhiM) Et

func (p4 *IPtCotThPhiM) Et() float64

func (*IPtCotThPhiM) Eta

func (p4 *IPtCotThPhiM) Eta() float64

func (*IPtCotThPhiM) IPt

func (p4 *IPtCotThPhiM) IPt() float64

func (*IPtCotThPhiM) M

func (p4 *IPtCotThPhiM) M() float64

func (*IPtCotThPhiM) M2

func (p4 *IPtCotThPhiM) M2() float64

func (*IPtCotThPhiM) P

func (p4 *IPtCotThPhiM) P() float64

func (*IPtCotThPhiM) P2

func (p4 *IPtCotThPhiM) P2() float64

func (*IPtCotThPhiM) Phi

func (p4 *IPtCotThPhiM) Phi() float64

func (*IPtCotThPhiM) Pt

func (p4 *IPtCotThPhiM) Pt() float64

func (*IPtCotThPhiM) Px

func (p4 *IPtCotThPhiM) Px() float64

func (*IPtCotThPhiM) Py

func (p4 *IPtCotThPhiM) Py() float64

func (*IPtCotThPhiM) Pz

func (p4 *IPtCotThPhiM) Pz() float64

func (*IPtCotThPhiM) Rapidity

func (p4 *IPtCotThPhiM) Rapidity() float64

func (*IPtCotThPhiM) Set

func (p4 *IPtCotThPhiM) Set(p P4)

func (*IPtCotThPhiM) SinPhi

func (p4 *IPtCotThPhiM) SinPhi() float64

func (*IPtCotThPhiM) SinTh

func (p4 *IPtCotThPhiM) SinTh() float64

func (*IPtCotThPhiM) TanTh

func (p4 *IPtCotThPhiM) TanTh() float64

type P4

type P4 interface {
	Px() float64       // x component of 4-momentum
	Py() float64       // y component of 4-momentum
	Pz() float64       // z component of 4-momentum
	M() float64        // mass
	M2() float64       // mass squared
	P() float64        // momentum magnitude
	P2() float64       // square of momentum magnitude
	Eta() float64      // pseudo-rapidity
	Rapidity() float64 // rapidity
	Phi() float64      // azimuthal angle in [-pi,pi)
	E() float64        // energy of 4-momentum
	Et() float64       // transverse energy defined to be E*sin(Theta)
	Pt() float64       // transverse momentum
	IPt() float64      // inverse of transverse momentum
	CosPhi() float64   // cosine(Phi)
	SinPhi() float64   // sine(Phi)
	CosTh() float64    // cosine(Theta)
	SinTh() float64    // sine(Theta)
	CotTh() float64    // cottan(Theta)
	TanTh() float64    // tan(Theta)

	Set(p4 P4)
	Clone() P4
}

P4 models a Lorentz 4-vector.

func Add

func Add(p1, p2 P4) P4

Add returns the sum p1+p2.

func IAdd

func IAdd(dst, src P4) P4

IAdd adds src into dst, and returns dst

func Scale

func Scale(a float64, p P4) P4

Scale returns a*p

type PtEtaPhiM

type PtEtaPhiM [4]float64

func NewPtEtaPhiM

func NewPtEtaPhiM(pt, eta, phi, m float64) PtEtaPhiM

func (*PtEtaPhiM) Clone

func (p4 *PtEtaPhiM) Clone() P4

func (*PtEtaPhiM) CosPhi

func (p4 *PtEtaPhiM) CosPhi() float64

func (*PtEtaPhiM) CosTh

func (p4 *PtEtaPhiM) CosTh() float64

func (*PtEtaPhiM) CotTh

func (p4 *PtEtaPhiM) CotTh() float64

func (*PtEtaPhiM) E

func (p4 *PtEtaPhiM) E() float64

func (*PtEtaPhiM) Et

func (p4 *PtEtaPhiM) Et() float64

func (*PtEtaPhiM) Eta

func (p4 *PtEtaPhiM) Eta() float64

func (*PtEtaPhiM) IPt

func (p4 *PtEtaPhiM) IPt() float64

func (*PtEtaPhiM) M

func (p4 *PtEtaPhiM) M() float64

func (*PtEtaPhiM) M2

func (p4 *PtEtaPhiM) M2() float64

func (*PtEtaPhiM) P

func (p4 *PtEtaPhiM) P() float64

func (*PtEtaPhiM) P2

func (p4 *PtEtaPhiM) P2() float64

func (*PtEtaPhiM) Phi

func (p4 *PtEtaPhiM) Phi() float64

func (*PtEtaPhiM) Pt

func (p4 *PtEtaPhiM) Pt() float64

func (*PtEtaPhiM) Px

func (p4 *PtEtaPhiM) Px() float64

func (*PtEtaPhiM) Py

func (p4 *PtEtaPhiM) Py() float64

func (*PtEtaPhiM) Pz

func (p4 *PtEtaPhiM) Pz() float64

func (*PtEtaPhiM) Rapidity

func (p4 *PtEtaPhiM) Rapidity() float64

func (*PtEtaPhiM) Set

func (p4 *PtEtaPhiM) Set(p P4)

func (*PtEtaPhiM) SinPhi

func (p4 *PtEtaPhiM) SinPhi() float64

func (*PtEtaPhiM) SinTh

func (p4 *PtEtaPhiM) SinTh() float64

func (*PtEtaPhiM) TanTh

func (p4 *PtEtaPhiM) TanTh() float64

type PxPyPzE

type PxPyPzE [4]float64

func NewPxPyPzE

func NewPxPyPzE(px, py, pz, e float64) PxPyPzE

func (*PxPyPzE) Clone

func (p4 *PxPyPzE) Clone() P4

func (*PxPyPzE) CosPhi

func (p4 *PxPyPzE) CosPhi() float64

func (*PxPyPzE) CosTh

func (p4 *PxPyPzE) CosTh() float64

func (*PxPyPzE) CotTh

func (p4 *PxPyPzE) CotTh() float64

func (*PxPyPzE) E

func (p4 *PxPyPzE) E() float64

func (*PxPyPzE) Et

func (p4 *PxPyPzE) Et() float64

func (*PxPyPzE) Eta

func (p4 *PxPyPzE) Eta() float64

func (*PxPyPzE) IPt

func (p4 *PxPyPzE) IPt() float64

func (*PxPyPzE) M

func (p4 *PxPyPzE) M() float64

func (*PxPyPzE) M2

func (p4 *PxPyPzE) M2() float64

func (*PxPyPzE) P

func (p4 *PxPyPzE) P() float64

func (*PxPyPzE) P2

func (p4 *PxPyPzE) P2() float64

func (*PxPyPzE) Phi

func (p4 *PxPyPzE) Phi() float64

func (*PxPyPzE) Pt

func (p4 *PxPyPzE) Pt() float64

func (*PxPyPzE) Px

func (p4 *PxPyPzE) Px() float64

func (*PxPyPzE) Py

func (p4 *PxPyPzE) Py() float64

func (*PxPyPzE) Pz

func (p4 *PxPyPzE) Pz() float64

func (*PxPyPzE) Rapidity

func (p4 *PxPyPzE) Rapidity() float64

func (*PxPyPzE) Set

func (p4 *PxPyPzE) Set(p P4)

func (*PxPyPzE) SinPhi

func (p4 *PxPyPzE) SinPhi() float64

func (*PxPyPzE) SinTh

func (p4 *PxPyPzE) SinTh() float64

func (*PxPyPzE) T

func (p4 *PxPyPzE) T() float64

func (*PxPyPzE) TanTh

func (p4 *PxPyPzE) TanTh() float64

func (*PxPyPzE) X

func (p4 *PxPyPzE) X() float64

func (*PxPyPzE) Y

func (p4 *PxPyPzE) Y() float64

func (*PxPyPzE) Z

func (p4 *PxPyPzE) Z() float64

type Vec3

type Vec3 [3]float64

Vec3 is a 3-dim vector.

func (*Vec3) X

func (vec *Vec3) X() float64

func (*Vec3) Y

func (vec *Vec3) Y() float64

func (*Vec3) Z

func (vec *Vec3) Z() float64