MarlinTPC  1.2.0
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
marlintpc::KalTrackingTemplate< ContainerT > Class Template Referenceabstract

This is a base KalDet tracking class. More...

#include <KalTrackingTemplate.h>

Inheritance diagram for marlintpc::KalTrackingTemplate< ContainerT >:
marlintpc::KalTrackingBase

Classes

struct  Intersection
 A struct as return value for the extrapolation into the next layer. More...
 

Public Member Functions

 KalTrackingTemplate (const gear::GearMgr &gearMgr, unsigned int minTrackHits, unsigned int maxSkipRows, double maxDeltaChi2, int hitDistanceFactor, int startingHitMode, double vDrift, std::string modulesNotUsed)
 
virtual std::list< EVENT::Track * > findTracks (EVENT::LCCollection const *hitCollection)
 Find all possible tracks in the given hit collection.
 
void setMaxDeltaChi2 (double max)
 Set maximum delta chi2.
 
void setMinTrackHits (unsigned int min)
 Set minimum number of hits on track.
 
void setMaxSkipRows (unsigned int max)
 Set maximum track skipping row.
 
- Public Member Functions inherited from marlintpc::KalTrackingBase
virtual int getType ()=0
 Get which type this track is, helix or straight line.
 

Protected Member Functions

virtual void printStateVector ()=0
 Convenience function for printing. More...
 
virtual IMPL::TrackImpl * getTrack (ModuleRowHit firstHit)
 
virtual void searchTrackHit ()
 Search a proper hit to track.
 
virtual bool searchTrack (ModuleRowHit hit)=0
 Search track starting from hit.
 
virtual bool doAddAndFilter (ContainerT *track, ModuleRowHit hit)=0
 Add a new site to track and update track parameters. More...
 
virtual double getTrackTangentAndLayerAngle (ContainerT *trackCandidate)=0
 
virtual double calculateDeltaChi2 (ContainerT *trackCandidate)=0
 Create a track candidate by making a KalHit from the ModuleRowHit and creating a TrackSite from it. More...
 
virtual void reset ()
 Reset parameters and data of track.
 
virtual void setLCIOTrackParameters (IMPL::TrackImpl *trk)=0
 
virtual kaldet::GearTPCHit * createGearHit (ModuleRowHit const &mhr) const
 Create a kalman hit from module, row and the lcio hit (ModuleRowHit object)
 
virtual Intersection extrapolateIntoNextLayer (int targetDistance, bool useFarHit)=0
 Use the current track state of the containerTrack to extrapolate into the next layer. More...
 
virtual const
kaldet::GearTPCMeasLayer * 
extrapolateIntoNextLayer (int targetDistance)=0
 

Protected Attributes

std::vector< ModuleRowHit_hitsOnTrack
 Hit list of the track.
 
gear::GearMgr const & _gearMgr
 
TPCHitDomain_domain
 An area on the TPC readout plane, now it is (module, row)
 
const gear::TPCParameters & _tpcParameters
 TPC geometry.
 
unsigned int _minTrackHits
 The last hit that is added to track. More...
 
int _direction
 track direction
 
unsigned int _maxSkipRows
 Maximum track skipping row.
 
double _maxDeltaChi2
 Maximum delta chi2.
 
int _hitDistanceFactor
 
int _startingHitMode
 
double _vDrift
 
kaldet::GearTPCKalDetector _kalDetector
 
TKalDetCradle _detectorCradle
 
TPCHitMap _tpcHitMap
 The container of all arranged hits.
 
ContainerT * _containerTrack
 

Static Protected Attributes

static const int INWARDS =-1
 
static const int OUTWARDS =1
 

Detailed Description

template<class ContainerT>
class marlintpc::KalTrackingTemplate< ContainerT >

This is a base KalDet tracking class.

It provides common methods for tracking.

It is templated for a container which contain the track state. For compatilibity with with TKalTrack it has to imolement SetOwner(), Clear() and Last(). Last may just return a null pointer.

Author
Bo Li, Tsinghua University
Keisuke Fujii, KEK

Member Function Documentation

template<class ContainerT>
virtual double marlintpc::KalTrackingTemplate< ContainerT >::calculateDeltaChi2 ( ContainerT *  trackCandidate)
protectedpure virtual

Create a track candidate by making a KalHit from the ModuleRowHit and creating a TrackSite from it.

Afterwards it copies the _kalTrack of this class and adds and filters with the new site. It also hands over the ownership of the new track, so don't forget to delete it. Attention: The new track is not the owner of the sites, as they belong to the original _kalTrack, except for the newly deleted site. Before deleting the candidate do not forget to delete the last added site on the track!

If the add and filter fails you get a 0-pointer;Get the deltaChi2 from the track candidate

Implemented in marlintpc::KalTrackingHelix, and marlintpc::KalTrackingStraight.

template<class ContainerT>
virtual bool marlintpc::KalTrackingTemplate< ContainerT >::doAddAndFilter ( ContainerT *  track,
ModuleRowHit  hit 
)
protectedpure virtual

Add a new site to track and update track parameters.

The track is given as an argument so it can also be used for track candidates and not only for the class-wide variable _kalTrack.

Only to be called after the track has been initalised with a first track state.

Implemented in marlintpc::KalTrackingStraight, and marlintpc::KalTrackingHelix.

template<class ContainerT>
virtual Intersection marlintpc::KalTrackingTemplate< ContainerT >::extrapolateIntoNextLayer ( int  targetDistance,
bool  useFarHit 
)
protectedpure virtual

Use the current track state of the containerTrack to extrapolate into the next layer.

The distance can be positive or negative, depending if we move inwards or outwards, or 0 to get another intersection on the same layer.

Implemented in marlintpc::KalTrackingHelix, and marlintpc::KalTrackingStraight.

template<class ContainerT>
virtual void marlintpc::KalTrackingTemplate< ContainerT >::printStateVector ( )
protectedpure virtual

Convenience function for printing.

Implemented for helix and straight tracks.

Implemented in marlintpc::KalTrackingStraight, and marlintpc::KalTrackingHelix.

Member Data Documentation

template<class ContainerT>
unsigned int marlintpc::KalTrackingTemplate< ContainerT >::_minTrackHits
protected

The last hit that is added to track.

Minimum number of hits on track

Referenced by marlintpc::KalTrackingTemplate< TKalTrack >::setMinTrackHits().


The documentation for this class was generated from the following file: