BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/TrkReco/include/TrkReco/RkFitCylinder.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------
2// File from RkFit module
3//
4// Filename : RkFitCylinder.h
5//------------------------------------------------------------------------
6// Description :
7// Cylinder is an Element whose shape is a cylinder.
8//------------------------------------------------------------------------
9// Modif :
10//------------------------------------------------------------------------
11
12#ifndef _DEFINE_CYLINDER_H_
13#define _DEFINE_CYLINDER_H_
14#include "CLHEP/Geometry/Point3D.h"
15#ifndef ENABLE_BACKWARDS_COMPATIBILITY
16typedef HepGeom::Point3D<double> HepPoint3D;
17#endif
18#include "TrkReco/RkFitMaterial.h"
19#include "TrkReco/TRunge.h"
20/// Cylinder is an Element whose shape is a cylinder.
21class RkFitCylinder {
22protected:
23 double ro_;
24 double ri_;
25 double zf_;
26 double zb_;
27
28public:
30 /// Constructor
31 RkFitCylinder( const RkFitMaterial* material, double radius, double thick, double length,
32 double z0 ) {
33 material_ = material;
34 ri_ = radius;
35 ro_ = radius + thick;
36 zf_ = z0 + length * .5;
37 zb_ = z0 - length * .5;
38 }
39
40 /// Find intersection with Helix
41 double intersect( TRunge& track, HepPoint3D& x ) const;
42
43 double intersect( TRunge& track, HepPoint3D& x, const HepPoint3D& point ) const;
44 void updateTrack( TRunge& track, double y[6] ) const;
45
46 /// Check if the position x is inside the current cylinder
47 bool isInside( const HepPoint3D& x ) const;
48 bool isInside2( const HepPoint3D& x ) const;
49
50 /// Extract radius of the cylinder
51 virtual double radius( void ) const { return ro_; }
52};
53#endif
HepGeom::Point3D< double > HepPoint3D
HepGeom::Point3D< double > HepPoint3D
Cylinder is an Element whose shape is a cylinder.
double intersect(TRunge &track, HepPoint3D &x, const HepPoint3D &point) const
RkFitCylinder(const RkFitMaterial *material, double radius, double thick, double length, double z0)
Constructor.
bool isInside2(const HepPoint3D &x) const
bool isInside(const HepPoint3D &x) const
Check if the position x is inside the current cylinder.
virtual double radius(void) const
Extract radius of the 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.