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

TrkHitList Class Reference

#include <TrkHitList.h>

List of all members.

Public Types

typedef TrkHotList::hot_iterator hot_iterator
typedef TrkHotList::hot_iterator hot_iterator

Public Member Functions

bool append (const TrkHitList &list)
bool append (const TrkHitList &list)
TrkHitOnTrkappendHit (const TrkHitUse &theHit)
TrkHitOnTrkappendHit (const TrkHitUse &theHit)
TrkHitOnTrkappendHot (const TrkHitOnTrk *theHot)
TrkHitOnTrkappendHot (const TrkHitOnTrk *theHot)
hot_iterator begin () const
hot_iterator begin () const
hot_iterator end () const
hot_iterator end () const
TrkErrCode fit ()
TrkErrCode fit ()
const TrkHotListhotList () const
const TrkHotListhotList () const
unsigned nHit () const
unsigned nHit () const
bool operator== (const TrkHitList &right) const
bool operator== (const TrkHitList &right) const
bool removeHit (const TrkFundHit *theHit)
bool removeHit (const TrkFundHit *theHit)
void setActivity (const TrkHitOnTrk &)
void setActivity (const TrkHitOnTrk &)
virtual ~TrkHitList ()
virtual ~TrkHitList ()

Private Member Functions

TrkHitListoperator= (const TrkHitList &)
TrkHitListoperator= (const TrkHitList &)
TrkReptheRep ()
const TrkReptheRep () const
TrkReptheRep ()
const TrkReptheRep () const
 TrkHitList (const TrkHitList &)
 TrkHitList (TrkRecoTrk *, PdtPid::PidType hypo)
 TrkHitList (const TrkHitList &)
 TrkHitList (TrkRecoTrk *, PdtPid::PidType hypo)

Private Attributes

PdtPid::PidType _myHypo
TrkRecoTrk_theTrack
TrkRecoTrk_theTrack

Friends

class TrkRecoTrk


Member Typedef Documentation

typedef TrkHotList::hot_iterator TrkHitList::hot_iterator
 

typedef TrkHotList::hot_iterator TrkHitList::hot_iterator
 


Constructor & Destructor Documentation

TrkHitList::~TrkHitList  )  [virtual]
 

00035 {
00036 }

TrkHitList::TrkHitList TrkRecoTrk ,
PdtPid::PidType  hypo
[private]
 

00029         : _theTrack(trk)
00030         , _myHypo(hypo)
00031 {
00032 }

TrkHitList::TrkHitList const TrkHitList  )  [private]
 

virtual TrkHitList::~TrkHitList  )  [virtual]
 

TrkHitList::TrkHitList TrkRecoTrk ,
PdtPid::PidType  hypo
[private]
 

TrkHitList::TrkHitList const TrkHitList  )  [private]
 


Member Function Documentation

bool TrkHitList::append const TrkHitList list  ) 
 

bool TrkHitList::append const TrkHitList list  ) 
 

00139 {
00140    bool x(true);
00141    for(TrkHitList::hot_iterator i = list.begin(); i!=list.end();++i) {
00142         TrkHitOnTrk* h = appendHot(i.get());
00143         x = ( x && h!=0);
00144    }
00145    return x;
00146 }

TrkHitOnTrk* TrkHitList::appendHit const TrkHitUse theHit  ) 
 

TrkHitOnTrk * TrkHitList::appendHit const TrkHitUse theHit  ) 
 

00115 {
00116   // Test whether hit already on this track
00117   if (theHit.hit().usedOnTrack(_theTrack)) {
00118 #ifdef MDCPATREC_WARNING
00119     cout <<"ErrMsg(warning)" 
00120          <<"You just tried to add a hit to a track twice."
00121          <<" Don't do that. " << endl;
00122 #endif
00123     return 0;
00124   }
00125   TrkHitOnTrk* defaultHot = 0;
00126     
00127   std::pair<TrkRepIter,TrkRepIter> reps = _theTrack->uniqueReps();
00128   for (TrkRepIter i= reps.first; i != reps.second; ++i) {
00129     TrkHitOnTrk* h = theHit.createHitOnTrk(*i);
00130     
00131     i->addHot(h);
00132     if (i->particleType() == _theTrack->defaultType()) defaultHot = h;
00133   }
00134   return defaultHot;
00135 }

TrkHitOnTrk* TrkHitList::appendHot const TrkHitOnTrk theHot  ) 
 

TrkHitOnTrk * TrkHitList::appendHot const TrkHitOnTrk theHot  ) 
 

00092 {
00093   if (theHot == 0) return 0;
00094   // Test whether hit already on this track
00095   if (theHot->hit() != 0 && theHot->hit()->usedOnTrack(_theTrack)) {
00096 #ifdef MDCPATREC_WARNING
00097       cout <<"ErrMsg(warning)" 
00098            << "You just tried to add a hit to a track twice. "
00099            <<" Don't do that. "<< endl;
00100 #endif
00101       return 0;
00102   }
00103   TrkHitOnTrk* defaultHot = 0;
00104   std::pair<TrkRepIter,TrkRepIter> reps = _theTrack->uniqueReps();
00105   for (TrkRepIter i=reps.first; i != reps.second; ++i) {
00106     TrkHitOnTrk* h = theHot->clone(i.get());
00107     i->addHot(h);
00108     if (i->particleType() == _theTrack->defaultType()) defaultHot = h;
00109   }
00110   return defaultHot;
00111 }

hot_iterator TrkHitList::begin void   )  const [inline]
 

00045 { return hotList().begin(); }

hot_iterator TrkHitList::begin void   )  const [inline]
 

00045 { return hotList().begin(); }

hot_iterator TrkHitList::end void   )  const [inline]
 

00046 { return hotList().end(); }

hot_iterator TrkHitList::end void   )  const [inline]
 

00046 { return hotList().end(); }

TrkErrCode TrkHitList::fit  ) 
 

TrkErrCode TrkHitList::fit  ) 
 

00060 {
00061   _theTrack->_fitNumber[_myHypo]++;
00062 
00063   TrkErrCode err = theRep()->fit();
00064   theRep()->hotList()->sort();
00065   return err;
00066 }

const TrkHotList& TrkHitList::hotList  )  const
 

const TrkHotList & TrkHitList::hotList  )  const
 

00052 {
00053   const TrkHotList* x = theRep()->hotList();
00054   assert(x!=0);
00055   return *x;
00056 }

unsigned TrkHitList::nHit  )  const [inline]
 

00044 { return end()-begin();};

unsigned TrkHitList::nHit  )  const [inline]
 

00044 { return end()-begin();};

TrkHitList& TrkHitList::operator= const TrkHitList  )  [private]
 

TrkHitList& TrkHitList::operator= const TrkHitList  )  [private]
 

bool TrkHitList::operator== const TrkHitList right  )  const [inline]
 

00066 {return this == &right;}

bool TrkHitList::operator== const TrkHitList right  )  const [inline]
 

00066 {return this == &right;}

bool TrkHitList::removeHit const TrkFundHit theHit  ) 
 

bool TrkHitList::removeHit const TrkFundHit theHit  ) 
 

00070 {
00071   // This would be more efficient if the Rep did the finding of the Hot
00072   //   (save one search through each hotlist).
00073   if (theHit == 0) return false;
00074   if (!theHit->usedOnTrack(_theTrack)) {
00075 #ifdef MDCPATREC_WARNING
00076     cout <<"ErrMsg(warning) "<<
00077       "TrkHitList: you just deleted a hit that was not on the track." << endl;
00078 #endif
00079     return false;
00080   }
00081   std::pair<TrkRepIter,TrkRepIter> reps = _theTrack->uniqueReps();
00082   for (TrkRepIter i= reps.first; i != reps.second; ++i) {
00083     // Find the Hot and ask the Rep to remove it
00084     TrkHitOnTrk* h = i->hotList()->findHot(theHit);
00085     if (h != 0) i->removeHot(h);
00086   }
00087   return true;
00088 }

void TrkHitList::setActivity const TrkHitOnTrk  ) 
 

void TrkHitList::setActivity const TrkHitOnTrk  ) 
 

TrkRep* TrkHitList::theRep  )  [private]
 

const TrkRep* TrkHitList::theRep  )  const [private]
 

TrkRep * TrkHitList::theRep  )  [private]
 

00040 {
00041   return _theTrack->getRep(_myHypo);
00042 }

const TrkRep * TrkHitList::theRep  )  const [private]
 

00046 {
00047   return _theTrack->getRep(_myHypo);
00048 }


Friends And Related Function Documentation

TrkRecoTrk [friend]
 


Member Data Documentation

PdtPid::PidType TrkHitList::_myHypo [private]
 

TrkRecoTrk* TrkHitList::_theTrack [private]
 

TrkRecoTrk* TrkHitList::_theTrack [private]
 


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