BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/KalFitAlg/KalFitAlg-00-07-55-p03/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/**
22 * Element is a base class which represents an element of detector
23 */
24class KalFitElement {
25protected:
26
27 /// Material of this element
29
30 /// Flags
31 static int muls_;
32 static int loss_;
33
34public:
35 /// Constructor
38 {}
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 /// Return Material of which Element is made
52 const KalFitMaterial& material(void) const
53 {
54 return *material_;
55 }
56
57 /// Return distance in r-phi plane
58 virtual double radius(void) const = 0;
59
60 /// Update track according the material properties of the current element
61 virtual void updateTrack(KalFitTrack& track, int index);
62 virtual void updateTrack_rphi(KalFitTrack& track, int index);
63
65 int index);
66 ///
67 virtual void asso_rphi(Lpav& circ, KalFitTrack& track);
68 virtual void asso_rphi(KalFitTrack& track);
69
70 /// Operator
71 bool operator < (const KalFitElement& a) const
72 {
73 return radius() < a.radius();
74 }
75
76 static int muls(void);
77 static int loss(void);
78
79 static void muls(int i);
80 static void loss(int i);
81};
82
83#endif
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)
virtual void asso_rphi(Lpav &circ, KalFitTrack &track)
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.
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 double radius(void) const =0
Return distance in r-phi plane.
Description of a track class (<- Helix.cc)