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

TrkBmSpotOnTrk Class Reference

#include <TrkBmSpotOnTrk.h>

Inheritance diagram for TrkBmSpotOnTrk:

TrkHitOnTrk TrkHitOnTrk List of all members.

Public Types

typedef std::unary_function<
TrkHitOnTrk, bool
predicate_type
typedef std::unary_function<
TrkHitOnTrk, bool
predicate_type

Public Member Functions

virtual int ambig () const
virtual int ambig () const
TrkBmSpotOnTrkclone (TrkRep *, const TrkDifTraj *t=0) const
TrkBmSpotOnTrkclone (TrkRep *, const TrkDifTraj *t=0) const
double fltLen () const
double fltLen () const
TrkErrCode getFitStuff (double &deltaChi) const
TrkErrCode getFitStuff (HepVector &derivs, double &deltaChi) const
TrkErrCode getFitStuff (double &deltaChi) const
TrkErrCode getFitStuff (HepVector &derivs, double &deltaChi) const
const TrkRepgetParentRep () const
const TrkRepgetParentRep () const
const TrkRecoTrkgetParentTrack () const
const TrkRecoTrkgetParentTrack () const
bool hasResidual () const
bool hasResidual () const
TrkFundHithit ()
const TrkFundHithit () const
TrkFundHithit ()
const TrkFundHithit () const
double hitLen () const
double hitLen () const
double hitRms () const
double hitRms () const
const TrajectoryhitTraj () const
const TrajectoryhitTraj () const
const HepPoint3Dip () const
const HepPoint3Dip () const
bool isActive () const
bool isActive () const
bool isUsable () const
bool isUsable () const
virtual unsigned layerNumber () const
virtual unsigned layerNumber () const
virtual const MdcHitOnTrackmdcHitOnTrack () const
virtual const MdcHitOnTrackmdcHitOnTrack () const
bool mustUse () const
bool mustUse () const
bool operator< (const TrkHitOnTrk &rhs) const
bool operator< (const TrkHitOnTrk &rhs) const
bool operator== (const TrkHitOnTrk &) const
bool operator== (const TrkHitOnTrk &) const
TrkRecoTrkparentTrack () const
TrkRecoTrkparentTrack () const
PdtPid::PidType particleType () const
PdtPid::PidType particleType () const
virtual void print (std::ostream &) const
virtual void print (std::ostream &) const
virtual void printAll (std::ostream &) const
virtual void printAll (std::ostream &) const
bool resid (double &resid, double &residErr, bool exclude=false) const
double resid (bool exclude=false) const
bool resid (double &resid, double &residErr, bool exclude=false) const
double resid (bool exclude=false) const
double residual () const
double residual () const
void setActivity (bool turnOn)
void setActivity (bool turnOn)
virtual void setAmbig (int newambig)
virtual void setAmbig (int newambig)
void setFltLen (double f)
void setFltLen (double f)
void setHitRms (double newRms)
void setHitRms (double newRms)
void setUsability (int usability)
void setUsability (int usability)
virtual const SvtHitOnTrack * svtHitOnTrack () const
virtual const SvtHitOnTrack * svtHitOnTrack () const
virtual bool timeAbsolute (double &t, double &tErr) const
virtual bool timeAbsolute (double &t, double &tErr) const
virtual bool timeResid (double &t, double &tErr) const
virtual bool timeResid (double &t, double &tErr) const
 TrkBmSpotOnTrk (const HepPoint3D &ip, const HepSymMatrix &size)
 TrkBmSpotOnTrk (const HepPoint3D &ip, const HepSymMatrix &size)
const TrkDifTrajtrkTraj () const
const TrkDifTrajtrkTraj () const
double weight () const
double weight () const
virtual TrkEnums::TrkViewInfo whatView () const
virtual TrkEnums::TrkViewInfo whatView () const
 ~TrkBmSpotOnTrk ()
 ~TrkBmSpotOnTrk ()

Protected Member Functions

double GetRms ()
double GetRms ()
TrkRepparentRep () const
TrkRepparentRep () const
void setHitLen (double h)
void setHitLen (double h)
void setHitResid (double newResid)
void setHitResid (double newResid)
void setUnusedHit ()
void setUnusedHit ()
void setUsedHit ()
void setUsedHit ()
 TrkBmSpotOnTrk (const TrkBmSpotOnTrk &hitToBeCopied, TrkRep *newRep, const TrkDifTraj *trkTraj=0)
 TrkBmSpotOnTrk (const TrkBmSpotOnTrk &hitToBeCopied, TrkRep *newRep, const TrkDifTraj *trkTraj=0)
virtual TrkErrCode updateMeasurement (const TrkDifTraj *traj, bool maintainAmbiguity)
virtual TrkErrCode updateMeasurement (const TrkDifTraj *traj, bool maintainAmbiguity)
TrkErrCode updatePoca (const TrkDifTraj *trkTraj, bool maintainAmbiguity)
TrkErrCode updatePoca (const TrkDifTraj *trkTraj, bool maintainAmbiguity)

Static Protected Member Functions

const TrkLineTraj FindBeamTrajectory (const HepPoint3D &point, const HepSymMatrix &error)
const TrkLineTraj FindBeamTrajectory (const HepPoint3D &point, const HepSymMatrix &error)

Protected Attributes

double _hitLen
double _hitRms
bool _isActive
int _isUsable
TrkRep_parentRep
TrkRep_parentRep
TrkPoca_poca
TrkPoca_poca
double _resid
TrkFundHit_theHit
TrkFundHit_theHit
double _tolerance
double _trkLen
const TrkDifTraj_trkTraj
const TrkDifTraj_trkTraj

Private Member Functions

TrkBmSpotOnTrkoperator= (const TrkBmSpotOnTrk &)
TrkBmSpotOnTrkoperator= (const TrkBmSpotOnTrk &)
 TrkBmSpotOnTrk (const TrkBmSpotOnTrk &)
 TrkBmSpotOnTrk (const TrkBmSpotOnTrk &)

Private Attributes

const TrkLineTraj _beamTraj
const HepPoint3D _ip
const HepSymMatrix _size

Friends

class TrkBase::Functors::setActive
class TrkBase::Functors::setParent
class TrkBase::Functors::updateMeasurement

Member Typedef Documentation

typedef std::unary_function<TrkHitOnTrk,bool> TrkHitOnTrk::predicate_type [inherited]
 

typedef std::unary_function<TrkHitOnTrk,bool> TrkHitOnTrk::predicate_type [inherited]
 


Constructor & Destructor Documentation

TrkBmSpotOnTrk::TrkBmSpotOnTrk const HepPoint3D ip,
const HepSymMatrix &  size
 

00029   : TrkHitOnTrk(0,0.5e-4), 
00030     _beamTraj(FindBeamTrajectory(ip,size)),
00031     _ip(ip), 
00032     _size(size)
00033 {}

TrkBmSpotOnTrk::~TrkBmSpotOnTrk  ) 
 

00045 { }

TrkBmSpotOnTrk::TrkBmSpotOnTrk const TrkBmSpotOnTrk hitToBeCopied,
TrkRep newRep,
const TrkDifTraj trkTraj = 0
[protected]
 

00037   : TrkHitOnTrk(hot,newRep,trkTraj), 
00038     _beamTraj(hot._beamTraj),
00039     _ip(hot.ip()),
00040     _size(hot._size)
00041 {}

TrkBmSpotOnTrk::TrkBmSpotOnTrk const TrkBmSpotOnTrk  )  [private]
 

TrkBmSpotOnTrk::TrkBmSpotOnTrk const HepPoint3D ip,
const HepSymMatrix &  size
 

TrkBmSpotOnTrk::~TrkBmSpotOnTrk  ) 
 

TrkBmSpotOnTrk::TrkBmSpotOnTrk const TrkBmSpotOnTrk hitToBeCopied,
TrkRep newRep,
const TrkDifTraj trkTraj = 0
[protected]
 

TrkBmSpotOnTrk::TrkBmSpotOnTrk const TrkBmSpotOnTrk  )  [private]
 


Member Function Documentation

virtual int TrkHitOnTrk::ambig  )  const [virtual, inherited]
 

Reimplemented in MdcHitOnTrack, and MdcHitOnTrack.

int TrkHitOnTrk::ambig  )  const [virtual, inherited]
 

Reimplemented in MdcHitOnTrack, and MdcHitOnTrack.

00182 {
00183   return 0;// by default no ambiguity
00184 }

TrkBmSpotOnTrk* TrkBmSpotOnTrk::clone TrkRep ,
const TrkDifTraj t = 0
const [virtual]
 

Implements TrkHitOnTrk.

TrkBmSpotOnTrk * TrkBmSpotOnTrk::clone TrkRep ,
const TrkDifTraj t = 0
const [virtual]
 

Implements TrkHitOnTrk.

00049 {
00050   return  new TrkBmSpotOnTrk(*this,rep,trkTraj);
00051 }

const TrkLineTraj TrkBmSpotOnTrk::FindBeamTrajectory const HepPoint3D point,
const HepSymMatrix &  error
[static, protected]
 

const TrkLineTraj TrkBmSpotOnTrk::FindBeamTrajectory const HepPoint3D point,
const HepSymMatrix &  error
[static, protected]
 

00158 {
00159         int ifail;
00160         HepSymMatrix cover(error.inverse(ifail));
00161         
00162         if (ifail) {
00163 #ifdef MDCPATREC_FATAL
00164           std::cout<<"ErrMsg(fatal) TrkLineTraj: "
00165                   <<"Error inverting beamspot error matrix" << std::endl;
00166 #endif
00167         }
00168         double dx = -cover.fast(3,1)/cover.fast(1,1);
00169         double dy = -cover.fast(3,2)/cover.fast(2,2);
00170         
00171         HepPoint3D p1 = point + Hep3Vector(-dx,-dy,-1);
00172         HepPoint3D p2 = point + Hep3Vector(+dx,+dy,+1);
00173 
00174         return TrkLineTraj( p1, p2 );
00175 }

double TrkHitOnTrk::fltLen  )  const [inline, inherited]
 

00091 {return _trkLen;}

double TrkHitOnTrk::fltLen  )  const [inline, inherited]
 

00091 {return _trkLen;}

TrkErrCode TrkHitOnTrk::getFitStuff double &  deltaChi  )  const [inherited]
 

TrkErrCode TrkHitOnTrk::getFitStuff HepVector &  derivs,
double &  deltaChi
const [inherited]
 

TrkErrCode TrkHitOnTrk::getFitStuff double &  deltaChi  )  const [inherited]
 

00272 {
00273   assert (_trkTraj == &(getParentRep()->traj()));
00274   deltaChi=_resid/hitRms(); // NOTE: use _INTERNAL_ residual
00275   return TrkErrCode(TrkErrCode::succeed);
00276 }

TrkErrCode TrkHitOnTrk::getFitStuff HepVector &  derivs,
double &  deltaChi
const [inherited]
 

00249 {
00250   if (_poca==0 || _poca->status().failure()) {
00251     return TrkErrCode(TrkErrCode::fail);
00252   }
00253   // FIXME: I wish I could tell poca to NOT iterate
00254   //        and ONLY compute the distance & derivatives...
00255   TrkDifPoca poca(*_trkTraj,fltLen(),*hitTraj(), hitLen(),_tolerance);
00256   if (poca.status().failure()) {
00257     return TrkErrCode(TrkErrCode::fail);
00258   }
00259   if (derivs.num_row() != 0) {
00260     poca.fetchDerivs(derivs);
00261   } else {
00262     derivs = poca.derivs();
00263   }
00264   double sigInv = 1. / hitRms();
00265   deltaChi = _resid * sigInv; // NOTE: use _INTERNAL_ residual
00266   derivs *= sigInv;
00267   return TrkErrCode(TrkErrCode::succeed);
00268 }

const TrkRep* TrkHitOnTrk::getParentRep  )  const [inline, inherited]
 

00073 {return _parentRep;}

const TrkRep* TrkHitOnTrk::getParentRep  )  const [inline, inherited]
 

00073 {return _parentRep;}

const TrkRecoTrk* TrkHitOnTrk::getParentTrack  )  const [inherited]
 

const TrkRecoTrk * TrkHitOnTrk::getParentTrack  )  const [inherited]
 

00153 {
00154   return getParentRep()->parentTrack();
00155 }

double TrkBmSpotOnTrk::GetRms  )  [protected]
 

double TrkBmSpotOnTrk::GetRms  )  [protected]
 

00103 {
00104         //
00105         // Get direction
00106         //
00107         const TrkDifTraj& trkTraj = getParentRep()->traj();
00108         Hep3Vector trkDir = trkTraj.direction(fltLen());
00109         
00110         //
00111         // Get errors (assume no correlation)
00112         //
00113         double Mxx = 1.0/_size.fast(1,1);
00114         double Myy = 1.0/_size.fast(2,2);
00115         
00116         //
00117         // Normalized track directions in x/y
00118         //
00119         double vx = trkDir[0];
00120         double vy = trkDir[1];
00121         double normxy = (vx*vx + vy*vy);
00122         if (normxy <= 0) return 999.9;
00123         normxy = sqrt(normxy);
00124         
00125         vx /= normxy;
00126         vy /= normxy;
00127         
00128         //
00129         // Solve for point of least chi2
00130         //
00131         double s = vx*vy*(Mxx-Myy)/(vx*vx*Mxx + vy*vy*Myy);
00132         
00133         double dx = (-vy + s*vx);
00134         double dy = (+vx + s*vy);
00135         
00136         double chi2 = dx*dx*Mxx + dy*dy*Myy;
00137         
00138         return chi2 <= 0 ? 0.0 : (1.0/sqrt(chi2));
00139 }

bool TrkHitOnTrk::hasResidual  )  const [inline, inherited]
 

00104 { return _poca != 0; }

bool TrkHitOnTrk::hasResidual  )  const [inline, inherited]
 

00104 { return _poca != 0; }

TrkFundHit* TrkHitOnTrk::hit void   )  [inline, inherited]
 

00076 {return _theHit;}

const TrkFundHit* TrkHitOnTrk::hit void   )  const [inline, inherited]
 

00075 {return _theHit;}

TrkFundHit* TrkHitOnTrk::hit  )  [inline, inherited]
 

00076 {return _theHit;}

const TrkFundHit* TrkHitOnTrk::hit  )  const [inline, inherited]
 

00075 {return _theHit;}

double TrkHitOnTrk::hitLen  )  const [inline, inherited]
 

00092 {return _hitLen;}

double TrkHitOnTrk::hitLen  )  const [inline, inherited]
 

00092 {return _hitLen;}

double TrkHitOnTrk::hitRms  )  const [inline, inherited]
 

00089 {return _hitRms;}

double TrkHitOnTrk::hitRms  )  const [inline, inherited]
 

00089 {return _hitRms;}

const Trajectory* TrkBmSpotOnTrk::hitTraj  )  const [virtual]
 

Implements TrkHitOnTrk.

const Trajectory * TrkBmSpotOnTrk::hitTraj  )  const [virtual]
 

Implements TrkHitOnTrk.

00080 {
00081   return &_beamTraj;
00082 }

const HepPoint3D& TrkBmSpotOnTrk::ip  )  const
 

const HepPoint3D & TrkBmSpotOnTrk::ip  )  const
 

00086 {
00087   return _ip;
00088 }

bool TrkHitOnTrk::isActive  )  const [inline, inherited]
 

bool TrkHitOnTrk::isActive  )  const [inline, inherited]
 

00200 {return _isActive;}

bool TrkHitOnTrk::isUsable  )  const [inline, inherited]
 

bool TrkHitOnTrk::isUsable  )  const [inline, inherited]
 

00201 {return (_isUsable > 0);}

virtual unsigned TrkBmSpotOnTrk::layerNumber  )  const [inline, virtual]
 

Implements TrkHitOnTrk.

00036 { return 0; }

virtual unsigned TrkBmSpotOnTrk::layerNumber  )  const [inline, virtual]
 

Implements TrkHitOnTrk.

00036 { return 0; }

virtual const MdcHitOnTrack* TrkHitOnTrk::mdcHitOnTrack  )  const [virtual, inherited]
 

Reimplemented in MdcHitOnTrack, and MdcHitOnTrack.

const MdcHitOnTrack * TrkHitOnTrk::mdcHitOnTrack  )  const [virtual, inherited]
 

Reimplemented in MdcHitOnTrack, and MdcHitOnTrack.

00030 {return 0;}

bool TrkHitOnTrk::mustUse  )  const [inline, inherited]
 

bool TrkHitOnTrk::mustUse  )  const [inline, inherited]
 

00202 {return (_isUsable > 1);}

bool TrkHitOnTrk::operator< const TrkHitOnTrk rhs  )  const [inline, inherited]
 

00099 { return fltLen()<rhs.fltLen();}

bool TrkHitOnTrk::operator< const TrkHitOnTrk rhs  )  const [inline, inherited]
 

00099 { return fltLen()<rhs.fltLen();}

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

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

bool TrkHitOnTrk::operator== const TrkHitOnTrk  )  const [inherited]
 

bool TrkHitOnTrk::operator== const TrkHitOnTrk  )  const [inherited]
 

00176 {
00177   return this == &rhs;
00178 }

TrkRep* TrkHitOnTrk::parentRep  )  const [inline, protected, inherited]
 

00177 { return _parentRep;}

TrkRep* TrkHitOnTrk::parentRep  )  const [inline, protected, inherited]
 

00177 { return _parentRep;}

TrkRecoTrk* TrkHitOnTrk::parentTrack  )  const [inherited]
 

TrkRecoTrk * TrkHitOnTrk::parentTrack  )  const [inherited]
 

00147 {
00148   return parentRep()->parentTrack();
00149 }

PdtPid::PidType TrkHitOnTrk::particleType  )  const [inherited]
 

PdtPid::PidType TrkHitOnTrk::particleType  )  const [inherited]
 

00159 {
00160   return getParentRep()->particleType();
00161 }

virtual void TrkHitOnTrk::print std::ostream  )  const [virtual, inherited]
 

void TrkHitOnTrk::print std::ostream  )  const [virtual, inherited]
 

00132 {
00133   hit()->printAll(o);
00134   o << " hitlen " << hitLen() 
00135     << " fltlen " << fltLen()
00136     << " act " << (isActive() != 0) << endl;
00137 }

virtual void TrkHitOnTrk::printAll std::ostream  )  const [virtual, inherited]
 

void TrkHitOnTrk::printAll std::ostream  )  const [virtual, inherited]
 

00141 {
00142   print(o);
00143 }

bool TrkHitOnTrk::resid double &  resid,
double &  residErr,
bool  exclude = false
const [inherited]
 

double TrkHitOnTrk::resid bool  exclude = false  )  const [inherited]
 

bool TrkHitOnTrk::resid double &  resid,
double &  residErr,
bool  exclude = false
const [inherited]
 

00206 {
00207   assert(getParentRep()!=0);
00208   return getParentRep()->resid(this,resid,residErr,exclude);
00209 }

double TrkHitOnTrk::resid bool  exclude = false  )  const [inherited]
 

00192 {
00193   double r(-99999.9),re(-9999.9);
00194   bool s=getParentRep()->resid(this,r,re,exclude);
00195   if (!s && r<-99999.8) {
00196 #ifdef MDCPATREC_ROUTINE
00197     std::cout<<"ErrMsg(routine) "
00198       << "error calling parentRep()->residual()" << std::endl;
00199 #endif
00200   }
00201   return r;
00202 }

double TrkHitOnTrk::residual  )  const [inherited]
 

double TrkHitOnTrk::residual  )  const [inherited]
 

00213 {
00214   assert (_trkTraj == &(getParentRep()->traj()));
00215   return _resid;
00216 }

void TrkHitOnTrk::setActivity bool  turnOn  )  [inherited]
 

void TrkHitOnTrk::setActivity bool  turnOn  )  [inherited]
 

00097 {
00098   if (!isUsable() || isActive()==turnOn) return;
00099   if (getParentRep() != 0) {    // needed until Rep-less HoTs go away
00100     turnOn ? parentRep()->activateHot(this)
00101            : parentRep()->deactivateHot(this);
00102   } else {
00103     _isActive = turnOn;
00104   }
00105 }

virtual void TrkHitOnTrk::setAmbig int  newambig  )  [virtual, inherited]
 

Reimplemented in MdcHitOnTrack, and MdcHitOnTrack.

void TrkHitOnTrk::setAmbig int  newambig  )  [virtual, inherited]
 

Reimplemented in MdcHitOnTrack, and MdcHitOnTrack.

00188 {} // by default nothing to set

void TrkHitOnTrk::setFltLen double  f  )  [inline, inherited]
 

00147 {_trkLen = f;}

void TrkHitOnTrk::setFltLen double  f  )  [inline, inherited]
 

00147 {_trkLen = f;}

void TrkHitOnTrk::setHitLen double  h  )  [inline, protected, inherited]
 

00178 {_hitLen = h;}

void TrkHitOnTrk::setHitLen double  h  )  [inline, protected, inherited]
 

00178 {_hitLen = h;}

void TrkHitOnTrk::setHitResid double  newResid  )  [inline, protected, inherited]
 

00176 {_resid = newResid;}

void TrkHitOnTrk::setHitResid double  newResid  )  [inline, protected, inherited]
 

00176 {_resid = newResid;}

void TrkHitOnTrk::setHitRms double  newRms  )  [inline, inherited]
 

00154 {_hitRms = newRms;}

void TrkHitOnTrk::setHitRms double  newRms  )  [inline, inherited]
 

00154 {_hitRms = newRms;}

void TrkHitOnTrk::setUnusedHit  )  [protected, inherited]
 

void TrkHitOnTrk::setUnusedHit  )  [protected, inherited]
 

00171 {
00172   if (hit() != 0) hit()->setUnusedHit(this);
00173 }

void TrkHitOnTrk::setUsability int  usability  )  [inherited]
 

void TrkHitOnTrk::setUsability int  usability  )  [inherited]
 

00109 {
00110   _isUsable = usability;
00111   if (isActive() && !isUsable()) {
00112     _isActive = false;
00113     if(getParentRep() != 0)parentRep()->deactivateHot(this);
00114   }
00115   if (!isActive() && mustUse()) {
00116     _isActive = true;
00117     if(getParentRep() != 0)parentRep()->activateHot(this);
00118   }
00119 }

void TrkHitOnTrk::setUsedHit  )  [protected, inherited]
 

void TrkHitOnTrk::setUsedHit  )  [protected, inherited]
 

00165 {
00166   if (hit() != 0) hit()->setUsedHit(this);
00167 }

virtual const SvtHitOnTrack* TrkHitOnTrk::svtHitOnTrack  )  const [virtual, inherited]
 

const SvtHitOnTrack * TrkHitOnTrk::svtHitOnTrack  )  const [virtual, inherited]
 

00031 {return 0;}

virtual bool TrkBmSpotOnTrk::timeAbsolute double &  t,
double &  tErr
const [inline, virtual]
 

Implements TrkHitOnTrk.

00043 { return false; }

virtual bool TrkBmSpotOnTrk::timeAbsolute double &  t,
double &  tErr
const [inline, virtual]
 

Implements TrkHitOnTrk.

00043 { return false; }

virtual bool TrkBmSpotOnTrk::timeResid double &  t,
double &  tErr
const [inline, virtual]
 

Implements TrkHitOnTrk.

00042 { return false; }

virtual bool TrkBmSpotOnTrk::timeResid double &  t,
double &  tErr
const [inline, virtual]
 

Implements TrkHitOnTrk.

00042 { return false; }

const TrkDifTraj* TrkHitOnTrk::trkTraj  )  const [inline, inherited]
 

00077 { return _trkTraj;}

const TrkDifTraj* TrkHitOnTrk::trkTraj  )  const [inline, inherited]
 

00077 { return _trkTraj;}

virtual TrkErrCode TrkBmSpotOnTrk::updateMeasurement const TrkDifTraj traj,
bool  maintainAmbiguity
[protected, virtual]
 

Implements TrkHitOnTrk.

TrkErrCode TrkBmSpotOnTrk::updateMeasurement const TrkDifTraj traj,
bool  maintainAmbiguity
[protected, virtual]
 

Implements TrkHitOnTrk.

00056 {
00057   TrkErrCode status=updatePoca(traj,x);
00058   if (status.success()) {
00059      assert(_poca!=0);
00060      setHitResid(_poca->doca());
00061      setHitRms(GetRms());
00062   } else {
00063 #ifdef MDCPATREC_WARNING
00064     std::cout<<"ErrMsg(warning) TrkBmSpotOnTrk::updateMeasurement failed" << std::endl;
00065 #endif
00066      setHitResid(9999.9);
00067      setHitRms(9999.9);
00068   }
00069   return status;
00070 }

TrkErrCode TrkHitOnTrk::updatePoca const TrkDifTraj trkTraj,
bool  maintainAmbiguity
[protected, inherited]
 

TrkErrCode TrkHitOnTrk::updatePoca const TrkDifTraj trkTraj,
bool  maintainAmbiguity
[protected, inherited]
 

00220 {
00221   _trkTraj = (trkTraj!=0?trkTraj:&(getParentRep()->traj()));
00222   if (_poca==0) {
00223     _poca = new TrkPoca(*_trkTraj,fltLen(),
00224         *hitTraj(), hitLen(),_tolerance);
00225   } else {
00226     *_poca = TrkPoca(*_trkTraj,fltLen(),
00227         *hitTraj(), hitLen(),_tolerance);
00228   }
00229   if(_poca->status().failure()) {
00230     if(isActive()){
00231 #ifdef MDCPATREC_WARNING
00232       std::cout<<"ErrMsg(warning) "
00233         << " TrkPoca failed in TrkHitOnTrk::updatePoca"
00234         << std::endl;
00235 #endif
00236     }
00237     delete _poca; _poca=0;
00238     return TrkErrCode(TrkErrCode::fail,4);
00239   }
00240   _trkLen = _poca->flt1();
00241   _hitLen = _poca->flt2();
00242   double dca=_poca->doca();
00243   if (!maintainAmb) setAmbig(dca>0?+1:-1);
00244   return TrkErrCode(TrkErrCode::succeed);
00245 }

double TrkHitOnTrk::weight  )  const [inherited]
 

double TrkHitOnTrk::weight  )  const [inherited]
 

00123 {
00124   // could be cached
00125   double rms=hitRms();
00126   assert(rms > 0);
00127   return double(1) / ( rms * rms );
00128 }

virtual TrkEnums::TrkViewInfo TrkBmSpotOnTrk::whatView  )  const [virtual]
 

Implements TrkHitOnTrk.

TrkEnums::TrkViewInfo TrkBmSpotOnTrk::whatView  )  const [virtual]
 

Implements TrkHitOnTrk.

00074 {
00075   return TrkEnums::xyView;
00076 }


Friends And Related Function Documentation

TrkBase::Functors::setActive [friend, inherited]
 

TrkBase::Functors::setParent [friend, inherited]
 

TrkBase::Functors::updateMeasurement [friend, inherited]
 


Member Data Documentation

const TrkLineTraj TrkBmSpotOnTrk::_beamTraj [private]
 

double TrkHitOnTrk::_hitLen [protected, inherited]
 

double TrkHitOnTrk::_hitRms [protected, inherited]
 

const HepPoint3D TrkBmSpotOnTrk::_ip [private]
 

bool TrkHitOnTrk::_isActive [protected, inherited]
 

int TrkHitOnTrk::_isUsable [protected, inherited]
 

TrkRep* TrkHitOnTrk::_parentRep [protected, inherited]
 

TrkRep* TrkHitOnTrk::_parentRep [protected, inherited]
 

TrkPoca* TrkHitOnTrk::_poca [protected, inherited]
 

TrkPoca* TrkHitOnTrk::_poca [protected, inherited]
 

double TrkHitOnTrk::_resid [protected, inherited]
 

const HepSymMatrix TrkBmSpotOnTrk::_size [private]
 

TrkFundHit* TrkHitOnTrk::_theHit [protected, inherited]
 

TrkFundHit* TrkHitOnTrk::_theHit [protected, inherited]
 

double TrkHitOnTrk::_tolerance [protected, inherited]
 

double TrkHitOnTrk::_trkLen [protected, inherited]
 

const TrkDifTraj* TrkHitOnTrk::_trkTraj [protected, inherited]
 

const TrkDifTraj* TrkHitOnTrk::_trkTraj [protected, inherited]
 


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