MarlinTPC
1.2.0
|
This is a base KalDet tracking class. More...
#include <KalTrackingTemplate.h>
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. | |
![]() | |
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 |
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.
|
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.
|
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.
|
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.
|
protectedpure virtual |
Convenience function for printing.
Implemented for helix and straight tracks.
Implemented in marlintpc::KalTrackingStraight, and marlintpc::KalTrackingHelix.
|
protected |
The last hit that is added to track.
Minimum number of hits on track
Referenced by marlintpc::KalTrackingTemplate< TKalTrack >::setMinTrackHits().