Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TrkRep Class Reference

#include <TrkRep.h>

Inheritance diagram for TrkRep:

TrkFitStatus TrkFit TrkHitOnTrkUpdater TrkFitStatus TrkFit TrkHitOnTrkUpdater TrkAbsFit TrkAbsFit TrkAbsFit TrkAbsFit TrkSimpleRep TrkSimpleRep TrkCircleRep TrkCircleRep TrkHelixRep TrkHelixRep TrkLineRep TrkLineRep TrkCircleRep TrkCircleRep TrkHelixRep TrkHelixRep TrkLineRep TrkLineRep List of all members.

Public Types

typedef std::unary_function<
TrkFitStatus, bool
predicate_type
typedef std::unary_function<
TrkFitStatus, bool
predicate_type

Public Member Functions

virtual void activateHot (TrkHitOnTrk *theHot)
virtual void activateHot (TrkHitOnTrk *theHot)
template<class T>
void addHistory (std::pair< T, T > p)
template<class T>
void addHistory (T begin, T end)
virtual void addHistory (const TrkErrCode &status, const char *modulename)
template<class T>
void addHistory (std::pair< T, T > p)
template<class T>
void addHistory (T begin, T end)
virtual void addHistory (const TrkErrCode &status, const char *modulename)
virtual void addHot (TrkHitOnTrk *theHot)
virtual void addHot (TrkHitOnTrk *theHot)
virtual double arrivalTime (double fltL) const
virtual double arrivalTime (double fltL) const
history_iterator beginHistory () const
history_iterator beginHistory () const
virtual int charge () const =0
virtual int charge () const =0
virtual double chisq () const =0
virtual double chisq () const =0
virtual ChisqConsistency chisqConsistency () const
virtual ChisqConsistency chisqConsistency () const
virtual TrkRepclone (TrkRecoTrk *newTrack) const =0
virtual TrkRepclone (TrkRecoTrk *newTrack) const =0
virtual TrkRepcloneNewHypo (PdtPid::PidType hypo)=0
virtual TrkRepcloneNewHypo (PdtPid::PidType hypo)=0
virtual void deactivateHot (TrkHitOnTrk *theHot)
virtual void deactivateHot (TrkHitOnTrk *theHot)
virtual Hep3Vector direction (double fltL) const
virtual Hep3Vector direction (double fltL) const
virtual BesVectorErr directionErr (double fltL) const
virtual BesVectorErr directionErr (double fltL) const
virtual double endFoundRange () const
virtual double endFoundRange () const
history_iterator endHistory () const
history_iterator endHistory () const
double endValidRange () const
double endValidRange () const
virtual TrkErrCode fit ()=0
virtual TrkErrCode fit ()=0
bool fitCurrent () const
bool fitCurrent () const
const TrkErrCodefitStatus () const
const TrkErrCodefitStatus () const
bool fitValid () const
bool fitValid () const
virtual void getAllCovs (double fltL, HepSymMatrix &xxCov, HepSymMatrix &ppCov, HepMatrix &xpCov) 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 getAllWeights (double fltL, HepVector &pos, HepVector &mom, HepSymMatrix &xxWeight, HepSymMatrix &ppWeight, HepMatrix &xpWeight) const =0
virtual TrkExchangePar helix (double fltL) const =0
virtual TrkExchangePar helix (double fltL) const =0
std::pair< history_iterator,
history_iterator
history () const
std::pair< history_iterator,
history_iterator
history () const
const std::vector< TrkHistory > & historyVector () const
const std::vector< TrkHistory > & historyVector () const
bool hitCapable () const
bool hitCapable () const
virtual const TrkHotListhotList () const
virtual TrkHotListhotList ()
virtual const TrkHotListhotList () const
virtual TrkHotListhotList ()
bool is2d () const
bool is2d () const
virtual Hep3Vector momentum (double fltL=0.) const =0
virtual Hep3Vector momentum (double fltL=0.) const =0
virtual BesVectorErr momentumErr (double fltL) const =0
virtual BesVectorErr momentumErr (double fltL) const =0
bool multScat () const
bool multScat () const
virtual const IfdKeymyKey () const
virtual const IfdKeymyKey () const
virtual int nActive () const
virtual int nActive () const
virtual int nDof () const =0
virtual int nDof () const =0
virtual int nMdc () const
virtual int nMdc () const
virtual int nSvt () const
virtual int nSvt () const
bool operator== (const TrkRep &)
bool operator== (const TrkRep &)
const TrkRecoTrkparentTrack () const
TrkRecoTrkparentTrack ()
const TrkRecoTrkparentTrack () const
TrkRecoTrkparentTrack ()
virtual PdtPid::PidType particleType () const
virtual PdtPid::PidType particleType () const
virtual HepPoint3D position (double fltL) const
virtual HepPoint3D position (double fltL) const
virtual BesPointErr positionErr (double fltL) const
virtual BesPointErr positionErr (double fltL) const
virtual HepMatrix posmomCov (double fltL) const =0
virtual HepMatrix posmomCov (double fltL) const =0
virtual void print (std::ostream &ostr) const =0
virtual void print (std::ostream &ostr) const =0
virtual void printAll (std::ostream &ostr) const =0
virtual void printAll (std::ostream &ostr) const =0
std::ostreamprintHistory (std::ostream &os=std::cout) const
std::ostreamprintHistory (std::ostream &os=std::cout) const
std::ostreamprintStatus (std::ostream &os=std::cout) const
std::ostreamprintStatus (std::ostream &os=std::cout) const
void printType (std::ostream &ostr) const
void printType (std::ostream &ostr) const
virtual double pt (double fltL=0.) const =0
virtual double pt (double fltL=0.) const =0
virtual void removeHot (TrkHitOnTrk *theHot)
virtual void removeHot (TrkHitOnTrk *theHot)
virtual bool resid (const TrkHitOnTrk *theHot, double &residual, double &residErr, bool exclude=false) const
virtual bool resid (const TrkHitOnTrk *theHot, double &residual, double &residErr, bool exclude=false) const
history_riterator reverseBeginHistory () const
history_riterator reverseBeginHistory () const
history_riterator reverseEndHistory () const
history_riterator reverseEndHistory () const
void set2d (bool d)
void set2d (bool d)
void setCurrent (bool c)
void setCurrent (bool c)
void setMultScat (bool m)
void setMultScat (bool m)
void setValid (bool v)
void setValid (bool v)
virtual double startFoundRange () const
virtual double startFoundRange () const
double startValidRange () const
double startValidRange () const
double trackT0 () const
double trackT0 () const
virtual const TrkDifTrajtraj () const =0
virtual const TrkDifTrajtraj () const =0
 TrkRep (const TrkRep &oldRep, TrkRecoTrk *trk, PdtPid::PidType hypo)
 TrkRep (TrkRecoTrk *trk, PdtPid::PidType hypo, bool createHotList=false)
 TrkRep (TrkRecoTrk *trk, PdtPid::PidType hypo, int nAct, int nSvt, int nMdc, double startFoundRange, double endFoundRange)
 TrkRep (TrkHotList *inHots, TrkRecoTrk *trk, PdtPid::PidType hypo, bool takeownership=false)
 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 (const TrkRep &oldRep, TrkRecoTrk *trk, PdtPid::PidType hypo)
 TrkRep (TrkRecoTrk *trk, PdtPid::PidType hypo, bool createHotList=false)
 TrkRep (TrkRecoTrk *trk, PdtPid::PidType hypo, int nAct, int nSvt, int nMdc, double startFoundRange, double endFoundRange)
 TrkRep (TrkHotList *inHots, TrkRecoTrk *trk, PdtPid::PidType hypo, bool takeownership=false)
 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)
virtual void updateHots ()
virtual void updateHots ()
virtual bool validFlightLength (double fltL, double tolerance=0.0) const
virtual bool validFlightLength (double fltL, double tolerance=0.0) const
virtual ~TrkRep ()
virtual ~TrkRep ()

Protected Member Functions

TrkRepoperator= (const TrkRep &)
TrkRepoperator= (const TrkRep &)
TrkBase::Functors::setActive setActive (bool active) const
TrkBase::Functors::setActive setActive (bool active) const
void setActivity (TrkHitOnTrk &hot, bool active) const
void setActivity (TrkHitOnTrk &hot, bool active) const
TrkBase::Functors::setParent setParent (TrkRep *parent) const
void setParent (TrkHitOnTrk &hot, TrkRep *parent) const
TrkBase::Functors::setParent setParent (TrkRep *parent) const
void setParent (TrkHitOnTrk &hot, TrkRep *parent) const
const TrkContexttrkContext () const
const TrkContexttrkContext () const
TrkBase::Functors::updateMeasurement updateMeasurement (const TrkDifTraj *traj=0, bool maintainAmbiguity=false) 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
TrkErrCode updateMeasurement (TrkHitOnTrk &hot, const TrkDifTraj *traj=0, bool maintainAmbiguity=false) const

Protected Attributes

std::auto_ptr< TrkHotList_hotList
std::auto_ptr< TrkHotList_hotList

Private Member Functions

void init (TrkRecoTrk *trk, PdtPid::PidType hypo)
void init (TrkRecoTrk *trk, PdtPid::PidType hypo)

Private Attributes

double _betainv
TrkRecoTrk_parentTrack
TrkRecoTrk_parentTrack
PdtPid::PidType _partHypo

Member Typedef Documentation

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

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


Constructor & Destructor Documentation

TrkRep::TrkRep const TrkHotList inHots,
TrkRecoTrk trk,
PdtPid::PidType  hypo
 

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
 

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
 

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
 

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
 

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
 

00042   : _hotList( createHotList?new TrkHotListFull:0 )
00043 {
00044   init(trk, hypo);
00045 }

TrkRep::TrkRep const TrkRep oldRep,
TrkRecoTrk trk,
PdtPid::PidType  hypo
 

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]
 

00130 {
00131 }

TrkRep::TrkRep const TrkHotList inHots,
TrkRecoTrk trk,
PdtPid::PidType  hypo
 

TrkRep::TrkRep TrkHotList inHots,
TrkRecoTrk trk,
PdtPid::PidType  hypo,
bool  stealHots = false
 

TrkRep::TrkRep const TrkHotList inHots,
TrkRecoTrk trk,
PdtPid::PidType  hypo
 

TrkRep::TrkRep TrkHotList inHots,
TrkRecoTrk trk,
PdtPid::PidType  hypo,
bool  takeownership = false
 

TrkRep::TrkRep TrkRecoTrk trk,
PdtPid::PidType  hypo,
int  nAct,
int  nSvt,
int  nMdc,
double  startFoundRange,
double  endFoundRange
 

TrkRep::TrkRep TrkRecoTrk trk,
PdtPid::PidType  hypo,
bool  createHotList = false
 

TrkRep::TrkRep const TrkRep oldRep,
TrkRecoTrk trk,
PdtPid::PidType  hypo
 

virtual TrkRep::~TrkRep  )  [virtual]
 


Member Function Documentation

virtual void TrkRep::activateHot TrkHitOnTrk theHot  )  [virtual]
 

void TrkRep::activateHot TrkHitOnTrk theHot  )  [virtual]
 

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 }

template<class T>
void TrkFitStatus::addHistory std::pair< T, T >  p  )  [inline, inherited]
 

00059 { addHistory(p.first,p.second); }

template<class T>
void TrkFitStatus::addHistory begin,
end
[inline, inherited]
 

00057 { _history.insert(_history.end(),begin,end); }

virtual void TrkFitStatus::addHistory const TrkErrCode status,
const char *  modulename
[virtual, inherited]
 

template<class T>
void TrkFitStatus::addHistory std::pair< T, T >  p  )  [inline, inherited]
 

00059 { addHistory(p.first,p.second); }

template<class T>
void TrkFitStatus::addHistory begin,
end
[inline, inherited]
 

00057 { _history.insert(_history.end(),begin,end); }

void TrkFitStatus::addHistory const TrkErrCode status,
const char *  modulename
[virtual, inherited]
 

00078 {
00079 // append the module name to the error code message
00080   _history.push_back(TrkHistory(status,modulename));
00081 }

virtual void TrkRep::addHot TrkHitOnTrk theHot  )  [virtual]
 

void TrkRep::addHot TrkHitOnTrk theHot  )  [virtual]
 

00141 {
00142   if (newHot->isActive()) setCurrent(false);
00143   hotList()->append(newHot);
00144 }

virtual double TrkRep::arrivalTime double  fltL  )  const [virtual]
 

Implements TrkFit.

Reimplemented in TrkLineRep, and TrkLineRep.

double TrkRep::arrivalTime double  fltL  )  const [virtual]
 

Implements TrkFit.

Reimplemented in TrkLineRep, and TrkLineRep.

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]
 

00046 { return _history.begin(); }

history_iterator TrkFitStatus::beginHistory  )  const [inline, inherited]
 

00046 { return _history.begin(); }

virtual int TrkAbsFit::charge  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual int TrkAbsFit::charge  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual double TrkAbsFit::chisq  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual double TrkAbsFit::chisq  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual ChisqConsistency TrkRep::chisqConsistency  )  const [virtual]
 

Implements TrkFit.

ChisqConsistency TrkRep::chisqConsistency  )  const [virtual]
 

Implements TrkFit.

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, TrkLineRep, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual TrkRep* TrkRep::clone TrkRecoTrk newTrack  )  const [pure virtual]
 

Implemented in TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual TrkRep* TrkRep::cloneNewHypo PdtPid::PidType  hypo  )  [pure virtual]
 

Implemented in TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual TrkRep* TrkRep::cloneNewHypo PdtPid::PidType  hypo  )  [pure virtual]
 

Implemented in TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual void TrkRep::deactivateHot TrkHitOnTrk theHot  )  [virtual]
 

void TrkRep::deactivateHot TrkHitOnTrk theHot  )  [virtual]
 

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 }

virtual Hep3Vector TrkRep::direction double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

Hep3Vector TrkRep::direction double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

00187 {
00188   return traj().direction(fltL);
00189 }

virtual BesVectorErr TrkRep::directionErr double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

BesVectorErr TrkRep::directionErr double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

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 }

virtual double TrkRep::endFoundRange  )  const [virtual]
 

Implements TrkFit.

double TrkRep::endFoundRange  )  const [virtual]
 

Implements TrkFit.

00303 {
00304   return hotList()->endFoundRange();
00305 }

history_iterator TrkFitStatus::endHistory  )  const [inline, inherited]
 

00047 { return _history.end(); }

history_iterator TrkFitStatus::endHistory  )  const [inline, inherited]
 

00047 { return _history.end(); }

double TrkRep::endValidRange  )  const [virtual]
 

Implements TrkAbsFit.

double TrkRep::endValidRange  )  const [virtual]
 

Implements TrkAbsFit.

00291 {
00292   return traj().hiRange();
00293 }

virtual TrkErrCode TrkRep::fit  )  [pure virtual]
 

Implemented in TrkSimpleRep, and TrkSimpleRep.

virtual TrkErrCode TrkRep::fit  )  [pure virtual]
 

Implemented in TrkSimpleRep, and TrkSimpleRep.

bool TrkFitStatus::fitCurrent  )  const [inline, inherited]
 

00033 {return _fitCurrent;}

bool TrkFitStatus::fitCurrent  )  const [inline, inherited]
 

00033 {return _fitCurrent;}

const TrkErrCode& TrkFitStatus::fitStatus  )  const [inline, inherited]
 

00043 { return _history.back().status(); }

const TrkErrCode& TrkFitStatus::fitStatus  )  const [inline, inherited]
 

00043 { return _history.back().status(); }

bool TrkFitStatus::fitValid  )  const [inline, inherited]
 

00034 {return _fitValid;}

bool TrkFitStatus::fitValid  )  const [inline, inherited]
 

00034 {return _fitValid;}

virtual void TrkAbsFit::getAllCovs double  fltL,
HepSymMatrix &  xxCov,
HepSymMatrix &  ppCov,
HepMatrix &  xpCov
const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual void TrkAbsFit::getAllCovs double  fltL,
HepSymMatrix &  xxCov,
HepSymMatrix &  ppCov,
HepMatrix &  xpCov
const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, 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, TrkSimpleRep, 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, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual TrkExchangePar TrkFit::helix double  fltL  )  const [pure virtual, inherited]
 

Implemented in TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual TrkExchangePar TrkFit::helix double  fltL  )  const [pure virtual, inherited]
 

Implemented in TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCircleRep, TrkHelixRep, and TrkLineRep.

std::pair<history_iterator,history_iterator> TrkFitStatus::history  )  const [inline, inherited]
 

00050                                                              {
00051           return std::pair<history_iterator,history_iterator>(beginHistory(),endHistory());
00052   }

std::pair<history_iterator,history_iterator> TrkFitStatus::history  )  const [inline, inherited]
 

00050                                                              {
00051           return std::pair<history_iterator,history_iterator>(beginHistory(),endHistory());
00052   }

const std::vector<TrkHistory>& TrkFitStatus::historyVector  )  const [inline, inherited]
 

00053 { return _history; }

const std::vector<TrkHistory>& TrkFitStatus::historyVector  )  const [inline, inherited]
 

00053 { return _history; }

bool TrkRep::hitCapable  )  const [inline]
 

00118 {return hotList()->hitCapable();}

bool TrkRep::hitCapable  )  const [inline]
 

00118 {return hotList()->hitCapable();}

virtual const TrkHotList* TrkRep::hotList  )  const [inline, virtual]
 

00110 {return _hotList.get();}

virtual TrkHotList* TrkRep::hotList  )  [inline, virtual]
 

00109 {return _hotList.get();}

virtual const TrkHotList* TrkRep::hotList  )  const [inline, virtual]
 

00110 {return _hotList.get();}

virtual TrkHotList* TrkRep::hotList  )  [inline, virtual]
 

00109 {return _hotList.get();}

void TrkRep::init TrkRecoTrk trk,
PdtPid::PidType  hypo
[private]
 

void TrkRep::init TrkRecoTrk trk,
PdtPid::PidType  hypo
[private]
 

00123 {
00124   _parentTrack = trk;
00125   _partHypo = hypo;
00126   _betainv = -999999.;
00127 }

bool TrkFitStatus::is2d  )  const [inline, inherited]
 

00032 {return _is2d;}

bool TrkFitStatus::is2d  )  const [inline, inherited]
 

00032 {return _is2d;}

virtual Hep3Vector TrkAbsFit::momentum double  fltL = 0.  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual Hep3Vector TrkAbsFit::momentum double  fltL = 0.  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual BesVectorErr TrkAbsFit::momentumErr double  fltL  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual BesVectorErr TrkAbsFit::momentumErr double  fltL  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

bool TrkFitStatus::multScat  )  const [inline, inherited]
 

00035 {return _multScat;}      

bool TrkFitStatus::multScat  )  const [inline, inherited]
 

00035 {return _multScat;}      

virtual const IfdKey& TrkRep::myKey  )  const [virtual]
 

Reimplemented in TrkHelixRep, and TrkHelixRep.

const IfdKey & TrkRep::myKey  )  const [virtual]
 

Reimplemented in TrkHelixRep, and TrkHelixRep.

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 }

virtual int TrkRep::nActive  )  const [virtual]
 

Implements TrkFit.

int TrkRep::nActive  )  const [virtual]
 

Implements TrkFit.

00331 {
00332   return hotList()->nActive();
00333 }

virtual int TrkAbsFit::nDof  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual int TrkAbsFit::nDof  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual int TrkRep::nMdc  )  const [virtual]
 

Implements TrkFit.

int TrkRep::nMdc  )  const [virtual]
 

Implements TrkFit.

00343 {
00344   return hotList()->nMdc();
00345 }

virtual int TrkRep::nSvt  )  const [virtual]
 

Implements TrkFit.

int TrkRep::nSvt  )  const [virtual]
 

Implements TrkFit.

00337 {
00338   return hotList()->nSvt();
00339 }

TrkRep& TrkRep::operator= const TrkRep  )  [protected]
 

TrkRep & TrkRep::operator= const TrkRep  )  [protected]
 

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 }

bool TrkRep::operator== const TrkRep  ) 
 

bool TrkRep::operator== const TrkRep  ) 
 

00135 {
00136   return (&rhs == this);
00137 }

const TrkRecoTrk* TrkRep::parentTrack  )  const [inline]
 

00083 {return _parentTrack;}

TrkRecoTrk* TrkRep::parentTrack  )  [inline]
 

00082 {return _parentTrack;}

const TrkRecoTrk* TrkRep::parentTrack  )  const [inline]
 

00083 {return _parentTrack;}

TrkRecoTrk* TrkRep::parentTrack  )  [inline]
 

00082 {return _parentTrack;}

virtual PdtPid::PidType TrkRep::particleType  )  const [virtual]
 

Implements TrkFit.

PdtPid::PidType TrkRep::particleType  )  const [virtual]
 

Implements TrkFit.

00309 {
00310   return _partHypo;
00311 }

virtual HepPoint3D TrkRep::position double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

HepPoint3D TrkRep::position double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

00181 {
00182   return traj().position(fltL);
00183 }

virtual BesPointErr TrkRep::positionErr double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

BesPointErr TrkRep::positionErr double  fltL  )  const [virtual]
 

Implements TrkAbsFit.

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, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual HepMatrix TrkAbsFit::posmomCov double  fltL  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual void TrkAbsFit::print std::ostream ostr  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual void TrkAbsFit::print std::ostream ostr  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual void TrkAbsFit::printAll std::ostream ostr  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual void TrkAbsFit::printAll std::ostream ostr  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.

std::ostream& TrkFitStatus::printHistory std::ostream os = std::cout  )  const [inherited]
 

ostream & TrkFitStatus::printHistory std::ostream os = std::cout  )  const [inherited]
 

00085 {
00086   //FIXME: this doesn't work because ostream isn't a std::ostream, so 
00087   //       std::ostream_iterator doesn't like this...
00088   // std::copy(_history.begin(),_history.end(),std::ostream_iterator<TrkHistory>(os,"\n"));
00089   for(history_iterator i=_history.begin();i!=_history.end();++i)
00090           os << *i << endl;
00091   return os;
00092 }

std::ostream& TrkFitStatus::printStatus std::ostream os = std::cout  )  const [inherited]
 

ostream & TrkFitStatus::printStatus std::ostream os = std::cout  )  const [inherited]
 

00070 {
00071   os << " 3-d: " << (is2d() == 0) << " ";
00072   return printHistory(os);
00073 }

void TrkFit::printType std::ostream ostr  )  const [inherited]
 

void TrkFit::printType std::ostream ostr  )  const [inherited]
 

00032 {
00033   ostr << "Particle type: " << Pdt::lookup( particleType() )->name();
00034 }

virtual double TrkAbsFit::pt double  fltL = 0.  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual double TrkAbsFit::pt double  fltL = 0.  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkSimpleRep, TrkCompTrk, and TrkSimpleRep.

virtual void TrkRep::removeHot TrkHitOnTrk theHot  )  [virtual]
 

void TrkRep::removeHot TrkHitOnTrk theHot  )  [virtual]
 

00148 {
00149   if(theHot->isActive()) setCurrent(false);     // fit no longer current
00150   hotList()->remove(theHot);
00151 }

virtual bool TrkRep::resid const TrkHitOnTrk theHot,
double &  residual,
double &  residErr,
bool  exclude = false
const [virtual]
 

Reimplemented in TrkHelixRep, and TrkHelixRep.

bool TrkRep::resid const TrkHitOnTrk theHot,
double &  residual,
double &  residErr,
bool  exclude = false
const [virtual]
 

Reimplemented in TrkHelixRep, and TrkHelixRep.

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]
 

00048 { return _history.rbegin(); }

history_riterator TrkFitStatus::reverseBeginHistory  )  const [inline, inherited]
 

00048 { return _history.rbegin(); }

history_riterator TrkFitStatus::reverseEndHistory  )  const [inline, inherited]
 

00049 { return _history.rend(); }

history_riterator TrkFitStatus::reverseEndHistory  )  const [inline, inherited]
 

00049 { return _history.rend(); }

void TrkFitStatus::set2d bool  d  )  [inline, inherited]
 

00040 { _is2d = d; };

void TrkFitStatus::set2d bool  d  )  [inline, inherited]
 

00040 { _is2d = d; };

TrkBase::Functors::setActive TrkHitOnTrkUpdater::setActive bool  active  )  const [inline, protected, inherited]
 

00056   { return TrkBase::Functors::setActive(active); }

TrkBase::Functors::setActive TrkHitOnTrkUpdater::setActive bool  active  )  const [inline, protected, inherited]
 

00056   { return TrkBase::Functors::setActive(active); }

void TrkHitOnTrkUpdater::setActivity TrkHitOnTrk hot,
bool  active
const [inline, protected, inherited]
 

00044                                                        {
00045     hot.setActive(active); }

void TrkHitOnTrkUpdater::setActivity TrkHitOnTrk hot,
bool  active
const [inline, protected, inherited]
 

00044                                                        {
00045     hot.setActive(active); }

void TrkFitStatus::setCurrent bool  c  )  [inline, inherited]
 

00039 { _fitCurrent = c; }

void TrkFitStatus::setCurrent bool  c  )  [inline, inherited]
 

00039 { _fitCurrent = c; }

void TrkFitStatus::setMultScat bool  m  )  [inline, inherited]
 

00041 { _multScat = m; };

void TrkFitStatus::setMultScat bool  m  )  [inline, inherited]
 

00041 { _multScat = m; };

TrkBase::Functors::setParent TrkHitOnTrkUpdater::setParent TrkRep parent  )  const [inline, protected, inherited]
 

00054   { return TrkBase::Functors::setParent(parent); }

void TrkHitOnTrkUpdater::setParent TrkHitOnTrk hot,
TrkRep parent
const [inline, protected, inherited]
 

00047                                                         {
00048     hot._parentRep = parent;
00049   }

TrkBase::Functors::setParent TrkHitOnTrkUpdater::setParent TrkRep parent  )  const [inline, protected, inherited]
 

00054   { return TrkBase::Functors::setParent(parent); }

void TrkHitOnTrkUpdater::setParent TrkHitOnTrk hot,
TrkRep parent
const [inline, protected, inherited]
 

00047                                                         {
00048     hot._parentRep = parent;
00049   }

void TrkFitStatus::setValid bool  v  )  [inherited]
 

void TrkFitStatus::setValid bool  v  )  [inherited]
 

00058 {
00059   _fitValid = v;
00060   if (!v) setCurrent(false);
00061 }

virtual double TrkRep::startFoundRange  )  const [virtual]
 

Implements TrkFit.

double TrkRep::startFoundRange  )  const [virtual]
 

Implements TrkFit.

00297 {
00298   return hotList()->startFoundRange();
00299 }

double TrkRep::startValidRange  )  const [virtual]
 

Implements TrkAbsFit.

double TrkRep::startValidRange  )  const [virtual]
 

Implements TrkAbsFit.

00285 {
00286   return traj().lowRange();
00287 }

double TrkRep::trackT0  )  const
 

double TrkRep::trackT0  )  const
 

00209 {
00210   return parentTrack()->trackT0();
00211 }

virtual const TrkDifTraj& TrkAbsFit::traj  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.

virtual const TrkDifTraj& TrkAbsFit::traj  )  const [pure virtual, inherited]
 

Implemented in TrkCompTrk, TrkCircleRep, TrkHelixRep, TrkLineRep, TrkCompTrk, TrkCircleRep, TrkHelixRep, and TrkLineRep.

const TrkContext& TrkRep::trkContext  )  const [protected]
 

const TrkContext& TrkRep::trkContext  )  const [protected]
 

virtual void TrkRep::updateHots  )  [virtual]
 

void TrkRep::updateHots  )  [virtual]
 

00324 {
00325   setCurrent(false);
00326   hotList()->updateHots();
00327 }

TrkBase::Functors::updateMeasurement TrkHitOnTrkUpdater::updateMeasurement const TrkDifTraj traj = 0,
bool  maintainAmbiguity = false
const [inline, protected, inherited]
 

00052   { return TrkBase::Functors::updateMeasurement(traj,maintainAmbiguity); }

TrkErrCode TrkHitOnTrkUpdater::updateMeasurement TrkHitOnTrk hot,
const TrkDifTraj traj = 0,
bool  maintainAmbiguity = false
const [inline, protected, inherited]
 

00042     { return hot.updateMeasurement(traj,maintainAmbiguity);}

TrkBase::Functors::updateMeasurement TrkHitOnTrkUpdater::updateMeasurement const TrkDifTraj traj = 0,
bool  maintainAmbiguity = false
const [inline, protected, inherited]
 

00052   { return TrkBase::Functors::updateMeasurement(traj,maintainAmbiguity); }

TrkErrCode TrkHitOnTrkUpdater::updateMeasurement TrkHitOnTrk hot,
const TrkDifTraj traj = 0,
bool  maintainAmbiguity = false
const [inline, protected, inherited]
 

00042     { return hot.updateMeasurement(traj,maintainAmbiguity);}

virtual bool TrkFit::validFlightLength double  fltL,
double  tolerance = 0.0
const [virtual, inherited]
 

bool TrkFit::validFlightLength double  fltL,
double  tolerance = 0.0
const [virtual, inherited]
 

00038                                                             {
00039   return fltl+tolerance >= startValidRange() &&
00040     fltl-tolerance <= endValidRange();
00041 }


Member Data Documentation

double TrkRep::_betainv [mutable, private]
 

std::auto_ptr<TrkHotList> TrkRep::_hotList [protected]
 

std::auto_ptr<TrkHotList> TrkRep::_hotList [protected]
 

TrkRecoTrk* TrkRep::_parentTrack [private]
 

TrkRecoTrk* TrkRep::_parentTrack [private]
 

PdtPid::PidType TrkRep::_partHypo [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 19:10:02 2011 for BOSS6.5.5 by  doxygen 1.3.9.1