#include <TrkRep.h>
Inheritance diagram for TrkRep:
Public Types | |
typedef std::unary_function< TrkFitStatus, bool > | predicate_type |
Public Member Functions | |
TrkRep (const TrkHotList &inHots, TrkRecoTrk *trk, PdtPid::PidType hypo) | |
TrkRep (TrkHotList &inHots, TrkRecoTrk *trk, PdtPid::PidType hypo, bool stealHots=false) | |
TrkRep (const TrkHotList *inHots, TrkRecoTrk *trk, PdtPid::PidType hypo) | |
TrkRep (TrkHotList *inHots, TrkRecoTrk *trk, PdtPid::PidType hypo, bool takeownership=false) | |
TrkRep (TrkRecoTrk *trk, PdtPid::PidType hypo, int nAct, int nSvt, int nMdc, double startFoundRange, double endFoundRange) | |
TrkRep (TrkRecoTrk *trk, PdtPid::PidType hypo, bool createHotList=false) | |
TrkRep (const TrkRep &oldRep, TrkRecoTrk *trk, PdtPid::PidType hypo) | |
virtual | ~TrkRep () |
virtual TrkRep * | clone (TrkRecoTrk *newTrack) const =0 |
virtual TrkRep * | cloneNewHypo (PdtPid::PidType hypo)=0 |
bool | operator== (const TrkRep &) |
virtual ChisqConsistency | chisqConsistency () const |
virtual int | nActive () const |
virtual int | nSvt () const |
virtual int | nMdc () const |
virtual PdtPid::PidType | particleType () const |
TrkRecoTrk * | parentTrack () |
const TrkRecoTrk * | parentTrack () const |
double | startValidRange () const |
double | endValidRange () const |
virtual double | startFoundRange () const |
virtual double | endFoundRange () const |
virtual const IfdKey & | myKey () const |
double | trackT0 () const |
virtual HepPoint3D | position (double fltL) const |
virtual Hep3Vector | direction (double fltL) const |
virtual double | arrivalTime (double fltL) const |
virtual BesPointErr | positionErr (double fltL) const |
virtual BesVectorErr | directionErr (double fltL) const |
virtual void | addHot (TrkHitOnTrk *theHot) |
virtual void | removeHot (TrkHitOnTrk *theHot) |
virtual void | activateHot (TrkHitOnTrk *theHot) |
virtual void | deactivateHot (TrkHitOnTrk *theHot) |
virtual TrkHotList * | hotList () |
virtual const TrkHotList * | hotList () const |
virtual void | updateHots () |
virtual bool | resid (const TrkHitOnTrk *theHot, double &residual, double &residErr, bool exclude=false) const |
bool | hitCapable () const |
virtual TrkErrCode | fit ()=0 |
bool | is2d () const |
bool | fitCurrent () const |
bool | fitValid () const |
bool | multScat () const |
std::ostream & | printStatus (std::ostream &os=std::cout) const |
void | setValid (bool v) |
void | setCurrent (bool c) |
void | set2d (bool d) |
void | setMultScat (bool m) |
const TrkErrCode & | fitStatus () const |
history_iterator | beginHistory () const |
history_iterator | endHistory () const |
history_riterator | reverseBeginHistory () const |
history_riterator | reverseEndHistory () const |
std::pair< history_iterator, history_iterator > | history () const |
const std::vector< TrkHistory > & | historyVector () const |
virtual void | addHistory (const TrkErrCode &status, const char *modulename) |
template<class T> | |
void | addHistory (T begin, T end) |
template<class T> | |
void | addHistory (std::pair< T, T > p) |
std::ostream & | printHistory (std::ostream &os=std::cout) const |
virtual bool | validFlightLength (double fltL, double tolerance=0.0) const |
void | printType (std::ostream &ostr) const |
virtual TrkExchangePar | helix (double fltL) const =0 |
virtual int | charge () const =0 |
virtual double | chisq () const =0 |
virtual int | nDof () const =0 |
virtual const TrkDifTraj & | traj () const =0 |
virtual Hep3Vector | momentum (double fltL=0.) const =0 |
virtual double | pt (double fltL=0.) const =0 |
virtual BesVectorErr | momentumErr (double fltL) const =0 |
virtual HepMatrix | posmomCov (double fltL) const =0 |
virtual void | getAllCovs (double fltL, HepSymMatrix &xxCov, HepSymMatrix &ppCov, HepMatrix &xpCov) const =0 |
virtual void | getAllWeights (double fltL, HepVector &pos, HepVector &mom, HepSymMatrix &xxWeight, HepSymMatrix &ppWeight, HepMatrix &xpWeight) const =0 |
virtual void | printAll (std::ostream &ostr) const =0 |
virtual void | print (std::ostream &ostr) const =0 |
Protected Member Functions | |
TrkRep & | operator= (const TrkRep &) |
const TrkContext & | trkContext () const |
TrkErrCode | updateMeasurement (TrkHitOnTrk &hot, const TrkDifTraj *traj=0, bool maintainAmbiguity=false) const |
TrkBase::Functors::updateMeasurement | updateMeasurement (const TrkDifTraj *traj=0, bool maintainAmbiguity=false) const |
void | setActivity (TrkHitOnTrk &hot, bool active) const |
void | setParent (TrkHitOnTrk &hot, TrkRep *parent) const |
TrkBase::Functors::setParent | setParent (TrkRep *parent) const |
TrkBase::Functors::setActive | setActive (bool active) const |
Protected Attributes | |
std::auto_ptr< TrkHotList > | _hotList |
Private Member Functions | |
void | init (TrkRecoTrk *trk, PdtPid::PidType hypo) |
Private Attributes | |
PdtPid::PidType | _partHypo |
TrkRecoTrk * | _parentTrack |
double | _betainv |
Definition at line 43 of file TrkRep.h.
typedef std::unary_function<TrkFitStatus,bool> TrkFitStatus::predicate_type [inherited] |
Definition at line 31 of file TrkFitStatus.h.
TrkRep::TrkRep | ( | const TrkHotList & | inHots, | |
TrkRecoTrk * | trk, | |||
PdtPid::PidType | hypo | |||
) |
Definition at line 47 of file TrkRep.cxx.
References init().
00049 :_hotList( hotlist.clone(TrkBase::Functors::cloneHot(this)) ) 00050 { 00051 init(trk, hypo); 00052 }
TrkRep::TrkRep | ( | TrkHotList & | inHots, | |
TrkRecoTrk * | trk, | |||
PdtPid::PidType | hypo, | |||
bool | stealHots = false | |||
) |
Definition at line 54 of file TrkRep.cxx.
References _hotList, TrkHotList::clone(), init(), and TrkHitOnTrkUpdater::setParent().
00056 { 00057 init(trk, hypo); 00058 if (!stealHots) { 00059 _hotList.reset( hotlist.clone(TrkBase::Functors::cloneHot(this)) ); 00060 } else { 00061 _hotList.reset( new TrkHotListFull(hotlist,setParent(this)) ); 00062 } 00063 }
TrkRep::TrkRep | ( | const TrkHotList * | inHots, | |
TrkRecoTrk * | trk, | |||
PdtPid::PidType | hypo | |||
) |
Definition at line 65 of file TrkRep.cxx.
References _hotList, TrkHotList::clone(), and init().
00067 { 00068 //yzhang SegGrouperAx::storePar newTrack come here 00069 //yzhang SegGrouperSt::storePar addZValue come here too and hotlist!=0 do clone() 00070 init(trk, hypo); 00071 _hotList.reset( hotlist!=0? 00072 hotlist->clone(TrkBase::Functors::cloneHot(this)): 00073 new TrkHotListFull ); 00074 }
TrkRep::TrkRep | ( | TrkHotList * | inHots, | |
TrkRecoTrk * | trk, | |||
PdtPid::PidType | hypo, | |||
bool | takeownership = false | |||
) |
Definition at line 76 of file TrkRep.cxx.
References _hotList, TrkHotList::clone(), init(), TrkHotList::resetParent(), and TrkHitOnTrkUpdater::setParent().
00078 { 00079 init(trk, hypo); 00080 if (!takeownership) { 00081 _hotList.reset( hotlist!=0? 00082 hotlist->clone(TrkBase::Functors::cloneHot(this)): 00083 new TrkHotListFull ); 00084 } else { 00085 assert(hotlist!=0); 00086 _hotList.reset( hotlist->resetParent(setParent(this)) ); 00087 } 00088 }
TrkRep::TrkRep | ( | TrkRecoTrk * | trk, | |
PdtPid::PidType | hypo, | |||
int | nAct, | |||
int | nSvt, | |||
int | nMdc, | |||
double | startFoundRange, | |||
double | endFoundRange | |||
) |
Definition at line 91 of file TrkRep.cxx.
References init().
00093 :_hotList(new TrkHotListEmpty(nact, nsv, ndc, stFndRng, endFndRng)) 00094 { 00095 // cout << " in TrkRep copy ctor 1" << endl;//yzhang debug 00096 00097 init(trk, hypo); 00098 }
TrkRep::TrkRep | ( | TrkRecoTrk * | trk, | |
PdtPid::PidType | hypo, | |||
bool | createHotList = false | |||
) |
Definition at line 41 of file TrkRep.cxx.
References init().
00042 : _hotList( createHotList?new TrkHotListFull:0 ) 00043 { 00044 init(trk, hypo); 00045 }
TrkRep::TrkRep | ( | const TrkRep & | oldRep, | |
TrkRecoTrk * | trk, | |||
PdtPid::PidType | hypo | |||
) |
Definition at line 101 of file TrkRep.cxx.
References init().
00101 : 00102 TrkFitStatus(oldRep) 00103 { 00104 // cout << " in TrkRep copy ctor 2" << endl;//yzhang debug 00105 00106 init(trk, hypo); 00107 // Hots and hotlist have to be cloned in the derived classes 00108 }
TrkRep::~TrkRep | ( | ) | [virtual] |
void TrkRep::activateHot | ( | TrkHitOnTrk * | theHot | ) | [virtual] |
Definition at line 154 of file TrkRep.cxx.
References TrkHitOnTrk::getParentRep(), TrkHitOnTrk::isActive(), TrkHitOnTrk::setActive(), and TrkFitStatus::setCurrent().
Referenced by TrkHitOnTrk::setActivity(), and TrkHitOnTrk::setUsability().
00155 { 00156 if(!hot->isActive()){ 00157 // make sure this is my hot we're talking about 00158 if(this == hot->getParentRep()){ 00159 setCurrent(false); 00160 // actually activate the hot; this is now the rep's job 00161 hot->setActive(true); 00162 } 00163 } 00164 }
void TrkFitStatus::addHistory | ( | std::pair< T, T > | p | ) | [inline, inherited] |
Definition at line 59 of file TrkFitStatus.h.
References TrkFitStatus::addHistory().
00059 { addHistory(p.first,p.second); }
void TrkFitStatus::addHistory | ( | T | begin, | |
T | end | |||
) | [inline, inherited] |
void TrkFitStatus::addHistory | ( | const TrkErrCode & | status, | |
const char * | modulename | |||
) | [virtual, inherited] |
Definition at line 76 of file TrkFitStatus.cxx.
References TrkFitStatus::_history.
Referenced by TrkFitStatus::addHistory(), and MdcTrackList::finishCircle().
00078 { 00079 // append the module name to the error code message 00080 _history.push_back(TrkHistory(status,modulename)); 00081 }
void TrkRep::addHot | ( | TrkHitOnTrk * | theHot | ) | [virtual] |
Definition at line 140 of file TrkRep.cxx.
References TrkHotList::append(), hotList(), TrkHitOnTrk::isActive(), and TrkFitStatus::setCurrent().
00141 { 00142 if (newHot->isActive()) setCurrent(false); 00143 hotList()->append(newHot); 00144 }
double TrkRep::arrivalTime | ( | double | fltL | ) | const [virtual] |
Implements TrkFit.
Reimplemented in TrkLineRep.
Definition at line 192 of file TrkRep.cxx.
References _betainv, Constants::c, Pdt::lookup(), PdtEntry::mass(), TrkAbsFit::momentum(), particleType(), and trackT0().
Referenced by MdcHitOnTrack::driftVelocity(), and MdcHitOnTrack::updateCorrections().
00193 { 00194 static double cinv = 1./Constants::c; 00195 // Initialize cache 00196 if (_betainv < 0.0) { 00197 double mass2 = Pdt::lookup(particleType())->mass(); 00198 mass2 = mass2 * mass2; 00199 double ptot2 = momentum(0.).mag2(); 00200 assert(ptot2 != 0.0); 00201 _betainv = sqrt( (ptot2 + mass2)/ ptot2); 00202 } 00203 double tof = fltL * _betainv * cinv; 00204 return trackT0() + tof; 00205 }
history_iterator TrkFitStatus::beginHistory | ( | ) | const [inline, inherited] |
Definition at line 46 of file TrkFitStatus.h.
References TrkFitStatus::_history.
Referenced by TrkFitStatus::history().
00046 { return _history.begin(); }
virtual int TrkAbsFit::charge | ( | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
Referenced by MdcxTrackFinder::fillTrack(), MdcTrkRecon::fillTrackList(), and MdcTrack::storeTrack().
virtual double TrkAbsFit::chisq | ( | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
Referenced by chisqConsistency(), HoughValidUpdate::execute(), MdcxTrackFinder::fillTrack(), MdcTrkRecon::fillTrackList(), MdcTrackListCsmc::finish3d(), MdcTrackList::finishCircle(), MdcTrackList::finishHelix(), MdcxTrackFinder::FitMdcxTrack(), positionErr(), and MdcTrack::storeTrack().
ChisqConsistency TrkRep::chisqConsistency | ( | ) | const [virtual] |
Implements TrkFit.
Definition at line 363 of file TrkRep.cxx.
References TrkAbsFit::chisq(), TrkFitStatus::fitValid(), and TrkAbsFit::nDof().
00363 { 00364 if(fitValid()) 00365 return ChisqConsistency(chisq(),nDof()); 00366 else 00367 return ChisqConsistency(); 00368 }
virtual TrkRep* TrkRep::clone | ( | TrkRecoTrk * | newTrack | ) | const [pure virtual] |
Implemented in TrkCircleRep, TrkHelixRep, and TrkLineRep.
virtual TrkRep* TrkRep::cloneNewHypo | ( | PdtPid::PidType | hypo | ) | [pure virtual] |
Implemented in TrkCircleRep, TrkHelixRep, and TrkLineRep.
void TrkRep::deactivateHot | ( | TrkHitOnTrk * | theHot | ) | [virtual] |
Definition at line 167 of file TrkRep.cxx.
References TrkHitOnTrk::getParentRep(), TrkHitOnTrk::isActive(), TrkHitOnTrk::setActive(), and TrkFitStatus::setCurrent().
Referenced by TrkHitOnTrk::setActivity(), and TrkHitOnTrk::setUsability().
00168 { 00169 if(hot->isActive()){ 00170 // make sure this is my hot we're talking about 00171 if(this == hot->getParentRep()){ 00172 setCurrent(false); 00173 // actually deactivate the hot; this is now the rep's job 00174 hot->setActive(false); 00175 } 00176 } 00177 }
Hep3Vector TrkRep::direction | ( | double | fltL | ) | const [virtual] |
Implements TrkAbsFit.
Definition at line 186 of file TrkRep.cxx.
References Trajectory::direction(), and TrkAbsFit::traj().
BesVectorErr TrkRep::directionErr | ( | double | fltL | ) | const [virtual] |
Implements TrkAbsFit.
Definition at line 272 of file TrkRep.cxx.
References DifIndepPar::covariance(), DifVector::errorMatrix(), TrkDifTraj::getDFInfo2(), DifNumber::indepPar(), DifNumber::number(), TrkAbsFit::traj(), DifVector::x, DifVector::y, and DifVector::z.
00273 { 00274 static DifPoint posD; 00275 static DifVector dirD; 00276 traj().getDFInfo2(fltL, posD, dirD); 00277 BesError symErr(3); 00278 symErr.assign( dirD.errorMatrix( dirD.x.indepPar()->covariance() )); 00279 Hep3Vector dir(dirD.x.number(), dirD.y.number(), dirD.z.number()); 00280 return BesVectorErr(dir, symErr); 00281 }
double TrkRep::endFoundRange | ( | ) | const [virtual] |
Implements TrkFit.
Definition at line 302 of file TrkRep.cxx.
References TrkHotList::endFoundRange(), and hotList().
00303 { 00304 return hotList()->endFoundRange(); 00305 }
history_iterator TrkFitStatus::endHistory | ( | ) | const [inline, inherited] |
Definition at line 47 of file TrkFitStatus.h.
References TrkFitStatus::_history.
Referenced by TrkFitStatus::history().
00047 { return _history.end(); }
double TrkRep::endValidRange | ( | ) | const [virtual] |
Implements TrkAbsFit.
Definition at line 290 of file TrkRep.cxx.
References Trajectory::hiRange(), and TrkAbsFit::traj().
virtual TrkErrCode TrkRep::fit | ( | ) | [pure virtual] |
bool TrkFitStatus::fitCurrent | ( | ) | const [inline, inherited] |
Definition at line 33 of file TrkFitStatus.h.
References TrkFitStatus::_fitCurrent.
Referenced by TrkLineRep::clone(), TrkHelixRep::clone(), TrkCircleRep::clone(), TrkLineRep::cloneNewHypo(), TrkHelixRep::cloneNewHypo(), and TrkCircleRep::cloneNewHypo().
00033 {return _fitCurrent;}
const TrkErrCode& TrkFitStatus::fitStatus | ( | ) | const [inline, inherited] |
Definition at line 43 of file TrkFitStatus.h.
References TrkFitStatus::_history.
00043 { return _history.back().status(); }
bool TrkFitStatus::fitValid | ( | ) | const [inline, inherited] |
Definition at line 34 of file TrkFitStatus.h.
References TrkFitStatus::_fitValid.
Referenced by chisqConsistency(), TrkLineRep::clone(), TrkCircleRep::clone(), TrkLineRep::cloneNewHypo(), TrkHelixRep::cloneNewHypo(), TrkCircleRep::cloneNewHypo(), and TrkRecoTrk::fitResult().
00034 {return _fitValid;}
virtual void TrkAbsFit::getAllCovs | ( | double | fltL, | |
HepSymMatrix & | xxCov, | |||
HepSymMatrix & | ppCov, | |||
HepMatrix & | xpCov | |||
) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
virtual void TrkAbsFit::getAllWeights | ( | double | fltL, | |
HepVector & | pos, | |||
HepVector & | mom, | |||
HepSymMatrix & | xxWeight, | |||
HepSymMatrix & | ppWeight, | |||
HepMatrix & | xpWeight | |||
) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
virtual TrkExchangePar TrkFit::helix | ( | double | fltL | ) | const [pure virtual, inherited] |
Implemented in TrkCircleRep, TrkHelixRep, and TrkLineRep.
Referenced by TrkHelixMaker::addZValues(), MdcSegInfoSterO::calcStereo(), MdcSegGrouper::combineSegs(), MdcTrackList::createFromSegs(), MdcxCosmicSewer::execute(), MdcHoughFinder::execute(), HoughValidUpdate::execute(), MdcxTrackFinder::fillTrack(), MdcTrkRecon::fillTrackList(), MdcSegGrouperSt::fillWithSegs(), MdcTrackList::finishCircle(), MdcTrackList::finishHelix(), MdcTrackList::pickHits(), positionErr(), MdcTrack::projectToR(), MdcxTrackFinder::store(), MdcMergeDups::store(), and MdcTrack::storeTrack().
std::pair<history_iterator,history_iterator> TrkFitStatus::history | ( | ) | const [inline, inherited] |
Definition at line 50 of file TrkFitStatus.h.
References TrkFitStatus::beginHistory(), and TrkFitStatus::endHistory().
00050 { 00051 return std::pair<history_iterator,history_iterator>(beginHistory(),endHistory()); 00052 }
const std::vector<TrkHistory>& TrkFitStatus::historyVector | ( | ) | const [inline, inherited] |
Definition at line 53 of file TrkFitStatus.h.
References TrkFitStatus::_history.
00053 { return _history; }
bool TrkRep::hitCapable | ( | ) | const [inline] |
Definition at line 118 of file TrkRep.h.
References TrkHotList::hitCapable(), and hotList().
Referenced by TrkSimpleRep::fit().
00118 {return hotList()->hitCapable();}
virtual const TrkHotList* TrkRep::hotList | ( | ) | const [inline, virtual] |
virtual TrkHotList* TrkRep::hotList | ( | ) | [inline, virtual] |
Definition at line 109 of file TrkRep.h.
References _hotList.
Referenced by addHot(), TrkHelixMaker::addZValues(), TrkRecoTrk::changeDefault(), endFoundRange(), TrkSimpleRep::fit(), TrkHitList::fit(), hitCapable(), TrkHitList::hotList(), TrkRecoTrk::hots(), nActive(), nMdc(), nSvt(), removeHot(), startFoundRange(), TrkSimpleRep::TrkSimpleRep(), and updateHots().
00109 {return _hotList.get();}
void TrkRep::init | ( | TrkRecoTrk * | trk, | |
PdtPid::PidType | hypo | |||
) | [private] |
Definition at line 122 of file TrkRep.cxx.
References _betainv, _parentTrack, and _partHypo.
Referenced by operator=(), and TrkRep().
00123 { 00124 _parentTrack = trk; 00125 _partHypo = hypo; 00126 _betainv = -999999.; 00127 }
bool TrkFitStatus::is2d | ( | ) | const [inline, inherited] |
Definition at line 32 of file TrkFitStatus.h.
References TrkFitStatus::_is2d.
Referenced by MdcTrackList::pickHits().
00032 {return _is2d;}
virtual Hep3Vector TrkAbsFit::momentum | ( | double | fltL = 0. |
) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
Referenced by arrivalTime(), MdcxTrackFinder::fillTrack(), and MdcTrkRecon::fillTrackList().
virtual BesVectorErr TrkAbsFit::momentumErr | ( | double | fltL | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
bool TrkFitStatus::multScat | ( | ) | const [inline, inherited] |
Definition at line 35 of file TrkFitStatus.h.
References TrkFitStatus::_multScat.
00035 {return _multScat;}
const IfdKey & TrkRep::myKey | ( | ) | const [virtual] |
Reimplemented in TrkHelixRep.
Definition at line 314 of file TrkRep.cxx.
Referenced by TrkExtInterface::attach().
00315 { 00316 // This provides a default key (used to provide Rep-specific interfaces 00317 // to TrkRecoTrk consumers). 00318 static IfdIntKey _theKey(0); 00319 return _theKey; 00320 }
int TrkRep::nActive | ( | ) | const [virtual] |
Implements TrkFit.
Definition at line 330 of file TrkRep.cxx.
References hotList(), and TrkHotList::nActive().
Referenced by TrkSimpleRep::nDof().
virtual int TrkAbsFit::nDof | ( | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
Referenced by chisqConsistency(), MdcxTrackFinder::fillTrack(), MdcTrkRecon::fillTrackList(), and MdcTrack::storeTrack().
int TrkRep::nMdc | ( | ) | const [virtual] |
Implements TrkFit.
Definition at line 342 of file TrkRep.cxx.
References hotList(), and TrkHotList::nMdc().
int TrkRep::nSvt | ( | ) | const [virtual] |
Implements TrkFit.
Definition at line 336 of file TrkRep.cxx.
References hotList(), and TrkHotList::nSvt().
Definition at line 111 of file TrkRep.cxx.
References _hotList, _parentTrack, _partHypo, init(), and TrkFitStatus::operator=().
Referenced by TrkSimpleRep::operator=().
00112 { 00113 if(&right != this){ 00114 init(right._parentTrack, right._partHypo); 00115 _hotList.reset( right._hotList->clone(this) ); 00116 TrkFitStatus::operator=(right); 00117 } 00118 return *this; 00119 }
const TrkRecoTrk* TrkRep::parentTrack | ( | ) | const [inline] |
TrkRecoTrk* TrkRep::parentTrack | ( | ) | [inline] |
Definition at line 82 of file TrkRep.h.
References _parentTrack.
Referenced by TrkSimpleRep::charge(), TrkLineRep::cloneNewHypo(), TrkHelixRep::cloneNewHypo(), TrkCircleRep::cloneNewHypo(), TrkSimpleRep::getAllCovs(), TrkSimpleRep::getAllWeights(), TrkHitOnTrk::getParentTrack(), TrkSimpleRep::momentum(), TrkSimpleRep::momentumErr(), TrkHitOnTrk::parentTrack(), TrkSimpleRep::posmomCov(), TrkSimpleRep::pt(), MdcHitOnTrack::timeAbsolute(), and trackT0().
00082 {return _parentTrack;}
PdtPid::PidType TrkRep::particleType | ( | ) | const [virtual] |
Implements TrkFit.
Definition at line 308 of file TrkRep.cxx.
References _partHypo.
Referenced by arrivalTime(), and TrkHitOnTrk::particleType().
00309 { 00310 return _partHypo; 00311 }
HepPoint3D TrkRep::position | ( | double | fltL | ) | const [virtual] |
Implements TrkAbsFit.
Definition at line 180 of file TrkRep.cxx.
References Trajectory::position(), and TrkAbsFit::traj().
Referenced by MdcHitOnTrack::wireAmbig().
BesPointErr TrkRep::positionErr | ( | double | fltL | ) | const [virtual] |
Implements TrkAbsFit.
Definition at line 214 of file TrkRep.cxx.
References TrkAbsFit::chisq(), cos(), DifIndepPar::covariance(), DifNumber::derivatives(), check_raw_filter::dist, showlog::err, DifVector::errorMatrix(), TrkDifTraj::getDFInfo2(), TrkFit::helix(), DifNumber::indepPar(), DifNumber::number(), TrkExchangePar::phi0(), phi0, sin(), TrkAbsFit::traj(), weight, DifVector::x, DifVector::y, and DifVector::z.
00215 { 00216 static DifPoint posD; 00217 static DifVector dirD; 00218 traj().getDFInfo2(fltL, posD, dirD); 00219 HepMatrix err = posD.errorMatrix( posD.x.indepPar()->covariance() ); 00220 HepPoint3D point(posD.x.number(), posD.y.number(), posD.z.number()); 00221 BesError symErr(3); 00222 symErr.assign(err); 00223 00224 if (false) { 00225 #ifdef MDCPATREC_ROUTINE 00226 cout<< "ErrMsg(routine) " << "Pos " 00227 << err.num_row() << " " << err.num_col() << endl 00228 << "output:" << endl 00229 // << err(1,1) << endl 00230 // << err(2,1) << " " << err(2,2) << endl 00231 // << err(3,1) << " " << err(3,2) << " " << err(3,3) << endl 00232 << "x deriv: " << endl 00233 << posD.x.derivatives() << endl 00234 << "y deriv: " << endl 00235 << posD.y.derivatives() << endl 00236 << endl; 00237 #endif 00238 // } 00239 00240 Hep3Vector pointDir(point.x(), point.y()); 00241 double dirMag = pointDir.mag(); 00242 double dist = 5.e-3; 00243 double delx = dist * point.x() / dirMag; 00244 double dely = dist * point.y() / dirMag; 00245 int ierr = 0; 00246 HepMatrix weight = err.inverse(ierr); 00247 double chisq = weight(1,1) * delx * delx + 00248 2 * weight(2,1) * delx * dely + 00249 weight(2,2) * dely * dely; 00250 #ifdef MDCPATREC_DEBUG 00251 cout << point << endl; 00252 cout << symErr << endl; 00253 cout << "delta: " << delx << " " << dely << endl; 00254 cout << "chisq: " << chisq << endl; 00255 #endif 00256 double phi0 = helix(fltL).phi0(); 00257 delx = dist * cos(phi0); 00258 dely = dist * sin(phi0); 00259 chisq = weight(1,1) * delx * delx + 00260 2 * weight(2,1) * delx * dely + 00261 weight(2,2) * dely * dely; 00262 #ifdef MDCPATREC_DEBUG 00263 cout << "delta: " << delx << " " << dely << endl; 00264 cout << "chisq: " << chisq << endl; 00265 cout << endl << endl; 00266 #endif 00267 } 00268 return BesPointErr(point, symErr); 00269 }
virtual HepMatrix TrkAbsFit::posmomCov | ( | double | fltL | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
virtual void TrkAbsFit::print | ( | std::ostream & | ostr | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.
virtual void TrkAbsFit::printAll | ( | std::ostream & | ostr | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.
std::ostream& TrkFitStatus::printHistory | ( | std::ostream & | os = std::cout |
) | const [inherited] |
std::ostream& TrkFitStatus::printStatus | ( | std::ostream & | os = std::cout |
) | const [inherited] |
void TrkFit::printType | ( | std::ostream & | ostr | ) | const [inherited] |
virtual double TrkAbsFit::pt | ( | double | fltL = 0. |
) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, and TrkSimpleRep.
Referenced by MdcTrackList::createFromSegs(), MdcxTrackFinder::fillTrack(), MdcTrkRecon::fillTrackList(), MdcTrackList::pickHits(), MdcxTrackFinder::store(), and MdcTrack::storeTrack().
void TrkRep::removeHot | ( | TrkHitOnTrk * | theHot | ) | [virtual] |
Definition at line 147 of file TrkRep.cxx.
References hotList(), TrkHitOnTrk::isActive(), TrkHotList::remove(), and TrkFitStatus::setCurrent().
00148 { 00149 if(theHot->isActive()) setCurrent(false); // fit no longer current 00150 hotList()->remove(theHot); 00151 }
bool TrkRep::resid | ( | const TrkHitOnTrk * | theHot, | |
double & | residual, | |||
double & | residErr, | |||
bool | exclude = false | |||
) | const [virtual] |
Reimplemented in TrkHelixRep.
Definition at line 348 of file TrkRep.cxx.
References TrkHitOnTrk::hasResidual(), TrkHitOnTrk::hitRms(), TrkHitOnTrk::parentRep(), and TrkHitOnTrk::residual().
Referenced by TrkHitOnTrk::resid().
00351 { 00352 assert (h != 0); 00353 if (h->parentRep() != this) return false; // HOT must belong to Rep 00354 if (!h->hasResidual()) return false; // Residual must be available 00355 if (exclude) return false; // FIXME: Can't do unbiased residuals (yet!) 00356 00357 residual=h->residual(); 00358 residErr=h->hitRms(); 00359 return true; 00360 }
history_riterator TrkFitStatus::reverseBeginHistory | ( | ) | const [inline, inherited] |
Definition at line 48 of file TrkFitStatus.h.
References TrkFitStatus::_history.
00048 { return _history.rbegin(); }
history_riterator TrkFitStatus::reverseEndHistory | ( | ) | const [inline, inherited] |
Definition at line 49 of file TrkFitStatus.h.
References TrkFitStatus::_history.
00049 { return _history.rend(); }
void TrkFitStatus::set2d | ( | bool | d | ) | [inline, inherited] |
Definition at line 40 of file TrkFitStatus.h.
References TrkFitStatus::_is2d.
Referenced by TrkCircleRep::TrkCircleRep().
00040 { _is2d = d; };
TrkBase::Functors::setActive TrkHitOnTrkUpdater::setActive | ( | bool | active | ) | const [inline, protected, inherited] |
Definition at line 55 of file TrkHitOnTrkUpdater.h.
00056 { return TrkBase::Functors::setActive(active); }
void TrkHitOnTrkUpdater::setActivity | ( | TrkHitOnTrk & | hot, | |
bool | active | |||
) | const [inline, protected, inherited] |
Definition at line 44 of file TrkHitOnTrkUpdater.h.
References TrkHitOnTrk::setActive().
00044 { 00045 hot.setActive(active); }
void TrkFitStatus::setCurrent | ( | bool | c | ) | [inline, inherited] |
Definition at line 39 of file TrkFitStatus.h.
References TrkFitStatus::_fitCurrent.
Referenced by activateHot(), addHot(), TrkHelixMaker::addZValues(), TrkLineRep::clone(), TrkHelixRep::clone(), TrkCircleRep::clone(), TrkLineRep::cloneNewHypo(), TrkHelixRep::cloneNewHypo(), TrkCircleRep::cloneNewHypo(), deactivateHot(), TrkSimpleRep::fit(), removeHot(), TrkFitStatus::setValid(), and updateHots().
00039 { _fitCurrent = c; }
void TrkFitStatus::setMultScat | ( | bool | m | ) | [inline, inherited] |
Definition at line 41 of file TrkFitStatus.h.
References TrkFitStatus::_multScat.
00041 { _multScat = m; };
TrkBase::Functors::setParent TrkHitOnTrkUpdater::setParent | ( | TrkRep * | parent | ) | const [inline, protected, inherited] |
Definition at line 53 of file TrkHitOnTrkUpdater.h.
00054 { return TrkBase::Functors::setParent(parent); }
void TrkHitOnTrkUpdater::setParent | ( | TrkHitOnTrk & | hot, | |
TrkRep * | parent | |||
) | const [inline, protected, inherited] |
Definition at line 47 of file TrkHitOnTrkUpdater.h.
References TrkHitOnTrk::_parentRep.
Referenced by TrkRep().
00047 { 00048 hot._parentRep = parent; 00049 }
void TrkFitStatus::setValid | ( | bool | v | ) | [inherited] |
Definition at line 57 of file TrkFitStatus.cxx.
References TrkFitStatus::_fitValid, and TrkFitStatus::setCurrent().
Referenced by TrkHelixMaker::addZValues(), TrkLineRep::clone(), TrkCircleRep::clone(), TrkLineRep::cloneNewHypo(), TrkHelixRep::cloneNewHypo(), TrkCircleRep::cloneNewHypo(), and TrkSimpleRep::fit().
00058 { 00059 _fitValid = v; 00060 if (!v) setCurrent(false); 00061 }
double TrkRep::startFoundRange | ( | ) | const [virtual] |
Implements TrkFit.
Definition at line 296 of file TrkRep.cxx.
References hotList(), and TrkHotList::startFoundRange().
00297 { 00298 return hotList()->startFoundRange(); 00299 }
double TrkRep::startValidRange | ( | ) | const [virtual] |
Implements TrkAbsFit.
Definition at line 284 of file TrkRep.cxx.
References Trajectory::lowRange(), and TrkAbsFit::traj().
double TrkRep::trackT0 | ( | ) | const |
Definition at line 208 of file TrkRep.cxx.
References parentTrack(), and TrkRecoTrk::trackT0().
Referenced by TrkLineRep::arrivalTime(), and arrivalTime().
00209 { 00210 return parentTrack()->trackT0(); 00211 }
virtual const TrkDifTraj& TrkAbsFit::traj | ( | ) | const [pure virtual, inherited] |
Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.
Referenced by MdcHitOnTrack::dipAngle(), direction(), directionErr(), endValidRange(), MdcHitOnTrack::entranceAngle(), MdcHitOnTrack::entranceAngleHit(), TrkSimpleRep::getAllWeights(), TrkBmSpotOnTrk::GetRms(), position(), positionErr(), startValidRange(), TrkHitOnTrk::updatePoca(), and MdcHitOnTrack::wireAmbig().
const TrkContext& TrkRep::trkContext | ( | ) | const [protected] |
void TrkRep::updateHots | ( | ) | [virtual] |
Definition at line 323 of file TrkRep.cxx.
References hotList(), TrkFitStatus::setCurrent(), and TrkHotList::updateHots().
Referenced by TrkRecoTrk::updateReps().
00324 { 00325 setCurrent(false); 00326 hotList()->updateHots(); 00327 }
TrkBase::Functors::updateMeasurement TrkHitOnTrkUpdater::updateMeasurement | ( | const TrkDifTraj * | traj = 0 , |
|
bool | maintainAmbiguity = false | |||
) | const [inline, protected, inherited] |
Definition at line 51 of file TrkHitOnTrkUpdater.h.
00052 { return TrkBase::Functors::updateMeasurement(traj,maintainAmbiguity); }
TrkErrCode TrkHitOnTrkUpdater::updateMeasurement | ( | TrkHitOnTrk & | hot, | |
const TrkDifTraj * | traj = 0 , |
|||
bool | maintainAmbiguity = false | |||
) | const [inline, protected, inherited] |
Definition at line 41 of file TrkHitOnTrkUpdater.h.
References TrkHitOnTrk::updateMeasurement().
Referenced by TrkHelixFitter::fit(), and TrkHotListFull::updateHots().
00042 { return hot.updateMeasurement(traj,maintainAmbiguity);}
bool TrkFit::validFlightLength | ( | double | fltL, | |
double | tolerance = 0.0 | |||
) | const [virtual, inherited] |
Definition at line 38 of file TrkFit.cxx.
References TrkAbsFit::endValidRange(), and TrkAbsFit::startValidRange().
00038 { 00039 return fltl+tolerance >= startValidRange() && 00040 fltl-tolerance <= endValidRange(); 00041 }
double TrkRep::_betainv [mutable, private] |
std::auto_ptr<TrkHotList> TrkRep::_hotList [protected] |
Definition at line 131 of file TrkRep.h.
Referenced by hotList(), operator=(), TrkRep(), and TrkSimpleRep::TrkSimpleRep().
TrkRecoTrk* TrkRep::_parentTrack [private] |
PdtPid::PidType TrkRep::_partHypo [private] |