Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MdcSegInfoAxialO Class Reference

#include <MdcSegInfoAxialO.h>

Inheritance diagram for MdcSegInfoAxialO:

MdcSegInfo MdcSegInfo List of all members.

Public Member Functions

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

Protected Attributes

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

Private Member Functions

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

Constructor & Destructor Documentation

MdcSegInfoAxialO::MdcSegInfoAxialO  )  [inline]
 

00030 { };

MdcSegInfoAxialO::~MdcSegInfoAxialO  )  [inline]
 

00031 { };

MdcSegInfoAxialO::MdcSegInfoAxialO const MdcSegInfoAxialO  )  [private]
 

MdcSegInfoAxialO::MdcSegInfoAxialO  )  [inline]
 

00030 { };

MdcSegInfoAxialO::~MdcSegInfoAxialO  )  [inline]
 

00031 { };

MdcSegInfoAxialO::MdcSegInfoAxialO const MdcSegInfoAxialO  )  [private]
 


Member Function Documentation

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

00044 {return _arc;}

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

00044 {return _arc;}

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

void MdcSegInfoAxialO::calcFromOrigin const MdcSeg parentSeg  ) 
 

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

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  ) 
 

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]
 

00033 {return _par1;}

double MdcSegInfoAxialO::curv void   )  const [inline]
 

00033 {return _par1;}

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

00039 {return _errmat;}

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

00039 {return _errmat;}

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

00040 {return _inverr;}

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

00040 {return _inverr;}

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

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

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

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

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

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

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

Implements MdcSegInfo.

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

Implements MdcSegInfo.

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]
 

00034 {return _par0;}

double MdcSegInfoAxialO::phi0 void   )  const [inline]
 

00034 {return _par0;}

void MdcSegInfo::plotSegInfo  )  const [inherited]
 

void MdcSegInfo::plotSegInfo  )  const [inherited]
 

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

double MdcSegInfoAxialO::sigCurv  )  const
 

double MdcSegInfoAxialO::sigCurv  )  const
 

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

double MdcSegInfoAxialO::sigPhi0  )  const
 

double MdcSegInfoAxialO::sigPhi0  )  const
 

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


Member Data Documentation

double MdcSegInfo::_arc [protected, inherited]
 

double MdcSegInfo::_errmat [protected, inherited]
 

double MdcSegInfo::_inverr [protected, inherited]
 

double MdcSegInfo::_par0 [protected, inherited]
 

double MdcSegInfo::_par1 [protected, inherited]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:28:34 2011 for BOSS6.5.5 by  doxygen 1.3.9.1