BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/KalFitAlg/include/KalFitAlg/KalFitElement.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------
2// File from KalFit module
3//
4// Filename : KalFitElement.h
5//------------------------------------------------------------------------
6// Description :
7// Element is a base class which represents an element of detector
8//
9//------------------------------------------------------------------------
10// Modif :
11//------------------------------------------------------------------------
12#ifndef _DEFINE_ELEMENT_H_
13#define _DEFINE_ELEMENT_H_
14
15#include "KalFitAlg/lpav/Lpav.h" // Use for first circle fit....
16
17class KalFitMaterial;
18class KalFitTrack;
19
20/**
21 * Element is a base class which represents an element of detector
22 */
23class KalFitElement {
24protected:
25 /// Material of this element
26 const KalFitMaterial* material_;
27
28 /// Flags
29 static int muls_;
30 static int loss_;
31
32public:
33 /// Constructor
35
36 /// Destructor
37 virtual ~KalFitElement() {}
38
39 /// Find intersection with Helix
40 virtual double intersect( const KalFitTrack& track, HepPoint3D& x ) const = 0;
41
42 virtual double intersect( const KalFitTrack& track, HepPoint3D& x,
43 const HepPoint3D& point ) const = 0;
44
45 /// Return Material of which Element is made
46 const KalFitMaterial& material( void ) const { return *material_; }
47
48 /// Return distance in r-phi plane
49 virtual double radius( void ) const = 0;
50
51 /// Update track according the material properties of the current element
52 virtual void updateTrack( KalFitTrack& track, int index );
53 virtual void updateTrack_rphi( KalFitTrack& track, int index );
54
55 virtual void updateTrack_alreadyfound( KalFitTrack& track, int index );
56 ///
57 virtual void asso_rphi( KalmanFit::Lpav& circ, KalFitTrack& track );
58 virtual void asso_rphi( KalFitTrack& track );
59
60 /// Operator
61 bool operator<( const KalFitElement& a ) const { return radius() < a.radius(); }
62
63 static int muls( void );
64 static int loss( void );
65
66 static void muls( int i );
67 static void loss( int i );
68};
69
70#endif
HepGeom::Point3D< double > HepPoint3D
const KalFitMaterial & material(void) const
Return Material of which Element is made.
virtual void updateTrack_rphi(KalFitTrack &track, int index)
static int muls(void)
static int loss(void)
const KalFitMaterial * material_
Material of this element.
bool operator<(const KalFitElement &a) const
Operator.
virtual void updateTrack_alreadyfound(KalFitTrack &track, int index)
virtual double intersect(const KalFitTrack &track, HepPoint3D &x) const =0
Find intersection with Helix.
KalFitElement(const KalFitMaterial *material)
Constructor.
static void muls(int i)
static void loss(int i)
virtual void updateTrack(KalFitTrack &track, int index)
Update track according the material properties of the current element.
virtual void asso_rphi(KalFitTrack &track)
virtual double intersect(const KalFitTrack &track, HepPoint3D &x, const HepPoint3D &point) const =0
virtual void asso_rphi(KalmanFit::Lpav &circ, KalFitTrack &track)
virtual double radius(void) const =0
Return distance in r-phi plane.
Description of a track class (<- Helix.cc).