BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
VertexExtrapolate Class Reference

#include <VertexExtrapolate.h>

Public Member Functions

 ~VertexExtrapolate ()
 
void KalFitExt (const HepPoint3D &point, DstMdcKalTrack *kalTrack, const int pid)
 
const HepVector getHelixVector () const
 
const HepSymMatrix getErrorMatrix () const
 

Static Public Member Functions

static VertexExtrapolateinstance ()
 

Detailed Description

Definition at line 33 of file VertexExtrapolate.h.

Constructor & Destructor Documentation

◆ ~VertexExtrapolate()

VertexExtrapolate::~VertexExtrapolate ( )
inline

Definition at line 37 of file VertexExtrapolate.h.

37{}

Member Function Documentation

◆ getErrorMatrix()

const HepSymMatrix VertexExtrapolate::getErrorMatrix ( ) const
inline

Definition at line 75 of file VertexExtrapolate.h.

76{
77 return m_errorMatrix;
78}

Referenced by VertexFitRefine::Fit().

◆ getHelixVector()

const HepVector VertexExtrapolate::getHelixVector ( ) const
inline

Definition at line 70 of file VertexExtrapolate.h.

71{
72 return m_helixVector;
73}

Referenced by VertexFitRefine::Fit().

◆ instance()

VertexExtrapolate * VertexExtrapolate::instance ( )
static

Definition at line 33 of file VertexExtrapolate.cxx.

34{
35 if (m_instance == nullptr) m_instance = new VertexExtrapolate();
36 return m_instance;
37}

Referenced by VertexFitRefine::init().

◆ KalFitExt()

void VertexExtrapolate::KalFitExt ( const HepPoint3D point,
DstMdcKalTrack kalTrack,
const int  pid 
)

Definition at line 205 of file VertexExtrapolate.cxx.

207{
208 HepVector tdsHelix = kalTrack->getFHelix(pid);
209 HepSymMatrix tdsMatrix = kalTrack->getFError(pid);
210
211 HepPoint3D IP(0., 0., 0.);
212 // construct a KalFitTrack
213 KalFitTrack fitTrack(IP, tdsHelix, tdsMatrix, pid, 0, 0);
214
215 // const double radius = 7.885; // centimeter first MDC wire?
216 const double rp = point.perp();
217 // const double radius = m_BesKalmanExtWalls[m_BesKalmanExtWalls.size() - 1]
218 // .radius(); // outer radius
219 const double radius = m_BesKalmanExtWalls[0].radius(); // outer radius
220 const double dphi = fitTrack.intersect_cylinder(std::max(rp, radius));
221 const HepPoint3D lastPivot = fitTrack.x(dphi);
222 fitTrack.pivot(lastPivot);
223 if (rp <= radius) extToAnyPoint(fitTrack, point);
224
225 ///////// why pivot to IP? ///////
226 // // set the pivot back to IP
227 fitTrack.pivot(IP); // for convention?
228 setHelixVector(fitTrack.a());
229 setErrorMatrix(fitTrack.Ea());
230}
const HepSymMatrix & getFError(const int pid) const
const HepVector & getFHelix(const int pid) const
Description of a track class (<- Helix.cc)
Definition: KalFitTrack.h:35

Referenced by VertexFitRefine::Fit().


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