CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
KalFitElement Class Referenceabstract

#include <KalFitElement.h>

+ Inheritance diagram for KalFitElement:

Public Member Functions

 KalFitElement (const KalFitMaterial *material)
 Constructor.
 
virtual ~KalFitElement ()
 Destructor.
 
virtual double intersect (const KalFitTrack &track, HepPoint3D &x) const =0
 Find intersection with Helix.
 
virtual double intersect (const KalFitTrack &track, HepPoint3D &x, const HepPoint3D &point) const =0
 
virtual double intersect (const KalFitTrack &track, HepPoint3D &x, const double ri, const double ro) const =0
 
const KalFitMaterialmaterial (void) const
 Return Material of which Element is made.
 
virtual double radius (void) const =0
 Return distance in r-phi plane.
 
virtual void updateTrack (KalFitTrack &track, int index)
 Update track according the material properties of the current element.
 
virtual void updateTrack (KalFitTrack &track, int index, const double ri, const double ro)
 
virtual void updateTrack_rphi (KalFitTrack &track, int index)
 
virtual void updateTrack_alreadyfound (KalFitTrack &track, int index)
 
virtual void asso_rphi (KalmanFit::Lpav &circ, KalFitTrack &track)
 
virtual void asso_rphi (KalFitTrack &track)
 
bool operator< (const KalFitElement &a) const
 Operator.
 

Static Public Member Functions

static int muls (void)
 
static int loss (void)
 
static void muls (int i)
 
static void loss (int i)
 

Protected Attributes

const KalFitMaterialmaterial_
 Material of this element.
 

Static Protected Attributes

static int muls_
 Flags.
 
static int loss_
 

Detailed Description

Element is a base class which represents an element of detector

Definition at line 24 of file KalFitElement.h.

Constructor & Destructor Documentation

◆ KalFitElement()

KalFitElement::KalFitElement ( const KalFitMaterial * material)
inline

Constructor.

Definition at line 36 of file KalFitElement.h.

38 {}
const KalFitMaterial * material_
Material of this element.
const KalFitMaterial & material(void) const
Return Material of which Element is made.

◆ ~KalFitElement()

virtual KalFitElement::~KalFitElement ( )
inlinevirtual

Destructor.

Definition at line 41 of file KalFitElement.h.

41{}

Member Function Documentation

◆ asso_rphi() [1/2]

void KalFitElement::asso_rphi ( KalFitTrack & track)
virtual

Definition at line 106 of file KalFitElement.cxx.

107{}

◆ asso_rphi() [2/2]

void KalFitElement::asso_rphi ( KalmanFit::Lpav & circ,
KalFitTrack & track )
virtual

Definition at line 103 of file KalFitElement.cxx.

104{}

◆ intersect() [1/3]

virtual double KalFitElement::intersect ( const KalFitTrack & track,
HepPoint3D & x ) const
pure virtual

Find intersection with Helix.

Implemented in KalFitCylinder.

Referenced by updateTrack(), updateTrack(), updateTrack_alreadyfound(), and updateTrack_rphi().

◆ intersect() [2/3]

virtual double KalFitElement::intersect ( const KalFitTrack & track,
HepPoint3D & x,
const double ri,
const double ro ) const
pure virtual

Implemented in KalFitCylinder.

◆ intersect() [3/3]

virtual double KalFitElement::intersect ( const KalFitTrack & track,
HepPoint3D & x,
const HepPoint3D & point ) const
pure virtual

Implemented in KalFitCylinder.

◆ loss() [1/2]

void KalFitElement::loss ( int i)
static

Definition at line 114 of file KalFitElement.cxx.

115{
116 loss_ = i;
117}
static int loss_

◆ loss() [2/2]

◆ material()

const KalFitMaterial & KalFitElement::material ( void ) const
inline

Return Material of which Element is made.

Definition at line 55 of file KalFitElement.h.

56 {
57 return *material_;
58 }

◆ muls() [1/2]

void KalFitElement::muls ( int i)
static

Definition at line 109 of file KalFitElement.cxx.

110{
111 muls_ = i;
112}
static int muls_
Flags.

◆ muls() [2/2]

◆ operator<()

bool KalFitElement::operator< ( const KalFitElement & a) const
inline

Operator.

Definition at line 77 of file KalFitElement.h.

78 {
79 return radius() < a.radius();
80 }
virtual double radius(void) const =0
Return distance in r-phi plane.

◆ radius()

virtual double KalFitElement::radius ( void ) const
pure virtual

Return distance in r-phi plane.

Implemented in KalFitCylinder.

Referenced by operator<().

◆ updateTrack() [1/2]

void KalFitElement::updateTrack ( KalFitTrack & track,
int index )
virtual

Update track according the material properties of the current element.

Definition at line 25 of file KalFitElement.cxx.

26{
27
29 double path = intersect(track, x);
30
31 //cout<<"KalFitElement: path= "<<path<<" intersect x "<<x<<endl;
32
33 if(path > 0){
34 // move pivot
35
36 //std::cout<<"KalFitElement: track helix1= "<<track.a()<<std::endl;
37 //std::cout<<" KalFitTrack::numf_: "<<KalFitTrack::numf_<<std::endl;
38 //std::cout<<" KalFitTrack::muls_: "<<muls_<<std::endl;
39 //std::cout<<" KalFitTrack::loss_: "<<loss_<<std::endl;
40
41 track.pivot_numf(x);
42
43 //std::cout<<"KalFitElement: track helix2= "<<track.a()<<std::endl;
44
45
46 // multiple scattering and energy loss
47 int index_element(index);
48 if (index_element==0) index_element=1;
49 if(muls_) track.ms(path, *material_, index_element);
50 if(loss_) track.eloss(path, *material_, index_element);
51
52 //cout<<"KalFitElement: track helix3= "<<track.a()<<endl;
53 }
54 //cout<<"KalfitElement: track helix2= "<<track.a()<<endl;
55}
Double_t x[10]
virtual double intersect(const KalFitTrack &track, HepPoint3D &x) const =0
Find intersection with Helix.
const HepPoint3D & pivot_numf(const HepPoint3D &newPivot)
Sets pivot position in a given mag field.
void ms(double path, const KalFitMaterial &m, int index)
void eloss(double path, const KalFitMaterial &m, int index)
Calculate total energy lost in material.

◆ updateTrack() [2/2]

void KalFitElement::updateTrack ( KalFitTrack & track,
int index,
const double ri,
const double ro )
virtual

Definition at line 57 of file KalFitElement.cxx.

58{
59
61 double path = intersect(track, x,ri,ro);
62 if(path > 0){
63 // move pivot
64 track.pivot_numf(x);
65
66 // multiple scattering and energy loss
67 int index_element(index);
68 if (index_element==0) index_element=1;
69 if(muls_) track.ms(path, *material_, index_element);
70 if(loss_) track.eloss(path, *material_, index_element);
71 }
72}

◆ updateTrack_alreadyfound()

void KalFitElement::updateTrack_alreadyfound ( KalFitTrack & track,
int index )
virtual

Definition at line 87 of file KalFitElement.cxx.

89{
91 double path = intersect(track, x);
92 if(path > 0){
93 // move pivot
94 track.pivot_numf(x);
95
96 // multiple scattering and energy loss
97 if(muls_) track.ms(path, *material_, index);
98 if(loss_) track.eloss(path, *material_, index);
99 }
100}

◆ updateTrack_rphi()

void KalFitElement::updateTrack_rphi ( KalFitTrack & track,
int index )
virtual

Definition at line 73 of file KalFitElement.cxx.

74{
76 double path = intersect(track, x);
77 if(path > 0){
78 // move pivot
79 track.pivot_numf(x);
80
81 // multiple scattering and energy loss
82 if(muls_) track.ms(path, *material_, index);
83 if(loss_) track.eloss(path, *material_, index);
84 }
85}

Member Data Documentation

◆ loss_

int KalFitElement::loss_
staticprotected

◆ material_

const KalFitMaterial* KalFitElement::material_
protected

Material of this element.

Definition at line 28 of file KalFitElement.h.

Referenced by material(), updateTrack(), updateTrack(), updateTrack_alreadyfound(), and updateTrack_rphi().

◆ muls_

int KalFitElement::muls_
staticprotected

Flags.

Definition at line 31 of file KalFitElement.h.

Referenced by muls(), muls(), updateTrack(), updateTrack(), updateTrack_alreadyfound(), and updateTrack_rphi().


The documentation for this class was generated from the following files: