BOSS 8.0.0
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 (KalmanFit::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 (KalmanFit::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 (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)
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 23 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitElement.h.

Constructor & Destructor Documentation

◆ KalFitElement() [1/3]

KalFitElement::KalFitElement ( const KalFitMaterial * material)
inline

Constructor.

Definition at line 34 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitElement.h.

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

Referenced by KalFitCylinder::KalFitCylinder(), and operator<().

◆ ~KalFitElement() [1/3]

virtual KalFitElement::~KalFitElement ( )
inlinevirtual

Destructor.

Definition at line 37 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitElement.h.

37{}

◆ KalFitElement() [2/3]

KalFitElement::KalFitElement ( const KalFitMaterial * material)
inline

◆ ~KalFitElement() [2/3]

virtual KalFitElement::~KalFitElement ( )
inlinevirtual

Destructor.

Definition at line 37 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitElement.h.

37{}

◆ KalFitElement() [3/3]

KalFitElement::KalFitElement ( const KalFitMaterial * material)
inline

Constructor.

Definition at line 34 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitElement.h.

34: material_( material ) {}

◆ ~KalFitElement() [3/3]

virtual KalFitElement::~KalFitElement ( )
inlinevirtual

Destructor.

Definition at line 37 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitElement.h.

37{}

Member Function Documentation

◆ asso_rphi() [1/6]

void KalFitElement::asso_rphi ( KalFitTrack & track)
virtual

Definition at line 86 of file KalFitElement.cxx.

86{}

◆ asso_rphi() [2/6]

virtual void KalFitElement::asso_rphi ( KalFitTrack & track)
virtual

◆ asso_rphi() [3/6]

virtual void KalFitElement::asso_rphi ( KalFitTrack & track)
virtual

◆ asso_rphi() [4/6]

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

◆ asso_rphi() [5/6]

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

◆ asso_rphi() [6/6]

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

◆ intersect() [1/6]

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

Find intersection with Helix.

Implemented in KalFitCylinder, KalFitCylinder, and KalFitCylinder.

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

◆ intersect() [2/6]

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

Find intersection with Helix.

Implemented in KalFitCylinder, KalFitCylinder, and KalFitCylinder.

◆ intersect() [3/6]

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

Find intersection with Helix.

Implemented in KalFitCylinder, KalFitCylinder, and KalFitCylinder.

◆ intersect() [4/6]

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

◆ intersect() [5/6]

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

◆ intersect() [6/6]

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

◆ loss() [1/6]

void KalFitElement::loss ( int i)
static

◆ loss() [2/6]

void KalFitElement::loss ( int i)
static

◆ loss() [3/6]

void KalFitElement::loss ( int i)
static

◆ loss() [4/6]

int KalFitElement::loss ( void )
static

◆ loss() [5/6]

int KalFitElement::loss ( void )
static

◆ loss() [6/6]

int KalFitElement::loss ( void )
static

◆ material() [1/3]

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

Return Material of which Element is made.

Definition at line 46 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitElement.h.

46{ return *material_; }

Referenced by KalFitCylinder::KalFitCylinder(), and KalFitElement().

◆ material() [2/3]

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

Return Material of which Element is made.

Definition at line 46 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitElement.h.

46{ return *material_; }

◆ material() [3/3]

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

Return Material of which Element is made.

Definition at line 46 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitElement.h.

46{ return *material_; }

◆ muls() [1/6]

void KalFitElement::muls ( int i)
static

Definition at line 88 of file KalFitElement.cxx.

◆ muls() [2/6]

void KalFitElement::muls ( int i)
static

◆ muls() [3/6]

void KalFitElement::muls ( int i)
static

◆ muls() [4/6]

int KalFitElement::muls ( void )
static

◆ muls() [5/6]

int KalFitElement::muls ( void )
static

◆ muls() [6/6]

int KalFitElement::muls ( void )
static

◆ operator<() [1/3]

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

Operator.

Definition at line 61 of file InstallArea/x86_64-el9-gcc13-dbg/include/KalFitAlg/KalFitElement.h.

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

◆ operator<() [2/3]

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

Operator.

Definition at line 61 of file InstallArea/x86_64-el9-gcc13-opt/include/KalFitAlg/KalFitElement.h.

61{ return radius() < a.radius(); }

◆ operator<() [3/3]

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

Operator.

Definition at line 61 of file Reconstruction/KalFitAlg/include/KalFitAlg/KalFitElement.h.

61{ return radius() < a.radius(); }

◆ radius() [1/3]

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

Return distance in r-phi plane.

Implemented in KalFitCylinder, KalFitCylinder, and KalFitCylinder.

Referenced by operator<().

◆ radius() [2/3]

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

Return distance in r-phi plane.

Implemented in KalFitCylinder, KalFitCylinder, and KalFitCylinder.

◆ radius() [3/3]

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

Return distance in r-phi plane.

Implemented in KalFitCylinder, KalFitCylinder, and KalFitCylinder.

◆ updateTrack() [1/3]

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.

25 {
26
28 double path = intersect( track, x );
29
30 // cout<<"KalFitElement: path= "<<path<<" intersect x "<<x<<endl;
31
32 if ( path > 0 )
33 {
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 // multiple scattering and energy loss
46 int index_element( index );
47 if ( index_element == 0 ) index_element = 1;
48 if ( muls_ ) track.ms( path, *material_, index_element );
49 if ( loss_ ) track.eloss( path, *material_, index_element );
50
51 // cout<<"KalFitElement: track helix3= "<<track.a()<<endl;
52 }
53 // cout<<"KalfitElement: track helix2= "<<track.a()<<endl;
54}
HepGeom::Point3D< double > HepPoint3D
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/3]

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

Update track according the material properties of the current element.

◆ updateTrack() [3/3]

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

Update track according the material properties of the current element.

◆ updateTrack_alreadyfound() [1/3]

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

Definition at line 70 of file KalFitElement.cxx.

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

◆ updateTrack_alreadyfound() [2/3]

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

◆ updateTrack_alreadyfound() [3/3]

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

◆ updateTrack_rphi() [1/3]

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

Definition at line 56 of file KalFitElement.cxx.

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

◆ updateTrack_rphi() [2/3]

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

◆ updateTrack_rphi() [3/3]

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

Member Data Documentation

◆ loss_

int KalFitElement::loss_
staticprotected

◆ material_

const KalFitMaterial * KalFitElement::material_
protected

◆ muls_

int KalFitElement::muls_
staticprotected

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