12#include "CLHEP/Geometry/Point3D.h"
13#ifndef ENABLE_BACKWARDS_COMPATIBILITY
16#include "TrackUtil/Helix.h"
17#include "TrkReco/TRunge.h"
18#include "TrkReco/RkFitMaterial.h"
19#include "TrkReco/RkFitCylinder.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++){
40 x = track.
helix().
x((dPhi[
n[0]] + dPhi[
n[1]]) * .5);
45 return fabs(track.
helix().
radius() * (dPhi[
n[0]] - dPhi[
n[1]])
46 * sqrt(1 + tanl * tanl));
55 const double ro = sqrt(point.x()*point.x()+point.y()*point.y());
61 if(dPhi[0] == 0)
return -1;
63 if(dPhi[1] == 0)
return -1;
72 for(
int i = 0; i < 4 && j < 2; i++){
79 x = track.
helix().
x((dPhi[
n[0]] + dPhi[
n[1]]) * .5);
83 return fabs(track.
helix().
radius() * (dPhi[
n[0]] - dPhi[
n[1]])
84 * sqrt(1 + tanl * tanl));
108 return (r >=
ri_ - FLT_EPSILON &&
109 r <=
ro_ + FLT_EPSILON &&
110 z >=
zb_ - FLT_EPSILON &&
111 z <=
zf_ + FLT_EPSILON);
121 return (r <=
ro_ + FLT_EPSILON &&
122 z >=
zb_ - FLT_EPSILON &&
123 z <=
zf_ + FLT_EPSILON);
HepGeom::Point3D< double > HepPoint3D
HepPoint3D x(double dPhi=0.) const
returns position after rotating angle dPhi in phi direction.
double radius(void) const
returns radious of helix.
bool isInside2(const HepPoint3D &x) const
const RkFitMaterial * material_
bool isInside(const HepPoint3D &x) const
Check if the position x is inside the current cylinder.
void updateTrack(TRunge &track, double y[6]) const
double intersect(TRunge &track, HepPoint3D &x) const
Find intersection with Helix.
A class to represent a track in tracking.
Helix helix(void) const
returns helix class
void eloss(double path, const RkFitMaterial *material, double mass, double y[6], int index) const
double intersect_xy_plane(double z) const
double intersect_cylinder(double r) const