MarlinTrk
02.08
|
Interface for generic tracks in MarlinTrk. More...
#include <IMarlinTrack.h>
Public Member Functions | |
virtual | ~IMarlinTrack () |
default d'tor More... | |
virtual void | setMass (double mass)=0 |
set the mass of the charged particle (GeV) that is used for energy loss and multiple scattering - default value if this method is not called is the pion mass. More... | |
virtual double | getMass ()=0 |
return the of the charged particle (GeV) that is used for energy loss and multiple scattering. More... | |
virtual int | addHit (EVENT::TrackerHit *hit)=0 |
add hit to track - the hits have to be added ordered in time ( i.e. More... | |
virtual int | initialise (bool fitDirection)=0 |
initialise the fit using the hits added up to this point - the fit direction has to be specified using IMarlinTrack::backward or IMarlinTrack::forward. More... | |
virtual int | initialise (const EVENT::TrackState &ts, double bfield_z, bool fitDirection)=0 |
initialise the fit with a track state, and z component of the B field in Tesla. More... | |
virtual int | fit (double maxChi2Increment=DBL_MAX)=0 |
perform the fit of all current hits, returns error code ( IMarlinTrack::success if no error ) . More... | |
virtual int | addAndFit (EVENT::TrackerHit *hit, double &chi2increment, double maxChi2Increment=DBL_MAX)=0 |
update the current fit using the supplied hit, return code via int. More... | |
virtual int | testChi2Increment (EVENT::TrackerHit *hit, double &chi2increment)=0 |
obtain the chi2 increment which would result in adding the hit to the fit. More... | |
virtual int | smooth ()=0 |
smooth all track states More... | |
virtual int | smooth (EVENT::TrackerHit *hit)=0 |
smooth track states from the last filtered hit back to the measurement site associated with the given hit More... | |
virtual int | getTrackState (IMPL::TrackStateImpl &ts, double &chi2, int &ndf)=0 |
get track state, returning TrackState, chi2 and ndf via reference More... | |
virtual int | getTrackState (EVENT::TrackerHit *hit, IMPL::TrackStateImpl &ts, double &chi2, int &ndf)=0 |
get track state at measurement associated with the given hit, returning TrackState, chi2 and ndf via reference More... | |
virtual int | getHitsInFit (std::vector< std::pair< EVENT::TrackerHit *, double > > &hits)=0 |
get the list of hits included in the fit, together with the chi2 contributions of the hits. More... | |
virtual int | getOutliers (std::vector< std::pair< EVENT::TrackerHit *, double > > &hits)=0 |
get the list of hits which have been rejected by from the fit due to the a chi2 increment greater than threshold, Pointers to the hits together with their chi2 contribution will be filled into a vector of pairs consitining of the pointer as the first part of the pair and the chi2 contribution as the second. More... | |
virtual int | getNDF (int &ndf)=0 |
get the current number of degrees of freedom for the fit. More... | |
virtual int | getTrackerHitAtPositiveNDF (EVENT::TrackerHit *&trkhit)=0 |
get TrackeHit at which fit became constrained, i.e. More... | |
virtual int | propagate (const Vector3D &point, IMPL::TrackStateImpl &ts, double &chi2, int &ndf)=0 |
propagate the fit to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference More... | |
virtual int | propagate (const Vector3D &point, EVENT::TrackerHit *hit, IMPL::TrackStateImpl &ts, double &chi2, int &ndf)=0 |
propagate the fit at the measurement site associated with the given hit, to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference More... | |
virtual int | propagateToLayer (int layerID, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int &detElementID, int mode=modeClosest)=0 |
propagate fit to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference More... | |
virtual int | propagateToLayer (int layerID, EVENT::TrackerHit *hit, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int &detElementID, int mode=modeClosest)=0 |
propagate the fit at the measurement site associated with the given hit, to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference More... | |
virtual int | propagateToDetElement (int detElementID, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int mode=modeClosest)=0 |
propagate the fit to sensitive detector element, returning TrackState, chi2 and ndf via reference More... | |
virtual int | propagateToDetElement (int detEementID, EVENT::TrackerHit *hit, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int mode=modeClosest)=0 |
propagate the fit at the measurement site associated with the given hit, to sensitive detector element, returning TrackState, chi2 and ndf via reference More... | |
virtual int | extrapolate (const Vector3D &point, IMPL::TrackStateImpl &ts, double &chi2, int &ndf)=0 |
extrapolate the fit to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference More... | |
virtual int | extrapolate (const Vector3D &point, EVENT::TrackerHit *hit, IMPL::TrackStateImpl &ts, double &chi2, int &ndf)=0 |
extrapolate the fit at the measurement site associated with the given hit, to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference More... | |
virtual int | extrapolateToLayer (int layerID, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int &detElementID, int mode=modeClosest)=0 |
extrapolate the fit to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference More... | |
virtual int | extrapolateToLayer (int layerID, EVENT::TrackerHit *hit, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int &detElementID, int mode=modeClosest)=0 |
extrapolate the fit at the measurement site associated with the given hit, to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference More... | |
virtual int | extrapolateToDetElement (int detElementID, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int mode=modeClosest)=0 |
extrapolate the fit to sensitive detector element, returning TrackState, chi2 and ndf via reference More... | |
virtual int | extrapolateToDetElement (int detEementID, EVENT::TrackerHit *hit, IMPL::TrackStateImpl &ts, double &chi2, int &ndf, int mode=modeClosest)=0 |
extrapolate the fit at the measurement site associated with the given hit, to sensitive detector element, returning TrackState, chi2 and ndf via reference More... | |
virtual int | intersectionWithLayer (int layerID, Vector3D &point, int &detElementID, int mode=modeClosest)=0 |
extrapolate the fit to numbered sensitive layer, returning intersection point in global coordinates and integer ID of the intersected sensitive detector element via reference More... | |
virtual int | intersectionWithLayer (int layerID, EVENT::TrackerHit *hit, Vector3D &point, int &detElementID, int mode=modeClosest)=0 |
extrapolate the fit at the measurement site associated with the given hit, to numbered sensitive layer, returning intersection point in global coordinates and integer ID of the intersected sensitive detector element via reference More... | |
virtual int | intersectionWithDetElement (int detElementID, Vector3D &point, int mode=modeClosest)=0 |
extrapolate the fit to numbered sensitive detector element, returning intersection point in global coordinates via reference More... | |
virtual int | intersectionWithDetElement (int detEementID, EVENT::TrackerHit *hit, Vector3D &point, int mode=modeClosest)=0 |
extrapolate the fit at the measurement site associated with the given hit, to sensitive detector element, returning intersection point in global coordinates via reference More... | |
virtual std::string | toString () |
Dump this track to a string for debugging - implementation dependant. More... | |
Static Public Attributes | |
static const bool | backward = false |
boolean constant for defining backward direction - to be used for intitialise More... | |
static const bool | forward = ! IMarlinTrack::backward |
boolean constant for defining backward direction - to be used for intitialise More... | |
static const int | modeBackward = - 1 |
static const int | modeClosest = 0 |
static const int | modeForward = + 1 |
static const int | success = 0 |
static const int | error = 1 |
static const int | bad_intputs = 3 |
static const int | no_intersection = 4 |
static const int | site_discarded = 5 |
static const int | site_fails_chi2_cut = 6 |
static const int | all_sites_fail_fit = 7 |
Private Member Functions | |
IMarlinTrack & | operator= (const IMarlinTrack &) |
Interface for generic tracks in MarlinTrk.
The interface should provide the functionality to perform track finding and fitting. It is asssumed that the underlying implemetation will by a Kalman Filter or a similar algorithm.
Definition at line 36 of file IMarlinTrack.h.
|
inlinevirtual |
default d'tor
Definition at line 63 of file IMarlinTrack.h.
|
pure virtual |
update the current fit using the supplied hit, return code via int.
Provides the Chi2 increment to the fit from adding the hit via reference. the given hit will not be added if chi2increment > maxChi2Increment.
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
add hit to track - the hits have to be added ordered in time ( i.e.
typically outgoing ) this order will define the direction of the energy loss used in the fit
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::createFit().
|
pure virtual |
extrapolate the fit to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit at the measurement site associated with the given hit, to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit to sensitive detector element, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit at the measurement site associated with the given hit, to sensitive detector element, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit at the measurement site associated with the given hit, to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
perform the fit of all current hits, returns error code ( IMarlinTrack::success if no error ) .
the fit will be performed in the order specified at initialise() wrt the order used in addHit(), i.e. IMarlinTrack::backward implies fitting from the outside to the inside for tracks comming from the IP.
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::createFit().
|
pure virtual |
get the list of hits included in the fit, together with the chi2 contributions of the hits.
Pointers to the hits together with their chi2 contribution will be filled into a vector of pairs consitining of the pointer as the first part of the pair and the chi2 contribution as the second.
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::finaliseLCIOTrack(), and toString().
|
pure virtual |
return the of the charged particle (GeV) that is used for energy loss and multiple scattering.
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
get the current number of degrees of freedom for the fit.
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::finaliseLCIOTrack().
|
pure virtual |
get the list of hits which have been rejected by from the fit due to the a chi2 increment greater than threshold, Pointers to the hits together with their chi2 contribution will be filled into a vector of pairs consitining of the pointer as the first part of the pair and the chi2 contribution as the second.
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::finaliseLCIOTrack().
|
pure virtual |
get TrackeHit at which fit became constrained, i.e.
ndf >= 0
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::finaliseLCIOTrack(), and toString().
|
pure virtual |
get track state, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::finaliseLCIOTrack(), and toString().
|
pure virtual |
get track state at measurement associated with the given hit, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
initialise the fit using the hits added up to this point - the fit direction has to be specified using IMarlinTrack::backward or IMarlinTrack::forward.
this is the order wrt the order used in addHit() that will be used in the fit()
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::createFit().
|
pure virtual |
initialise the fit with a track state, and z component of the B field in Tesla.
the fit direction has to be specified using IMarlinTrack::backward or IMarlinTrack::forward. this is the order that will be used in the fit(). it is the users responsibility that the track state is consistent with the order of the hits used in addHit() ( i.e. the direction of energy loss )
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit to numbered sensitive detector element, returning intersection point in global coordinates via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit at the measurement site associated with the given hit, to sensitive detector element, returning intersection point in global coordinates via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit to numbered sensitive layer, returning intersection point in global coordinates and integer ID of the intersected sensitive detector element via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
extrapolate the fit at the measurement site associated with the given hit, to numbered sensitive layer, returning intersection point in global coordinates and integer ID of the intersected sensitive detector element via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
private |
|
pure virtual |
propagate the fit to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::createFit(), and MarlinTrk::finaliseLCIOTrack().
|
pure virtual |
propagate the fit at the measurement site associated with the given hit, to the point of closest approach to the given point, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
propagate the fit to sensitive detector element, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
propagate the fit at the measurement site associated with the given hit, to sensitive detector element, returning TrackState, chi2 and ndf via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
propagate fit to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::createTrackStateAtCaloFace().
|
pure virtual |
propagate the fit at the measurement site associated with the given hit, to numbered sensitive layer, returning TrackState, chi2, ndf and integer ID of the intersected sensitive detector element via reference
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
set the mass of the charged particle (GeV) that is used for energy loss and multiple scattering - default value if this method is not called is the pion mass.
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
smooth all track states
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Referenced by MarlinTrk::finaliseLCIOTrack().
|
pure virtual |
smooth track states from the last filtered hit back to the measurement site associated with the given hit
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
pure virtual |
obtain the chi2 increment which would result in adding the hit to the fit.
This method will not alter the current fit, and the hit will not be stored in the list of hits or outliers
Implemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
|
virtual |
Dump this track to a string for debugging - implementation dependant.
Reimplemented in MarlinTrk::MarlinDDKalTestTrack, and MarlinTrk::MarlinAidaTTTrack.
Definition at line 40 of file IMarlinTrack.cc.
References std::endl(), getHitsInFit(), getTrackerHitAtPositiveNDF(), getTrackState(), std::vector< T >::size(), std::stringstream::str(), and UTIL::toString().
Referenced by MarlinTrk::finaliseLCIOTrack(), and MarlinTrk::MarlinDDKalTestTrack::toString().
|
static |
Definition at line 59 of file IMarlinTrack.h.
Referenced by MarlinTrk::errorCode(), and MarlinTrk::MarlinDDKalTestTrack::fit().
|
static |
boolean constant for defining backward direction - to be used for intitialise
Definition at line 41 of file IMarlinTrack.h.
Referenced by MarlinTrk::finaliseLCIOTrack().
|
static |
Definition at line 55 of file IMarlinTrack.h.
Referenced by MarlinTrk::MarlinDDKalTestTrack::addAndFit(), MarlinTrk::MarlinDDKalTestTrack::addHit(), MarlinTrk::createFinalisedLCIOTrack(), MarlinTrk::createFit(), MarlinTrk::createPrefit(), MarlinTrk::errorCode(), MarlinTrk::MarlinDDKalTestTrack::getSiteFromLCIOHit(), MarlinTrk::MarlinDDKalTestTrack::smooth(), and MarlinTrk::MarlinDDKalTestTrack::testChi2Increment().
|
static |
Definition at line 54 of file IMarlinTrack.h.
Referenced by MarlinTrk::errorCode(), MarlinTrk::finaliseLCIOTrack(), MarlinTrk::MarlinAidaTTTrack::fit(), MarlinTrk::MarlinDDKalTestTrack::fit(), MarlinTrk::MarlinDDKalTestTrack::getNDF(), MarlinTrk::MarlinAidaTTTrack::getTrackState(), MarlinTrk::MarlinAidaTTTrack::initialise(), MarlinTrk::MarlinDDKalTestTrack::initialise(), MarlinTrk::MarlinAidaTTTrack::intersectionWithDetElement(), MarlinTrk::MarlinAidaTTTrack::intersectionWithLayer(), and MarlinTrk::MarlinAidaTTTrack::propagateToDetElement().
|
static |
boolean constant for defining backward direction - to be used for intitialise
Definition at line 44 of file IMarlinTrack.h.
Referenced by MarlinTrk::MarlinDDKalTestTrack::initialise().
|
static |
Definition at line 48 of file IMarlinTrack.h.
|
static |
Definition at line 49 of file IMarlinTrack.h.
|
static |
Definition at line 50 of file IMarlinTrack.h.
Referenced by MarlinTrk::createTrackStateAtCaloFace().
|
static |
Definition at line 56 of file IMarlinTrack.h.
Referenced by MarlinTrk::createTrackStateAtCaloFace(), MarlinTrk::errorCode(), MarlinTrk::MarlinDDKalTestTrack::findIntersection(), MarlinTrk::MarlinDDKalTestTrack::intersectionWithDetElement(), MarlinTrk::MarlinDDKalTestTrack::intersectionWithLayer(), and MarlinTrk::MarlinAidaTTTrack::propagateToLayer().
|
static |
Definition at line 57 of file IMarlinTrack.h.
Referenced by MarlinTrk::MarlinDDKalTestTrack::addAndFit(), MarlinTrk::errorCode(), and MarlinTrk::MarlinDDKalTestTrack::getSiteFromLCIOHit().
|
static |
Definition at line 58 of file IMarlinTrack.h.
Referenced by MarlinTrk::MarlinDDKalTestTrack::addAndFit(), MarlinTrk::errorCode(), and MarlinTrk::MarlinDDKalTestTrack::fit().
|
static |
Definition at line 53 of file IMarlinTrack.h.
Referenced by MarlinTrk::MarlinAidaTTTrack::addAndFit(), MarlinTrk::MarlinDDKalTestTrack::addAndFit(), MarlinTrk::MarlinAidaTTTrack::addHit(), MarlinTrk::MarlinDDKalTestTrack::addHit(), MarlinTrk::createFinalisedLCIOTrack(), MarlinTrk::createFit(), MarlinTrk::createPrefit(), MarlinTrk::MarlinAidaTTTrack::createPreFit(), MarlinTrk::createTrackStateAtCaloFace(), MarlinTrk::errorCode(), MarlinTrk::MarlinDDKalTestTrack::extrapolate(), MarlinTrk::MarlinDDKalTestTrack::extrapolateToDetElement(), MarlinTrk::MarlinDDKalTestTrack::extrapolateToLayer(), MarlinTrk::finaliseLCIOTrack(), MarlinTrk::MarlinDDKalTestTrack::findIntersection(), MarlinTrk::MarlinAidaTTTrack::fit(), MarlinTrk::MarlinDDKalTestTrack::fit(), MarlinTrk::MarlinAidaTTTrack::getHitsInFit(), MarlinTrk::MarlinDDKalTestTrack::getHitsInFit(), MarlinTrk::MarlinAidaTTTrack::getNDF(), MarlinTrk::MarlinDDKalTestTrack::getNDF(), MarlinTrk::MarlinAidaTTTrack::getOutliers(), MarlinTrk::MarlinDDKalTestTrack::getOutliers(), MarlinTrk::MarlinDDKalTestTrack::getSiteFromLCIOHit(), MarlinTrk::MarlinAidaTTTrack::getTrackerHitAtPositiveNDF(), MarlinTrk::MarlinDDKalTestTrack::getTrackerHitAtPositiveNDF(), MarlinTrk::MarlinAidaTTTrack::getTrackState(), MarlinTrk::MarlinDDKalTestTrack::getTrackState(), MarlinTrk::MarlinDDKalTestTrack::initialise(), MarlinTrk::MarlinAidaTTTrack::intersectionWithDetElement(), MarlinTrk::MarlinDDKalTestTrack::intersectionWithDetElement(), MarlinTrk::MarlinDDKalTestTrack::intersectionWithLayer(), MarlinTrk::MarlinAidaTTTrack::myInit(), MarlinTrk::MarlinDDKalTestTrack::propagate(), MarlinTrk::MarlinDDKalTestTrack::propagateToDetElement(), MarlinTrk::MarlinDDKalTestTrack::propagateToLayer(), MarlinTrk::MarlinAidaTTTrack::smooth(), MarlinTrk::MarlinDDKalTestTrack::smooth(), and MarlinTrk::MarlinAidaTTTrack::testChi2Increment().