00001 //====================================================================== 00002 // Auxilary class to store track paramters 00003 // 00004 // This class also provides methods for extracting gemometrical 00005 // track parameters from both ordinary charged tracks and (fitted) user 00006 // tracks. 00007 // 00008 // Note that in the case of neutral tracks, the data members 00009 // and member functions representing helix parameters 00010 // (IR, TL, P0, D0, Z0) become synonyms for the corresponding 00011 // ray parameters (P, T, P0, D0, Z0) 00012 // (Yes, this could have been implemented in a better way ...) 00013 // 00014 // 11/2001 K. Huettmann 00015 //====================================================================== 00016 #ifndef _HELIX_H_ 00017 #define _HELIX_H_ 00018 00019 #include "VfTrack.h" 00020 #include "AlTrack.h" 00021 #include "AlEflw.h" 00022 #include "AlUserTrack.h" 00023 #include "AlConcreteVertices.h" 00024 #include "fortran_def.h" 00025 00026 00027 class Helix: public VfTrack { 00028 public: 00029 Helix(); // default constructor 00030 Helix(QvecBase*); // create Helix from a track 00031 virtual ~Helix(){} 00032 virtual void setTrackParameters(QvecBase*); // set Helix parameters according to a track 00033 float IR()const {return _IR;} // access to data members 00034 float TL()const {return _TL;} 00035 float P0()const {return _P0;} 00036 float D0()const {return _D0;} 00037 float Z0()const {return _Z0;} 00038 virtual float cov_matrix(int m,int n)const {return _cov_matrix(m,n);} 00039 virtual const HepSymMatrix& cov_matrix()const {return _cov_matrix;} 00040 float mass()const {return _mass;} 00041 int charge()const {return (int)_charge;} 00042 private: 00043 // YTPAR wrapper (part of YTOP vertex fitting package) 00044 int w_YTPAR(float charge, float vini[3], float vvini[6], float psum[5], float vpsum[10], 00045 float vpsvi[9], float trackpar[5], float vtrackpar[15]); 00046 float _IR; 00047 float _TL; 00048 float _P0; 00049 float _D0; 00050 float _Z0; 00051 HepSymMatrix _cov_matrix; 00052 float _mass; 00053 float _charge; 00054 }; 00055 00056 #endif