TrkBmSpotOnTrk Class Reference

#include <TrkBmSpotOnTrk.h>

Inheritance diagram for TrkBmSpotOnTrk:

TrkHitOnTrk List of all members.

Public Types

typedef std::unary_function<
TrkHitOnTrk, bool
predicate_type

Public Member Functions

 TrkBmSpotOnTrk (const HepPoint3D &ip, const HepSymMatrix &size)
 ~TrkBmSpotOnTrk ()
TrkBmSpotOnTrkclone (TrkRep *, const TrkDifTraj *t=0) const
virtual TrkEnums::TrkViewInfo whatView () const
virtual unsigned layerNumber () const
const TrajectoryhitTraj () const
const HepPoint3Dip () const
virtual bool timeResid (double &t, double &tErr) const
virtual bool timeAbsolute (double &t, double &tErr) const
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
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
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
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

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

Static Protected Member Functions

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

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

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

Private Attributes

const TrkLineTraj _beamTraj
const HepPoint3D _ip
const HepSymMatrix _size

Friends

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

Detailed Description

Definition at line 28 of file TrkBmSpotOnTrk.h.


Member Typedef Documentation

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

Definition at line 58 of file TrkHitOnTrk.h.


Constructor & Destructor Documentation

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

Definition at line 28 of file TrkBmSpotOnTrk.cxx.

Referenced by clone().

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

TrkBmSpotOnTrk::~TrkBmSpotOnTrk (  ) 

Definition at line 44 of file TrkBmSpotOnTrk.cxx.

00045 { }

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

Definition at line 36 of file TrkBmSpotOnTrk.cxx.

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

TrkBmSpotOnTrk::TrkBmSpotOnTrk ( const TrkBmSpotOnTrk  )  [private]


Member Function Documentation

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

Reimplemented in MdcHitOnTrack.

Definition at line 181 of file TrkHitOnTrk.cxx.

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

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

Implements TrkHitOnTrk.

Definition at line 48 of file TrkBmSpotOnTrk.cxx.

References TrkBmSpotOnTrk(), and TrkHitOnTrk::trkTraj().

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

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

Definition at line 156 of file TrkBmSpotOnTrk.cxx.

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]

Definition at line 91 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_trkLen.

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

00091 {return _trkLen;}

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

Definition at line 271 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::_resid, TrkHitOnTrk::_trkTraj, TrkHitOnTrk::getParentRep(), TrkHitOnTrk::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 [inherited]

Definition at line 248 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::_poca, TrkHitOnTrk::_resid, TrkHitOnTrk::_tolerance, TrkHitOnTrk::_trkTraj, TrkDifPoca::derivs(), TrkErrCode::fail, TrkErrCode::failure(), TrkDifPoca::fetchDerivs(), TrkHitOnTrk::fltLen(), TrkHitOnTrk::hitLen(), TrkHitOnTrk::hitRms(), TrkHitOnTrk::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, inherited]

Definition at line 73 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_parentRep.

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

00073 {return _parentRep;}

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

Definition at line 152 of file TrkHitOnTrk.cxx.

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

Referenced by TrkHitOnTrk::TrkHitOnTrk().

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

double TrkBmSpotOnTrk::GetRms (  )  [protected]

Definition at line 102 of file TrkBmSpotOnTrk.cxx.

References _size, Trajectory::direction(), TrkHitOnTrk::fltLen(), TrkHitOnTrk::getParentRep(), s, TrkAbsFit::traj(), and TrkHitOnTrk::trkTraj().

Referenced by updateMeasurement().

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]

Definition at line 104 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_poca.

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

00104 { return _poca != 0; }

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

Definition at line 76 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_theHit.

00076 {return _theHit;}

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

Definition at line 75 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_theHit.

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

00075 {return _theHit;}

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

Definition at line 92 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_hitLen.

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

00092 {return _hitLen;}

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

Definition at line 89 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_hitRms.

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

00089 {return _hitRms;}

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

Implements TrkHitOnTrk.

Definition at line 79 of file TrkBmSpotOnTrk.cxx.

References _beamTraj.

00080 {
00081   return &_beamTraj;
00082 }

const HepPoint3D & TrkBmSpotOnTrk::ip (  )  const

Definition at line 85 of file TrkBmSpotOnTrk.cxx.

References _ip.

00086 {
00087   return _ip;
00088 }

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

Definition at line 200 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_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(), TrkHitOnTrk::setActivity(), TrkHitOnTrk::setUsability(), MdcHitOnTrack::updateAmbiguity(), TrkHitOnTrk::updatePoca(), TrkMdcHotSelector::useHot(), and TrkActiveHotSelector::useHot().

00200 {return _isActive;}

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

Definition at line 201 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_isUsable.

Referenced by TrkHitOnTrk::setActivity(), and TrkHitOnTrk::setUsability().

00201 {return (_isUsable > 0);}

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

Implements TrkHitOnTrk.

Definition at line 36 of file TrkBmSpotOnTrk.h.

00036 { return 0; }

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

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, inherited]

Definition at line 202 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_isUsable.

Referenced by TrkHitOnTrk::setUsability().

00202 {return (_isUsable > 1);}

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

Definition at line 99 of file TrkHitOnTrk.h.

References TrkHitOnTrk::fltLen().

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

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

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

Definition at line 175 of file TrkHitOnTrk.cxx.

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

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

Definition at line 177 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_parentRep.

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

00177 { return _parentRep;}

TrkRecoTrk * TrkHitOnTrk::parentTrack (  )  const [inherited]

Definition at line 146 of file TrkHitOnTrk.cxx.

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

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

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

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

Definition at line 158 of file TrkHitOnTrk.cxx.

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

Referenced by TrkHitOnTrk::TrkHitOnTrk().

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

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

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

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

Definition at line 205 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::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 [inherited]

Definition at line 191 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::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 [inherited]

Definition at line 212 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::_resid, TrkHitOnTrk::_trkTraj, and TrkHitOnTrk::getParentRep().

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

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

void TrkHitOnTrk::setActivity ( bool  turnOn  )  [inherited]

Definition at line 96 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::_isActive, TrkRep::activateHot(), TrkRep::deactivateHot(), TrkHitOnTrk::getParentRep(), TrkHitOnTrk::isActive(), TrkHitOnTrk::isUsable(), and TrkHitOnTrk::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, inherited]

Reimplemented in MdcHitOnTrack.

Definition at line 187 of file TrkHitOnTrk.cxx.

Referenced by TrkHitOnTrk::updatePoca().

00188 {} // by default nothing to set

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

Definition at line 147 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_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, inherited]

Definition at line 178 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_hitLen.

Referenced by MdcHitOnTrack::MdcHitOnTrack().

00178 {_hitLen = h;}

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

Definition at line 176 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_resid.

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

00176 {_resid = newResid;}

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

Definition at line 154 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_hitRms.

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

00154 {_hitRms = newRms;}

void TrkHitOnTrk::setUnusedHit (  )  [protected, inherited]

Definition at line 170 of file TrkHitOnTrk.cxx.

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

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

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

void TrkHitOnTrk::setUsability ( int  usability  )  [inherited]

Definition at line 108 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::_isActive, TrkHitOnTrk::_isUsable, TrkRep::activateHot(), TrkRep::deactivateHot(), TrkHitOnTrk::getParentRep(), TrkHitOnTrk::isActive(), TrkHitOnTrk::isUsable(), TrkHitOnTrk::mustUse(), and TrkHitOnTrk::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, inherited]

Definition at line 164 of file TrkHitOnTrk.cxx.

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

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

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

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

Definition at line 31 of file TrkHitOnTrk.cxx.

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

00031 {return 0;}

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

Implements TrkHitOnTrk.

Definition at line 43 of file TrkBmSpotOnTrk.h.

00043 { return false; }

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

Implements TrkHitOnTrk.

Definition at line 42 of file TrkBmSpotOnTrk.h.

00042 { return false; }

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

Definition at line 77 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_trkTraj.

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

00077 { return _trkTraj;}

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

Implements TrkHitOnTrk.

Definition at line 55 of file TrkBmSpotOnTrk.cxx.

References TrkHitOnTrk::_poca, TrkPoca::doca(), GetRms(), TrkHitOnTrk::setHitResid(), TrkHitOnTrk::setHitRms(), TrkErrCode::success(), and TrkHitOnTrk::updatePoca().

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]

Definition at line 219 of file TrkHitOnTrk.cxx.

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

Referenced by 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 [inherited]

Definition at line 122 of file TrkHitOnTrk.cxx.

References TrkHitOnTrk::hitRms().

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

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

Implements TrkHitOnTrk.

Definition at line 73 of file TrkBmSpotOnTrk.cxx.

References TrkEnums::xyView.

00074 {
00075   return TrkEnums::xyView;
00076 }


Friends And Related Function Documentation

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

Definition at line 192 of file TrkHitOnTrk.h.

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

Definition at line 193 of file TrkHitOnTrk.h.

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

Definition at line 191 of file TrkHitOnTrk.h.


Member Data Documentation

const TrkLineTraj TrkBmSpotOnTrk::_beamTraj [private]

Definition at line 57 of file TrkBmSpotOnTrk.h.

Referenced by hitTraj().

double TrkHitOnTrk::_hitLen [protected, inherited]

Definition at line 169 of file TrkHitOnTrk.h.

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

double TrkHitOnTrk::_hitRms [protected, inherited]

Definition at line 167 of file TrkHitOnTrk.h.

Referenced by TrkHitOnTrk::hitRms(), and TrkHitOnTrk::setHitRms().

const HepPoint3D TrkBmSpotOnTrk::_ip [private]

Definition at line 58 of file TrkBmSpotOnTrk.h.

Referenced by ip().

bool TrkHitOnTrk::_isActive [protected, inherited]

Definition at line 165 of file TrkHitOnTrk.h.

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

int TrkHitOnTrk::_isUsable [protected, inherited]

Definition at line 166 of file TrkHitOnTrk.h.

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

TrkRep* TrkHitOnTrk::_parentRep [protected, inherited]

Definition at line 163 of file TrkHitOnTrk.h.

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

TrkPoca* TrkHitOnTrk::_poca [protected, inherited]

Definition at line 172 of file TrkHitOnTrk.h.

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

double TrkHitOnTrk::_resid [protected, inherited]

Definition at line 170 of file TrkHitOnTrk.h.

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

const HepSymMatrix TrkBmSpotOnTrk::_size [private]

Definition at line 59 of file TrkBmSpotOnTrk.h.

Referenced by GetRms().

TrkFundHit* TrkHitOnTrk::_theHit [protected, inherited]

Definition at line 164 of file TrkHitOnTrk.h.

Referenced by TrkHitOnTrk::hit().

double TrkHitOnTrk::_tolerance [protected, inherited]

Definition at line 173 of file TrkHitOnTrk.h.

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

double TrkHitOnTrk::_trkLen [protected, inherited]

Definition at line 168 of file TrkHitOnTrk.h.

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

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

Definition at line 171 of file TrkHitOnTrk.h.

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


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