24 t.fP = TEveVector( iData.
px(), iData.
py(), iData.
pz() );
27 TEveTrack *trk =
new TEveTrack( &t, propagator );
39 float dx = v1.fX - v2.fX;
40 float dy = v1.fY - v2.fY;
41 float dr =
sqrt( ( dx * dx ) + ( dy * dy ) );
42 float D = ( ( v2.fX * v1.fY ) - ( v1.fX * v2.fY ) );
44 float rtDescrim =
sqrt( ( ( r * r ) * ( dr * dr ) ) - ( D * D ) );
48 x = ( D * dy ) - ( (
sgn(dy) * dx ) * rtDescrim );
51 y = ( -D * dx ) - ( fabs( dy ) * rtDescrim );
57 x = ( D * dy ) + ( (
sgn(dy) * dx ) * rtDescrim );
60 y = ( -D * dx ) + ( fabs( dy ) * rtDescrim );
64 TEveVector
result = TEveVector( x, y, 0.001 );
72 TEveVector
a = p2 -
p1;
73 TEveVector
b = p4 -
p3;
74 TEveVector
c = p3 -
p1;
82 result = p1 + ( a *
s );
92 vec.fX = ( v1.fY * v2.fZ ) - ( v1.fZ * v2.fY );
93 vec.fY = ( v1.fZ * v2.fX ) - ( v1.fX * v2.fZ );
94 vec.fZ = ( v1.fX * v2.fY ) - ( v1.fY * v2.fX );
105 y = ( ( z - fabs( p1.fZ ) ) * p2.fY ) + ( ( fabs( p2.fZ ) -
z ) * p1.fY );
106 y /= ( fabs( p2.fZ) - fabs( p1.fZ ) );
115 float result = ( v1.fX * v2.fX ) + ( v1.fY * v2.fY ) + ( v1.fZ * v1.fZ );
124 return ( val < 0 ) ? -1 : 1;
131 float h =
sqrt( ( p.fX * p.fX ) + ( p.fY * p.fY ) );
151 m_trackPropagator->SetProjTrackBreaking( TEveTrackPropagator::kPTB_UseLastPointPos );
bool checkIntersect(const TEveVector &vec, float r)
const TrackExtraRef & extra() const
reference to "extra" object
double px() const
x coordinate of momentum vector
TEveVector lineCircleIntersect(const TEveVector &v1, const TEveVector &v2, float r)
TEveTrackPropagator * m_trackPropagator
double pz() const
z coordinate of momentum vector
const Point & vertex() const
reference point on the track. This method is DEPRECATED, please use referencePoint() instead ...
float dot(const TEveVector &v1, const TEveVector &v2)
TEveVector cross(const TEveVector &v1, const TEveVector &v2)
int charge() const
track electric charge
float linearInterpolation(const TEveVector &p1, const TEveVector &p2, float r)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
DecomposeProduct< arg, typename Div::arg > D
TEveTrack * getTrack(const reco::Track &iData)
double py() const
y coordinate of momentum vector
TEveVector lineLineIntersect(const TEveVector &v1, const TEveVector &v2, const TEveVector &v3, const TEveVector &v4)
TEveTrackPropagator * m_trackerTrackPropagator