CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions | Variables
UKUtility.h File Reference

Go to the source code of this file.

Functions

void IsotropicR3 (double r, double *pX, double *pY, double *pZ)
 
void IsotropicR3 (double r, TVector3 &pos)
 
void MomAntiMom (TLorentzVector &mom, double mass, TLorentzVector &antiMom, double antiMass, double initialMass)
 

Variables

const double fermi
 
const double GeV
 
const double hbarc
 
const double hbarc_squared
 
const double mbarn
 
const double MeV
 
const double w
 

Function Documentation

void IsotropicR3 ( double  r,
double *  pX,
double *  pY,
double *  pZ 
)

Definition at line 26 of file UKUtility.cc.

References funct::cos(), hjRandomEngine, phi(), Pi, alignCSCRings::r, and funct::sin().

Referenced by MomAntiMom().

26  {
27  double pZ = 1. - 2.*(CLHEP::RandFlat::shoot(hjRandomEngine));
28  double st = TMath::Sqrt(1. - pZ * pZ) * r;
29  double phi = 2. * TMath::Pi() * (CLHEP::RandFlat::shoot(hjRandomEngine));
30 
31  *x = st * cos(phi);
32  *y = st * sin(phi);
33  *z = pZ * r;
34 }
const double Pi
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
float float float z
T x() const
Cartesian x coordinate.
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
CLHEP::HepRandomEngine * hjRandomEngine
Geom::Phi< T > phi() const
void IsotropicR3 ( double  r,
TVector3 &  pos 
)

Definition at line 36 of file UKUtility.cc.

References hjRandomEngine, phi(), Pi, and alignCSCRings::r.

36  {
37  double pZ = 1. - 2.* (CLHEP::RandFlat::shoot(hjRandomEngine));
38  double st = TMath::Sqrt(1. - pZ * pZ) * r;
39  double phi = 2. * TMath::Pi() * (CLHEP::RandFlat::shoot(hjRandomEngine));
40  pos.SetX(st * TMath::Cos(phi));
41  pos.SetY(st * TMath::Sin(phi));
42  pos.SetZ(pZ * r);
43 }
const double Pi
CLHEP::HepRandomEngine * hjRandomEngine
Geom::Phi< T > phi() const
void MomAntiMom ( TLorentzVector &  mom,
double  mass,
TLorentzVector &  antiMom,
double  antiMass,
double  initialMass 
)

Definition at line 45 of file UKUtility.cc.

References IsotropicR3(), and alignCSCRings::r.

46  {
47  double r = initialMass * initialMass - mass * mass - antiMass * antiMass;
48  if (r * r - 4 * mass * mass * antiMass * antiMass < 0.) throw "MomAntiMom";
49 
50  double pAbs = .5 * TMath::Sqrt(r * r - 4 * mass * mass * antiMass * antiMass) / initialMass;
51  TVector3 mom3;
52  IsotropicR3(pAbs, mom3);
53  mom.SetVectM(mom3, mass);
54  antiMom.SetVectM(- mom3, antiMass);
55 }
void IsotropicR3(double r, double *pX, double *pY, double *pZ)
Definition: UKUtility.cc:26

Variable Documentation

const double fermi

Definition at line 17 of file MathUtil.h.

const double GeV
const double hbarc

Definition at line 18 of file MathUtil.h.

Referenced by NAStrangeDensity::ParticleNumberDensity().

const double hbarc_squared

Definition at line 24 of file UKUtility.cc.

const double mbarn
const double MeV
const double w