BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/KalFitAlg/KalFitAlg-00-07-55-p03/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 "KalFitAlg/KalFitElement.h"
15#include "CLHEP/Geometry/Point3D.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
31 double radius, double thick,
32 double length, double z0)
34 {
35 ri_ = radius;
36 ro_ = radius + thick;
37 zf_ = z0 + length * .5;
38 zb_ = z0 - length * .5;
39 }
40
41 /// Find intersection with Helix
42 virtual double intersect(const KalFitTrack& track,
43 HepPoint3D& x) const;
44
45 virtual double intersect(const KalFitTrack& track,
46 HepPoint3D& x, const HepPoint3D& point) const;
47
48 /// Check if the position x is inside the current cylinder
49 bool isInside(const HepPoint3D& x) const;
50 bool isInside2(const HepPoint3D& x) const;
51
52 /// Extract radius of the cylinder
53 virtual double radius(void) const { return ro_; }
54};
55#endif
56
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.
Description of a track class (<- Helix.cc)