00001 #ifndef _DEFINE_HELIXSEG_H_ 00002 #define _DEFINE_HELIXSEG_H_ 00003 00004 //#include "TrackUtil/Helix.h" 00005 #include "KalFitAlg/helix/Helix.h" 00006 #include "KalFitAlg/KalFitHitMdc.h" 00007 #include "CLHEP/Matrix/Vector.h" 00008 #include "CLHEP/Matrix/Matrix.h" 00009 #include "CLHEP/Matrix/SymMatrix.h" 00010 00011 using namespace CLHEP; 00012 00013 using namespace KalmanFit; 00014 00015 00016 class KalFitHelixSeg: public Helix { 00017 00018 public: 00019 00020 //KalFitHelixSeg(void); 00021 00022 KalFitHelixSeg(KalFitHitMdc* hit,HepPoint3D pivot,HepVector a,HepSymMatrix Ea); 00023 00024 ~KalFitHelixSeg(void) {}; 00025 00026 KalFitHitMdc* HitMdc(void) { return hitmdc_;} 00027 double residual_exclude(void) { return residual_exclude_;} 00028 double residual_include(void) { return residual_include_;} 00029 double doca_exclude(void) { return doca_exclude_;} 00030 double doca_include(void) { return doca_include_;} 00031 double tof(void) { return tof_;} 00032 double dt(void) { return dt_;} 00033 double dd(void) { return dd_;} 00034 int LR(void) {return lr_;} 00035 00036 void residual_exclude(double res) { residual_exclude_ = res;} 00037 void residual_include(double res) { residual_include_ = res;} 00038 void doca_exclude(double doca) { doca_exclude_ = doca;} 00039 void doca_include(double doca) { doca_include_ = doca;} 00040 void tof(double time) { tof_ = time;} 00041 void dt(double drifttime) { dt_ = drifttime; } 00042 void dd(double driftdist) {dd_ = driftdist; } 00043 void LR(int lr) {lr_ = lr;} 00044 00045 CLHEP::HepVector a_pre_fwd (void) { return a_pre_fwd_; } 00046 CLHEP::HepVector a_pre_bwd (void) { return a_pre_bwd_; } 00047 CLHEP::HepVector a_filt_fwd(void) { return a_filt_fwd_;} 00048 CLHEP::HepVector a_filt_bwd(void) { return a_filt_bwd_;} 00049 CLHEP::HepVector a_include (void) { return a_include_; } 00050 CLHEP::HepVector a_exclude (void) { return a_exclude_; } 00051 00052 00053 CLHEP::HepSymMatrix& Ea_pre_fwd(void) { return Ea_pre_fwd_; } 00054 CLHEP::HepSymMatrix Ea_filt_fwd(void) { return Ea_filt_fwd_;} 00055 CLHEP::HepSymMatrix Ea_pre_bwd (void) { return Ea_pre_bwd_; } 00056 CLHEP::HepSymMatrix Ea_filt_bwd(void) { return Ea_filt_bwd_;} 00057 CLHEP::HepSymMatrix Ea_include (void) { return Ea_include_; } 00058 CLHEP::HepSymMatrix Ea_exclude (void) { return Ea_exclude_; } 00059 00060 00061 void a_pre_fwd (CLHEP::HepVector a) { a_pre_fwd_ = a; } 00062 void a_pre_bwd (CLHEP::HepVector a) { a_pre_bwd_ = a; } 00063 void a_filt_fwd(CLHEP::HepVector a) { a_filt_fwd_ = a; } 00064 void a_filt_bwd(CLHEP::HepVector a) { a_filt_bwd_ = a; } 00065 void a_include (CLHEP::HepVector a) { a_include_ = a; } 00066 void a_exclude (CLHEP::HepVector a) { a_exclude_ = a; } 00067 00068 00069 void Ea_filt_fwd(CLHEP::HepSymMatrix Ea) { Ea_filt_fwd_ = Ea; } 00070 void Ea_filt_bwd(CLHEP::HepSymMatrix Ea) { Ea_filt_bwd_ = Ea; } 00071 void Ea_pre_bwd (CLHEP::HepSymMatrix Ea) { Ea_pre_bwd_ = Ea; } 00072 void Ea_pre_fwd (CLHEP::HepSymMatrix Ea) { Ea_pre_fwd_ = Ea; } 00073 void Ea_include (CLHEP::HepSymMatrix Ea) { Ea_include_ = Ea; } 00074 void Ea_exclude (CLHEP::HepSymMatrix Ea) { Ea_exclude_ = Ea; } 00075 00076 00077 int layer(void) {return (*hitmdc_).wire().layer().layerId();} 00078 00079 00080 00081 private: 00082 KalFitHitMdc* hitmdc_; 00083 CLHEP::HepVector a_pre_fwd_; 00084 CLHEP::HepVector a_pre_bwd_; 00085 CLHEP::HepVector a_filt_fwd_; 00086 CLHEP::HepVector a_filt_bwd_; 00087 CLHEP::HepVector a_include_; 00088 CLHEP::HepVector a_exclude_; 00089 00090 CLHEP::HepSymMatrix Ea_pre_fwd_; 00091 CLHEP::HepSymMatrix Ea_filt_fwd_; 00092 CLHEP::HepSymMatrix Ea_pre_bwd_; 00093 CLHEP::HepSymMatrix Ea_filt_bwd_; 00094 CLHEP::HepSymMatrix Ea_include_; 00095 CLHEP::HepSymMatrix Ea_exclude_; 00096 00097 int lr_; 00098 double residual_exclude_; 00099 double residual_include_; 00100 double doca_exclude_; 00101 double doca_include_; 00102 double tof_; 00103 double dt_; 00104 double dd_; 00105 00106 }; 00107 00108 #endif