11#include "CLHEP/Geometry/Point3D.h"
13#ifndef ENABLE_BACKWARDS_COMPATIBILITY
17#include "KalFitAlg/helix/Helix.h"
19#include "KalFitAlg/KalFitCylinder.h"
20#include "KalFitAlg/KalFitMaterial.h"
21#include "KalFitAlg/KalFitTrack.h"
26 if ( dPhi[0] == 0 )
return -1;
28 if ( dPhi[1] == 0 )
return -1;
34 for (
int i = 0; i < 4 && j < 2; i++ )
39 if ( j < 2 )
return -1;
41 x = track.
x( ( dPhi[
n[0]] + dPhi[
n[1]] ) * .5 );
43 double tanl = track.
tanl();
46 return fabs( track.
radius() * ( dPhi[
n[0]] - dPhi[
n[1]] ) * sqrt( 1 + tanl * tanl ) );
52 const double ro = sqrt( point.x() * point.x() + point.y() * point.y() );
58 if ( dPhi[0] == 0 )
return -1;
60 if ( dPhi[1] == 0 )
return -1;
69 for (
int i = 0; i < 4 && j < 2; i++ )
75 if ( j < 2 )
return -1;
77 x = track.
x( ( dPhi[
n[0]] + dPhi[
n[1]] ) * .5 );
79 double tanl = track.
tanl();
81 return fabs( track.
radius() * ( dPhi[
n[0]] - dPhi[
n[1]] ) * sqrt( 1 + tanl * tanl ) );
90 return ( r >=
ri_ - FLT_EPSILON && r <= ro_ + FLT_EPSILON && z >=
zb_ - FLT_EPSILON &&
91 z <=
zf_ + FLT_EPSILON );
100 return ( r <= ro_ + FLT_EPSILON && z >=
zb_ - FLT_EPSILON && z <=
zf_ + FLT_EPSILON );
HepGeom::Point3D< double > HepPoint3D
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.