7 using namespace EVENT ;
11 const TrackStateImpl TrackImpl::_dummy ;
13 TrackImpl::TrackImpl() :
19 _radiusOfInnermostHit(0) {
136 const float * refP =
_trackStates[0]->getReferencePoint() ;
137 float shortest_distance_square = pow( ( x - refP[0] ) , 2 ) + pow( ( y - refP[1] ) , 2 ) + pow( ( z - refP[2] ) , 2 ) ;
138 float current_distance_square = 0 ;
142 current_distance_square = pow( ( x - refP[0] ) , 2 ) + pow( ( y - refP[1] ) , 2 ) + pow( ( z - refP[2] ) , 2 ) ;
143 if( current_distance_square < shortest_distance_square ){
145 shortest_distance_square = current_distance_square ;
192 throw(
Exception(
" trying to use setD0 within Track object containing more than one TrackState." )) ;
208 throw(
Exception(
" trying to use setPhi within Track object containing more than one TrackState." )) ;
224 throw(
Exception(
" trying to use setOmega within Track object containing more than one TrackState." )) ;
240 throw(
Exception(
" trying to use setZ0 within Track object containing more than one TrackState." )) ;
256 throw(
Exception(
" trying to use setTanLambda within Track object containing more than one TrackState." )) ;
275 throw(
Exception(
" trying to use setCovMatrix within Track object containing more than one TrackState." )) ;
293 throw(
Exception(
" trying to use setCovMatrix within Track object containing more than one TrackState." )) ;
312 throw(
Exception(
" trying to use setReferencePoint within Track object containing more than one TrackState." )) ;
352 if( trkstate->
getLocation() != TrackState::AtOther &&
356 ss <<
"another TrackState already exists with Location set to: " << trkstate->
getLocation() ;
373 checkAccess(
"TrackImpl::setRadiusOfInnermostHit") ;
virtual float getRadiusOfInnermostHit() const
The radius of the innermost hit that has been used in the track fit.
Base exception class for LCIO - all other exceptions extend this.
virtual void setTypeBit(int index, bool val=true)
virtual void setZ0(float z0)
virtual void addHit(EVENT::TrackerHit *hit)
A generic tracker hit to be used by pattern recognition.
virtual EVENT::TrackStateVec & trackStates()
virtual void setNdf(int ndf)
virtual const EVENT::TrackState * getTrackState(int location) const
Returns track state for the given location - or NULL if not found.
virtual const EVENT::FloatVec & getCovMatrix() const
Covariance matrix of the track parameters.
virtual const EVENT::TrackVec & getTracks() const
The tracks (as Track objects) that have been combined to this track.
virtual void setOmega(float omega)
virtual void setReferencePoint(const float *rPnt)
virtual EVENT::IntVec & subdetectorHitNumbers()
Allows modification of the subdetectorHitNumbers, e.g.
Implementation of the LCIO track class.
The LCIO TrackState class.
virtual int getType() const
Flagword that defines the type of track.
Implementation of the LCIO TrackState class.
virtual float getOmega() const
Omega is the signed curvature of the track in [1/mm].
virtual int getNdf() const
Number of degrees of freedom of the track fit.
virtual void setD0(float d0)
virtual float getdEdx() const
dEdx of the track.
virtual const EVENT::IntVec & getSubdetectorHitNumbers() const
A vector that holds the number of hits in particular subdetectors.
TrackImpl()
Default constructor, initializes values to 0.
virtual int getLocation() const =0
The location of the track state.
static const TrackStateImpl _dummy
virtual void addTrack(EVENT::Track *trk)
virtual void setRadiusOfInnermostHit(float r)
virtual float getChi2() const
True if the reference point is the point of closest approach.
EVENT::IntVec _subdetectorHitNumbers
EVENT::TrackStateVec _trackStates
virtual float getZ0() const
Impact paramter of the track in (r-z).
const TrackImpl & operator=(const TrackImpl &o)
virtual void setTanLambda(float tanLambda)
virtual void addTrackState(EVENT::TrackState *trkstate)
EVENT::TrackerHitVec _hits
virtual const float * getReferencePoint() const
Reference point of the track parameters, e.g.
virtual const EVENT::TrackerHitVec & getTrackerHits() const
Optionaly ( check/set flag(LCIO::TRBIT_HITS)==1) return the hits that have been used to create this t...
virtual void setChi2(float chi2)
virtual const EVENT::FloatVec & getCovMatrix() const
Covariance matrix of the track parameters.
virtual void setType(int type)
virtual ~TrackImpl()
Destructor.
virtual void setdEdxError(float dEdxError)
T back_inserter(T...args)
float _radiusOfInnermostHit
virtual float getTanLambda() const
Lambda is the dip angle of the track in r-z at the reference point.
virtual void setPhi(float phi)
virtual const EVENT::TrackState * getClosestTrackState(float x, float y, float z) const
Returns track state closest to the given point.
virtual void setdEdx(float dEdx)
virtual const EVENT::TrackStateVec & getTrackStates() const
Returns track states associtated with this track.
virtual float getD0() const
Impact paramter of the track in (r-phi).
virtual float getdEdxError() const
Error of dEdx.
virtual void setCovMatrix(const float *cov)
virtual float getPhi() const
Phi of the track at reference point.
virtual const float * getReferencePoint() const
Reference point of the track parameters.