#ifndef _MFormulary_ #define _MFormulary_ #include #include "TMath.h" class MFormulary : public TMath { public: MFormulary(); // Constructor virtual ~MFormulary(); // Destructor // constants Double_t C() { return 299792458.; } // velocity of light // mathematics Double_t Mt(const Double_t *m, const Double_t *pt); // transverse mass Double_t Pt(const Double_t *p); // transverse momentum Double_t Y(const Double_t *p, const Char_t t); // rapidity Double_t Y(const Double_t *eta, const Double_t *pt, const Double_t *m); // rapidity Double_t Eta(const Double_t *p, const Char_t t); // pseudorapidity Double_t Eta(const Double_t *y, const Double_t *mt, const Double_t *m); // pseudorapidity Double_t Energy(const Double_t p[4]); // energy Double_t Gamma(const Double_t *v); // gamma factor Double_t RelativisticSum(const Double_t *v1, const Double_t *v2); // sum of two velocities Double_t InvDist_squared(const Double_t x1[4], const Double_t x2[4]); // square of the space-time distance Double_t InvDist(const Double_t x1[4], const Double_t x2[4]); // space-time distance Double_t RelativisticScalarProd(const Double_t x1[4], const Double_t x2[4]); // scalar product in Minkowski metrik void Lorentz(const Double_t *v, Double_t p[4]); // Lorentz transform of four momentum (1D) void LorentzBoost(const Double_t x[4], Double_t x_prime[4], const Double_t v[3]); // Lorentz transform (4D) Double_t S(const Double_t p_a[4], const Double_t p_b[4]); // Mandelstam variable s Double_t T(const Double_t p_a[4], const Double_t p_c[4]); // Mandelstam variable t Double_t U(const Double_t p_a[4], const Double_t p_d[4]); // Mandelstam variable u // experimental Double_t Sigma_tot_pp(Double_t *p); // p+p total cross section Double_t Sigma_el_pp(Double_t *p); // p+p elastic cross section Double_t N_charged(Double_t *s); // p+p charged multiplicity // true mathematics void Pq(const Double_t *p, const Double_t *q, Double_t x[2]); // x(y=0) values of a parabola Double_t Angle(const Double_t *x1, const Double_t *x2, Int_t dim = 3); // angle between to vectors Double_t Dist_squared(const Double_t *p1, const Double_t *p2, Int_t dim); // squared distance of two points in space Double_t Dist(const Double_t *p1, const Double_t *p2, Int_t dim); // distance of two points in space void VectorProd(const Double_t *a, const Double_t *b, Double_t *c); // vector product (3D) Double_t ScalarProd(const Double_t *a, const Double_t *b, Int_t dim); // scalar product of two verctors Double_t Square(const Double_t *p, Int_t dim); // squared length of a vector void Sum(const Double_t *p1, const Double_t *p2, Double_t *P, Int_t n); // sum of two vectors void Diff(const Double_t *p1, const Double_t *p2, Double_t *P, Int_t n); // difference of two vectors Double_t Abs(const Double_t *p, Int_t dim); // length of a vector ClassDef(MFormulary,0) // Mathematical and physical formulary }; #endif