/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcPatRec/TrkBase/TrkBase-00-01-12/TrkBase/TrkExchangePar.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: TrkExchangePar.h,v 1.3 2010/03/25 09:56:26 zhangy Exp $
00004 //
00005 // Description: Class to pass around a minimal set of track parameters from 
00006 //   one class to another.  It has no functionality.
00007 //     
00008 //
00009 // Environment:
00010 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00011 //
00012 // Authors: Steve Schaffner
00013 //
00014 // Revision History:
00015 //      20020417  M. Kelsey -- Add print(), printAll(), and operator<<
00016 //------------------------------------------------------------------------
00017 #ifndef TRKEXCHANGEPAR_H
00018 #define TRKEXCHANGEPAR_H
00019 #include "CLHEP/Matrix/Vector.h"
00020 #include "CLHEP/Matrix/Matrix.h"
00021 #include "CLHEP/Matrix/SymMatrix.h"
00022 
00023 #include <iosfwd>
00024 
00025 using CLHEP::Hep3Vector;
00026 using CLHEP::HepVector;
00027 using CLHEP::HepMatrix;
00028 using CLHEP::HepSymMatrix;
00029 // Class interface //
00030 class TrkExchangePar {
00031 public:
00032   enum {nParam = 5};
00033   enum {ex_d0, ex_phi0, ex_omega, ex_z0, ex_tanDip};
00034 
00035   TrkExchangePar(const HepVector&, const HepMatrix&);
00036   TrkExchangePar(const HepVector&, const HepSymMatrix&);
00037   TrkExchangePar(const HepVector&);
00038   TrkExchangePar(double d0In, double phi0In, double omegaIn, 
00039                  double z0In, double tanDipIn);
00040   ~TrkExchangePar();
00041   
00042   double d0() const                              {return paramVec[ex_d0];}
00043   double phi0() const                            {return paramVec[ex_phi0];}
00044   double omega() const                           {return paramVec[ex_omega];}
00045   double z0() const                              {return paramVec[ex_z0];}
00046   double tanDip() const                          {return paramVec[ex_tanDip];}
00047 
00048   const HepVector& params() const                {return paramVec;}
00049   HepVector& params()                            {return paramVec;}
00050   const HepSymMatrix& covariance() const            {return paramErr;}
00051   HepSymMatrix& covariance()                        {return paramErr;}
00052 
00053   void setD0(double in)                          {paramVec[ex_d0] = in;} 
00054   void setPhi0(double in)                        {paramVec[ex_phi0] = in;} 
00055   void setOmega(double in)                       {paramVec[ex_omega] = in;} 
00056   void setZ0(double in)                          {paramVec[ex_z0] = in;} 
00057   void setTanDip(double in)                      {paramVec[ex_tanDip] = in;} 
00058   void setError(const HepSymMatrix& in)          {paramErr = in;}
00059 
00060   void print(std::ostream& o) const;            // Print parameters on one line
00061   void printAll(std::ostream& o) const; // Print parameters and error matrix
00062 
00063 private:        
00064   HepVector paramVec;
00065   HepSymMatrix paramErr;
00066 
00067 };
00068 
00069 // Output operator, useful for debugging
00070 std::ostream& operator<<(std::ostream& o, const TrkExchangePar& helix);
00071 
00072 #endif

Generated on Tue Nov 29 23:13:42 2016 for BOSS_7.0.2 by  doxygen 1.4.7