BOSS 7.0.2
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
 
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_rphi (KalFitTrack &track, int index)
 
virtual void updateTrack_alreadyfound (KalFitTrack &track, int index)
 
virtual void asso_rphi (Lpav &circ, KalFitTrack &track)
 
virtual void asso_rphi (KalFitTrack &track)
 
bool operator< (const KalFitElement &a) const
 Operator.
 
 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
 
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_rphi (KalFitTrack &track, int index)
 
virtual void updateTrack_alreadyfound (KalFitTrack &track, int index)
 
virtual void asso_rphi (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)
 
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 InstallArea/include/KalFitAlg/KalFitAlg/KalFitElement.h.

Constructor & Destructor Documentation

◆ KalFitElement() [1/2]

KalFitElement::KalFitElement ( const KalFitMaterial material)
inline

Constructor.

Definition at line 36 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitElement.h.

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

◆ ~KalFitElement() [1/2]

virtual KalFitElement::~KalFitElement ( )
inlinevirtual

Destructor.

Definition at line 41 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitElement.h.

41{}

◆ KalFitElement() [2/2]

KalFitElement::KalFitElement ( const KalFitMaterial material)
inline

◆ ~KalFitElement() [2/2]

virtual KalFitElement::~KalFitElement ( )
inlinevirtual

Member Function Documentation

◆ asso_rphi() [1/4]

void KalFitElement::asso_rphi ( KalFitTrack track)
virtual

Definition at line 90 of file KalFitElement.cxx.

91{}

◆ asso_rphi() [2/4]

virtual void KalFitElement::asso_rphi ( KalFitTrack track)
virtual

◆ asso_rphi() [3/4]

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

Definition at line 87 of file KalFitElement.cxx.

88{}

◆ asso_rphi() [4/4]

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

◆ intersect() [1/4]

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

Find intersection with Helix.

Implemented in KalFitCylinder, and KalFitCylinder.

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

◆ intersect() [2/4]

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

Find intersection with Helix.

Implemented in KalFitCylinder, and KalFitCylinder.

◆ intersect() [3/4]

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

Implemented in KalFitCylinder, and KalFitCylinder.

◆ intersect() [4/4]

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

Implemented in KalFitCylinder, and KalFitCylinder.

◆ loss() [1/4]

void KalFitElement::loss ( int  i)
static

Definition at line 98 of file KalFitElement.cxx.

◆ loss() [2/4]

static void KalFitElement::loss ( int  i)
static

◆ loss() [3/4]

int KalFitElement::loss ( void  )
static

◆ loss() [4/4]

static int KalFitElement::loss ( void  )
static

◆ material() [1/2]

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

Return Material of which Element is made.

Definition at line 52 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitElement.h.

53 {
54 return *material_;
55 }

◆ material() [2/2]

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

Return Material of which Element is made.

Definition at line 52 of file Reconstruction/KalFitAlg/KalFitAlg-00-07-55-p03/KalFitAlg/KalFitElement.h.

53 {
54 return *material_;
55 }

◆ muls() [1/4]

void KalFitElement::muls ( int  i)
static

Definition at line 93 of file KalFitElement.cxx.

◆ muls() [2/4]

static void KalFitElement::muls ( int  i)
static

◆ muls() [3/4]

int KalFitElement::muls ( void  )
static

◆ muls() [4/4]

static int KalFitElement::muls ( void  )
static

◆ operator<() [1/2]

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

Operator.

Definition at line 71 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitElement.h.

72 {
73 return radius() < a.radius();
74 }
virtual double radius(void) const =0
Return distance in r-phi plane.

◆ operator<() [2/2]

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

Operator.

Definition at line 71 of file Reconstruction/KalFitAlg/KalFitAlg-00-07-55-p03/KalFitAlg/KalFitElement.h.

72 {
73 return radius() < a.radius();
74 }

◆ radius() [1/2]

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

Return distance in r-phi plane.

Implemented in KalFitCylinder, and KalFitCylinder.

Referenced by operator<().

◆ radius() [2/2]

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

Return distance in r-phi plane.

Implemented in KalFitCylinder, and KalFitCylinder.

◆ 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]

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

Update track according the material properties of the current element.

◆ updateTrack_alreadyfound() [1/2]

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

Definition at line 71 of file KalFitElement.cxx.

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

◆ updateTrack_alreadyfound() [2/2]

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

◆ updateTrack_rphi() [1/2]

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

Definition at line 57 of file KalFitElement.cxx.

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

◆ updateTrack_rphi() [2/2]

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

Member Data Documentation

◆ loss_

int KalFitElement::loss_
staticprotected

◆ material_

const KalFitMaterial * KalFitElement::material_
protected

Material of this element.

Definition at line 28 of file InstallArea/include/KalFitAlg/KalFitAlg/KalFitElement.h.

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

◆ muls_

int KalFitElement::muls_
staticprotected

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