50 double cal_th(
double theta,
double z)
63 const double R_CC = 91.6;
64 const double Z_EC = 178.9;
65 const double BIGG = 1e8;
68 if (fabs(
cos(theta)) < 1 / BIGG)
69 tanth = BIGG *
sin(theta);
73 double z_cc = R_CC / tanth +
z;
75 if (fabs(z_cc) < Z_EC)
76 theta = atan2(R_CC, z_cc);
82 double r_ec = (zz -
z) * tanth;
83 theta = atan2(r_ec, zz);
108 CLHEP::Hep3Vector vect = v.vect();
109 double old_p2 = vect.mag2();
112 double new_p2 = v.e() * v.e() - mass *
mass;
115 vect *=
sqrt(new_p2 / old_p2);
132 v.setE(
sqrt(v.vect().mag2() + mass *
mass));
147 double s =
sin(theta),
c =
cos(theta);
148 double old_pt = v.perp();
149 double new_pt = old_pt *
c - v.z() *
s;
150 v.setZ(old_pt * s + v.z() *
c);
152 v.setX(v.x() * new_pt / old_pt);
153 v.setY(v.y() * new_pt / old_pt);
169 double theta1 = v.theta();
188 return 2 * atan(
exp(-eta));
202 return -
log(
tan(theta / 2));
250 double deta = a.pseudoRapidity() - b.pseudoRapidity();
251 double dphi =
phidiff(a.phi() - b.phi());
252 return sqrt(deta * deta + dphi * dphi);
static std::vector< std::string > checklist log
const edm::EventSetup & c
Define three-vector and four-vector classes for the HitFit package, and supply a few additional opera...
void adjust_e_for_mass(Fourvec &v, double mass)
Adjust the energy component of four-vector v (leaving the three-vector part unchanged) so that the fo...
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
double phidiff(double phi)
Normalized difference in azimuthal angles to a range between .
Exp< T >::type exp(const T &t)
double theta_to_eta(double theta)
Convert polar angle to pseudorapidity.
void roteta(Fourvec &v, double eta)
Rotate four-vector v through a polar angle such that the four-vector pseudorapidity changes by a desi...
double eta_to_theta(double eta)
Convert pseudorapidity to polar angle.
Cos< T >::type cos(const T &t)
double delta_r(const Fourvec &a, const Fourvec &b)
Find the distance between two four-vectors in the two-dimensional space .
CLHEP::HepLorentzVector Fourvec
Typedef for a HepLorentzVector.
Tan< T >::type tan(const T &t)
double deteta(const Fourvec &v, double zvert)
NOT USED ANYMORE: Get the detector (D0-specific), requires z-vertex.
void adjust_p_for_mass(Fourvec &v, double mass)
Adjust the three-vector part of v, leaving the energy unchanged,.
void rottheta(Fourvec &v, double theta)
Rotate four-vector v through a polar angle.