BOSS 7.0.4
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)
 
 ~VertexFitBField ()
 
double getBFieldZ (const HepPoint3D &vtx)
 
double getBFieldZRef ()
 
double getCBz (const HepVector &vtx, const HepVector &trackPosition)
 

Static Public Member Functions

static VertexFitBFieldinstance ()
 
static VertexFitBFieldinstance ()
 

Detailed Description

Constructor & Destructor Documentation

◆ ~VertexFitBField() [1/2]

VertexFitBField::~VertexFitBField ( )
inline

◆ ~VertexFitBField() [2/2]

VertexFitBField::~VertexFitBField ( )
inline

Definition at line 31 of file InstallArea/include/VertexFit/VertexFit/BField.h.

31{}

Member Function Documentation

◆ getBFieldZ() [1/2]

double VertexFitBField::getBFieldZ ( const HepPoint3D vtx)

Definition at line 47 of file Analysis/VertexFit/VertexFit-00-02-82/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().

◆ getBFieldZ() [2/2]

double VertexFitBField::getBFieldZ ( const HepPoint3D vtx)

◆ getBFieldZRef() [1/2]

double VertexFitBField::getBFieldZRef ( )

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

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

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

◆ getBFieldZRef() [2/2]

double VertexFitBField::getBFieldZRef ( )

◆ getCBz() [1/2]

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

Definition at line 63 of file Analysis/VertexFit/VertexFit-00-02-82/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().

◆ getCBz() [2/2]

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

◆ instance() [1/2]

◆ instance() [2/2]

static VertexFitBField * VertexFitBField::instance ( )
inlinestatic

Definition at line 24 of file InstallArea/include/VertexFit/VertexFit/BField.h.

24 {
25 if (s_bfield == 0) {
26 s_bfield = new VertexFitBField();
27 }
28 return s_bfield;
29 }

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