8 #ifndef _DTrackFitterStraightTrack_
9 #define _DTrackFitterStraightTrack_
11 #include <JANA/jerror.h>
19 #include <TMatrixFSym.h>
59 double resi,err,d,delta,tdrift,ddrift,s,
V;
72 string Name(
void)
const {
return string(
"StraightTrack");}
77 unsigned int Locate(
const vector<double>&xx,
double x)
const;
83 vector<cdc_update_t>&updates,
double &chi2,
84 int &ndof,
unsigned int iter);
85 jerror_t
Smooth(vector<cdc_update_t>&cdc_updates);
89 double &chi2_best,
int &ndof_best);
95 double &chi2_best,
int &ndof_best);
98 vector<int>&used_cdc_hits,vector<fdc_update_t>&updates,
99 vector<cdc_update_t>&cdc_updates,
double &chi2,
101 jerror_t
Smooth(vector<fdc_update_t>&fdc_updates,
102 vector<cdc_update_t>&cdc_updates);
147 #endif // _DTrackFitterStraightTrack_
deque< trajectory_t > best_trajectory
shared_ptr< TMatrixFSym > Get7x7ErrorMatrix(TMatrixFSym C, DMatrix4x1 &S, double sign)
DTrackFitter::fit_status_t FitCentralTrack(double &z0, double t0, double dzsign, DMatrix4x1 &Sbest, DMatrix4x4 &Cbest, double &chi2_best, int &ndof_best)
The DTrackFitter class is a base class for different charged track fitting algorithms. It does not actually fit the track itself, but provides the interface and some common support features most algorthims will need to implement.
vector< vector< DVector3 > > sc_dir
double fdc_drift_variance(double t) const
unsigned int Locate(const vector< double > &xx, double x) const
shared_ptr< DResourcePool< TMatrixFSym > > dResourcePool_TMatrixFSym
~DTrackFitterStraightTrack()
double short_drift_func[3][3]
jerror_t Smooth(vector< cdc_update_t > &cdc_updates)
double CDCDriftDistance(double dphi, double delta, double t) const
vector< vector< double > > max_sag
vector< vector< double > > sag_phi_offset
vector< double > cdc_drift_table
DTrackFitter::fit_status_t FitForwardTrack(double t0, double &start_z, DMatrix4x1 &Sbest, DMatrix4x4 &Cbest, double &chi2_best, int &ndof_best)
double DRIFT_RES_PARMS[3]
DTrackFitterStraightTrack(JEventLoop *loop)
const map< DetectorSystem_t, vector< Extrapolation_t > > & GetExtrapolations(void) const
jerror_t SetReferenceTrajectory(double t0, double z, DMatrix4x1 &S, const DCDCTrackHit *last_cdc, double &dzsign)
vector< double > fdc_drift_table
fit_status_t FitTrack(void)
vector< vector< DVector3 > > sc_pos
trajectory_t(double z, double t, DMatrix4x1 S, DMatrix4x4 J, DMatrix4x1 Skk, DMatrix4x4 Ckk, unsigned int id=0, unsigned int numhits=0)
vector< vector< DVector3 > > sc_norm
deque< trajectory_t > trajectory
double fdc_drift_distance(double time) const
double long_drift_func[3][3]
jerror_t KalmanFilter(DMatrix4x1 &S, DMatrix4x4 &C, vector< int > &used_hits, vector< cdc_update_t > &updates, double &chi2, int &ndof, unsigned int iter)
double CDCDriftVariance(double t) const
double downstreamEndplate
double DRIFT_FUNC_PARMS[6]
double ChiSq(fit_type_t fit_type, DReferenceTrajectory *rt, double *chisq_ptr=NULL, int *dof_ptr=NULL, vector< pull_t > *pulls_ptr=NULL)