Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

Track Class Reference

#include <Track.h>

List of all members.

Public Member Functions

 Track (int key)
 Constructor with assigned key.
 Track ()
 Default Constructor.
 ~Track ()
 Track destructor.
virtual const CLID & clID () const
StatusCode positionAndMomentum (HepPoint3D &pos, HepVector3D &mom, HepSymMatrix &cov6D) const
 Retrieve the position and momentum vectors and the corresponding 6D covariance matrix (pos:1->3,mom:4-6) at the physics state.
StatusCode positionAndMomentum (HepPoint3D &pos, HepVector3D &mom) const
 Retrieve the position and momentum vectors at the physics state.
StatusCode position (HepPoint3D &pos, HepSymMatrix &errPos) const
 Retrieve the 3D-position (+ errors) at the physics state.
StatusCode slopes (HepVector3D &slopes, HepSymMatrix &errSlopes) const
 Retrieve the slopes (dx/dz,dy/dz,1) at the physics state.
double p () const
 Retrieve the momentum at the physics state.
double pt () const
 Retrieve the transverse momentum at the physics state.
StatusCode momentum (HepVector3D &mom, HepSymMatrix &errMom) const
 Retrieve the momentum vector (+ errors) at the physics state.
StatusCode posMomCovariance (HepSymMatrix &cov6D) const
 Retrieve the 6D covariance matrix (x,y,z,px,py,pz) at the physics state.
StatephysicsState () const
 Retrieve the the physics state.
int charge () const
 Retrieve the charge assigned to the track.
double chi2 () const
 Retrieve the Chi^2 of the track.
unsigned int nStates () const
 number of states on track
void addToStates (State *state, bool inOrder=true)
 Add a State to the list of states associated to the track.
void addToStates (const State &state, bool inOrder=true)
 Add a State to the list of states associated to the track.
void removeFromStates (State *value)
 Remove a State from the list of states associated to the track.
StateclosestState (double z)
 Retrieve the reference to the state closest to the given z-position.
const StateclosestState (double z) const
 Retrieve the reference to the state closest to the given z-position.
StateclosestState (const HepPlane3D &plane)
 Retrieve the reference to the state closest to the given plane.
const StateclosestState (const HepPlane3D &plane) const
 Retrieve the reference to the state closest to the given plane.
bool hasStateAt (unsigned int location) const
 check the existence of a state at a certain predefined location. See State class.
StatestateAt (unsigned int location)
 Retrieve the state at a certain predefined location. See State class.
const StatestateAt (unsigned int location) const
 Retrieve the const state at a certain predefined location. See State class.
unsigned int nMeasurements () const
 number of measurements on track
void addToMeasurements (Measurement *meas, bool inOrder=true)
 add a measurement to the list associated to the track
void addToMeasurements (const Measurement &meas, bool inOrder=true)
 add a measurement to the list associated to the track
void removeFromMeasurements (Measurement *value)
 Remove a measurement from the list of measurements associated to the track.
void addToNodes (Node *node)
 add a Node to the list of nodes (nodes are own by Track)
void removeFromNodes (Node *value)
 Remove a Node from the list of nodes associated to the track.
void addToLhcbIDs (const LHCbID &value)
 Add an LHCbID to the list of LHCbIDs associated to the track.
void removeFromLhcbIDs (const LHCbID &value)
 Remove an LHCbID from the list of LHCbIDs associated to the track.
void addToAncestors (Track &ancestor)
 add a track to the list of ancestors of this track
void removeFromAncestors (const Track &value)
 Remove an ancestor track from the list of ancestors associated to the track.
virtual void reset ()
 Clear the track before re-use.
virtual Trackclone () const
 Clone the track.
bool checkType (unsigned int value) const
 check the type of the track
bool checkHistory (unsigned int value) const
 check the history of the track
bool checkHistoryFit (unsigned int value) const
 check the fit history of the track
void setFlag (unsigned int flag, bool ok)
 Update the flag (see TrackKeys::Flags).
bool checkFlag (unsigned int flag) const
 check the status of the flag
double chi2PerDoF () const
 Retrieve const chi^2 per degree of freedom of the track.
void setChi2PerDoF (double value)
 Update chi^2 per degree of freedom of the track.
int nDoF () const
 Retrieve const number of degrees of freedom of the track.
void setNDoF (int value)
 Update number of degrees of freedom of the track.
unsigned int flags () const
 Retrieve const the variety of track flags.
void setFlags (unsigned int value)
 Update the variety of track flags.
unsigned int type () const
 Retrieve track type.
void setType (unsigned int value)
 Update track type.
unsigned int history () const
 Retrieve specifies the pattern recogn algorithm that created the track.
void setHistory (unsigned int value)
 Update specifies the pattern recogn algorithm that created the track.
unsigned int historyFit () const
 Retrieve specifies the fitting algorithm the fitted the track).
void setHistoryFit (unsigned int value)
 Update specifies the fitting algorithm the fitted the track).
unsigned int status () const
 Retrieve status of the track.
void setStatus (unsigned int value)
 Update status of the track.
unsigned int flag () const
 Retrieve track flags.
unsigned int specific () const
 Retrieve track specific bits.
void setSpecific (unsigned int value)
 Update track specific bits.
const std::vector< LHCbID > & lhcbIDs () const
 Retrieve const container of LHCbIDs.
std::vector< LHCbID > & lhcbIDs ()
 Retrieve container of LHCbIDs.
void setLhcbIDs (const std::vector< LHCbID > &value)
 Update container of LHCbIDs.
const std::vector< State * > & states () const
 Retrieve const container with pointers to all the states.
std::vector< State * > & states ()
 Retrieve container with pointers to all the states.
const std::vector< Measurement * > & measurements () const
 Retrieve const container of Measurements.
std::vector< Measurement * > & measurements ()
 Retrieve container of Measurements.
const std::vector< Node * > & nodes () const
 Retrieve const container of Nodes.
std::vector< Node * > & nodes ()
 Retrieve container of Nodes.
const std::vector< Track * > & ancestors () const
 Retrieve const container of ancestors of the track.
std::vector< Track * > & ancestors ()
 Retrieve container of ancestors of the track.

Static Public Member Functions

static const CLID & classID ()

Protected Types

enum  flagsBits {
  typeBits = 0, historyBits = 5, historyFitBits = 10, statusBits = 15,
  flagBits = 18, specificBits = 28
}
 Offsets of bitfield flags. More...
enum  flagsMasks {
  typeMask = 0x1FL, historyMask = 0x3E0L, historyFitMask = 0x7C00L, statusMask = 0x38000L,
  flagMask = 0xFFC0000L, specificMask = 0xF0000000L
}
 Bitmasks for bitfield flags. More...

Protected Attributes

double m_chi2PerDoF
 chi^2 per degree of freedom of the track
int m_nDoF
 number of degrees of freedom of the track
unsigned int m_flags
 the variety of track flags
std::vector< LHCbID > m_lhcbIDs
 container of LHCbIDs
std::vector< State * > m_states
 container with pointers to all the states
std::vector< Measurement * > m_measurements
 container of Measurements
std::vector< Node * > m_nodes
 container of Nodes
std::vector< Track * > m_ancestors
 container of ancestors of the track


Detailed Description

Track is the base class for offline and online tracks.

Author:
Jose Hernando, Eduardo Rodrigues created Wed May 11 19:31:03 2005

Definition at line 63 of file Track.h.


Member Enumeration Documentation

enum Track::flagsBits [protected]
 

Offsets of bitfield flags.

Enumeration values:
typeBits 
historyBits 
historyFitBits 
statusBits 
flagBits 
specificBits 

Definition at line 310 of file Track.h.

00310                 {typeBits       = 0,
00311                  historyBits    = 5,
00312                  historyFitBits = 10,
00313                  statusBits     = 15,
00314                  flagBits       = 18,
00315                  specificBits   = 28};

enum Track::flagsMasks [protected]
 

Bitmasks for bitfield flags.

Enumeration values:
typeMask 
historyMask 
historyFitMask 
statusMask 
flagMask 
specificMask 

Definition at line 318 of file Track.h.

00318                  {typeMask       = 0x1FL,
00319                   historyMask    = 0x3E0L,
00320                   historyFitMask = 0x7C00L,
00321                   statusMask     = 0x38000L,
00322                   flagMask       = 0xFFC0000L,
00323                   specificMask   = 0xF0000000L};


Constructor & Destructor Documentation

Track::Track int  key  )  [inline]
 

Constructor with assigned key.

Definition at line 68 of file Track.h.

References m_ancestors, m_chi2PerDoF, m_flags, m_lhcbIDs, m_measurements, m_nDoF, m_nodes, and m_states.

00068                  : KeyedObject<int>( key ),
00069                    m_chi2PerDoF(0.0),
00070                    m_nDoF(0),
00071                    m_flags(0),
00072                    m_lhcbIDs(),
00073                    m_states(),
00074                    m_measurements(),
00075                    m_nodes(),
00076                    m_ancestors() {}

Track::Track  )  [inline]
 

Default Constructor.

Definition at line 79 of file Track.h.

References m_ancestors, m_chi2PerDoF, m_flags, m_lhcbIDs, m_measurements, m_nDoF, m_nodes, and m_states.

Referenced by clone().

00079           : m_chi2PerDoF(0.0),
00080             m_nDoF(0),
00081             m_flags(0),
00082             m_lhcbIDs(),
00083             m_states(),
00084             m_measurements(),
00085             m_nodes(),
00086             m_ancestors() {}

Track::~Track  )  [inline]
 

Track destructor.

Definition at line 350 of file Track.h.

References reset().

00351 {
00352 
00353   reset();
00354         
00355 }


Member Function Documentation

void Track::addToAncestors Track ancestor  )  [inline]
 

add a track to the list of ancestors of this track

Definition at line 629 of file Track.h.

References m_ancestors.

Referenced by clone().

00630 {
00631 
00632   m_ancestors.push_back( (Track*) &ancestor );
00633         
00634 }

void Track::addToLhcbIDs const LHCbID &  value  )  [inline]
 

Add an LHCbID to the list of LHCbIDs associated to the track.

Definition at line 613 of file Track.h.

References m_lhcbIDs.

00614 {
00615 
00616   m_lhcbIDs.push_back( value );
00617         
00618 }

void Track::addToMeasurements const Measurement meas,
bool  inOrder = true
[inline]
 

add a measurement to the list associated to the track

Definition at line 578 of file Track.h.

References addToMeasurements().

00580 {
00581 
00582           addToMeasurements(meas.clone(),inOrder);
00583         
00584 }

void Track::addToMeasurements Measurement meas,
bool  inOrder = true
 

add a measurement to the list associated to the track

Definition at line 274 of file Track.cpp.

References checkFlag(), and m_measurements.

Referenced by addToMeasurements(), and clone().

00275 {
00276   m_measurements.push_back(meas);
00277   if (!inOrder) return;
00278   int order = +1;
00279   if (checkFlag(TrackKeys::Backward)) order = -1;
00280   std::sort( m_measurements.begin(),
00281              m_measurements.end(),
00282              TrackFunctor::orderByZ<Measurement>(order) );
00283 
00284     
00285 }

void Track::addToNodes Node node  )  [inline]
 

add a Node to the list of nodes (nodes are own by Track)

Definition at line 596 of file Track.h.

References m_nodes.

Referenced by clone().

00597 {
00598 
00599   m_nodes.push_back( node );
00600         
00601 }

void Track::addToStates const State state,
bool  inOrder = true
[inline]
 

Add a State to the list of states associated to the track.

Definition at line 551 of file Track.h.

References addToStates().

00553 {
00554 
00555           addToStates(state.clone(),inOrder);
00556         
00557 }

void Track::addToStates State state,
bool  inOrder = true
 

Add a State to the list of states associated to the track.

Definition at line 262 of file Track.cpp.

References checkFlag(), and m_states.

Referenced by addToStates(), and clone().

00263 {
00264   m_states.push_back(state);
00265   if (!inOrder) return;
00266   int order = +1;
00267   if (checkFlag(TrackKeys::Backward)) order = -1;
00268   std::sort( m_states.begin(),
00269              m_states.end(),
00270              TrackFunctor::orderByZ<State>(order) );
00271 
00272     
00273 }

std::vector< Track * > & Track::ancestors  )  [inline]
 

Retrieve container of ancestors of the track.

Definition at line 512 of file Track.h.

References m_ancestors.

00513 {
00514   return m_ancestors;
00515 }

const std::vector< Track * > & Track::ancestors  )  const [inline]
 

Retrieve const container of ancestors of the track.

Definition at line 507 of file Track.h.

References m_ancestors.

00508 {
00509   return m_ancestors;
00510 }

int Track::charge  )  const [inline]
 

Retrieve the charge assigned to the track.

Definition at line 529 of file Track.h.

References physicsState(), and State::qOverP().

00530 {
00531 
00532   double qP = physicsState().qOverP();
00533   return ( qP != 0. ? int(fabs(qP)/qP) : 0 );
00534         
00535 }

bool Track::checkFlag unsigned int  flag  )  const [inline]
 

check the status of the flag

Definition at line 676 of file Track.h.

References flagBits, flagMask, and m_flags.

Referenced by addToMeasurements(), and addToStates().

00677 {
00678 
00679   unsigned int val = ((unsigned int) flag << flagBits);  
00680   bool ok = (0 != ( m_flags & flagMask & val ));
00681   return ok;
00682         
00683 }

bool Track::checkHistory unsigned int  value  )  const [inline]
 

check the history of the track

Definition at line 652 of file Track.h.

References history().

00653 {
00654 
00655   return history() == value;
00656         
00657 }

bool Track::checkHistoryFit unsigned int  value  )  const [inline]
 

check the fit history of the track

Definition at line 659 of file Track.h.

References historyFit().

00660 {
00661 
00662   return historyFit() == value;
00663         
00664 }

bool Track::checkType unsigned int  value  )  const [inline]
 

check the type of the track

Definition at line 645 of file Track.h.

References type().

00646 {
00647 
00648   return type() == value;
00649         
00650 }

double Track::chi2  )  const [inline]
 

Retrieve the Chi^2 of the track.

Definition at line 537 of file Track.h.

References m_chi2PerDoF, and m_nDoF.

00538 {
00539 
00540   return ( m_chi2PerDoF * double(m_nDoF) );
00541         
00542 }

double Track::chi2PerDoF  )  const [inline]
 

Retrieve const chi^2 per degree of freedom of the track.

Definition at line 367 of file Track.h.

References m_chi2PerDoF.

Referenced by clone().

00368 {
00369   return m_chi2PerDoF;
00370 }

const CLID & Track::classID  )  [inline, static]
 

Definition at line 362 of file Track.h.

References CLID_Track.

Referenced by clID().

00363 {
00364   return CLID_Track;
00365 }

const CLID & Track::clID  )  const [inline, virtual]
 

Definition at line 357 of file Track.h.

References classID().

00358 {
00359   return Track::classID();
00360 }

Track * Track::clone  )  const [virtual]
 

Clone the track.

Definition at line 241 of file Track.cpp.

References addToAncestors(), addToMeasurements(), addToNodes(), addToStates(), chi2PerDoF(), flags(), lhcbIDs(), m_ancestors, m_measurements, m_nodes, m_states, nDoF(), setChi2PerDoF(), setFlags(), setLhcbIDs(), setNDoF(), and Track().

00242 {
00243   Track* tr = new Track();
00244   tr->setChi2PerDoF( chi2PerDoF() );
00245   tr->setNDoF( nDoF() );
00246   tr->setFlags( flags() );
00247   tr->setLhcbIDs( lhcbIDs() );
00248   for (std::vector<State*>::const_iterator it = m_states.begin();
00249        it != m_states.end(); it++) tr->addToStates( *(*it) );
00250   for (std::vector<Measurement*>::const_iterator it2 = m_measurements.begin();
00251        it2 != m_measurements.end(); it2++) tr->addToMeasurements( *(*it2) );
00252   for (std::vector<Node*>::const_iterator it3 = m_nodes.begin();
00253        it3 != m_nodes.end(); it3++) tr->addToNodes( (*it3)->clone() );
00254   for (std::vector<Track*>::const_iterator it4 = m_ancestors.begin();
00255        it4 != m_ancestors.end();  it4++) tr->addToAncestors( *(*it4) );
00256   return tr;
00257 };

const State & Track::closestState const HepPlane3D &  plane  )  const
 

Retrieve the reference to the state closest to the given plane.

Definition at line 157 of file Track.cpp.

References m_states, and position().

00158 {
00159   double minDist = 999999999.;
00160   double dist;
00161   State* best = 0;
00162   for ( std::vector<State*>::const_iterator it = m_states.begin() ;
00163         m_states.end() != it; it++ ) {
00164     dist = plane.distance( ((*it) -> position()) );
00165     if ( minDist > dist ) {
00166       minDist = dist;
00167       best    = *it;
00168     }
00169   }
00170   return *best;
00171 };

State & Track::closestState const HepPlane3D &  plane  ) 
 

Retrieve the reference to the state closest to the given plane.

Definition at line 138 of file Track.cpp.

References m_states, and position().

00139 {
00140   double minDist = 999999999.;
00141   double dist;
00142   State* best = 0;
00143   for ( std::vector<State*>::iterator it = m_states.begin() ;
00144         m_states.end() != it; it++ ) {
00145     dist = plane.distance( ((*it) -> position()) );
00146     if ( minDist > dist ) {
00147       minDist = dist;
00148       best    = *it;
00149     }
00150   }
00151   return *best;
00152 };

const State & Track::closestState double  z  )  const
 

Retrieve the reference to the state closest to the given z-position.

Definition at line 121 of file Track.cpp.

References m_states.

00122 {
00123   double minDist = 999999999.;
00124   State* best = 0;
00125   for ( std::vector<State*>::const_iterator it = m_states.begin() ;
00126         m_states.end() != it; it++ ) {
00127     if ( minDist > fabs( z - (*it)->z() ) ) {
00128       minDist = fabs( z-(*it)->z() );
00129       best    = *it;
00130     }
00131   }
00132   return *best;
00133 };

State & Track::closestState double  z  ) 
 

Retrieve the reference to the state closest to the given z-position.

Definition at line 104 of file Track.cpp.

References m_states.

00105 {
00106   double minDist = 999999999.;
00107   State* best = 0;
00108   for ( std::vector<State*>::iterator it = m_states.begin() ;
00109         m_states.end() != it; it++ ) {
00110     if ( minDist > fabs( z - (*it)->z() ) ) {
00111       minDist = fabs( z-(*it)->z() );
00112       best    = *it;
00113     }
00114   }
00115   return *best;
00116 };

unsigned int Track::flag  )  const [inline]
 

Retrieve track flags.

Definition at line 445 of file Track.h.

References flagBits, flagMask, and m_flags.

00446 {
00447   return (unsigned int)((m_flags & flagMask) >> flagBits);
00448 }

unsigned int Track::flags  )  const [inline]
 

Retrieve const the variety of track flags.

Definition at line 387 of file Track.h.

References m_flags.

Referenced by clone().

00388 {
00389   return m_flags;
00390 }

bool Track::hasStateAt unsigned int  location  )  const
 

check the existence of a state at a certain predefined location. See State class.

Definition at line 176 of file Track.cpp.

References m_states.

Referenced by stateAt().

00177 {
00178   bool ok = false;
00179   for (unsigned int i = 0 ; i < m_states.size(); i++)
00180     if (m_states[i]-> checkLocation(location) ) return true;
00181   return ok;
00182 };

unsigned int Track::history  )  const [inline]
 

Retrieve specifies the pattern recogn algorithm that created the track.

Definition at line 409 of file Track.h.

References historyBits, historyMask, and m_flags.

Referenced by checkHistory().

00410 {
00411   return (unsigned int)((m_flags & historyMask) >> historyBits);
00412 }

unsigned int Track::historyFit  )  const [inline]
 

Retrieve specifies the fitting algorithm the fitted the track).

Definition at line 421 of file Track.h.

References historyFitBits, historyFitMask, and m_flags.

Referenced by checkHistoryFit().

00422 {
00423   return (unsigned int)((m_flags & historyFitMask) >> historyFitBits);
00424 }

std::vector< LHCbID > & Track::lhcbIDs  )  [inline]
 

Retrieve container of LHCbIDs.

Definition at line 467 of file Track.h.

References m_lhcbIDs.

00468 {
00469   return m_lhcbIDs;
00470 }

const std::vector< LHCbID > & Track::lhcbIDs  )  const [inline]
 

Retrieve const container of LHCbIDs.

Definition at line 462 of file Track.h.

References m_lhcbIDs.

Referenced by clone().

00463 {
00464   return m_lhcbIDs;
00465 }

std::vector< Measurement * > & Track::measurements  )  [inline]
 

Retrieve container of Measurements.

Definition at line 492 of file Track.h.

References m_measurements.

00493 {
00494   return m_measurements;
00495 }

const std::vector< Measurement * > & Track::measurements  )  const [inline]
 

Retrieve const container of Measurements.

Definition at line 487 of file Track.h.

References m_measurements.

00488 {
00489   return m_measurements;
00490 }

StatusCode Track::momentum HepVector3D &  mom,
HepSymMatrix &  errMom
const
 

Retrieve the momentum vector (+ errors) at the physics state.

Definition at line 82 of file Track.cpp.

References State::errMomentum(), State::momentum(), and physicsState().

00084 {
00085   mom    = physicsState().momentum();
00086   errMom = physicsState().errMomentum();
00087 
00088   return StatusCode::SUCCESS;
00089 };

int Track::nDoF  )  const [inline]
 

Retrieve const number of degrees of freedom of the track.

Definition at line 377 of file Track.h.

References m_nDoF.

Referenced by clone().

00378 {
00379   return m_nDoF;
00380 }

unsigned int Track::nMeasurements  )  const [inline]
 

number of measurements on track

Definition at line 569 of file Track.h.

References m_lhcbIDs, and m_measurements.

00570 {
00571 
00572   unsigned int n = m_measurements.size();
00573   if (n == 0) n = m_lhcbIDs.size();
00574   return n;
00575         
00576 }

std::vector< Node * > & Track::nodes  )  [inline]
 

Retrieve container of Nodes.

Definition at line 502 of file Track.h.

References m_nodes.

00503 {
00504   return m_nodes;
00505 }

const std::vector< Node * > & Track::nodes  )  const [inline]
 

Retrieve const container of Nodes.

Definition at line 497 of file Track.h.

References m_nodes.

00498 {
00499   return m_nodes;
00500 }

unsigned int Track::nStates  )  const [inline]
 

number of states on track

Definition at line 544 of file Track.h.

References m_states.

00545 {
00546 
00547   return m_states.size();
00548         
00549 }

double Track::p  )  const
 

Retrieve the momentum at the physics state.

Definition at line 66 of file Track.cpp.

References State::p(), and physicsState().

00067 {
00068   return physicsState().p();
00069 };

State & Track::physicsState  )  const [inline]
 

Retrieve the the physics state.

Definition at line 517 of file Track.h.

References m_states.

Referenced by charge(), momentum(), p(), position(), positionAndMomentum(), posMomCovariance(), pt(), and slopes().

00518 {
00519 
00520   // check at least the "physics state" exists
00521   if ( NULL == m_states[0] )
00522     throw GaudiException( "Physics state not defined!",
00523                           "Track.h",
00524                           StatusCode::FAILURE );
00525   return *m_states[0];
00526         
00527 }

StatusCode Track::position HepPoint3D &  pos,
HepSymMatrix &  errPos
const
 

Retrieve the 3D-position (+ errors) at the physics state.

Definition at line 42 of file Track.cpp.

References State::errPosition(), physicsState(), and State::position().

Referenced by closestState().

00044 {
00045   pos    = physicsState().position();
00046   errPos = physicsState().errPosition();
00047 
00048   return StatusCode::SUCCESS;
00049 };

StatusCode Track::positionAndMomentum HepPoint3D &  pos,
HepVector3D &  mom
const
 

Retrieve the position and momentum vectors at the physics state.

Definition at line 31 of file Track.cpp.

References physicsState(), and State::positionAndMomentum().

00033 {
00034   physicsState().positionAndMomentum( pos, mom );
00035 
00036   return StatusCode::SUCCESS;
00037 };

StatusCode Track::positionAndMomentum HepPoint3D &  pos,
HepVector3D &  mom,
HepSymMatrix &  cov6D
const
 

Retrieve the position and momentum vectors and the corresponding 6D covariance matrix (pos:1->3,mom:4-6) at the physics state.

Definition at line 19 of file Track.cpp.

References physicsState(), and State::positionAndMomentum().

00022 {
00023   physicsState().positionAndMomentum( pos, mom, cov6D );
00024 
00025   return StatusCode::SUCCESS;
00026 };

StatusCode Track::posMomCovariance HepSymMatrix &  cov6D  )  const
 

Retrieve the 6D covariance matrix (x,y,z,px,py,pz) at the physics state.

Definition at line 94 of file Track.cpp.

References physicsState(), and State::posMomCovariance().

00095 {
00096   cov6D = physicsState().posMomCovariance();
00097 
00098   return StatusCode::SUCCESS;
00099 };

double Track::pt  )  const
 

Retrieve the transverse momentum at the physics state.

Definition at line 74 of file Track.cpp.

References physicsState(), and State::pt().

00075 {
00076   return physicsState().pt();
00077 };

void Track::removeFromAncestors const Track value  )  [inline]
 

Remove an ancestor track from the list of ancestors associated to the track.

Definition at line 636 of file Track.h.

References m_ancestors.

00637 {
00638 
00639   std::vector<Track*>::iterator iter =
00640     std::remove( m_ancestors.begin(), m_ancestors.end(), &value );
00641   m_ancestors.erase( iter, m_ancestors.end() );
00642         
00643 }

void Track::removeFromLhcbIDs const LHCbID &  value  )  [inline]
 

Remove an LHCbID from the list of LHCbIDs associated to the track.

Definition at line 620 of file Track.h.

References m_lhcbIDs.

00621 {
00622 
00623   std::vector<LHCbID>::iterator iter =
00624     std::remove( m_lhcbIDs.begin(), m_lhcbIDs.end(), value );
00625   m_lhcbIDs.erase( iter, m_lhcbIDs.end() );
00626         
00627 }

void Track::removeFromMeasurements Measurement value  )  [inline]
 

Remove a measurement from the list of measurements associated to the track.

Definition at line 586 of file Track.h.

References m_measurements.

00587 {
00588 
00589   std::vector<Measurement*>::iterator iter =
00590     std::remove( m_measurements.begin(), m_measurements.end(), value );
00591   delete *iter;
00592   m_measurements.erase( iter, m_measurements.end() );
00593         
00594 }

void Track::removeFromNodes Node value  )  [inline]
 

Remove a Node from the list of nodes associated to the track.

Definition at line 603 of file Track.h.

References m_nodes.

00604 {
00605 
00606   std::vector<Node*>::iterator iter =
00607     std::remove( m_nodes.begin(), m_nodes.end(), value );
00608   delete *iter;
00609   m_nodes.erase( iter, m_nodes.end() );
00610         
00611 }

void Track::removeFromStates State value  )  [inline]
 

Remove a State from the list of states associated to the track.

Definition at line 559 of file Track.h.

References m_states.

00560 {
00561 
00562   std::vector<State*>::iterator iter =
00563     std::remove( m_states.begin(), m_states.end(), value );
00564   delete *iter;
00565   m_states.erase( iter, m_states.end() );
00566         
00567 }

void Track::reset  )  [virtual]
 

Clear the track before re-use.

Definition at line 219 of file Track.cpp.

References m_ancestors, m_chi2PerDoF, m_flags, m_lhcbIDs, m_measurements, m_nDoF, m_nodes, and m_states.

Referenced by ~Track().

00220 {
00221 
00222   m_chi2PerDoF = 0;
00223   m_nDoF       = 0;
00224   m_flags      = 0;
00225   m_lhcbIDs.clear();
00226   for (std::vector<State*>::iterator it = m_states.begin();
00227        it != m_states.end(); it++) delete *it;
00228   for (std::vector<Measurement*>::iterator it2 = m_measurements.begin();
00229        it2 != m_measurements.end(); it2++) delete *it2;
00230   for (std::vector<Node*>::iterator it3 = m_nodes.begin();
00231        it3 != m_nodes.end(); it3++) delete *it3;
00232   m_states.clear();
00233   m_measurements.clear();
00234   m_nodes.clear();
00235   m_ancestors.clear();
00236 };

void Track::setChi2PerDoF double  value  )  [inline]
 

Update chi^2 per degree of freedom of the track.

Definition at line 372 of file Track.h.

References m_chi2PerDoF.

Referenced by clone().

00373 {
00374   m_chi2PerDoF = value;
00375 }

void Track::setFlag unsigned int  flag,
bool  ok
[inline]
 

Update the flag (see TrackKeys::Flags).

Definition at line 666 of file Track.h.

References flagBits, flagMask, and m_flags.

00668 {
00669 
00670   unsigned int val = (((unsigned int) flag) << flagBits) & flagMask;
00671   if (ok) m_flags |= val;
00672   else m_flags &= ~val;
00673         
00674 }

void Track::setFlags unsigned int  value  )  [inline]
 

Update the variety of track flags.

Definition at line 392 of file Track.h.

References m_flags.

Referenced by clone().

00393 {
00394   m_flags = value;
00395 }

void Track::setHistory unsigned int  value  )  [inline]
 

Update specifies the pattern recogn algorithm that created the track.

Definition at line 414 of file Track.h.

References historyBits, historyMask, and m_flags.

00415 {
00416   unsigned int val = (unsigned int)value;
00417   m_flags &= ~historyMask;
00418   m_flags |= ((((unsigned int)val) << historyBits) & historyMask);
00419 }

void Track::setHistoryFit unsigned int  value  )  [inline]
 

Update specifies the fitting algorithm the fitted the track).

Definition at line 426 of file Track.h.

References historyFitBits, historyFitMask, and m_flags.

00427 {
00428   unsigned int val = (unsigned int)value;
00429   m_flags &= ~historyFitMask;
00430   m_flags |= ((((unsigned int)val) << historyFitBits) & historyFitMask);
00431 }

void Track::setLhcbIDs const std::vector< LHCbID > &  value  )  [inline]
 

Update container of LHCbIDs.

Definition at line 472 of file Track.h.

References m_lhcbIDs.

Referenced by clone().

00473 {
00474   m_lhcbIDs = value;
00475 }

void Track::setNDoF int  value  )  [inline]
 

Update number of degrees of freedom of the track.

Definition at line 382 of file Track.h.

References m_nDoF.

Referenced by clone().

00383 {
00384   m_nDoF = value;
00385 }

void Track::setSpecific unsigned int  value  )  [inline]
 

Update track specific bits.

Definition at line 455 of file Track.h.

References m_flags, specificBits, and specificMask.

00456 {
00457   unsigned int val = (unsigned int)value;
00458   m_flags &= ~specificMask;
00459   m_flags |= ((((unsigned int)val) << specificBits) & specificMask);
00460 }

void Track::setStatus unsigned int  value  )  [inline]
 

Update status of the track.

Definition at line 438 of file Track.h.

References m_flags, statusBits, and statusMask.

00439 {
00440   unsigned int val = (unsigned int)value;
00441   m_flags &= ~statusMask;
00442   m_flags |= ((((unsigned int)val) << statusBits) & statusMask);
00443 }

void Track::setType unsigned int  value  )  [inline]
 

Update track type.

Definition at line 402 of file Track.h.

References m_flags, typeBits, and typeMask.

00403 {
00404   unsigned int val = (unsigned int)value;
00405   m_flags &= ~typeMask;
00406   m_flags |= ((((unsigned int)val) << typeBits) & typeMask);
00407 }

StatusCode Track::slopes HepVector3D &  slopes,
HepSymMatrix &  errSlopes
const
 

Retrieve the slopes (dx/dz,dy/dz,1) at the physics state.

Definition at line 54 of file Track.cpp.

References State::errSlopes(), physicsState(), State::slopes(), and slopes().

Referenced by slopes().

00056 {
00057   slopes    = physicsState().slopes();
00058   errSlopes = physicsState().errSlopes();
00059 
00060   return StatusCode::SUCCESS;
00061 };

unsigned int Track::specific  )  const [inline]
 

Retrieve track specific bits.

Definition at line 450 of file Track.h.

References m_flags, specificBits, and specificMask.

00451 {
00452   return (unsigned int)((m_flags & specificMask) >> specificBits);
00453 }

const State & Track::stateAt unsigned int  location  )  const
 

Retrieve the const state at a certain predefined location. See State class.

Definition at line 203 of file Track.cpp.

References hasStateAt(), and m_states.

00204 {
00205   if (!hasStateAt(location))
00206     throw GaudiException( "There is no state at requested location",
00207                           "Track.cpp",
00208                           StatusCode::FAILURE );
00209   unsigned int index = 0;
00210   for (unsigned int i = 0 ; i < m_states.size(); i++)
00211     if (m_states[i]-> checkLocation(location) ) index = i;
00212   
00213   return *m_states[index];
00214 };

State & Track::stateAt unsigned int  location  ) 
 

Retrieve the state at a certain predefined location. See State class.

Definition at line 187 of file Track.cpp.

References hasStateAt(), and m_states.

00188 {
00189   if (!hasStateAt(location))
00190     throw GaudiException( "There is no state at requested location",
00191                           "Track.cpp",
00192                           StatusCode::FAILURE );
00193   unsigned int index = 0;
00194   for (unsigned int i = 0 ; i < m_states.size(); i++)
00195     if (m_states[i]-> checkLocation(location) ) index = i;
00196 
00197   return *m_states[index];
00198 };

std::vector< State * > & Track::states  )  [inline]
 

Retrieve container with pointers to all the states.

Definition at line 482 of file Track.h.

References m_states.

00483 {
00484   return m_states;
00485 }

const std::vector< State * > & Track::states  )  const [inline]
 

Retrieve const container with pointers to all the states.

Definition at line 477 of file Track.h.

References m_states.

00478 {
00479   return m_states;
00480 }

unsigned int Track::status  )  const [inline]
 

Retrieve status of the track.

Definition at line 433 of file Track.h.

References m_flags, statusBits, and statusMask.

00434 {
00435   return (unsigned int)((m_flags & statusMask) >> statusBits);
00436 }

unsigned int Track::type  )  const [inline]
 

Retrieve track type.

Definition at line 397 of file Track.h.

References m_flags, typeBits, and typeMask.

Referenced by checkType().

00398 {
00399   return (unsigned int)((m_flags & typeMask) >> typeBits);
00400 }


Member Data Documentation

std::vector<Track*> Track::m_ancestors [protected]
 

container of ancestors of the track

Definition at line 333 of file Track.h.

Referenced by addToAncestors(), ancestors(), clone(), removeFromAncestors(), reset(), and Track().

double Track::m_chi2PerDoF [protected]
 

chi^2 per degree of freedom of the track

Definition at line 326 of file Track.h.

Referenced by chi2(), chi2PerDoF(), reset(), setChi2PerDoF(), and Track().

unsigned int Track::m_flags [protected]
 

the variety of track flags

Definition at line 328 of file Track.h.

Referenced by checkFlag(), flag(), flags(), history(), historyFit(), reset(), setFlag(), setFlags(), setHistory(), setHistoryFit(), setSpecific(), setStatus(), setType(), specific(), status(), Track(), and type().

std::vector<LHCbID> Track::m_lhcbIDs [protected]
 

container of LHCbIDs

Definition at line 329 of file Track.h.

Referenced by addToLhcbIDs(), lhcbIDs(), nMeasurements(), removeFromLhcbIDs(), reset(), setLhcbIDs(), and Track().

std::vector<Measurement*> Track::m_measurements [protected]
 

container of Measurements

Definition at line 331 of file Track.h.

Referenced by addToMeasurements(), clone(), measurements(), nMeasurements(), removeFromMeasurements(), reset(), and Track().

int Track::m_nDoF [protected]
 

number of degrees of freedom of the track

Definition at line 327 of file Track.h.

Referenced by chi2(), nDoF(), reset(), setNDoF(), and Track().

std::vector<Node*> Track::m_nodes [protected]
 

container of Nodes

Definition at line 332 of file Track.h.

Referenced by addToNodes(), clone(), nodes(), removeFromNodes(), reset(), and Track().

std::vector<State*> Track::m_states [protected]
 

container with pointers to all the states

Definition at line 330 of file Track.h.

Referenced by addToStates(), clone(), closestState(), hasStateAt(), nStates(), physicsState(), removeFromStates(), reset(), stateAt(), states(), and Track().


The documentation for this class was generated from the following files:
Generated on Thu May 12 12:28:08 2005 for New Track Event Model by doxygen 1.4.1