1 #ifndef KALTRACKINGTEMPLATE_H
2 #define KALTRACKINGTEMPLATE_H
6 #include <EVENT/TrackerHit.h>
7 #include <IMPL/TrackImpl.h>
9 #include "TPCHitDomain.h"
10 #include <gear/TPCParameters.h>
11 #include <kaldet/GearTPCKalDetector.h>
12 #include <kaldet/GearTPCHit.h>
13 #include <gear/GearMgr.h>
17 #include "KalTrackingBase.h"
35 unsigned int minTrackHits,
36 unsigned int maxSkipRows,
38 int hitDistanceFactor,
41 std::string modulesNotUsed);
47 virtual std::list<EVENT::Track*>
findTracks(EVENT::LCCollection
const * hitCollection);
73 virtual IMPL::TrackImpl* getTrack(
ModuleRowHit firstHit);
91 virtual double getTrackTangentAndLayerAngle(ContainerT * trackCandidate) = 0;
112 virtual void reset();
121 gear::GearMgr
const & _gearMgr;
144 static const int INWARDS=-1;
145 static const int OUTWARDS=1;
155 int _hitDistanceFactor;
157 int _startingHitMode;
161 kaldet::GearTPCKalDetector _kalDetector;
163 TKalDetCradle _detectorCradle;
169 virtual void setLCIOTrackParameters(IMPL::TrackImpl* trk) = 0;
171 ContainerT * _containerTrack;
182 enum Status{IntersectionOK, OutOfDetector, NoIntersection,
183 NoIntersectionInActiveRegion} status;
206 #endif //KALTRACKINGTEMPLATE_H
Intersection(TVector3 _coordinates_, Status _status_)
Convenience constructor.
Definition: KalTrackingTemplate.h:186
std::vector< ModuleRowHit > _hitsOnTrack
Hit list of the track.
Definition: KalTrackingTemplate.h:117
virtual void searchTrackHit()
Search a proper hit to track.
This is a base KalDet tracking class.
Definition: KalTrackingBase.h:16
Definition: TPCHitDomain.h:17
Struct to hold module and row and a hit in this row.
Definition: TPCHitMap.h:79
virtual void reset()
Reset parameters and data of track.
virtual std::list< EVENT::Track * > findTracks(EVENT::LCCollection const *hitCollection)
Find all possible tracks in the given hit collection.
double _maxDeltaChi2
Maximum delta chi2.
Definition: KalTrackingTemplate.h:153
Definition: TPCHitMap.h:116
TPCHitMap _tpcHitMap
The container of all arranged hits.
Definition: KalTrackingTemplate.h:167
int _direction
track direction
Definition: KalTrackingTemplate.h:143
Status
The status whether the intersection calculation succeeded.
Definition: KalTrackingTemplate.h:182
virtual bool doAddAndFilter(ContainerT *track, ModuleRowHit hit)=0
Add a new site to track and update track parameters.
virtual Intersection extrapolateIntoNextLayer(int targetDistance, bool useFarHit)=0
Use the current track state of the containerTrack to extrapolate into the next layer.
void setMaxDeltaChi2(double max)
Set maximum delta chi2.
Definition: KalTrackingTemplate.h:52
virtual double calculateDeltaChi2(ContainerT *trackCandidate)=0
Create a track candidate by making a KalHit from the ModuleRowHit and creating a TrackSite from it...
const gear::TPCParameters & _tpcParameters
TPC geometry.
Definition: KalTrackingTemplate.h:130
unsigned int _maxSkipRows
Maximum track skipping row.
Definition: KalTrackingTemplate.h:149
This is a base KalDet tracking class.
Definition: KalTrackingTemplate.h:31
TVector3 coordinates
The coordinates of the intersection.
Definition: KalTrackingTemplate.h:180
unsigned int _minTrackHits
The last hit that is added to track.
Definition: KalTrackingTemplate.h:138
virtual kaldet::GearTPCHit * createGearHit(ModuleRowHit const &mhr) const
Create a kalman hit from module, row and the lcio hit (ModuleRowHit object)
void setMinTrackHits(unsigned int min)
Set minimum number of hits on track.
Definition: KalTrackingTemplate.h:56
A struct as return value for the extrapolation into the next layer.
Definition: KalTrackingTemplate.h:177
virtual void printStateVector()=0
Convenience function for printing.
virtual bool searchTrack(ModuleRowHit hit)=0
Search track starting from hit.
void setMaxSkipRows(unsigned int max)
Set maximum track skipping row.
Definition: KalTrackingTemplate.h:63
TPCHitDomain * _domain
An area on the TPC readout plane, now it is (module, row)
Definition: KalTrackingTemplate.h:125