12#include "CLHEP/Geometry/Point3D.h"
13#ifndef ENABLE_BACKWARDS_COMPATIBILITY
28 if(dPhi[0] == 0)
return -1;
30 if(dPhi[1] == 0)
return -1;
36 for(
int i = 0; i < 4 && j < 2; i++){
42 x = track.
x((dPhi[
n[0]] + dPhi[
n[1]]) * .5);
44 double tanl = track.
tanl();
47 return fabs(track.
radius() * (dPhi[
n[0]] - dPhi[
n[1]])
48 * sqrt(1 + tanl * tanl));
56 const double ro = sqrt(point.x()*point.x()+point.y()*point.y());
62 if(dPhi[0] == 0)
return -1;
64 if(dPhi[1] == 0)
return -1;
73 for(
int i = 0; i < 4 && j < 2; i++){
80 x = track.
x((dPhi[
n[0]] + dPhi[
n[1]]) * .5);
82 double tanl = track.
tanl();
84 return fabs(track.
radius() * (dPhi[
n[0]] - dPhi[
n[1]])
85 * sqrt(1 + tanl * tanl));
90 HepPoint3D& x,
const double ri,
const double ro)
const
97 if(dPhi[0] == 0)
return -1;
99 if(dPhi[1] == 0)
return -1;
108 for(
int i = 0; i < 4 && j < 2; i++){
115 x = track.
x((dPhi[
n[0]] + dPhi[
n[1]]) * .5);
117 double tanl = track.
tanl();
119 return fabs(track.
radius() * (dPhi[
n[0]] - dPhi[
n[1]])
120 * sqrt(1 + tanl * tanl));
130 return (r >= ri - FLT_EPSILON &&
131 r <= ro + FLT_EPSILON &&
132 z >=
zb_ - FLT_EPSILON &&
133 z <=
zf_ + FLT_EPSILON);
142 return (r >=
ri_ - FLT_EPSILON &&
143 r <=
ro_ + FLT_EPSILON &&
144 z >=
zb_ - FLT_EPSILON &&
145 z <=
zf_ + FLT_EPSILON);
155 return (r <=
ro_ + FLT_EPSILON &&
156 z >=
zb_ - FLT_EPSILON &&
157 z <=
zf_ + FLT_EPSILON);
HepGeom::Point3D< double > HepPoint3D
bool isInside(const HepPoint3D &x) const
Check if the position x is inside the current cylinder.
virtual double intersect(const KalFitTrack &track, HepPoint3D &x) const
Find intersection with Helix.
bool isInside2(const HepPoint3D &x) const
Description of a track class (<- Helix.cc)
double intersect_cylinder(double r) const
Intersection with different geometry.
double intersect_xy_plane(double z) const
HepPoint3D x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
double radius(void) const
returns radious of helix.