CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
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/**
22 * Element is a base class which represents an element of detector
23 */
25protected:
26
27 /// Material of this element
29
30 /// Flags
31 static int muls_;
32 static int loss_;
33
34public:
35 /// Constructor
39
40 /// Destructor
41 virtual ~KalFitElement(){}
42
43 /// Find intersection with Helix
44 virtual double intersect(const KalFitTrack& track,
45 HepPoint3D& x) const = 0;
46
47
48 virtual double intersect(const KalFitTrack& track,
49 HepPoint3D& x, const HepPoint3D& point) const = 0;
50
51 //Attention!!! [ri,ro] must be within [ri_,ro_]
52 virtual double intersect(const KalFitTrack& track, HepPoint3D& x, const double ri, const double ro) const=0;
53
54 /// Return Material of which Element is made
55 const KalFitMaterial& material(void) const
56 {
57 return *material_;
58 }
59
60 /// Return distance in r-phi plane
61 virtual double radius(void) const = 0;
62
63 /// Update track according the material properties of the current element
64 virtual void updateTrack(KalFitTrack& track, int index);
65
66 virtual void updateTrack(KalFitTrack& track, int index, const double ri, const double ro); //added hy Huang Zhen
67
68 virtual void updateTrack_rphi(KalFitTrack& track, int index);
69
70 virtual void updateTrack_alreadyfound(KalFitTrack& track,
71 int index);
72 ///
73 virtual void asso_rphi(KalmanFit::Lpav& circ, KalFitTrack& track);
74 virtual void asso_rphi(KalFitTrack& track);
75
76 /// Operator
77 bool operator < (const KalFitElement& a) const
78 {
79 return radius() < a.radius();
80 }
81
82 static int muls(void);
83 static int loss(void);
84
85 static void muls(int i);
86 static void loss(int i);
87};
88
89#endif
const KalFitMaterial * material_
Material of this element.
static int muls(void)
static int muls_
Flags.
const KalFitMaterial & material(void) const
Return Material of which Element is made.
static int loss_
virtual double intersect(const KalFitTrack &track, HepPoint3D &x, const double ri, const double ro) const =0
bool operator<(const KalFitElement &a) const
Operator.
virtual void updateTrack(KalFitTrack &track, int index)
Update track according the material properties of the current element.
virtual double intersect(const KalFitTrack &track, HepPoint3D &x) const =0
Find intersection with Helix.
KalFitElement(const KalFitMaterial *material)
Constructor.
static int loss(void)
virtual ~KalFitElement()
Destructor.
virtual void asso_rphi(KalmanFit::Lpav &circ, KalFitTrack &track)
virtual double intersect(const KalFitTrack &track, HepPoint3D &x, const HepPoint3D &point) const =0
virtual double radius(void) const =0
Return distance in r-phi plane.
virtual void updateTrack_rphi(KalFitTrack &track, int index)
virtual void updateTrack_alreadyfound(KalFitTrack &track, int index)
Description of a track class (<- Helix.cc)
Definition KalFitTrack.h:36