MarlinTrk
02.08
|
Created by Steve Aplin on 9/16/11. More...
Classes | |
class | ConfigFlags |
class | Factory |
Factory methods for creating the MarlinTrkSystem of a certain type: DDKalTest, aidaTT,... Currently implemented: DDKalTest, aidaTT. More... | |
class | HelixFit |
class | IMarlinTrack |
Interface for generic tracks in MarlinTrk. More... | |
class | Exception |
Exception thrown in IMarlinTrk namespace (implemetations of IMarlinTrkSystem and IMarlinTrack). More... | |
class | IMarlinTrkSystem |
Base class for tracking system implementations in MarlinTrk. More... | |
class | MarlinAidaTT |
Interface to KaltTest Kalman fitter - instantiates and holds the detector geometry. More... | |
class | MarlinAidaTTTrack |
class | MarlinDDKalTest |
Interface to KaltTest Kalman fitter - instantiates and holds the detector geometry. More... | |
class | MarlinDDKalTestTrack |
class | TrkSysConfig |
Helper class for temporarilly setting a configuration option of the tracking system for the current scope. More... | |
Typedefs | |
typedef dd4hep::rec::Vector3D | Vector3D |
the Vector3D used for the tracking interface More... | |
typedef std::multimap< long, const aidaTT::ISurface * > | SurfMap |
Functions | |
std::ostream & | operator<< (std::ostream &os, const ConfigFlags &cf) |
std::string | errorCode (int error) |
Helper function to convert error return code to string. More... | |
int | createFinalisedLCIOTrack (IMarlinTrack *marlinTrk, std::vector< EVENT::TrackerHit * > &hit_list, IMPL::TrackImpl *track, bool fit_direction, EVENT::TrackState *pre_fit, float bfield_z, double maxChi2Increment=DBL_MAX) |
Takes a list of hits and uses the IMarlinTrack inferface to fit them using a supplied prefit containing a covariance matrix for the initialisation. More... | |
int | createFinalisedLCIOTrack (IMarlinTrack *marlinTrk, std::vector< EVENT::TrackerHit * > &hit_list, IMPL::TrackImpl *track, bool fit_direction, const EVENT::FloatVec &initial_cov_for_prefit, float bfield_z, double maxChi2Increment=DBL_MAX) |
Takes a list of hits and uses the IMarlinTrack inferface to fit them using a supplied covariance matrix for the initialisation. More... | |
int | createPrefit (std::vector< EVENT::TrackerHit * > &hit_list, IMPL::TrackStateImpl *pre_fit, float bfield_z, bool fit_direction) |
Provides the values of a track state from the first, middle and last hits in the hit_list. More... | |
int | createFit (std::vector< EVENT::TrackerHit * > &hit_list, IMarlinTrack *marlinTrk, EVENT::TrackState *pre_fit, float bfield_z, bool fit_direction, double maxChi2Increment=DBL_MAX) |
Takes a list of hits and uses the IMarlinTrack inferface to fit them using a supplied prefit containing a covariance matrix for the initialisation. More... | |
int | finaliseLCIOTrack (IMarlinTrack *marlinTrk, IMPL::TrackImpl *track, std::vector< EVENT::TrackerHit * > &hit_list, bool fit_direction, IMPL::TrackStateImpl *atLastHit=0, IMPL::TrackStateImpl *atCaloFace=0) |
Takes a fitted MarlinTrack, TrackImpl to record the fit and the hits which have been added to the fit. More... | |
void | addHitNumbersToTrack (IMPL::TrackImpl *track, std::vector< EVENT::TrackerHit * > &hit_list, bool hits_in_fit, UTIL::BitField64 &cellID_encoder) |
Set the subdetector hit numbers for the TrackImpl. More... | |
void | addHitNumbersToTrack (IMPL::TrackImpl *track, std::vector< std::pair< EVENT::TrackerHit *, double > > &hit_list, bool hits_in_fit, UTIL::BitField64 &cellID_encoder) |
Set the subdetector hit numbers for the TrackImpl. More... | |
std::string | cellIDString (int detElementID) |
int | createTrackStateAtCaloFace (IMarlinTrack *marlinTrk, IMPL::TrackStateImpl *track, EVENT::TrackerHit *trkhit, bool tanL_is_positive) |
Created by Steve Aplin on 9/16/11.
Implementation of the IMarlinTrack interface, using KalTest and KalDet to provide the needed functionality for a Kalman Filter.
DESY
C++ rewrite of the aleph Fortran routine TFITHL
! Fast helix fit
Input: NPT Number of 3-D points to be fit xf Array of X-values of points to be fit yf Array of Y-values of points to be fit zf Array of Z-values of points to be fit wf Array of 1/(sig(rphi))**2 for each point wzf Array of 1/(sig(z))**2 for each point iopt < 3 : error matrix calculated = 3 : 3-dimensional iteration
OUTPUT: vv0 = Helix parameter in perigee form ee0 = INVERSE OF ERROR MATRIX IN TRIANG. FORM chi2ph = CHI SQUARED = SUM (PHI DEVIATIONS/ERRORS)**2 CH2Z = CHI SQUARED = SUM (Z DEVIATIONS/ERRORS)**2
BASED ON SUBROUTINE CIRCLE REFERENCE: COMPUTER PHYSICS COMMUNICATIONS VOL 33,P329
AUTHORS: N. CHERNOV, G. OSOSKOV & M. POPPE Modified by: Fred Weber, 8 Jun 1989 Modified by: M.Cattaneo, 27-Jan-1998 Protect against arg SIN > 1.0
F. Gaede DESY, Oct 2016
typedef std::multimap< long, const aidaTT::ISurface* > MarlinTrk::SurfMap |
Definition at line 38 of file MarlinAidaTT.h.
the Vector3D used for the tracking interface
Definition at line 26 of file IMarlinTrack.h.
void MarlinTrk::addHitNumbersToTrack | ( | IMPL::TrackImpl * | track, |
std::vector< EVENT::TrackerHit * > & | hit_list, | ||
bool | hits_in_fit, | ||
UTIL::BitField64 & | cellID_encoder | ||
) |
Set the subdetector hit numbers for the TrackImpl.
Definition at line 858 of file MarlinTrkUtils.cc.
References std::vector< T >::at(), std::map< K, T >::begin(), std::map< K, T >::end(), EVENT::TrackerHit::getCellID0(), std::vector< T >::resize(), UTIL::BitField64::setValue(), std::vector< T >::size(), UTIL::LCTrackerCellID::subdet(), and IMPL::TrackImpl::subdetectorHitNumbers().
void MarlinTrk::addHitNumbersToTrack | ( | IMPL::TrackImpl * | track, |
std::vector< std::pair< EVENT::TrackerHit *, double > > & | hit_list, | ||
bool | hits_in_fit, | ||
UTIL::BitField64 & | cellID_encoder | ||
) |
Set the subdetector hit numbers for the TrackImpl.
Definition at line 895 of file MarlinTrkUtils.cc.
References std::vector< T >::at(), std::map< K, T >::begin(), std::map< K, T >::end(), EVENT::TrackerHit::getCellID0(), std::vector< T >::resize(), UTIL::BitField64::setValue(), std::vector< T >::size(), UTIL::LCTrackerCellID::subdet(), and IMPL::TrackImpl::subdetectorHitNumbers().
std::string MarlinTrk::cellIDString | ( | int | detElementID | ) |
Definition at line 67 of file MarlinDDKalTestTrack.cc.
References UTIL::LCTrackerCellID::encoding_string().
Referenced by MarlinTrk::MarlinDDKalTestTrack::addAndFit(), MarlinTrk::MarlinAidaTTTrack::createPreFit(), MarlinTrk::MarlinAidaTTTrack::fit(), MarlinTrk::MarlinDDKalTestTrack::fit(), MarlinTrk::MarlinAidaTTTrack::getTrackState(), MarlinTrk::MarlinAidaTTTrack::intersectionWithDetElement(), MarlinTrk::MarlinDDKalTestTrack::intersectionWithDetElement(), MarlinTrk::MarlinAidaTTTrack::intersectionWithLayer(), MarlinTrk::MarlinDDKalTestTrack::intersectionWithLayer(), MarlinTrk::MarlinAidaTTTrack::propagateToDetElement(), MarlinTrk::MarlinAidaTTTrack::propagateToLayer(), and MarlinTrk::MarlinDDKalTestTrack::testChi2Increment().
int MarlinTrk::createFinalisedLCIOTrack | ( | IMarlinTrack * | marlinTrk, |
std::vector< EVENT::TrackerHit * > & | hit_list, | ||
IMPL::TrackImpl * | track, | ||
bool | fit_direction, | ||
EVENT::TrackState * | pre_fit, | ||
float | bfield_z, | ||
double | maxChi2Increment = DBL_MAX |
||
) |
Takes a list of hits and uses the IMarlinTrack inferface to fit them using a supplied prefit containing a covariance matrix for the initialisation.
The TrackImpl will have the 4 trackstates added to it , , and
Definition at line 147 of file MarlinTrkUtils.cc.
References MarlinTrk::IMarlinTrack::bad_intputs, createFit(), std::vector< T >::empty(), std::endl(), finaliseLCIOTrack(), and MarlinTrk::IMarlinTrack::success.
Referenced by createFinalisedLCIOTrack().
int MarlinTrk::createFinalisedLCIOTrack | ( | IMarlinTrack * | marlinTrk, |
std::vector< EVENT::TrackerHit * > & | hit_list, | ||
IMPL::TrackImpl * | track, | ||
bool | fit_direction, | ||
const EVENT::FloatVec & | initial_cov_for_prefit, | ||
float | bfield_z, | ||
double | maxChi2Increment = DBL_MAX |
||
) |
Takes a list of hits and uses the IMarlinTrack inferface to fit them using a supplied covariance matrix for the initialisation.
The TrackImpl will have the 4 trackstates added to it , , and
Definition at line 103 of file MarlinTrkUtils.cc.
References MarlinTrk::IMarlinTrack::bad_intputs, createFinalisedLCIOTrack(), createPrefit(), std::vector< T >::empty(), std::endl(), IMPL::TrackStateImpl::setCovMatrix(), and toString().
int MarlinTrk::createFit | ( | std::vector< EVENT::TrackerHit * > & | hit_list, |
IMarlinTrack * | marlinTrk, | ||
EVENT::TrackState * | pre_fit, | ||
float | bfield_z, | ||
bool | fit_direction, | ||
double | maxChi2Increment = DBL_MAX |
||
) |
Takes a list of hits and uses the IMarlinTrack inferface to fit them using a supplied prefit containing a covariance matrix for the initialisation.
Definition at line 184 of file MarlinTrkUtils.cc.
References MarlinTrk::IMarlinTrack::addHit(), MarlinTrk::IMarlinTrack::bad_intputs, std::vector< T >::begin(), UTIL::ILDTrkHitTypeBit::COMPOSITE_SPACEPOINT, std::vector< T >::empty(), std::vector< T >::end(), std::endl(), MarlinTrk::IMarlinTrack::fit(), EVENT::TrackerHit::getRawHits(), EVENT::TrackerHit::getType(), MarlinTrk::IMarlinTrack::initialise(), MIN_NDF, MarlinTrk::IMarlinTrack::propagate(), std::vector< T >::push_back(), std::vector< T >::size(), and MarlinTrk::IMarlinTrack::success.
Referenced by createFinalisedLCIOTrack().
int MarlinTrk::createPrefit | ( | std::vector< EVENT::TrackerHit * > & | hit_list, |
IMPL::TrackStateImpl * | pre_fit, | ||
float | bfield_z, | ||
bool | fit_direction | ||
) |
Provides the values of a track state from the first, middle and last hits in the hit_list.
Definition at line 329 of file MarlinTrkUtils.cc.
References std::vector< T >::back(), MarlinTrk::IMarlinTrack::bad_intputs, std::vector< T >::empty(), std::endl(), HelixTrack::forwards, HelixTrack::getD0(), HelixTrack::getOmega(), HelixTrack::getPhi0(), HelixTrack::getRefPointX(), HelixTrack::getRefPointY(), HelixTrack::getRefPointZ(), HelixTrack::getTanLambda(), HelixTrack::getZ0(), HelixTrack::moveRefPoint(), UTIL::ILDTrkHitTypeBit::ONE_DIMENSIONAL, std::vector< T >::push_back(), IMPL::TrackStateImpl::setD0(), IMPL::TrackStateImpl::setOmega(), IMPL::TrackStateImpl::setPhi(), IMPL::TrackStateImpl::setReferencePoint(), IMPL::TrackStateImpl::setTanLambda(), IMPL::TrackStateImpl::setZ0(), std::vector< T >::size(), and MarlinTrk::IMarlinTrack::success.
Referenced by createFinalisedLCIOTrack().
int MarlinTrk::createTrackStateAtCaloFace | ( | IMarlinTrack * | marlinTrk, |
IMPL::TrackStateImpl * | track, | ||
EVENT::TrackerHit * | trkhit, | ||
bool | tanL_is_positive | ||
) |
Definition at line 783 of file MarlinTrkUtils.cc.
References std::endl(), UTIL::BitField64::lowWord(), M_PI, MarlinTrk::IMarlinTrack::modeForward, MarlinTrk::IMarlinTrack::no_intersection, MarlinTrk::IMarlinTrack::propagateToLayer(), UTIL::BitField64::reset(), MarlinTrk::IMarlinTrack::success, toString(), and UTIL::toString().
Referenced by finaliseLCIOTrack().
std::string MarlinTrk::errorCode | ( | int | error | ) |
Helper function to convert error return code to string.
Definition at line 26 of file IMarlinTrack.cc.
References MarlinTrk::IMarlinTrack::all_sites_fail_fit, MarlinTrk::IMarlinTrack::bad_intputs, MarlinTrk::IMarlinTrack::error, MarlinTrk::IMarlinTrack::no_intersection, MarlinTrk::IMarlinTrack::site_discarded, MarlinTrk::IMarlinTrack::site_fails_chi2_cut, and MarlinTrk::IMarlinTrack::success.
Referenced by finaliseLCIOTrack().
int MarlinTrk::finaliseLCIOTrack | ( | IMarlinTrack * | marlinTrk, |
IMPL::TrackImpl * | track, | ||
std::vector< EVENT::TrackerHit * > & | hit_list, | ||
bool | fit_direction, | ||
IMPL::TrackStateImpl * | atLastHit = 0 , |
||
IMPL::TrackStateImpl * | atCaloFace = 0 |
||
) |
Takes a fitted MarlinTrack, TrackImpl to record the fit and the hits which have been added to the fit.
The TrackImpl will have the 4 trackstates added to it , , and . Note: the hit list is needed as the IMarlinTrack only contains the hits used in the fit, not the spacepoints (if any have been included) so as the strip hits cannot point to the space points we need to have the list so that they can be recorded in the LCIO TrackImpl
Definition at line 399 of file MarlinTrkUtils.cc.
References IMPL::TrackImpl::addHit(), std::vector< T >::back(), MarlinTrk::IMarlinTrack::backward, UTIL::ILDTrkHitTypeBit::COMPOSITE_SPACEPOINT, MarlinTrk::IMarlinTrkSystem::createTrack(), createTrackStateAtCaloFace(), std::endl(), MarlinTrk::IMarlinTrack::error, errorCode(), std::vector< T >::front(), MarlinTrk::Factory::getCurrentMarlinTrkSystem(), MarlinTrk::IMarlinTrack::getHitsInFit(), MarlinTrk::IMarlinTrack::getNDF(), MarlinTrk::IMarlinTrack::getOutliers(), EVENT::TrackerHit::getPosition(), EVENT::TrackerHit::getRawHits(), IMPL::TrackStateImpl::getTanLambda(), MarlinTrk::IMarlinTrack::getTrackerHitAtPositiveNDF(), MarlinTrk::IMarlinTrack::getTrackState(), EVENT::TrackerHit::getType(), MarlinTrk::IMarlinTrkSystem::name(), MarlinTrk::IMarlinTrack::propagate(), std::vector< T >::push_back(), std::vector< T >::rbegin(), std::vector< T >::rend(), std::vector< T >::reserve(), IMPL::TrackImpl::setChi2(), IMPL::TrackStateImpl::setLocation(), IMPL::TrackImpl::setNdf(), IMPL::TrackImpl::setRadiusOfInnermostHit(), std::vector< T >::size(), MarlinTrk::IMarlinTrack::smooth(), MarlinTrk::IMarlinTrack::success, toString(), MarlinTrk::IMarlinTrack::toString(), and IMPL::TrackImpl::trackStates().
Referenced by createFinalisedLCIOTrack().
|
inline |
Definition at line 80 of file ConfigFlags.h.
References MarlinTrk::ConfigFlags::_map, std::map< K, T >::begin(), std::map< K, T >::end(), and std::endl().