BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
VertexFitBField Class Reference

#include <BField.h>

Public Member Functions

 ~VertexFitBField ()
 
double getBFieldZ (const HepPoint3D &vtx)
 
double getBFieldZRef ()
 
double getCBz (const HepVector &vtx, const HepVector &trackPosition)
 

Static Public Member Functions

static VertexFitBFieldinstance ()
 

Detailed Description

Constructor & Destructor Documentation

◆ ~VertexFitBField()

VertexFitBField::~VertexFitBField ( )
inline

Member Function Documentation

◆ getBFieldZ()

double VertexFitBField::getBFieldZ ( const HepPoint3D vtx)

Definition at line 47 of file Analysis/VertexFit/VertexFit-00-02-95/src/BField.cxx.

47 {
48 HepVector3D vector(0.0, 0.0, 0.0);
49 // fixed 2008-8-1
50 double radius = sqrt(vtx.x()*vtx.x() + vtx.y()*vtx.y());
51 if (radius < 150 && abs(vtx.z()) < 150) {
52 m_pIMF->fieldVector(10.0*vtx, vector);
53 return 1000 * vector.z(); //unit of m_BFieldZ is Tesla
54 } else {
55 return 1000 * m_pIMF->getReferField();
56 }
57}
virtual StatusCode fieldVector(const HepGeom::Point3D< double > &xyz, HepGeom::Vector3D< double > &fvec) const =0
virtual double getReferField()=0

Referenced by HTrackParameter::center(), HTrackParameter::dHdp(), HTrackParameter::dHdx(), HTrackParameter::HTrackParameter(), HTrackParameter::positionTwoHelix(), and HTrackParameter::radius().

◆ getBFieldZRef()

double VertexFitBField::getBFieldZRef ( )

Definition at line 59 of file Analysis/VertexFit/VertexFit-00-02-95/src/BField.cxx.

59 {
60 return 1000 * m_pIMF->getReferField();
61}

Referenced by FastVertexFit::addTrack(), and VFHelix::VFHelix().

◆ getCBz()

double VertexFitBField::getCBz ( const HepVector &  vtx,
const HepVector &  trackPosition 
)

Definition at line 63 of file Analysis/VertexFit/VertexFit-00-02-95/src/BField.cxx.

63 {
64 HepPoint3D Vtx(vtx[0], vtx[1], vtx[2]);
65 HepPoint3D TrkPosition(trackPosition[0], trackPosition[1], trackPosition[2]);
66
67 HepVector3D vector_vtx(0.0, 0.0, 0.0);
68 HepVector3D vector_trk(0.0, 0.0, 0.0);
69 double radius = sqrt(vtx[0]*vtx[0] + vtx[1]*vtx[1]);
70 if (radius < 150 && abs(vtx[2]) < 150) {
71 m_pIMF->fieldVector(10.0*Vtx, vector_vtx);
72 m_pIMF->fieldVector(10.0*TrkPosition, vector_trk);
73 return 1000 * alpha * (vector_vtx.z() + vector_trk.z())/2;//unit of m_BFieldZ is Tesla
74 } else {
75 return 1000 * alpha* m_pIMF->getReferField();
76 }
77}

Referenced by VertexFit::BuildVirtualParticle(), SecondVertexFit::Fit(), and VertexConstraints::UpdateConstraints().

◆ instance()


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