TrkHitOnTrk Class Reference

#include <TrkHitOnTrk.h>

Inheritance diagram for TrkHitOnTrk:

MdcHitOnTrack TrkBmSpotOnTrk MdcRecoHitOnTrack List of all members.

Public Types

typedef std::unary_function<
TrkHitOnTrk, bool
predicate_type

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

TrkHitOnTrkoperator= (const TrkHitOnTrk &)
 TrkHitOnTrk (const TrkHitOnTrk &hit)
TrkHitOnTrksetActive (bool active)
TrkHitOnTrksetParent (TrkRep *rep)

Friends

class TrkHotList
class TrkRecoTrk
class TrkRep
class TrkHitOnTrkUpdater
class TrkBase::Functors::updateMeasurement
class TrkBase::Functors::setActive
class TrkBase::Functors::setParent

Detailed Description

Definition at line 52 of file TrkHitOnTrk.h.


Member Typedef Documentation

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

Definition at line 58 of file TrkHitOnTrk.h.


Constructor & Destructor Documentation

TrkHitOnTrk::TrkHitOnTrk ( const TrkFundHit ,
double  tolerance 
)

Definition at line 33 of file TrkHitOnTrk.cxx.

00033                                                                :
00034   _parentRep(0),
00035   _theHit(const_cast<TrkFundHit*>(hit)),
00036   _isActive(true),
00037   _isUsable(true),
00038   //make caches invalid
00039   _hitRms(-9.e50),
00040   _trkLen(0.0),
00041   _hitLen(0.0),
00042   _trkTraj(0),
00043   _poca(0),
00044   _tolerance(tolerance)
00045 {  }

TrkHitOnTrk::~TrkHitOnTrk (  )  [virtual]

Definition at line 87 of file TrkHitOnTrk.cxx.

References _poca, getParentRep(), hit(), and setUnusedHit().

00088 {
00089   delete _poca;
00090   if ( hit() != 0 && getParentRep() != 0 ) {      
00091     setUnusedHit();
00092   }
00093 }

TrkHitOnTrk::TrkHitOnTrk ( const TrkHitOnTrk hitToBeCopied,
TrkRep newRep,
const TrkDifTraj trkTraj = 0 
) [protected]

Definition at line 48 of file TrkHitOnTrk.cxx.

References _poca, _resid, _trkTraj, fltLen(), getParentRep(), getParentTrack(), TrkDifTraj::localTrajectory(), DifIndepPar::parameter(), TrkSimpTraj::parameters(), particleType(), setUsedHit(), and trkTraj().

00050   : _parentRep(newRep),
00051     _theHit(oldHit._theHit),
00052     _isActive(oldHit._isActive),
00053     _isUsable(oldHit._isUsable),
00054     _hitRms(oldHit._hitRms),
00055     _trkLen(oldHit._trkLen),
00056     _hitLen(oldHit._hitLen),
00057     _resid(9999.9),
00058     _trkTraj(0),
00059     _poca(0),
00060     _tolerance(oldHit._tolerance)
00061 {
00062   assert (0 != newRep);
00063   if( oldHit._trkTraj!=0 && trkTraj!=0 && oldHit._trkTraj == trkTraj ) {
00064                               // re-use cache as traj are the same
00065         _resid=oldHit._resid;
00066         _trkTraj=trkTraj;
00067         _poca = (oldHit._poca==0 ? 0 :new TrkPoca(*oldHit._poca));
00068   } else {
00069        double fl = oldHit.fltLen();
00070        double dum;
00071        const TrkSimpTraj *t1= (oldHit._trkTraj==0?0:oldHit._trkTraj->localTrajectory(fl,dum));
00072        const TrkSimpTraj *t2= (trkTraj==0?0:trkTraj->localTrajectory(fl,dum));
00073        if( t1 != 0 && t2 != 0 && t1->parameters()->parameter() == t2->parameters()->parameter() ) {
00074                               // re-use cache as traj are sufficiently equiv
00075            _resid=oldHit._resid;
00076            _trkTraj=trkTraj;
00077            _poca = (oldHit._poca==0 ? 0: new TrkPoca(*oldHit._poca));
00078 
00079        }
00080   }
00081   // Only record hots if on default TrkRep
00082   if (getParentRep()->particleType() == getParentTrack()->defaultType()) {
00083           setUsedHit();
00084   }
00085 }

TrkHitOnTrk::TrkHitOnTrk ( const TrkHitOnTrk hit  )  [private]


Member Function Documentation

int TrkHitOnTrk::ambig (  )  const [virtual]

Reimplemented in MdcHitOnTrack.

Definition at line 181 of file TrkHitOnTrk.cxx.

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

virtual TrkHitOnTrk* TrkHitOnTrk::clone ( TrkRep parentRep,
const TrkDifTraj trkTraj = 0 
) const [pure virtual]

Implemented in MdcRecoHitOnTrack, and TrkBmSpotOnTrk.

Referenced by TrkHitList::appendHot(), and TrkBase::Functors::cloneHot::operator()().

double TrkHitOnTrk::fltLen (  )  const [inline]

Definition at line 91 of file TrkHitOnTrk.h.

References _trkLen.

Referenced by MdcHitOnTrack::dcaToWire(), MdcHitOnTrack::dipAngle(), MdcHitOnTrack::driftVelocity(), MdcHitOnTrack::entranceAngle(), MdcHitOnTrack::entranceAngleHit(), getFitStuff(), TrkBmSpotOnTrk::GetRms(), operator<(), MdcTrackList::pickHits(), MdcTrack::storeTrack(), TrkHitOnTrk(), MdcHitOnTrack::updateCorrections(), updatePoca(), and MdcHitOnTrack::wireAmbig().

00091 {return _trkLen;}

TrkErrCode TrkHitOnTrk::getFitStuff ( double &  deltaChi  )  const

Definition at line 271 of file TrkHitOnTrk.cxx.

References _resid, _trkTraj, getParentRep(), hitRms(), and TrkErrCode::succeed.

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

Definition at line 248 of file TrkHitOnTrk.cxx.

References _poca, _resid, _tolerance, _trkTraj, TrkDifPoca::derivs(), TrkErrCode::fail, TrkErrCode::failure(), TrkDifPoca::fetchDerivs(), fltLen(), hitLen(), hitRms(), hitTraj(), TrkPocaBase::status(), and TrkErrCode::succeed.

Referenced by TrkHelixRep::resid().

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]

Definition at line 73 of file TrkHitOnTrk.h.

References _parentRep.

Referenced by TrkRep::activateHot(), MdcHitOnTrack::dcaToWire(), TrkRep::deactivateHot(), MdcHitOnTrack::dipAngle(), MdcHitOnTrack::driftVelocity(), MdcHitOnTrack::entranceAngle(), MdcHitOnTrack::entranceAngleHit(), getFitStuff(), getParentTrack(), TrkBmSpotOnTrk::GetRms(), particleType(), TrkHelixRep::resid(), resid(), residual(), setActivity(), setUsability(), MdcHitOnTrack::timeAbsolute(), TrkHitOnTrk(), MdcHitOnTrack::updateCorrections(), updatePoca(), MdcHitOnTrack::wireAmbig(), and ~TrkHitOnTrk().

00073 {return _parentRep;}

const TrkRecoTrk * TrkHitOnTrk::getParentTrack (  )  const

Definition at line 152 of file TrkHitOnTrk.cxx.

References getParentRep(), and TrkRep::parentTrack().

Referenced by TrkHitOnTrk().

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

bool TrkHitOnTrk::hasResidual (  )  const [inline]

Definition at line 104 of file TrkHitOnTrk.h.

References _poca.

Referenced by TrkBase::Predicates::hasResidual::operator()(), and TrkRep::resid().

00104 { return _poca != 0; }

TrkFundHit* TrkHitOnTrk::hit (  )  [inline]

Definition at line 76 of file TrkHitOnTrk.h.

References _theHit.

00076 {return _theHit;}

const TrkFundHit* TrkHitOnTrk::hit (  )  const [inline]

Definition at line 75 of file TrkHitOnTrk.h.

References _theHit.

Referenced by TrkHitList::appendHot(), MdcRecoHitOnTrack::mdcHit(), TrkBase::Predicates::hotMatchesFundHit::operator()(), setUnusedHit(), setUsedHit(), and ~TrkHitOnTrk().

00075 {return _theHit;}

double TrkHitOnTrk::hitLen (  )  const [inline]

Definition at line 92 of file TrkHitOnTrk.h.

References _hitLen.

Referenced by MdcHitOnTrack::dcaToWire(), getFitStuff(), MdcHitOnTrack::isBeyondEndflange(), and updatePoca().

00092 {return _hitLen;}

double TrkHitOnTrk::hitRms (  )  const [inline]

Definition at line 89 of file TrkHitOnTrk.h.

References _hitRms.

Referenced by getFitStuff(), TrkHelixRep::resid(), TrkRep::resid(), MdcHitOnTrack::timeResid(), and weight().

00089 {return _hitRms;}

virtual const Trajectory* TrkHitOnTrk::hitTraj (  )  const [pure virtual]

Implemented in MdcHitOnTrack, and TrkBmSpotOnTrk.

Referenced by getFitStuff(), and updatePoca().

bool TrkHitOnTrk::isActive (  )  const [inline]

Definition at line 200 of file TrkHitOnTrk.h.

References _isActive.

Referenced by TrkRep::activateHot(), TrkRep::addHot(), MdcHitOnTrack::dcaToWire(), TrkRep::deactivateHot(), TrkBase::Predicates::isMdcHitOnTrack::operator()(), TrkBase::Predicates::isSvtHitOnTrack::operator()(), TrkBase::Predicates::isHotActive::operator()(), TrkRep::removeHot(), TrkHelixRep::resid(), setActivity(), setUsability(), MdcHitOnTrack::updateAmbiguity(), updatePoca(), TrkMdcHotSelector::useHot(), and TrkActiveHotSelector::useHot().

00200 {return _isActive;}

bool TrkHitOnTrk::isUsable (  )  const [inline]

Definition at line 201 of file TrkHitOnTrk.h.

References _isUsable.

Referenced by setActivity(), and setUsability().

00201 {return (_isUsable > 0);}

virtual unsigned TrkHitOnTrk::layerNumber (  )  const [pure virtual]

Implemented in MdcHitOnTrack, and TrkBmSpotOnTrk.

Referenced by TrkBase::Predicates::isLayer::operator()().

const MdcHitOnTrack * TrkHitOnTrk::mdcHitOnTrack (  )  const [virtual]

Reimplemented in MdcHitOnTrack.

Definition at line 30 of file TrkHitOnTrk.cxx.

Referenced by TrkBase::Predicates::hasView::operator()(), TrkBase::Predicates::isMdcHitOnTrack::operator()(), MdcTrackList::pickHits(), and TrkMdcHotSelector::useHot().

00030 {return 0;}

bool TrkHitOnTrk::mustUse (  )  const [inline]

Definition at line 202 of file TrkHitOnTrk.h.

References _isUsable.

Referenced by setUsability().

00202 {return (_isUsable > 1);}

bool TrkHitOnTrk::operator< ( const TrkHitOnTrk rhs  )  const [inline]

Definition at line 99 of file TrkHitOnTrk.h.

References fltLen().

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

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

bool TrkHitOnTrk::operator== ( const TrkHitOnTrk  )  const

Definition at line 175 of file TrkHitOnTrk.cxx.

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

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

Definition at line 177 of file TrkHitOnTrk.h.

References _parentRep.

Referenced by parentTrack(), TrkRep::resid(), setActivity(), and setUsability().

00177 { return _parentRep;}

TrkRecoTrk * TrkHitOnTrk::parentTrack (  )  const

Definition at line 146 of file TrkHitOnTrk.cxx.

References parentRep(), and TrkRep::parentTrack().

Referenced by TrkBase::Predicates::isHotOnTrack::operator()().

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

PdtPid::PidType TrkHitOnTrk::particleType (  )  const

Definition at line 158 of file TrkHitOnTrk.cxx.

References getParentRep(), and TrkRep::particleType().

Referenced by TrkHitOnTrk().

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

virtual void TrkHitOnTrk::print ( std::ostream  )  const [virtual]

virtual void TrkHitOnTrk::printAll ( std::ostream  )  const [virtual]

bool TrkHitOnTrk::resid ( double &  resid,
double &  residErr,
bool  exclude = false 
) const

Definition at line 205 of file TrkHitOnTrk.cxx.

References getParentRep(), and TrkRep::resid().

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

double TrkHitOnTrk::resid ( bool  exclude = false  )  const

Definition at line 191 of file TrkHitOnTrk.cxx.

References getParentRep(), TrkRep::resid(), and s.

Referenced by MdcHitOnTrack::dcaToWire().

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

Definition at line 212 of file TrkHitOnTrk.cxx.

References _resid, _trkTraj, and getParentRep().

Referenced by TrkHelixRep::resid(), and TrkRep::resid().

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

TrkHitOnTrk* TrkHitOnTrk::setActive ( bool  active  )  [inline, private]

Definition at line 195 of file TrkHitOnTrk.h.

References _isActive.

Referenced by TrkRep::activateHot(), TrkRep::deactivateHot(), TrkBase::Functors::setActive::operator()(), and TrkHitOnTrkUpdater::setActivity().

00195 { _isActive = active; return this; }

void TrkHitOnTrk::setActivity ( bool  turnOn  ) 

Definition at line 96 of file TrkHitOnTrk.cxx.

References _isActive, TrkRep::activateHot(), TrkRep::deactivateHot(), getParentRep(), isActive(), isUsable(), and parentRep().

Referenced by MdcxTrackFinder::dropMultiHotInLayer(), MdcTrackList::dropMultiHotInLayer(), MdcxTrackFinder::MdcxHitsToHots(), and MdcTrackList::pickHits().

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 }

void TrkHitOnTrk::setAmbig ( int  newambig  )  [virtual]

Reimplemented in MdcHitOnTrack.

Definition at line 187 of file TrkHitOnTrk.cxx.

Referenced by updatePoca().

00188 {} // by default nothing to set

void TrkHitOnTrk::setFltLen ( double  f  )  [inline]

Definition at line 147 of file TrkHitOnTrk.h.

References _trkLen.

Referenced by MdcHitUse::createHitOnTrk(), MdcHoughFinder::digiToHots(), HoughValidUpdate::digiToHots(), MdcHoughFinder::digiToHots2(), HoughValidUpdate::digiToHots2(), MdcHitOnTrack::MdcHitOnTrack(), MdcxCosmicSewer::MdcxHitsToHots(), and MdcTrackList::pickHits().

00147 {_trkLen = f;}

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

Definition at line 178 of file TrkHitOnTrk.h.

References _hitLen.

Referenced by MdcHitOnTrack::MdcHitOnTrack().

00178 {_hitLen = h;}

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

Definition at line 176 of file TrkHitOnTrk.h.

References _resid.

Referenced by MdcHitOnTrack::MdcHitOnTrack(), TrkBmSpotOnTrk::updateMeasurement(), and MdcHitOnTrack::updateMeasurement().

00176 {_resid = newResid;}

void TrkHitOnTrk::setHitRms ( double  newRms  )  [inline]

Definition at line 154 of file TrkHitOnTrk.h.

References _hitRms.

Referenced by MdcHitOnTrack::MdcHitOnTrack(), MdcHitOnTrack::updateCorrections(), and TrkBmSpotOnTrk::updateMeasurement().

00154 {_hitRms = newRms;}

TrkHitOnTrk* TrkHitOnTrk::setParent ( TrkRep rep  )  [inline, private]

Definition at line 196 of file TrkHitOnTrk.h.

References _parentRep.

Referenced by TrkBase::Functors::setParent::operator()().

00196 { _parentRep = rep; return this; }

void TrkHitOnTrk::setUnusedHit (  )  [protected]

Definition at line 170 of file TrkHitOnTrk.cxx.

References hit(), and TrkFundHit::setUnusedHit().

Referenced by TrkRecoTrk::changeDefault(), and ~TrkHitOnTrk().

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

void TrkHitOnTrk::setUsability ( int  usability  ) 

Definition at line 108 of file TrkHitOnTrk.cxx.

References _isActive, _isUsable, TrkRep::activateHot(), TrkRep::deactivateHot(), getParentRep(), isActive(), isUsable(), mustUse(), and parentRep().

Referenced by MdcxTrackFinder::MdcxHitsToHots(), MdcTrackList::pickHits(), and MdcHitOnTrack::updateMeasurement().

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]

Definition at line 164 of file TrkHitOnTrk.cxx.

References hit(), and TrkFundHit::setUsedHit().

Referenced by TrkRecoTrk::changeDefault(), and TrkHitOnTrk().

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

const SvtHitOnTrack * TrkHitOnTrk::svtHitOnTrack (  )  const [virtual]

Definition at line 31 of file TrkHitOnTrk.cxx.

Referenced by TrkBase::Predicates::hasView::operator()(), and TrkBase::Predicates::isSvtHitOnTrack::operator()().

00031 {return 0;}

virtual bool TrkHitOnTrk::timeAbsolute ( double &  time,
double &  error 
) const [pure virtual]

Implemented in MdcHitOnTrack, and TrkBmSpotOnTrk.

virtual bool TrkHitOnTrk::timeResid ( double &  resid,
double &  error 
) const [pure virtual]

Implemented in MdcHitOnTrack, and TrkBmSpotOnTrk.

const TrkDifTraj* TrkHitOnTrk::trkTraj (  )  const [inline]

Definition at line 77 of file TrkHitOnTrk.h.

References _trkTraj.

Referenced by TrkBmSpotOnTrk::clone(), MdcRecoHitOnTrack::clone(), TrkBmSpotOnTrk::GetRms(), TrkHitOnTrk(), and updatePoca().

00077 { return _trkTraj;}

virtual TrkErrCode TrkHitOnTrk::updateMeasurement ( const TrkDifTraj traj,
bool  maintainAmbiguity 
) [protected, pure virtual]

Implemented in MdcHitOnTrack, and TrkBmSpotOnTrk.

Referenced by TrkBase::Functors::updateMeasurement::operator()(), and TrkHitOnTrkUpdater::updateMeasurement().

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

Definition at line 219 of file TrkHitOnTrk.cxx.

References _hitLen, _poca, _tolerance, _trkLen, _trkTraj, TrkPoca::doca(), TrkErrCode::fail, TrkErrCode::failure(), TrkPocaBase::flt1(), TrkPocaBase::flt2(), fltLen(), getParentRep(), hitLen(), hitTraj(), isActive(), setAmbig(), TrkPocaBase::status(), TrkErrCode::succeed, TrkAbsFit::traj(), and trkTraj().

Referenced by TrkBmSpotOnTrk::updateMeasurement(), and MdcHitOnTrack::updateMeasurement().

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

Definition at line 122 of file TrkHitOnTrk.cxx.

References hitRms().

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

virtual TrkEnums::TrkViewInfo TrkHitOnTrk::whatView (  )  const [pure virtual]

Implemented in MdcHitOnTrack, and TrkBmSpotOnTrk.

Referenced by TrkBase::Predicates::hasView::operator()().


Friends And Related Function Documentation

friend class TrkBase::Functors::setActive [friend]

Definition at line 192 of file TrkHitOnTrk.h.

friend class TrkBase::Functors::setParent [friend]

Definition at line 193 of file TrkHitOnTrk.h.

friend class TrkBase::Functors::updateMeasurement [friend]

Definition at line 191 of file TrkHitOnTrk.h.

friend class TrkHitOnTrkUpdater [friend]

Definition at line 190 of file TrkHitOnTrk.h.

friend class TrkHotList [friend]

Definition at line 53 of file TrkHitOnTrk.h.

friend class TrkRecoTrk [friend]

Definition at line 54 of file TrkHitOnTrk.h.

friend class TrkRep [friend]

Definition at line 56 of file TrkHitOnTrk.h.


Member Data Documentation

double TrkHitOnTrk::_hitLen [protected]

Definition at line 169 of file TrkHitOnTrk.h.

Referenced by hitLen(), setHitLen(), and updatePoca().

double TrkHitOnTrk::_hitRms [protected]

Definition at line 167 of file TrkHitOnTrk.h.

Referenced by hitRms(), and setHitRms().

bool TrkHitOnTrk::_isActive [protected]

Definition at line 165 of file TrkHitOnTrk.h.

Referenced by isActive(), setActive(), setActivity(), and setUsability().

int TrkHitOnTrk::_isUsable [protected]

Definition at line 166 of file TrkHitOnTrk.h.

Referenced by isUsable(), mustUse(), and setUsability().

TrkRep* TrkHitOnTrk::_parentRep [protected]

Definition at line 163 of file TrkHitOnTrk.h.

Referenced by getParentRep(), parentRep(), TrkHitOnTrkUpdater::setParent(), and setParent().

TrkPoca* TrkHitOnTrk::_poca [protected]

Definition at line 172 of file TrkHitOnTrk.h.

Referenced by getFitStuff(), hasResidual(), TrkHitOnTrk(), TrkBmSpotOnTrk::updateMeasurement(), MdcHitOnTrack::updateMeasurement(), updatePoca(), and ~TrkHitOnTrk().

double TrkHitOnTrk::_resid [protected]

Definition at line 170 of file TrkHitOnTrk.h.

Referenced by getFitStuff(), residual(), setHitResid(), and TrkHitOnTrk().

TrkFundHit* TrkHitOnTrk::_theHit [protected]

Definition at line 164 of file TrkHitOnTrk.h.

Referenced by hit().

double TrkHitOnTrk::_tolerance [protected]

Definition at line 173 of file TrkHitOnTrk.h.

Referenced by MdcHitOnTrack::dcaToWire(), getFitStuff(), and updatePoca().

double TrkHitOnTrk::_trkLen [protected]

Definition at line 168 of file TrkHitOnTrk.h.

Referenced by fltLen(), setFltLen(), and updatePoca().

const TrkDifTraj* TrkHitOnTrk::_trkTraj [protected]

Definition at line 171 of file TrkHitOnTrk.h.

Referenced by MdcHitOnTrack::driftVelocity(), getFitStuff(), residual(), TrkHitOnTrk(), trkTraj(), MdcHitOnTrack::updateCorrections(), and updatePoca().


Generated on Tue Nov 29 23:36:14 2016 for BOSS_7.0.2 by  doxygen 1.4.7