#include <TrkHelixRep.h>
Inheritance diagram for TrkHelixRep:
Public Types | |
typedef std::unary_function< TrkFitStatus, bool > | predicate_type |
Public Member Functions | |
TrkHelixRep (const TrkExchangePar &inPar, TrkRecoTrk *myTrack, PdtPid::PidType hypo, const TrkHotList *=0) | |
TrkHelixRep (const TrkExchangePar &inPar, TrkRecoTrk *trk, PdtPid::PidType hypo, int nact, int nsv, int ndc, double chi2, double startFoundRange, double endFoundRange) | |
virtual | ~TrkHelixRep () |
virtual TrkHelixRep * | clone (TrkRecoTrk *newTrack) const |
virtual TrkHelixRep * | cloneNewHypo (PdtPid::PidType hypo) |
virtual TrkDifTraj & | traj () |
virtual const TrkDifTraj & | traj () const |
const IfdKey & | myKey () const |
virtual TrkExchangePar | helix (double fltLen) const |
virtual bool | resid (const TrkHitOnTrk *h, double &residual, double &residErr, bool exclude) const |
virtual void | printAll (std::ostream &ostr) const |
virtual void | print (std::ostream &ostr) const |
virtual TrkSimpTraj & | simpTraj () |
virtual const TrkSimpTraj & | simpTraj () const |
int | nDof () const |
double | chisq () const |
void | setChisq (double c) |
virtual int | charge () const |
virtual Hep3Vector | momentum (double fltL=0.) const |
virtual double | pt (double fltL=0.) const |
virtual BesVectorErr | momentumErr (double fltL) const |
virtual HepMatrix | posmomCov (double fltL) const |
virtual void | getAllCovs (double fltL, HepSymMatrix &xxCov, HepSymMatrix &ppCov, HepMatrix &xpCov) const |
virtual void | getAllWeights (double fltL, HepVector &pos, HepVector &mom, HepSymMatrix &xxWeight, HepSymMatrix &ppWeight, HepMatrix &xpWeight) const |
virtual void | getAllWeights (const HepPoint3D &pt, HepVector &pos, HepVector &mom, HepSymMatrix &xxWeight, HepSymMatrix &ppWeight, HepMatrix &xpWeight) const |
virtual TrkErrCode | fit () |
TrkHelixFitter & | fitter () |
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 |
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 () |
bool | hitCapable () const |
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 |
Protected Member Functions | |
TrkHelixRep (const TrkHelixRep &right, TrkRecoTrk *trk, PdtPid::PidType) | |
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 | |
TrkHelixRep & | operator= (const TrkHelixRep &right) |
Private Attributes | |
HelixTraj | _traj |
Definition at line 22 of file TrkHelixRep.h.
typedef std::unary_function<TrkFitStatus,bool> TrkFitStatus::predicate_type [inherited] |
Definition at line 31 of file TrkFitStatus.h.
TrkHelixRep::TrkHelixRep | ( | const TrkExchangePar & | inPar, | |
TrkRecoTrk * | myTrack, | |||
PdtPid::PidType | hypo, | |||
const TrkHotList * | = 0 | |||
) |
Definition at line 21 of file TrkHelixRep.cxx.
Referenced by clone(), and cloneNewHypo().
00024 : 00025 TrkSimpleRep(hots, trk, hypo), 00026 _traj(inPar) 00027 {}
TrkHelixRep::TrkHelixRep | ( | const TrkExchangePar & | inPar, | |
TrkRecoTrk * | trk, | |||
PdtPid::PidType | hypo, | |||
int | nact, | |||
int | nsv, | |||
int | ndc, | |||
double | chi2, | |||
double | startFoundRange, | |||
double | endFoundRange | |||
) |
Definition at line 31 of file TrkHelixRep.cxx.
00033 : 00034 TrkSimpleRep(trk, hypo, nact, nsv, ndc, chi2, stFndRng, endFndRng), 00035 _traj(inPar.params(), inPar.covariance()) 00036 {}
TrkHelixRep::~TrkHelixRep | ( | ) | [virtual] |
TrkHelixRep::TrkHelixRep | ( | const TrkHelixRep & | right, | |
TrkRecoTrk * | trk, | |||
PdtPid::PidType | ||||
) | [protected] |
Definition at line 39 of file TrkHelixRep.cxx.
00039 : 00040 TrkSimpleRep(old, trk, hypo), _traj(old._traj) 00041 {}
void TrkRep::activateHot | ( | TrkHitOnTrk * | theHot | ) | [virtual, inherited] |
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, inherited] |
Definition at line 140 of file TrkRep.cxx.
References TrkHotList::append(), TrkRep::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, inherited] |
Implements TrkFit.
Reimplemented in TrkLineRep.
Definition at line 192 of file TrkRep.cxx.
References TrkRep::_betainv, Constants::c, Pdt::lookup(), PdtEntry::mass(), TrkAbsFit::momentum(), TrkRep::particleType(), and TrkRep::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(); }
int TrkSimpleRep::charge | ( | ) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 117 of file TrkSimpleRep.cxx.
References TrkRecoTrk::bField(), TrkMomCalculator::charge(), TrkRep::parentTrack(), and TrkSimpleRep::simpTraj().
00118 { 00119 const BField& theField = parentTrack()->bField(); 00120 return TrkMomCalculator::charge(simpTraj(), theField, 0.); 00121 }
double TrkSimpleRep::chisq | ( | ) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 86 of file TrkSimpleRep.cxx.
References TrkSimpleRep::_chisq.
00087 { 00088 // Note possible inefficiency in calling virtual simpTraj(); implementation 00089 // could be moved to derived classes instead. 00090 return _chisq; 00091 // return simpTraj().parameters()->chisquared(); 00092 }
ChisqConsistency TrkRep::chisqConsistency | ( | ) | const [virtual, inherited] |
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 }
TrkHelixRep * TrkHelixRep::clone | ( | TrkRecoTrk * | newTrack | ) | const [virtual] |
Implements TrkRep.
Definition at line 47 of file TrkHelixRep.cxx.
References TrkFitStatus::fitCurrent(), TrkFitStatus::setCurrent(), and TrkHelixRep().
00048 { 00049 TrkHelixRep* newRep = new TrkHelixRep(*this, theTrack, this->particleType()); 00050 newRep->setCurrent(fitCurrent()); 00051 return newRep; 00052 }
TrkHelixRep * TrkHelixRep::cloneNewHypo | ( | PdtPid::PidType | hypo | ) | [virtual] |
Implements TrkRep.
Definition at line 55 of file TrkHelixRep.cxx.
References TrkFitStatus::fitCurrent(), TrkFitStatus::fitValid(), TrkRep::parentTrack(), TrkFitStatus::setCurrent(), TrkFitStatus::setValid(), and TrkHelixRep().
00056 { 00057 TrkHelixRep* newRep = new TrkHelixRep(*this, parentTrack(), hypo); 00058 newRep->setValid(fitValid()); 00059 newRep->setCurrent(fitCurrent()); // true for helices, anyway 00060 return newRep; 00061 }
void TrkRep::deactivateHot | ( | TrkHitOnTrk * | theHot | ) | [virtual, inherited] |
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, inherited] |
Implements TrkAbsFit.
Definition at line 186 of file TrkRep.cxx.
References Trajectory::direction(), and TrkAbsFit::traj().
BesVectorErr TrkRep::directionErr | ( | double | fltL | ) | const [virtual, inherited] |
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, inherited] |
Implements TrkFit.
Definition at line 302 of file TrkRep.cxx.
References TrkHotList::endFoundRange(), and TrkRep::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, inherited] |
Implements TrkAbsFit.
Definition at line 290 of file TrkRep.cxx.
References Trajectory::hiRange(), and TrkAbsFit::traj().
TrkErrCode TrkSimpleRep::fit | ( | ) | [virtual, inherited] |
Implements TrkRep.
Definition at line 60 of file TrkSimpleRep.cxx.
References TrkSimpleRep::_fitter, ers::error, TrkErrCode::fail, TrkHelixFitter::fit(), TrkRep::hitCapable(), TrkRep::hotList(), TrkHelixFitter::lastChisq(), TrkSimpleRep::setChisq(), TrkFitStatus::setCurrent(), TrkFitStatus::setValid(), and TrkSimpleRep::simpTraj().
00061 { 00062 if (!hitCapable()) { 00063 setValid(false); 00064 return TrkErrCode(TrkErrCode::fail,100, 00065 "Tried to fit without a list of hits."); 00066 } 00067 TrkErrCode error = _fitter.fit(*hotList(), simpTraj()); 00068 if (error.failure()) { 00069 setValid(false); 00070 } 00071 else { 00072 setValid(true); 00073 setCurrent(true); 00074 } 00075 setChisq(_fitter.lastChisq()); 00076 return error; 00077 }
bool TrkFitStatus::fitCurrent | ( | ) | const [inline, inherited] |
Definition at line 33 of file TrkFitStatus.h.
References TrkFitStatus::_fitCurrent.
Referenced by TrkLineRep::clone(), clone(), TrkCircleRep::clone(), TrkLineRep::cloneNewHypo(), 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(); }
TrkHelixFitter& TrkSimpleRep::fitter | ( | ) | [inline, inherited] |
Definition at line 96 of file TrkSimpleRep.h.
References TrkSimpleRep::_fitter.
Referenced by TrkHelixMaker::addZValues().
00096 {return _fitter;}
bool TrkFitStatus::fitValid | ( | ) | const [inline, inherited] |
Definition at line 34 of file TrkFitStatus.h.
References TrkFitStatus::_fitValid.
Referenced by TrkRep::chisqConsistency(), TrkLineRep::clone(), TrkCircleRep::clone(), TrkLineRep::cloneNewHypo(), cloneNewHypo(), TrkCircleRep::cloneNewHypo(), and TrkRecoTrk::fitResult().
00034 {return _fitValid;}
void TrkSimpleRep::getAllCovs | ( | double | fltL, | |
HepSymMatrix & | xxCov, | |||
HepSymMatrix & | ppCov, | |||
HepMatrix & | xpCov | |||
) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 144 of file TrkSimpleRep.cxx.
References TrkRecoTrk::bField(), TrkMomCalculator::getAllCovs(), TrkRep::parentTrack(), and TrkSimpleRep::simpTraj().
00148 { 00149 const BField& theField = parentTrack()->bField(); 00150 TrkMomCalculator::getAllCovs(simpTraj(), theField, fltL, 00151 xxCov,ppCov,xpCov); 00152 }
void TrkSimpleRep::getAllWeights | ( | const HepPoint3D & | pt, | |
HepVector & | pos, | |||
HepVector & | mom, | |||
HepSymMatrix & | xxWeight, | |||
HepSymMatrix & | ppWeight, | |||
HepMatrix & | xpWeight | |||
) | const [virtual, inherited] |
Definition at line 166 of file TrkSimpleRep.cxx.
References TrkPocaBase::flt1(), TrkSimpleRep::getAllWeights(), and TrkAbsFit::traj().
00172 { 00173 double fltL=0; 00174 TrkPoca poca(traj(),fltL, pt); 00175 fltL = poca.flt1(); 00176 getAllWeights(fltL,pos,mom,xxWeight,ppWeight,xpWeight); 00177 }
void TrkSimpleRep::getAllWeights | ( | double | fltL, | |
HepVector & | pos, | |||
HepVector & | mom, | |||
HepSymMatrix & | xxWeight, | |||
HepSymMatrix & | ppWeight, | |||
HepMatrix & | xpWeight | |||
) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 154 of file TrkSimpleRep.cxx.
References TrkRecoTrk::bField(), TrkMomCalculator::getAllWeights(), TrkRep::parentTrack(), and TrkSimpleRep::simpTraj().
Referenced by TrkSimpleRep::getAllWeights().
00160 { 00161 const BField& theField = parentTrack()->bField(); 00162 TrkMomCalculator::getAllWeights(simpTraj(), theField, fltL, 00163 pos,mom,xxWeight,ppWeight,xpWeight); 00164 }
TrkExchangePar TrkHelixRep::helix | ( | double | fltLen | ) | const [virtual] |
Implements TrkFit.
Definition at line 64 of file TrkHelixRep.cxx.
References _traj, TrkParams::covariance(), DifIndepPar::parameter(), TrkSimpTraj::parameters(), and HelixTraj::phi0Index.
00065 { 00066 HepVector outPar = _traj.parameters()->parameter(); 00067 outPar[HelixTraj::phi0Index] = BesAngle(outPar[HelixTraj::phi0Index]).rad(); 00068 return TrkExchangePar(outPar, _traj.parameters()->covariance()); 00069 }
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, inherited] |
Definition at line 118 of file TrkRep.h.
References TrkHotList::hitCapable(), and TrkRep::hotList().
Referenced by TrkSimpleRep::fit().
00118 {return hotList()->hitCapable();}
virtual const TrkHotList* TrkRep::hotList | ( | ) | const [inline, virtual, inherited] |
virtual TrkHotList* TrkRep::hotList | ( | ) | [inline, virtual, inherited] |
Definition at line 109 of file TrkRep.h.
References TrkRep::_hotList.
Referenced by TrkRep::addHot(), TrkHelixMaker::addZValues(), TrkRecoTrk::changeDefault(), TrkRep::endFoundRange(), TrkSimpleRep::fit(), TrkHitList::fit(), TrkRep::hitCapable(), TrkHitList::hotList(), TrkRecoTrk::hots(), TrkRep::nActive(), TrkRep::nMdc(), TrkRep::nSvt(), TrkRep::removeHot(), TrkRep::startFoundRange(), TrkSimpleRep::TrkSimpleRep(), and TrkRep::updateHots().
00109 {return _hotList.get();}
bool TrkFitStatus::is2d | ( | ) | const [inline, inherited] |
Definition at line 32 of file TrkFitStatus.h.
References TrkFitStatus::_is2d.
Referenced by MdcTrackList::pickHits().
00032 {return _is2d;}
Hep3Vector TrkSimpleRep::momentum | ( | double | fltL = 0. |
) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 103 of file TrkSimpleRep.cxx.
References TrkRecoTrk::bField(), TrkRep::parentTrack(), TrkSimpleRep::simpTraj(), and TrkMomCalculator::vecMom().
00104 { 00105 const BField& theField = parentTrack()->bField(); 00106 return TrkMomCalculator::vecMom(simpTraj(), theField, fltL); 00107 }
BesVectorErr TrkSimpleRep::momentumErr | ( | double | fltL | ) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 124 of file TrkSimpleRep.cxx.
References TrkRecoTrk::bField(), TrkMomCalculator::errMom(), TrkRep::parentTrack(), and TrkSimpleRep::simpTraj().
00125 { 00126 const BField& theField = parentTrack()->bField(); 00127 return TrkMomCalculator::errMom(simpTraj(), theField, fltL); 00128 }
bool TrkFitStatus::multScat | ( | ) | const [inline, inherited] |
Definition at line 35 of file TrkFitStatus.h.
References TrkFitStatus::_multScat.
00035 {return _multScat;}
const IfdKey & TrkHelixRep::myKey | ( | ) | const [virtual] |
Reimplemented from TrkRep.
Definition at line 118 of file TrkHelixRep.cxx.
00119 { 00120 static IfdIntKey _theKey(3133); 00121 return _theKey; 00122 }
int TrkRep::nActive | ( | ) | const [virtual, inherited] |
Implements TrkFit.
Definition at line 330 of file TrkRep.cxx.
References TrkRep::hotList(), and TrkHotList::nActive().
Referenced by TrkSimpleRep::nDof().
int TrkSimpleRep::nDof | ( | ) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 80 of file TrkSimpleRep.cxx.
References TrkRep::nActive(), DifIndepPar::nPar(), TrkSimpTraj::parameters(), and TrkSimpleRep::simpTraj().
00081 { 00082 return nActive() - simpTraj().parameters()->nPar(); 00083 }
int TrkRep::nMdc | ( | ) | const [virtual, inherited] |
Implements TrkFit.
Definition at line 342 of file TrkRep.cxx.
References TrkRep::hotList(), and TrkHotList::nMdc().
int TrkRep::nSvt | ( | ) | const [virtual, inherited] |
Implements TrkFit.
Definition at line 336 of file TrkRep.cxx.
References TrkRep::hotList(), and TrkHotList::nSvt().
TrkHelixRep& TrkHelixRep::operator= | ( | const TrkHelixRep & | right | ) | [private] |
const TrkRecoTrk* TrkRep::parentTrack | ( | ) | const [inline, inherited] |
Definition at line 83 of file TrkRep.h.
References TrkRep::_parentTrack.
00083 {return _parentTrack;}
TrkRecoTrk* TrkRep::parentTrack | ( | ) | [inline, inherited] |
Definition at line 82 of file TrkRep.h.
References TrkRep::_parentTrack.
Referenced by TrkSimpleRep::charge(), TrkLineRep::cloneNewHypo(), cloneNewHypo(), TrkCircleRep::cloneNewHypo(), TrkSimpleRep::getAllCovs(), TrkSimpleRep::getAllWeights(), TrkHitOnTrk::getParentTrack(), TrkSimpleRep::momentum(), TrkSimpleRep::momentumErr(), TrkHitOnTrk::parentTrack(), TrkSimpleRep::posmomCov(), TrkSimpleRep::pt(), MdcHitOnTrack::timeAbsolute(), and TrkRep::trackT0().
00082 {return _parentTrack;}
PdtPid::PidType TrkRep::particleType | ( | ) | const [virtual, inherited] |
Implements TrkFit.
Definition at line 308 of file TrkRep.cxx.
References TrkRep::_partHypo.
Referenced by TrkRep::arrivalTime(), and TrkHitOnTrk::particleType().
00309 { 00310 return _partHypo; 00311 }
HepPoint3D TrkRep::position | ( | double | fltL | ) | const [virtual, inherited] |
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, inherited] |
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 }
HepMatrix TrkSimpleRep::posmomCov | ( | double | fltL | ) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 137 of file TrkSimpleRep.cxx.
References TrkRecoTrk::bField(), TrkRep::parentTrack(), TrkMomCalculator::posmomCov(), and TrkSimpleRep::simpTraj().
00138 { 00139 const BField& theField = parentTrack()->bField(); 00140 return TrkMomCalculator::posmomCov(simpTraj(), theField, fltL); 00141 }
virtual void TrkHelixRep::print | ( | std::ostream & | ostr | ) | const [virtual] |
Implements TrkAbsFit.
virtual void TrkHelixRep::printAll | ( | std::ostream & | ostr | ) | const [virtual] |
Implements TrkAbsFit.
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] |
double TrkSimpleRep::pt | ( | double | fltL = 0. |
) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 110 of file TrkSimpleRep.cxx.
References TrkRecoTrk::bField(), TrkRep::parentTrack(), TrkMomCalculator::ptMom(), and TrkSimpleRep::simpTraj().
00111 { 00112 const BField& theField = parentTrack()->bField(); 00113 return TrkMomCalculator::ptMom(simpTraj(), theField, fltL); 00114 }
void TrkRep::removeHot | ( | TrkHitOnTrk * | theHot | ) | [virtual, inherited] |
Definition at line 147 of file TrkRep.cxx.
References TrkRep::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 TrkHelixRep::resid | ( | const TrkHitOnTrk * | h, | |
double & | residual, | |||
double & | residErr, | |||
bool | exclude | |||
) | const [virtual] |
Reimplemented from TrkRep.
Definition at line 126 of file TrkHelixRep.cxx.
References _traj, TrkParams::covariance(), TrkErrCode::failure(), TrkHitOnTrk::getFitStuff(), TrkHitOnTrk::getParentRep(), TrkHitOnTrk::hitRms(), genRecEmupikp::i, TrkHitOnTrk::isActive(), ganga-rec::j, DifIndepPar::parameter(), TrkSimpTraj::parameters(), TrkHitOnTrk::residual(), and w.
00128 { 00129 if (this != h->getParentRep() ) return false; 00130 static HepVector derivs; double deltaChi; 00131 TrkErrCode errCode = h->getFitStuff( derivs, deltaChi ); 00132 // TODO: add caching of derivatives here... 00133 if (errCode.failure()) return false; 00134 if (!exclude || !h->isActive()) { 00135 HepSymMatrix c = _traj.parameters()->covariance().similarityT(derivs); 00136 double tErr2 = c(1,1); 00137 double rms = h->hitRms(); 00138 residual=h->residual(); 00139 double e2=rms*rms+(h->isActive()?-1:1)*tErr2; 00140 if (e2<0) return false; 00141 residErr=sqrt(e2); 00142 } else { 00143 assert(h->isActive()); 00144 // FIXME: never really checked this is really OK... 00145 // FIXME: should compare to HelixRefiner... 00146 HepSymMatrix w=_traj.parameters()->covariance(); 00147 int ier; 00148 w.invert(ier); 00149 if (ier!=0) return false; 00150 HepVector p0 = _traj.parameters()->parameter(); 00151 HepVector p1 = w*p0; 00152 p1 -= deltaChi*derivs; 00153 for (unsigned i=0; i<p0.num_row(); ++i) for (unsigned j=0; j<i+1 ;++j) { 00154 w.fast(i+1,j+1) -= derivs[i]*derivs[j]; 00155 } 00156 w.invert(ier); 00157 if (ier!=0) return false; 00158 residual=h->residual()+h->hitRms()*dot(derivs,w*p1-p0); 00159 residErr=h->hitRms()*sqrt(w(1,1)+1); 00160 } 00161 return true; 00162 }
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 TrkSimpleRep::setChisq | ( | double | c | ) | [inherited] |
Definition at line 95 of file TrkSimpleRep.cxx.
References TrkSimpleRep::_chisq.
Referenced by TrkHelixMaker::addZValues(), TrkSimpleRep::fit(), and TrkSimpleRep::TrkSimpleRep().
00096 { 00097 // See inefficiency comment above. 00098 // simpTraj().parameters()->setChisquared(c); 00099 _chisq = c; 00100 }
void TrkFitStatus::setCurrent | ( | bool | c | ) | [inline, inherited] |
Definition at line 39 of file TrkFitStatus.h.
References TrkFitStatus::_fitCurrent.
Referenced by TrkRep::activateHot(), TrkRep::addHot(), TrkHelixMaker::addZValues(), TrkLineRep::clone(), clone(), TrkCircleRep::clone(), TrkLineRep::cloneNewHypo(), cloneNewHypo(), TrkCircleRep::cloneNewHypo(), TrkRep::deactivateHot(), TrkSimpleRep::fit(), TrkRep::removeHot(), TrkFitStatus::setValid(), and TrkRep::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::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(), cloneNewHypo(), TrkCircleRep::cloneNewHypo(), and TrkSimpleRep::fit().
00058 { 00059 _fitValid = v; 00060 if (!v) setCurrent(false); 00061 }
const TrkSimpTraj & TrkHelixRep::simpTraj | ( | ) | const [virtual] |
Implements TrkSimpleRep.
Definition at line 99 of file TrkHelixRep.cxx.
References _traj.
00100 { 00101 return _traj; 00102 }
TrkSimpTraj & TrkHelixRep::simpTraj | ( | ) | [virtual] |
Implements TrkSimpleRep.
Definition at line 93 of file TrkHelixRep.cxx.
References _traj.
00094 { 00095 return _traj; 00096 }
double TrkRep::startFoundRange | ( | ) | const [virtual, inherited] |
Implements TrkFit.
Definition at line 296 of file TrkRep.cxx.
References TrkRep::hotList(), and TrkHotList::startFoundRange().
00297 { 00298 return hotList()->startFoundRange(); 00299 }
double TrkRep::startValidRange | ( | ) | const [virtual, inherited] |
Implements TrkAbsFit.
Definition at line 284 of file TrkRep.cxx.
References Trajectory::lowRange(), and TrkAbsFit::traj().
double TrkRep::trackT0 | ( | ) | const [inherited] |
Definition at line 208 of file TrkRep.cxx.
References TrkRep::parentTrack(), and TrkRecoTrk::trackT0().
Referenced by TrkLineRep::arrivalTime(), and TrkRep::arrivalTime().
00209 { 00210 return parentTrack()->trackT0(); 00211 }
const TrkDifTraj & TrkHelixRep::traj | ( | ) | const [virtual] |
Implements TrkAbsFit.
Definition at line 111 of file TrkHelixRep.cxx.
References _traj.
00112 { 00113 return _traj; 00114 }
TrkDifTraj & TrkHelixRep::traj | ( | ) | [virtual] |
Definition at line 105 of file TrkHelixRep.cxx.
References _traj.
00106 { 00107 return _traj; 00108 }
const TrkContext& TrkRep::trkContext | ( | ) | const [protected, inherited] |
void TrkRep::updateHots | ( | ) | [virtual, inherited] |
Definition at line 323 of file TrkRep.cxx.
References TrkRep::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 }
std::auto_ptr<TrkHotList> TrkRep::_hotList [protected, inherited] |
Definition at line 131 of file TrkRep.h.
Referenced by TrkRep::hotList(), TrkRep::operator=(), TrkRep::TrkRep(), and TrkSimpleRep::TrkSimpleRep().
HelixTraj TrkHelixRep::_traj [private] |
Definition at line 67 of file TrkHelixRep.h.
Referenced by helix(), resid(), simpTraj(), and traj().