MdcRecoHitOnTrack Class Reference

#include <MdcRecoHitOnTrack.h>

Inheritance diagram for MdcRecoHitOnTrack:

MdcHitOnTrack TrkHitOnTrk List of all members.

Public Types

typedef std::unary_function<
TrkHitOnTrk, bool
predicate_type

Public Member Functions

 MdcRecoHitOnTrack (const MdcHit &baseHit, int ambig, double bunchTime)
virtual ~MdcRecoHitOnTrack ()
virtual TrkHitOnTrkclone (TrkRep *, const TrkDifTraj *trkTraj=0) const
unsigned status () const
const MdcHitmdcHit () const
unsigned tdcIndex () const
int whichView () const
double entranceAngleHit () const
double entranceAngle () const
double entranceAngle (const HepPoint3D pos, const Hep3Vector dir) const
double dipAngle () const
int ambig () const
int wireAmbig () const
double fitTime () const
double drift () const
double drift (double dca) const
double dcaToWire () const
double rawTime () const
virtual const TrajectoryhitTraj () const
virtual const MdcHitOnTrackmdcHitOnTrack () const
virtual bool timeResid (double &t, double &tErr) const
virtual bool timeAbsolute (double &t, double &tErr) const
int wire () const
const MdcLayerlayer () const
int layernumber () const
unsigned layerNumber () const
double charge () const
TrkEnums::TrkViewInfo whatView () const
void setAmbig (int a)
void setT0 (double t0)
const TrkRecoTrkgetParentTrack () const
const TrkRepgetParentRep () const
PdtPid::PidType particleType () const
const TrkFundHithit () const
TrkFundHithit ()
const TrkDifTrajtrkTraj () 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
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

 MdcRecoHitOnTrack (const MdcRecoHitOnTrack &hitToBeCopied, TrkRep *newRep, const TrkDifTraj *trkTraj=0)
bool isBeyondEndflange () const
bool updateAmbiguity (double dca)
virtual TrkErrCode updateMeasurement (const TrkDifTraj *traj, bool maintainAmbiguity)
const MdcHitbaseHit () const
void changeBase (MdcHit *newBase)
void setHitResid (double newResid)
TrkRepparentRep () const
void setHitLen (double h)
void setUsedHit ()
void setUnusedHit ()
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

 MdcRecoHitOnTrack (const MdcRecoHitOnTrack &)
MdcRecoHitOnTrackoperator= (const MdcRecoHitOnTrack &)

Friends

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

Detailed Description

Definition at line 27 of file MdcRecoHitOnTrack.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

MdcRecoHitOnTrack::MdcRecoHitOnTrack ( const MdcHit baseHit,
int  ambig,
double  bunchTime 
)

Definition at line 17 of file MdcRecoHitOnTrack.cxx.

Referenced by clone().

00018   : MdcHitOnTrack(baseHit,baseHit, ambig,  bunchTime)
00019 { }

MdcRecoHitOnTrack::~MdcRecoHitOnTrack (  )  [virtual]

Definition at line 28 of file MdcRecoHitOnTrack.cxx.

00029 { ; }

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

Definition at line 22 of file MdcRecoHitOnTrack.cxx.

00025   : MdcHitOnTrack(hot,newRep,trkTraj)
00026 { }

MdcRecoHitOnTrack::MdcRecoHitOnTrack ( const MdcRecoHitOnTrack  )  [private]


Member Function Documentation

int MdcHitOnTrack::ambig (  )  const [inline, virtual, inherited]

Reimplemented from TrkHitOnTrk.

Definition at line 67 of file MdcHitOnTrack.h.

References MdcHitOnTrack::_ambig.

Referenced by MdcHitOnTrack::driftCurrent(), MdcTrackList::pickHits(), MdcHitOnTrack::updateAmbiguity(), MdcHitOnTrack::updateCorrections(), MdcHitOnTrack::updateMeasurement(), and MdcHitOnTrack::wireAmbig().

00067 { return _ambig; }  // wire wrt track direction

const MdcHit* MdcHitOnTrack::baseHit (  )  const [inline, protected, inherited]

Definition at line 123 of file MdcHitOnTrack.h.

References MdcHitOnTrack::_dHit.

Referenced by MdcHitOnTrack::MdcHitOnTrack().

00123 { return _dHit; }

void MdcHitOnTrack::changeBase ( MdcHit newBase  )  [protected, inherited]

Definition at line 399 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit.

00400 {
00401   _dHit = newBase;
00402 }

double MdcHitOnTrack::charge (  )  const [inherited]

Definition at line 378 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, and MdcHit::charge().

00379 {
00380   return _dHit->charge();
00381 }

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

Implements TrkHitOnTrk.

Definition at line 32 of file MdcRecoHitOnTrack.cxx.

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

Referenced by MdcHitUse::createHitOnTrk().

00033 {
00034   return new MdcRecoHitOnTrack(*this,rep,trkTraj);
00035 }

double MdcHitOnTrack::dcaToWire (  )  const [inherited]

Definition at line 123 of file MdcHitOnTrack.cxx.

References TrkHitOnTrk::_tolerance, TrkPoca::doca(), MdcHitOnTrack::drift(), TrkHitOnTrk::fltLen(), TrkHitOnTrk::getParentRep(), TrkHitOnTrk::hitLen(), MdcHitOnTrack::hitTraj(), TrkHitOnTrk::isActive(), TrkHitOnTrk::resid(), TrkPocaBase::status(), and TrkErrCode::success().

Referenced by MdcHitOnTrack::timeResid().

00124 {
00125   double dca = -9999.;
00126   if ( getParentRep() == 0 ) {
00127     //     cout << "no parent rep" << endl;
00128     return dca;
00129   }
00130   // WARNING: cannot use the internal _poca, as it lags one iteration
00131   //          behind the fit... therfore use _EXTERNAL_ residual
00132   if (isActive())  {  // FIXME: currently can only use 'resid()' if isActive..
00133     dca = resid()+drift();
00134   } else {
00135     TrkPoca poca(getParentRep()->traj(), fltLen(), *hitTraj(), hitLen(),
00136         _tolerance);
00137     if (poca.status().success()) dca = poca.doca();
00138   }
00139   return dca;
00140 }

double MdcHitOnTrack::dipAngle (  )  const [inherited]

Definition at line 227 of file MdcHitOnTrack.cxx.

References Trajectory::direction(), TrkHitOnTrk::fltLen(), TrkHitOnTrk::getParentRep(), Constants::pi, and TrkAbsFit::traj().

00228 {
00229   return getParentRep()==0?0:Constants::pi/2-getParentRep()->traj().direction(fltLen()).theta();
00230 }

double MdcHitOnTrack::drift ( double  dca  )  const [inline, inherited]

Definition at line 77 of file MdcHitOnTrack.h.

References MdcHitOnTrack::_drift.

00077 { return _drift[dca<0?0:1]; }

double MdcHitOnTrack::drift (  )  const [inline, inherited]

Definition at line 75 of file MdcHitOnTrack.h.

References MdcHitOnTrack::_ambig, and MdcHitOnTrack::_drift.

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

00075                              { return _ambig!=0 ? _drift[_ambig<0 ? 0:1] 
00076       : (_drift[1]-_drift[0])*0.5; }

double MdcHitOnTrack::entranceAngle ( const HepPoint3D  pos,
const Hep3Vector  dir 
) const [inherited]

Definition at line 183 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, and MdcHit::phi().

00184 {
00185   double angle = EntranceAngle(dir.phi() - _dHit->phi(pos.z()));
00186   //std::cout<< "eAngle("<<layernumber()<<","<<wire()<<") dir.phi()  "<<dir.phi()*180./3.14<<" hit phi "<<_dHit->phi(pos.z())*180./3.14<<" eAngle "<<angle*180./3.14<<" degree "<<angle<<std::endl;
00187 
00188   //std::cout<< __FILE__ << "   " << __LINE__ << "   ("<<layernumber()<<","<<wire()<<") "<<
00189   //" phiPoca "<<dir.phi()*180/3.14<< " phiWire "<<_dHit->phi(pos.z())*180/3.14<<" z "<<pos.z()<<
00190   //" dPhiz "<<_dHit->wire()->dPhizDC(pos.z())*180/3.14<< " eAngle "<<angle*180/3.14<< " angle "<<(dir.phi() - _dHit->phi(pos.z()))*180./3.14<<std::endl;
00191   /*
00192      if(g_tupleHit && fabs(angle)>0.0001){
00193      int layer = layernumber();
00194      int wireId = wire();
00195      g_hitLayer = layer;
00196      g_hitWire = wireId;
00197 
00198      int lrCalib=2;
00199      if (ambig()==1) lrCalib = 0;
00200      else if (ambig()==-1) lrCalib = 1;
00201      g_hitAmbig = lrCalib;
00202      g_hitAmbigMc = haveDigiMcLr[layer][wireId];
00203      g_hitEAngle = angle*180./3.14;
00204      g_hitEAngleMc = haveDigiEAngle[layer][wireId]*180./3.14;
00205      g_hitZ = pos.z();
00206      g_hitZMc = haveDigiZ[layer][wireId];
00207      g_hitDrift = _drift[ambig()];
00208      g_hitDriftMc = haveDigiDrift[layer][wireId];
00209      g_hitTkIdMc = haveDigiTk[layer][wireId];
00210      g_hitPhiPoca = dir.phi()*180./3.41;
00211      g_hitPhiHit = _dHit->phi(pos.z())*180./3.41;
00212      g_hitPhiHit0 = _dHit->phi()*180./3.41;
00213      g_hitPhiHitDel = _dHit->wire()->dPhiz()*180./3.41;
00214      g_tupleHit->write();
00215      }
00216      */
00217   return angle;
00218 }

double MdcHitOnTrack::entranceAngle (  )  const [inherited]

Definition at line 172 of file MdcHitOnTrack.cxx.

References TrkHitOnTrk::fltLen(), Trajectory::getInfo(), TrkHitOnTrk::getParentRep(), boss::pos, and TrkAbsFit::traj().

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

00173 {
00174   static Hep3Vector dir;
00175   static HepPoint3D pos;
00176   if (getParentRep() == 0) return 0.;
00177   getParentRep()->traj().getInfo(fltLen(), pos, dir);
00178 
00179   return entranceAngle(pos, dir);
00180 }

double MdcHitOnTrack::entranceAngleHit (  )  const [inherited]

Definition at line 161 of file MdcHitOnTrack.cxx.

References TrkHitOnTrk::fltLen(), Trajectory::getInfo(), TrkHitOnTrk::getParentRep(), boss::pos, and TrkAbsFit::traj().

00162 {
00163   static Hep3Vector dir;
00164   static HepPoint3D pos;
00165   if (getParentRep() == 0) return 0.;
00166   getParentRep()->traj().getInfo(fltLen(), pos, dir);
00167 
00168   return BesAngle(dir.phi() - pos.phi());
00169 }

double MdcHitOnTrack::fitTime (  )  const [inline, inherited]

Definition at line 71 of file MdcHitOnTrack.h.

References MdcHitOnTrack::_fitTime.

00071 { return _fitTime; }

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(), TrkBmSpotOnTrk::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(), TrkBmSpotOnTrk::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 }

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(), 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 * MdcHitOnTrack::hitTraj (  )  const [virtual, inherited]

Implements TrkHitOnTrk.

Definition at line 384 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_hitTraj.

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

00385 {
00386   return _hitTraj;
00387 }

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 MdcHitOnTrack::isBeyondEndflange (  )  const [inline, protected, inherited]

Definition at line 114 of file MdcHitOnTrack.h.

References MdcHitOnTrack::_endLen, MdcHitOnTrack::_startLen, and TrkHitOnTrk::hitLen().

Referenced by MdcHitOnTrack::updateMeasurement().

00115     { return (hitLen() < _startLen || hitLen() > _endLen); }

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);}

const MdcLayer * MdcHitOnTrack::layer (  )  const [inherited]

Definition at line 354 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, and MdcHit::layer().

00355 {
00356   return _dHit->layer();
00357 }

unsigned MdcHitOnTrack::layerNumber (  )  const [virtual, inherited]

Implements TrkHitOnTrk.

Definition at line 221 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::layernumber().

00222 {
00223   return layernumber();
00224 }

int MdcHitOnTrack::layernumber (  )  const [inherited]

Definition at line 348 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, and MdcHit::layernumber().

Referenced by MdcHitOnTrack::layerNumber().

00349 {
00350   return _dHit->layernumber();
00351 }

const MdcHit * MdcRecoHitOnTrack::mdcHit (  )  const [virtual]

Reimplemented from MdcHitOnTrack.

Definition at line 38 of file MdcRecoHitOnTrack.cxx.

References TrkHitOnTrk::hit().

Referenced by status(), and tdcIndex().

00039 {
00040   return static_cast<const MdcHit*>(hit());
00041 }

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

Reimplemented from TrkHitOnTrk.

Definition at line 155 of file MdcHitOnTrack.cxx.

00156 {
00157   return this;
00158 }

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();}

MdcRecoHitOnTrack& MdcRecoHitOnTrack::operator= ( const MdcRecoHitOnTrack  )  [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]

double MdcHitOnTrack::rawTime (  )  const [inherited]

Definition at line 372 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, and MdcHit::rawTime().

00373 {
00374   return _dHit->rawTime();
00375 }

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 MdcHitOnTrack::setAmbig ( int  a  )  [inline, virtual, inherited]

Reimplemented from TrkHitOnTrk.

Definition at line 104 of file MdcHitOnTrack.h.

References MdcHitOnTrack::_ambig.

Referenced by MdcHitOnTrack::updateAmbiguity().

00104 { _ambig = a<0?-1:a>0?1:0; }

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(), TrkBmSpotOnTrk::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 TrkBmSpotOnTrk::updateMeasurement().

00154 {_hitRms = newRms;}

void MdcHitOnTrack::setT0 ( double  t0  )  [inherited]

Definition at line 117 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, MdcHitOnTrack::_fitTime, and MdcHit::rawTime().

00118 { 
00119   _fitTime= _dHit->rawTime()-t0*1e-9; 
00120 }

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 }

unsigned MdcRecoHitOnTrack::status (  )  const [virtual]

Implements MdcHitOnTrack.

Definition at line 44 of file MdcRecoHitOnTrack.cxx.

References mdcHit(), and MdcHit::status().

00045 {
00046 //  return mdcHit()->digi()->status();
00047   return mdcHit()->status();
00048 }

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;}

unsigned MdcRecoHitOnTrack::tdcIndex (  )  const [virtual]

Implements MdcHitOnTrack.

Definition at line 51 of file MdcRecoHitOnTrack.cxx.

References mdcHit(), and MdcHit::tdcIndex().

00052 {
00053   return mdcHit()->tdcIndex();
00054 }

bool MdcHitOnTrack::timeAbsolute ( double &  t,
double &  tErr 
) const [virtual, inherited]

Implements TrkHitOnTrk.

Definition at line 330 of file MdcHitOnTrack.cxx.

References TrkHitOnTrk::getParentRep(), TrkRep::parentTrack(), MdcHitOnTrack::timeResid(), and TrkRecoTrk::trackT0().

00331 {
00332   double tresid(-1.0);
00333   if(timeResid(tresid,tErr)){
00334     // add back the track time
00335     t = tresid + getParentRep()->parentTrack()->trackT0();
00336     return true;
00337   } else
00338     return false;
00339 }

bool MdcHitOnTrack::timeResid ( double &  t,
double &  tErr 
) const [virtual, inherited]

Implements TrkHitOnTrk.

Definition at line 320 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::dcaToWire(), MdcHitOnTrack::drift(), MdcHitOnTrack::driftVelocity(), TrkHitOnTrk::hitRms(), and v.

Referenced by MdcHitOnTrack::timeAbsolute().

00321 {
00322   double v = driftVelocity();
00323   if (v <= 0) return false;
00324   t = (fabs(drift())-fabs(dcaToWire()))/v;
00325   tErr= hitRms()/v;
00326   return true;
00327 }

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

Definition at line 77 of file TrkHitOnTrk.h.

References TrkHitOnTrk::_trkTraj.

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

00077 { return _trkTraj;}

bool MdcHitOnTrack::updateAmbiguity ( double  dca  )  [protected, inherited]

Definition at line 143 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::ambig(), TrkHitOnTrk::isActive(), and MdcHitOnTrack::setAmbig().

Referenced by MdcHitOnTrack::updateMeasurement().

00144 {
00145   if (dca < 0 && ambig() >= 0) {
00146     setAmbig(-1); return isActive();
00147   } else if (dca > 0 && ambig() <= 0) {
00148     setAmbig(1); return isActive();
00149   } else {
00150     return false;
00151   }
00152 }

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

Implements TrkHitOnTrk.

Definition at line 233 of file MdcHitOnTrack.cxx.

References TrkHitOnTrk::_poca, MdcHitOnTrack::ambig(), TrkPoca::doca(), MdcHitOnTrack::drift(), MdcHitOnTrack::driftCurrent(), MdcHitOnTrack::isBeyondEndflange(), TrkHitOnTrk::setHitResid(), TrkHitOnTrk::setUsability(), MdcHitOnTrack::status(), TrkErrCode::succeed, MdcHitOnTrack::updateAmbiguity(), MdcHitOnTrack::updateCorrections(), and TrkHitOnTrk::updatePoca().

00234 {
00235   TrkErrCode status=updatePoca(traj,maintainAmb);
00236   if (status.failure()) {
00237 #ifdef MDCPATREC_DEBUG
00238     std::cout<<" ErrMsg(warning) " << "MdcHitOnTrack::updateMeasurement failed " << status << std::endl;
00239 #endif
00240     return status;
00241   }
00242   assert (_poca!=0);
00243   double dca=_poca->doca();
00244   bool forceIteration = (maintainAmb&&ambig()!=0)?false:updateAmbiguity(dca);
00245   //std::cout<< __FILE__ << "   " << __LINE__ << " maintainAmb "<< maintainAmb
00246   //<< " maintain&& ambig "<<(maintainAmb&&ambig()!=0)
00247   //<< " forceIteration  "<<forceIteration<<std::endl;
00248   assert(ambig()!=0);
00249   // Check for hits beyond end plates.  !!Turn off hit if it is == temp. hack
00250   if (isBeyondEndflange()) setUsability(false);
00251   if (forceIteration || !driftCurrent() ) {
00252     updateCorrections(); // force recomputation of drift for current ambig(), setting of hitRms
00253     forceIteration=true;
00254   }
00255   setHitResid(dca-drift());
00256   return !forceIteration?status:
00257     TrkErrCode(TrkErrCode::succeed, 11, "Ambiguity flipped");
00258 }

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 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 [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 MdcHitOnTrack::whatView (  )  const [virtual, inherited]

Implements TrkHitOnTrk.

Definition at line 342 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, and MdcHit::whatView().

00343 {
00344   return _dHit->whatView();
00345 }

int MdcRecoHitOnTrack::whichView (  )  const

Reimplemented from MdcHitOnTrack.

int MdcHitOnTrack::wire (  )  const [inherited]

Definition at line 360 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_dHit, and MdcHit::wirenumber().

00361 {
00362   return _dHit->wirenumber();
00363 }

int MdcHitOnTrack::wireAmbig (  )  const [inherited]

Definition at line 415 of file MdcHitOnTrack.cxx.

References MdcHitOnTrack::_ambig, MdcHitOnTrack::ambig(), TrkHitOnTrk::fltLen(), Trajectory::getInfo(), TrkHitOnTrk::getParentRep(), MdcHitOnTrack::mdcHit(), boss::pos, TrkRep::position(), and TrkAbsFit::traj().

Referenced by MdcHitOnTrack::updateCorrections().

00415                                    {
00416   // hit wrt the wire location
00417 
00418   //return fabs(entranceAngle())<Constants::pi/2?ambig():-ambig();
00419   const TrkRep* tkRep = getParentRep();
00420   static Hep3Vector dir;
00421   static HepPoint3D pos;
00422   if (getParentRep() == 0) return 0.;
00423   getParentRep()->traj().getInfo(fltLen(), pos, dir);
00424 
00425   double wireAmb = ambig();
00426   if (mdcHit()->isCosmicFit()){
00427     HepPoint3D poca = tkRep->position(0.);
00428     if ( pos.y() > poca.y()){
00429       wireAmb = -1.*_ambig;//yzhang 2012-07-17 
00430       //std::cout<<"MdcHitOnTrack CosmicFit  up ambig *-1"<<std::endl;
00431     }
00432   } 
00433 
00434   return wireAmb;
00435 }


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

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().

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(), TrkBmSpotOnTrk::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().

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:20:16 2016 for BOSS_7.0.2 by  doxygen 1.4.7