BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcSegInfoAxialO Class Reference

#include <MdcSegInfoAxialO.h>

Inheritance diagram for MdcSegInfoAxialO:

Public Member Functions

 MdcSegInfoAxialO ()
 ~MdcSegInfoAxialO ()
double phi0 () const
double curv () const
double sigCurv () const
double sigPhi0 () const
bool parIsAngle (int i) const
void calcFromOrigin (const MdcSeg *parentSeg)
void calcFromOrigin (double phi, double slope, double rad, const double *inErr)
 MdcSegInfoAxialO ()
 ~MdcSegInfoAxialO ()
double phi0 () const
double curv () const
double sigCurv () const
double sigPhi0 () const
bool parIsAngle (int i) const
void calcFromOrigin (const MdcSeg *parentSeg)
void calcFromOrigin (double phi, double slope, double rad, const double *inErr)
 MdcSegInfoAxialO ()
 ~MdcSegInfoAxialO ()
double phi0 () const
double curv () const
double sigCurv () const
double sigPhi0 () const
bool parIsAngle (int i) const
void calcFromOrigin (const MdcSeg *parentSeg)
void calcFromOrigin (double phi, double slope, double rad, const double *inErr)
Public Member Functions inherited from MdcSegInfo
 MdcSegInfo ()
virtual ~MdcSegInfo ()
const double * errmat () const
const double * inverr () const
double par (int i) const
double arc () const
void plotSegInfo () const
 MdcSegInfo ()
virtual ~MdcSegInfo ()
const double * errmat () const
const double * inverr () const
double par (int i) const
double arc () const
void plotSegInfo () const
 MdcSegInfo ()
virtual ~MdcSegInfo ()
const double * errmat () const
const double * inverr () const
double par (int i) const
double arc () const
void plotSegInfo () const

Additional Inherited Members

Protected Attributes inherited from MdcSegInfo
double _par0
double _par1
double _errmat [3]
double _inverr [3]
double _arc

Detailed Description

Constructor & Destructor Documentation

◆ MdcSegInfoAxialO() [1/3]

MdcSegInfoAxialO::MdcSegInfoAxialO ( )
inline

◆ ~MdcSegInfoAxialO() [1/3]

MdcSegInfoAxialO::~MdcSegInfoAxialO ( )
inline

◆ MdcSegInfoAxialO() [2/3]

MdcSegInfoAxialO::MdcSegInfoAxialO ( )
inline

◆ ~MdcSegInfoAxialO() [2/3]

MdcSegInfoAxialO::~MdcSegInfoAxialO ( )
inline

◆ MdcSegInfoAxialO() [3/3]

MdcSegInfoAxialO::MdcSegInfoAxialO ( )
inline

◆ ~MdcSegInfoAxialO() [3/3]

MdcSegInfoAxialO::~MdcSegInfoAxialO ( )
inline

Member Function Documentation

◆ calcFromOrigin() [1/6]

void MdcSegInfoAxialO::calcFromOrigin ( const MdcSeg * parentSeg)

Definition at line 63 of file MdcSegInfoAxialO.cxx.

63 {
64 //-------------------------------------------------------------------
65 double slope = parentSeg->slope();
66 double radius = parentSeg->superlayer()->rad0();
67 double phi = parentSeg->phi();
68 const double* inErr = parentSeg->errmat();
69
70 calcFromOrigin( phi, slope, radius, inErr );
71}
void calcFromOrigin(const MdcSeg *parentSeg)

Referenced by calcFromOrigin(), and MdcSegGrouperAx::fillWithSegs().

◆ calcFromOrigin() [2/6]

void MdcSegInfoAxialO::calcFromOrigin ( const MdcSeg * parentSeg)

◆ calcFromOrigin() [3/6]

void MdcSegInfoAxialO::calcFromOrigin ( const MdcSeg * parentSeg)

◆ calcFromOrigin() [4/6]

void MdcSegInfoAxialO::calcFromOrigin ( double phi,
double slope,
double rad,
const double * inErr )

Definition at line 32 of file MdcSegInfoAxialO.cxx.

33 {
34 //------------------------------------------------------------------
35
36 if ( slope == 0. ) slope = 0.00000001;
37 double slinv = 1. / slope;
38 _par1 = slope / sqrt( 1. + radius * radius * slope * slope ); // curve
39 double temp = 1. - _par1 * _par1 * radius * radius;
40 if ( temp < 0. ) temp = 0.;
41 double dphi0ds = -radius * _par1 * sqrt( temp ) * slinv;
42 BesAngle phi0 = phi - asin( _par1 * radius );
43 _par0 = phi0.posRad();
44
45 // phi0:
46 _errmat[0] = inErr[2] * dphi0ds * dphi0ds + inErr[0] + inErr[1] * 2. * dphi0ds;
47 if ( _errmat[0] < 0. ) _errmat[0] = 0.;
48 // curv:
49 _errmat[2] = inErr[2] * _par1 * _par1 * temp * temp * slinv * slinv;
50 if ( _errmat[2] < 0. ) _errmat[2] = 0.;
51 // phi0|curv:
52 _errmat[1] = inErr[2] * _par1 * slinv * temp * dphi0ds + inErr[1] * _par1 * slinv * temp;
54 if ( error )
55 {
56 std::cout << " ErrMsg(warning) "
57 << "Failed to invert matrix -- MdcSegInfo::calcFromOrigin" << endl
58 << _errmat[0] << " " << _errmat[1] << " " << _errmat[2] << endl;
59 }
60}
int mdcTwoInv(double matrix[3], double invmat[3])

◆ calcFromOrigin() [5/6]

void MdcSegInfoAxialO::calcFromOrigin ( double phi,
double slope,
double rad,
const double * inErr )

◆ calcFromOrigin() [6/6]

void MdcSegInfoAxialO::calcFromOrigin ( double phi,
double slope,
double rad,
const double * inErr )

◆ curv() [1/3]

double MdcSegInfoAxialO::curv ( ) const
inline

◆ curv() [2/3]

double MdcSegInfoAxialO::curv ( ) const
inline

◆ curv() [3/3]

double MdcSegInfoAxialO::curv ( ) const
inline

◆ parIsAngle() [1/3]

bool MdcSegInfoAxialO::parIsAngle ( int i) const
virtual

Implements MdcSegInfo.

Definition at line 26 of file MdcSegInfoAxialO.cxx.

26 {
27 //---------------------------------------------------------------------------
28 assert( i >= 0 && i < 2 );
29 return ( 0 == i ); // i.e., 0th parameter is an angle
30}

◆ parIsAngle() [2/3]

bool MdcSegInfoAxialO::parIsAngle ( int i) const
virtual

Implements MdcSegInfo.

◆ parIsAngle() [3/3]

bool MdcSegInfoAxialO::parIsAngle ( int i) const
virtual

Implements MdcSegInfo.

◆ phi0() [1/3]

double MdcSegInfoAxialO::phi0 ( ) const
inline

◆ phi0() [2/3]

double MdcSegInfoAxialO::phi0 ( ) const
inline

◆ phi0() [3/3]

double MdcSegInfoAxialO::phi0 ( ) const
inline

◆ sigCurv() [1/3]

double MdcSegInfoAxialO::sigCurv ( ) const

Definition at line 80 of file MdcSegInfoAxialO.cxx.

80 {
81 //-------------------------------------------------------------------
82 return sqrt( _errmat[2] );
83}

Referenced by MdcSegGrouperAx::incompWithSeg().

◆ sigCurv() [2/3]

double MdcSegInfoAxialO::sigCurv ( ) const

◆ sigCurv() [3/3]

double MdcSegInfoAxialO::sigCurv ( ) const

◆ sigPhi0() [1/3]

double MdcSegInfoAxialO::sigPhi0 ( ) const

Definition at line 74 of file MdcSegInfoAxialO.cxx.

74 {
75 //-------------------------------------------------------------------
76 return sqrt( _errmat[0] );
77}

Referenced by MdcSegGrouperAx::incompWithSeg().

◆ sigPhi0() [2/3]

double MdcSegInfoAxialO::sigPhi0 ( ) const

◆ sigPhi0() [3/3]

double MdcSegInfoAxialO::sigPhi0 ( ) const

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