MarlinTPC  1.2.0
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
marlintpc::KalTrackingHelix Class Reference

This is the helix track class, which inherits from KalTrackingTemplate and TKalTrack. More...

#include <KalTrackingHelix.h>

Inheritance diagram for marlintpc::KalTrackingHelix:
marlintpc::KalTrackingTemplate< TKalTrack > marlintpc::KalTrackingBase

Public Member Functions

 KalTrackingHelix (const gear::GearMgr &gearMgr, int minTrackHits, int maxSkipRows, double maxDeltaChi2, int hitDistanceFactor, int hitStartingMode, double vDrift, std::string modulesNotUsed)
 
int getType ()
 Get track type: helix.
 
- Public Member Functions inherited from marlintpc::KalTrackingTemplate< TKalTrack >
 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.
 

Protected Member Functions

bool doAddAndFilter (TKalTrack *track, ModuleRowHit hit)
 Add a new site to track and update track parameters.
 
virtual bool searchTrack (ModuleRowHit hit)
 Create a track candidate by making a KalHit from the ModuleRowHit and creating a TrackSite from it. More...
 
virtual TMatrixD calculateStartHelix (ModuleRowHit const &hit1, ModuleRowHit const &hit2, ModuleRowHit const &hit3)
 Calculate the initial track state starting from three hits.
 
virtual void printStateVector ()
 Print track parameters.
 
virtual void setLCIOTrackParameters (IMPL::TrackImpl *trk)
 Fill the track state (incl. More...
 
virtual double calculateDeltaChi2 (TKalTrack *trackCandidate)
 Get the deltaChi2 from the track candidate.
 
virtual Intersection extrapolateIntoNextLayer (int targetDistance, bool useFarHit)
 Use the current track state of the containerTrack to extrapolate into the next layer. More...
 
virtual const
kaldet::GearTPCMeasLayer * 
extrapolateIntoNextLayer (int targetDistance)
 
virtual gear::Vector2D getNearestPointInNextLayer (ModuleRowHit firstHit)
 
virtual double getTrackTangentAndLayerAngle (TKalTrack *track)
 
virtual TKalTrackSite * createInitialSite (ModuleRowHit &mrh1, ModuleRowHit &mrh2, ModuleRowHit &mrh3)
 
- Protected Member Functions inherited from marlintpc::KalTrackingTemplate< TKalTrack >
virtual IMPL::TrackImpl * getTrack (ModuleRowHit firstHit)
 
virtual void searchTrackHit ()
 Search a proper hit to track.
 
virtual void reset ()
 Reset parameters and data of track.
 
virtual kaldet::GearTPCHit * createGearHit (ModuleRowHit const &mhr) const
 Create a kalman hit from module, row and the lcio hit (ModuleRowHit object)
 

Static Protected Member Functions

static double toBaseRange (double phi)
 

Friends

class KalTrackingHelixTester
 

Additional Inherited Members

- Protected Attributes inherited from marlintpc::KalTrackingTemplate< TKalTrack >
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.
 
TKalTrack * _containerTrack
 
- Static Protected Attributes inherited from marlintpc::KalTrackingTemplate< TKalTrack >
static const int INWARDS
 
static const int OUTWARDS
 

Detailed Description

This is the helix track class, which inherits from KalTrackingTemplate and TKalTrack.

Kalman filter algorithm comes from TKalTrack which is a class in KalTest package.

Author
Bo Li, Tsinghua University
Keisuke Fujii, KEK

Member Function Documentation

virtual Intersection marlintpc::KalTrackingHelix::extrapolateIntoNextLayer ( int  targetDistance,
bool  useFarHit 
)
protectedvirtual

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.

Implements marlintpc::KalTrackingTemplate< TKalTrack >.

virtual bool marlintpc::KalTrackingHelix::searchTrack ( ModuleRowHit  hit)
protectedvirtual

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;Search track starting from hit

Implements marlintpc::KalTrackingTemplate< TKalTrack >.

virtual void marlintpc::KalTrackingHelix::setLCIOTrackParameters ( IMPL::TrackImpl *  trk)
protectedvirtual

Fill the track state (incl.

cov matrix) at the beginning (4th hit) of the track into the given LCIO track. Smoothes back to the 4th hit and returns that state.

Implements marlintpc::KalTrackingTemplate< TKalTrack >.


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