11 if(track!=0 &&
_track!=track){
28 <<
"[IdealHelixParameters] "
69 _radius = 1./fabs(globalTrajParam.transverseCurvature());
70 float phi = innerMom.phi();
81 <<
"\n\t "<<
"radius " <<
_radius;
104 float cos_angle = pCi_xy.Dot(pCT_xy)/pCi_xy.rho()/pCT_xy.rho();
105 float sin_angle = pCi_xy.Cross(pCT_xy).z()/pCi_xy.rho()/pCT_xy.rho();
109 cos_angle*innerMomentum.x()-sin_angle*innerMomentum.y(),
110 sin_angle*innerMomentum.x()+cos_angle*innerMomentum.y(),
117 _transverseIP = (r_.x()*p_.y()-r_.y()*p_.x())/p_.rho()/r_.rho();
123 <<
"\n\t "<<
"sin_angle \t" <<sin_angle <<
" angle \t" <<asin(sin_angle)
124 <<
"\n\t "<<
"cos_angle \t" <<cos_angle <<
" angle \t" <<acos(cos_angle)
126 <<
"\n\t "<<
"_transverseIP \t" <<_transverseIP
151 math::XYZVector tmpT1 = (1-sin_alpha*sin_alpha)*vL + T/l*sin_alpha*vLperp;
152 math::XYZVector tmpT2 = (1-sin_alpha*sin_alpha)*vL - T/l*sin_alpha*vLperp;
154 if( (tmpT1-innerPosition).rho()<(tmpT2-innerPosition).
rho())
bool isTangentPointDistanceLessThan(float rmax, const reco::Track *track, const math::XYZVector refPoint)
const reco::Track * _track
Sin< T >::type sin(const T &t)
const math::XYZPoint & innerPosition() const
position of the innermost hit
math::XYZVector _MomentumAtTangentPoint
math::XYZVector GetTangentPoint() const
math::XYZVector _refPoint
Cos< T >::type cos(const T &t)
math::XYZVector _circleCenter
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
const MagneticField * _magnField
int charge() const
track electric charge
void evalMomentumatTangentPoint()
unsigned int innerDetId() const
DetId of the detector on which surface the innermost state is located.
void setData(const reco::Track *track, math::XYZVector refPoint=math::XYZVector(0, 0, 0))
math::XYZVector _tangentPoint