KalFitElement Class Reference

#include <KalFitElement.h>

Inheritance diagram for KalFitElement:

KalFitCylinder List of all members.

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 ( const KalFitMaterial material  )  [inline]

Constructor.

Definition at line 36 of file KalFitElement.h.

00037     : material_(material)
00038   {}

virtual KalFitElement::~KalFitElement (  )  [inline, virtual]

Destructor.

Definition at line 41 of file KalFitElement.h.

00041 {}


Member Function Documentation

void KalFitElement::asso_rphi ( KalFitTrack track  )  [virtual]

Definition at line 90 of file KalFitElement.cxx.

00091 {}

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

Definition at line 87 of file KalFitElement.cxx.

00088 {}

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

Implemented in KalFitCylinder.

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

void KalFitElement::loss ( int  i  )  [static]

Definition at line 98 of file KalFitElement.cxx.

References loss_.

00099 {
00100   loss_ = i;
00101 }

int KalFitElement::loss ( void   )  [static]

Definition at line 108 of file KalFitElement.cxx.

References loss_.

Referenced by KalFitAlg::filter_fwd_anal(), KalFitAlg::filter_fwd_calib(), KalFitAlg::initialize(), KalFitAlg::smoother_anal(), and KalFitAlg::smoother_calib().

00109 {
00110   return loss_;
00111 }

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

Return Material of which Element is made.

Definition at line 52 of file KalFitElement.h.

References material_.

00053   {
00054     return *material_;
00055   }

void KalFitElement::muls ( int  i  )  [static]

Definition at line 93 of file KalFitElement.cxx.

References muls_.

00094 {
00095   muls_ = i;
00096 }

int KalFitElement::muls ( void   )  [static]

Definition at line 103 of file KalFitElement.cxx.

References muls_.

Referenced by KalFitAlg::filter_fwd_anal(), KalFitAlg::filter_fwd_calib(), KalFitAlg::initialize(), KalFitAlg::smoother_anal(), and KalFitAlg::smoother_calib().

00104 {
00105   return muls_;
00106 }

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

Operator.

Definition at line 71 of file KalFitElement.h.

References radius().

00072   {
00073     return radius() < a.radius();
00074   }

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

Return distance in r-phi plane.

Implemented in KalFitCylinder.

Referenced by operator<().

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.

References KalFitTrack::eloss(), intersect(), loss_, material_, KalFitTrack::ms(), muls_, KalFitTrack::pivot_numf(), and x.

00026 {
00027 
00028   HepPoint3D x;
00029   double path = intersect(track, x);
00030 
00031   //cout<<"KalFitElement: path= "<<path<<" intersect x "<<x<<endl;
00032   
00033   if(path > 0){
00034     // move pivot
00035 
00036     //std::cout<<"KalFitElement: track helix1= "<<track.a()<<std::endl;
00037     //std::cout<<" KalFitTrack::numf_: "<<KalFitTrack::numf_<<std::endl;
00038     //std::cout<<" KalFitTrack::muls_: "<<muls_<<std::endl;
00039     //std::cout<<" KalFitTrack::loss_: "<<loss_<<std::endl;
00040     
00041     track.pivot_numf(x);
00042   
00043     //std::cout<<"KalFitElement: track helix2= "<<track.a()<<std::endl;
00044   
00045     
00046     // multiple scattering and energy loss
00047     int index_element(index);
00048     if (index_element==0) index_element=1;
00049     if(muls_) track.ms(path, *material_, index_element);
00050     if(loss_) track.eloss(path, *material_, index_element);
00051 
00052     //cout<<"KalFitElement: track helix3= "<<track.a()<<endl;
00053   }
00054   //cout<<"KalfitElement: track helix2= "<<track.a()<<endl;
00055 }

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

Definition at line 71 of file KalFitElement.cxx.

References KalFitTrack::eloss(), intersect(), loss_, material_, KalFitTrack::ms(), muls_, KalFitTrack::pivot_numf(), and x.

00073 {
00074   HepPoint3D x;
00075   double path = intersect(track, x);
00076   if(path > 0){
00077     // move pivot
00078     track.pivot_numf(x);
00079 
00080     // multiple scattering and energy loss
00081     if(muls_) track.ms(path, *material_, index);
00082     if(loss_) track.eloss(path, *material_, index);
00083   }
00084 }

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

Definition at line 57 of file KalFitElement.cxx.

References KalFitTrack::eloss(), intersect(), loss_, material_, KalFitTrack::ms(), muls_, KalFitTrack::pivot_numf(), and x.

00058 {
00059   HepPoint3D x;
00060   double path = intersect(track, x);
00061   if(path > 0){
00062     // move pivot
00063     track.pivot_numf(x);
00064 
00065     // multiple scattering and energy loss
00066     if(muls_) track.ms(path, *material_, index);
00067     if(loss_) track.eloss(path, *material_, index);
00068   }
00069 }


Member Data Documentation

int KalFitElement::loss_ [static, protected]

Definition at line 32 of file KalFitElement.h.

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

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

int KalFitElement::muls_ [static, protected]

Flags.

Definition at line 31 of file KalFitElement.h.

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


Generated on Tue Nov 29 23:19:54 2016 for BOSS_7.0.2 by  doxygen 1.4.7