CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CurvilinearTrajectoryParameters.cc
Go to the documentation of this file.
2 #include<cmath>
3 
4 
6 {
7 
8  theQbp=aCharge/aP.mag();
9 
10  double pT2= aP.x()*aP.x()+aP.y()*aP.y();
11  double pT =sqrt(pT2);
12  thelambda= atan(aP.z()/pT);
13  thephi=atan2(aP.y(),aP.x());
14  thexT= (-aP.y()*aX.x()+ aP.x()*aX.y()) / pT;
15  theyT= (-aX.x()*aP.x()*aP.z() - aX.y()*aP.z()*aP.y() + aX.z()*(pT2)) / (aP.mag()*pT);
16 }
17 
18 
20  //FIXME. something is very likely to be missing here
21  double p = 1./std::abs(Qbp());
22  if ((p += dP) <= 0.) return false;
23  double newQbp = Qbp() > 0 ? 1./p : -1./p;
24  theQbp = newQbp;
25  return true;
26 }
T y() const
Definition: PV3DBase.h:63
int TrackCharge
Definition: TrackCharge.h:4
T mag() const
Definition: PV3DBase.h:67
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
T x() const
Definition: PV3DBase.h:62