1 #ifndef MarlinAidaTTTrack_h
2 #define MarlinAidaTTTrack_h
4 #include "IMarlinTrack.h"
5 #include "IMarlinTrkSystem.h"
7 #include "aidaTT/AidaTT.hh"
51 void setMass(
double mass) ;
60 int addHit(EVENT::TrackerHit* hit) ;
66 int initialise(
bool fitDirection );
76 int initialise(
const EVENT::TrackState& ts,
double ,
bool fitDirection ) ;
83 int fit(
double maxChi2Increment=DBL_MAX ) ;
93 int smooth( EVENT::TrackerHit* hit ) ;
99 int addAndFit( EVENT::TrackerHit* hit,
double& chi2increment,
double maxChi2Increment=DBL_MAX ) ;
104 int testChi2Increment( EVENT::TrackerHit* hit,
double& chi2increment ) ;
111 int getTrackState( IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf ) ;
116 int getTrackState( EVENT::TrackerHit* hit, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf ) ;
124 int getHitsInFit( std::vector<std::pair<EVENT::TrackerHit*, double> >& hits ) ;
131 int getOutliers( std::vector<std::pair<EVENT::TrackerHit*, double> >& hits ) ;
136 int getNDF(
int& ndf ) ;
140 int getTrackerHitAtPositiveNDF( EVENT::TrackerHit*& trkhit ) ;
146 int propagate(
const gear::Vector3D& point, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf ) ;
152 int propagate(
const gear::Vector3D& point, EVENT::TrackerHit* hit, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf ) ;
157 int propagateToLayer(
int layerID, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int& detElementID,
int mode=modeClosest ) ;
162 int propagateToLayer(
int layerID, EVENT::TrackerHit* hit, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int& detElementID,
int mode=modeClosest ) ;
166 int propagateToDetElement(
int detElementID, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int mode=modeClosest ) ;
171 int propagateToDetElement(
int detEementID, EVENT::TrackerHit* hit, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int mode=modeClosest ) ;
179 int extrapolate(
const gear::Vector3D& point, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf ) ;
184 int extrapolate(
const gear::Vector3D& point, EVENT::TrackerHit* hit, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf ) ;
189 int extrapolateToLayer(
int layerID, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int& detElementID,
int mode=modeClosest ) ;
194 int extrapolateToLayer(
int layerID, EVENT::TrackerHit* hit, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int& detElementID,
int mode=modeClosest ) ;
198 int extrapolateToDetElement(
int detElementID, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int mode=modeClosest ) ;
203 int extrapolateToDetElement(
int detEementID, EVENT::TrackerHit* hit, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf,
int mode=modeClosest ) ;
208 std::string toString() ;
216 int intersectionWithLayer(
int layerID, gear::Vector3D& point,
int& detElementID,
int mode=modeClosest ) ;
221 int intersectionWithLayer(
int layerID, EVENT::TrackerHit* hit, gear::Vector3D& point,
int& detElementID,
int mode=modeClosest ) ;
225 int intersectionWithDetElement(
int detElementID, gear::Vector3D& point,
int mode=modeClosest ) ;
230 int intersectionWithDetElement(
int detElementID, EVENT::TrackerHit* hit, gear::Vector3D& point,
int mode=modeClosest ) ;
236 inline double toBaseRange(
double phi)
const {
237 while( phi <= -M_PI ){ phi += 2. * M_PI ; }
238 while( phi > M_PI ){ phi -= 2. * M_PI ; }
244 aidaTT::trackParameters createPreFit(aidaTT::trackParameters& tp ) ;
246 void getHitInfo(
const EVENT::TrackerHit* hit,
double* hitpos, std::vector<double>& precision,
const aidaTT::ISurface* surf ) ;
248 int getTrackState(
const aidaTT::Vector3D& refPoint,
int label, IMPL::TrackStateImpl& ts,
double& chi2,
int& ndf ) ;
269 std::vector< EVENT::TrackerHit*> _lcioHits ;
271 aidaTT::trackParameters _initialTrackParams ;
273 aidaTT::trajectory* _fitTrajectory ;
275 const std::vector<std::pair<double, const aidaTT::ISurface*> >* _intersections ;
277 std::map< int, int > _indexMap ;
Interface to KaltTest Kalman fitter - instantiates and holds the detector geometry.
Definition: MarlinAidaTT.h:43
int myInit()
common initialization
Definition: MarlinAidaTTTrack.cc:136
Interface for generic tracks in MarlinTrk.
Definition: IMarlinTrack.h:28
bool _fitDirection
used to store the fit direction supplied to intialise
Definition: MarlinAidaTTTrack.h:263
bool _smoothed
used to store whether smoothing has been performed
Definition: MarlinAidaTTTrack.h:267
Definition: MarlinAidaTTTrack.h:30
bool _initialised
used to store whether initial track state has been supplied or created
Definition: MarlinAidaTTTrack.h:259