BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/KalFitAlg/include/KalFitAlg/KalFitCylinder.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------
2// File from KalFit module
3//
4// Filename : KalFitCylinder.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#include "KalFitAlg/KalFitElement.h"
16#ifndef ENABLE_BACKWARDS_COMPATIBILITY
17typedef HepGeom::Point3D<double> HepPoint3D;
18#endif
19
20/// Cylinder is an Element whose shape is a cylinder.
21class KalFitCylinder : public KalFitElement {
22protected:
23 double ro_;
24 double ri_;
25 double zf_;
26 double zb_;
27
28public:
29 /// Constructor
30 KalFitCylinder( const KalFitMaterial* material, double radius, double thick, double length,
31 double z0 )
33 ri_ = radius;
34 ro_ = radius + thick;
35 zf_ = z0 + length * .5;
36 zb_ = z0 - length * .5;
37 }
38
39 /// Find intersection with Helix
40 virtual double intersect( const KalFitTrack& track, HepPoint3D& x ) const;
41
42 virtual double intersect( const KalFitTrack& track, HepPoint3D& x,
43 const HepPoint3D& point ) const;
44
45 /// Check if the position x is inside the current cylinder
46 bool isInside( const HepPoint3D& x ) const;
47 bool isInside2( const HepPoint3D& x ) const;
48
49 /// Extract radius of the cylinder
50 virtual double radius( void ) const { return ro_; }
51};
52#endif
HepGeom::Point3D< double > HepPoint3D
HepGeom::Point3D< double > HepPoint3D
Cylinder is an Element whose shape is a cylinder.
bool isInside(const HepPoint3D &x) const
Check if the position x is inside the current cylinder.
bool isInside2(const HepPoint3D &x) const
KalFitCylinder(const KalFitMaterial *material, double radius, double thick, double length, double z0)
Constructor.
virtual double intersect(const KalFitTrack &track, HepPoint3D &x) const
Find intersection with Helix.
virtual double intersect(const KalFitTrack &track, HepPoint3D &x, const HepPoint3D &point) const
virtual double radius(void) const
Extract radius of the cylinder.
const KalFitMaterial & material(void) const
Return Material of which Element is made.
KalFitElement(const KalFitMaterial *material)
Constructor.
Description of a track class (<- Helix.cc).