MdcSegInfoAxialO Class Reference

#include <MdcSegInfoAxialO.h>

Inheritance diagram for MdcSegInfoAxialO:

MdcSegInfo List of all members.

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)
const double * errmat () const
const double * inverr () const
double par (int i) const
double arc () const
void plotSegInfo () const

Protected Attributes

double _par0
double _par1
double _errmat [3]
double _inverr [3]
double _arc

Private Member Functions

MdcSegInfoAxialOoperator= (const MdcSegInfoAxialO &)
 MdcSegInfoAxialO (const MdcSegInfoAxialO &)

Detailed Description

Definition at line 27 of file MdcSegInfoAxialO.h.


Constructor & Destructor Documentation

MdcSegInfoAxialO::MdcSegInfoAxialO (  )  [inline]

Definition at line 30 of file MdcSegInfoAxialO.h.

00030 { };

MdcSegInfoAxialO::~MdcSegInfoAxialO (  )  [inline]

Definition at line 31 of file MdcSegInfoAxialO.h.

00031 { };

MdcSegInfoAxialO::MdcSegInfoAxialO ( const MdcSegInfoAxialO  )  [private]


Member Function Documentation

double MdcSegInfo::arc (  )  const [inline, inherited]

Definition at line 44 of file MdcSegInfo.h.

References MdcSegInfo::_arc.

Referenced by MdcSegInfoSterO::calcStereo(), MdcSegGrouperSt::incompWithGroup(), and MdcSeg::plotSegAll().

00044 {return _arc;}

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

Definition at line 34 of file MdcSegInfoAxialO.cxx.

References MdcSegInfo::_errmat, MdcSegInfo::_inverr, MdcSegInfo::_par0, MdcSegInfo::_par1, ers::error, mdcTwoInv(), phi0(), and subSeperate::temp.

00035                                                                       {
00036 //------------------------------------------------------------------
00037   
00038   if (slope == 0.) slope = 0.00000001;
00039   double slinv = 1./slope;
00040   _par1 = slope / sqrt(1. + radius*radius * slope*slope);  //curve
00041   double temp = 1. - _par1*_par1 * radius*radius;
00042   if (temp < 0.) temp = 0.;
00043   double dphi0ds = -radius * _par1 * sqrt(temp) * slinv;
00044   BesAngle phi0 = phi - asin(_par1 * radius);    
00045   _par0 = phi0.posRad();
00046 
00047   // phi0:
00048   _errmat[0] = inErr[2] * dphi0ds * dphi0ds  + inErr[0]  +  
00049     inErr[1] * 2. * dphi0ds;
00050   if (_errmat[0] < 0.) _errmat[0] = 0.;
00051   // curv:
00052   _errmat[2] = inErr[2] * _par1*_par1 * temp*temp * slinv*slinv;
00053   if (_errmat[2] < 0.) _errmat[2] = 0.;
00054     // phi0|curv:
00055   _errmat[1] = inErr[2] *_par1 * slinv * temp * dphi0ds + 
00056                inErr[1] *_par1 * slinv * temp;
00057   int error = mdcTwoInv(_errmat, _inverr);
00058   if (error) {
00059     std::cout << " ErrMsg(warning) " 
00060       << "Failed to invert matrix -- MdcSegInfo::calcFromOrigin" << endl
00061       << _errmat[0] << " " << _errmat[1] << " " << _errmat[2]<< endl;
00062   }
00063 }

void MdcSegInfoAxialO::calcFromOrigin ( const MdcSeg parentSeg  ) 

Definition at line 67 of file MdcSegInfoAxialO.cxx.

References MdcSeg::errmat(), MdcSeg::phi(), MdcSuperLayer::rad0(), MdcSeg::slope(), and MdcSeg::superlayer().

Referenced by MdcSegGrouperAx::fillWithSegs().

00067                                                         {
00068 //-------------------------------------------------------------------
00069   double slope = parentSeg->slope();
00070   double radius = parentSeg->superlayer()->rad0();
00071   double phi = parentSeg->phi();
00072   const double *inErr = parentSeg->errmat();
00073 
00074   calcFromOrigin(phi, slope, radius, inErr);
00075 }

double MdcSegInfoAxialO::curv ( void   )  const [inline]

Definition at line 34 of file MdcSegInfoAxialO.h.

References MdcSegInfo::_par1.

Referenced by MdcSegGrouperAx::incompWithSeg().

00034 {return _par1;}

const double* MdcSegInfo::errmat (  )  const [inline, inherited]

Definition at line 39 of file MdcSegInfo.h.

References MdcSegInfo::_errmat.

Referenced by MdcSegGrouper::calcParBySegs().

00039 {return _errmat;}

const double* MdcSegInfo::inverr (  )  const [inline, inherited]

Definition at line 40 of file MdcSegInfo.h.

References MdcSegInfo::_inverr.

Referenced by MdcSegGrouper::calcParBySegs().

00040 {return _inverr;}

MdcSegInfoAxialO& MdcSegInfoAxialO::operator= ( const MdcSegInfoAxialO  )  [private]

double MdcSegInfo::par ( int  i  )  const [inline, inherited]

Definition at line 43 of file MdcSegInfo.h.

References MdcSegInfo::_par0, and MdcSegInfo::_par1.

Referenced by MdcSegGrouper::calcParBySegs(), MdcSegInfoSterO::calcStereo(), MdcSegGrouper::combineSegs(), MdcSeg::plotSegAll(), and MdcSegInfoSterO::zPosition().

00043 {return (0 == i) ? _par0 : _par1;}

bool MdcSegInfoAxialO::parIsAngle ( int  i  )  const [virtual]

Implements MdcSegInfo.

Definition at line 27 of file MdcSegInfoAxialO.cxx.

00027                                         {
00028 //---------------------------------------------------------------------------
00029   assert (i >= 0 && i < 2);
00030   return (0 == i);   //i.e., 0th parameter is an angle
00031 }

double MdcSegInfoAxialO::phi0 ( void   )  const [inline]

Definition at line 33 of file MdcSegInfoAxialO.h.

References MdcSegInfo::_par0.

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

00033 {return _par0;}

void MdcSegInfo::plotSegInfo (  )  const [inherited]

Definition at line 28 of file MdcSegInfo.cxx.

References MdcSegInfo::_arc, MdcSegInfo::_par0, and MdcSegInfo::_par1.

00028                                   {
00029 //------------------------------------------------------------------------
00030   std::cout<<"seginfo: "<<_par0<<" "<<_par1<<" "<<_arc<<  std::endl;
00031 } 

double MdcSegInfoAxialO::sigCurv (  )  const

Definition at line 85 of file MdcSegInfoAxialO.cxx.

References MdcSegInfo::_errmat.

Referenced by MdcSegGrouperAx::incompWithSeg().

00085                                 {
00086 //-------------------------------------------------------------------
00087 return sqrt(_errmat[2]);}

double MdcSegInfoAxialO::sigPhi0 (  )  const

Definition at line 79 of file MdcSegInfoAxialO.cxx.

References MdcSegInfo::_errmat.

Referenced by MdcSegGrouperAx::incompWithSeg().

00079                                 {
00080 //-------------------------------------------------------------------
00081 return sqrt(_errmat[0]);}


Member Data Documentation

double MdcSegInfo::_arc [protected, inherited]

Definition at line 53 of file MdcSegInfo.h.

Referenced by MdcSegInfo::arc(), MdcSegInfoSterO::calcStereo(), and MdcSegInfo::plotSegInfo().

double MdcSegInfo::_errmat[3] [protected, inherited]

Definition at line 51 of file MdcSegInfo.h.

Referenced by calcFromOrigin(), MdcSegInfoSterO::calcStereo(), MdcSegInfoCsmc::calcStraight(), MdcSegInfo::errmat(), sigCurv(), MdcSegInfoCsmc::sigD0(), MdcSegInfoCsmc::sigPhi0(), and sigPhi0().

double MdcSegInfo::_inverr[3] [protected, inherited]

Definition at line 52 of file MdcSegInfo.h.

Referenced by calcFromOrigin(), MdcSegInfoSterO::calcStereo(), MdcSegInfoCsmc::calcStraight(), and MdcSegInfo::inverr().

double MdcSegInfo::_par0 [protected, inherited]

Definition at line 49 of file MdcSegInfo.h.

Referenced by calcFromOrigin(), MdcSegInfoSterO::calcStereo(), MdcSegInfoCsmc::calcStraight(), MdcSegInfoCsmc::d0(), MdcSegInfo::par(), phi0(), MdcSegInfo::plotSegInfo(), and MdcSegInfoSterO::z0().

double MdcSegInfo::_par1 [protected, inherited]

Definition at line 50 of file MdcSegInfo.h.

Referenced by calcFromOrigin(), MdcSegInfoSterO::calcStereo(), MdcSegInfoCsmc::calcStraight(), MdcSegInfoSterO::ct(), curv(), MdcSegInfo::par(), MdcSegInfoCsmc::phi0(), and MdcSegInfo::plotSegInfo().


Generated on Tue Nov 29 23:20:17 2016 for BOSS_7.0.2 by  doxygen 1.4.7