MarlinTrk  02.08
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Functions
MarlinTrk Namespace Reference

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::ostreamoperator<< (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)
 

Detailed Description

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

NOTE: DEGREES OF FREEDOM = 2*NPT-5

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


Version
Id:

F. Gaede DESY, Oct 2016

Version
Id:
MarlinDDKalTestTrack.h 3641 2012-06-13 13:04:36Z aplin
Author
S.Aplin, F. Gaede DESY

Typedef Documentation

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.

Function Documentation

void MarlinTrk::addHitNumbersToTrack ( IMPL::TrackImpl track,
std::vector< EVENT::TrackerHit * > &  hit_list,
bool  hits_in_fit,
UTIL::BitField64 cellID_encoder 
)
void MarlinTrk::addHitNumbersToTrack ( IMPL::TrackImpl track,
std::vector< std::pair< EVENT::TrackerHit *, double > > &  hit_list,
bool  hits_in_fit,
UTIL::BitField64 cellID_encoder 
)
std::string MarlinTrk::cellIDString ( int  detElementID)
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 
)
int MarlinTrk::createPrefit ( std::vector< EVENT::TrackerHit * > &  hit_list,
IMPL::TrackStateImpl pre_fit,
float  bfield_z,
bool  fit_direction 
)
int MarlinTrk::createTrackStateAtCaloFace ( IMarlinTrack *  marlinTrk,
IMPL::TrackStateImpl track,
EVENT::TrackerHit trkhit,
bool  tanL_is_positive 
)
std::string MarlinTrk::errorCode ( int  error)
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().

std::ostream & MarlinTrk::operator<< ( std::ostream os,
const ConfigFlags &  cf 
)
inline