BOSS 7.0.8
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.
 

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.
Definition: KalFitElement.h:28
const KalFitMaterial & material(void) const
Return Material of which Element is made.
Definition: KalFitElement.h:52

◆ ~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 90 of file KalFitElement.cxx.

91{}

◆ asso_rphi() [2/2]

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

Definition at line 87 of file KalFitElement.cxx.

88{}

◆ intersect() [1/2]

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

Find intersection with Helix.

Implemented in KalFitCylinder.

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

◆ intersect() [2/2]

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 98 of file KalFitElement.cxx.

99{
100 loss_ = i;
101}
static int loss_
Definition: KalFitElement.h:32

◆ loss() [2/2]

int KalFitElement::loss ( void  )
static

◆ material()

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

Return Material of which Element is made.

Definition at line 52 of file KalFitElement.h.

53 {
54 return *material_;
55 }

◆ muls() [1/2]

void KalFitElement::muls ( int  i)
static

Definition at line 93 of file KalFitElement.cxx.

94{
95 muls_ = i;
96}
static int muls_
Flags.
Definition: KalFitElement.h:31

◆ muls() [2/2]

int KalFitElement::muls ( void  )
static

◆ operator<()

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

Operator.

Definition at line 71 of file KalFitElement.h.

72 {
73 return radius() < a.radius();
74 }
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()

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_alreadyfound()

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_rphi()

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}

Member Data Documentation

◆ loss_

int KalFitElement::loss_
staticprotected

Definition at line 32 of file KalFitElement.h.

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

◆ material_

const KalFitMaterial* KalFitElement::material_
protected

Material of this element.

Definition at line 28 of file KalFitElement.h.

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

◆ muls_

int KalFitElement::muls_
staticprotected

Flags.

Definition at line 31 of file KalFitElement.h.

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


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