00001
00002
00003 #ifndef NEUTPARAMS_H
00004 #define NEUTPARAMS_H
00005
00006 #include <stdio.h>
00007 #include <iostream>
00008 #include <math.h>
00009
00010 #include "TrkBase/TrkParams.h"
00011 #include "CLHEP/Matrix/Vector.h"
00012 #include "CLHEP/Matrix/Matrix.h"
00013 #include "CLHEP/Matrix/SymMatrix.h"
00014
00015 using CLHEP::Hep3Vector;
00016 using CLHEP::HepMatrix;
00017 using CLHEP::HepSymMatrix;
00018
00019 class NeutParams : public TrkParams {
00020
00021 friend class NeutTraj;
00022
00023 public:
00024
00025
00026
00027 NeutParams(const HepVector&,const HepSymMatrix&);
00028 NeutParams(double,double,double,double,double,double);
00029 NeutParams(const NeutParams& old);
00030 ~NeutParams();
00031
00032
00033 enum {_d0, _phi0, _p, _z0, _tanDip, _s0,_nneutprm = 6};
00034
00035
00036
00037 double& d0() { return parameter()[_d0]; }
00038 double& phi0() { return parameter()[_phi0]; }
00039 double& p() { return parameter()[_p]; }
00040 double& z0() { return parameter()[_z0]; }
00041 double& tanDip() { return parameter()[_tanDip]; }
00042 double& s0() { return parameter()[_s0]; }
00043
00044 double d0() const { return parameter()[_d0]; }
00045 double phi0() const { return parameter()[_phi0]; }
00046 double p() const { return parameter()[_p]; }
00047 double z0() const { return parameter()[_z0]; }
00048 double tanDip() const { return parameter()[_tanDip]; }
00049 double s0() const { return parameter()[_s0]; }
00050
00051 double sinPhi0() const;
00052 double cosPhi0() const;
00053 double arcRatio() const;
00054 private:
00055 };
00056 #endif
00057