#ifndef _DKALMANFILTER_H_ #define _DKALMANFILTER_H_ #include #include #include #include #include "HDGEOMETRY/DMagneticFieldMap.h" #include "HDGEOMETRY/DGeometry.h" #include "CDC/DCDCTrackHit.h" using namespace std; typedef struct{ double x,y,z; double covx,covxy,covy; double dE; }DKalmanHit_t; typedef struct{ double t,d,stereo; DVector3 origin; DVector3 dir; }DKalmanCDCHit_t; typedef struct{ double S[5]; double C[5][5]; double JT[5][5]; bool measurement; }DKalmanState_t; class DKalmanFilter{ public: DKalmanFilter(const DMagneticFieldMap *bfield,const DGeometry *dgeom); ~DKalmanFilter(){ for (unsigned int i=0;ihits; vectorcdchits; // Track parameters for forward region double x_,y_,tx_,ty_,q_over_p_; // Alternate track parameters for central region double z_,phi_,R_,tanl_,q_over_pt_; // chi2 of fit double chisq_; // Lists containing state, covariance, and jacobian at each step dequecentral_traj; dequeforward_traj; // For dEdx measurements double path_length; // path length in active volume // endplate dimensions and location double endplate_z, endplate_dz, endplate_rmin, endplate_rmax; // target wall cylinder vectortarg_wall; // target material vectortarget; }; #endif // _DKALMANFILTER_H_