CMS 3D CMS Logo

CurvilinearTrajectoryParameters.h

Go to the documentation of this file.
00001 #ifndef _TRACKER_CURVILINEARTRAJECTORYPARAMETERS_H_
00002 #define _TRACKER_CURVILINEARTRAJECTORYPARAMETERS_H_
00003 
00004 
00005 #include "DataFormats/TrajectoryState/interface/TrackCharge.h"
00006 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00007 
00008 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00009 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00010 
00011 #include <cmath>
00012 
00013 
00014 
00029 class CurvilinearTrajectoryParameters {
00030  public:
00031   
00033   
00034   CurvilinearTrajectoryParameters() {}
00035   
00036 
00043   CurvilinearTrajectoryParameters(const AlgebraicVector5& v, bool charged = true);
00044 
00056   CurvilinearTrajectoryParameters(double aQbp, double alambda, double aphi, double axT, double ayT, bool charged = true);
00057 
00058   
00062   CurvilinearTrajectoryParameters(const GlobalPoint& aX,const GlobalVector& aP,TrackCharge aCharge);
00063 
00065   TrackCharge charge() const {return theCharge;}
00066 
00068   double signedInverseMomentum() const {
00069     return charge()==0 ? 0. : theQbp;
00070   }
00071   
00072   
00077   AlgebraicVector5 vector() const ;
00078     
00079 
00080   double Qbp() const {    return theQbp;  }
00081   double lambda() const {   return thelambda;  }
00082   double phi() const {    return thephi;  }
00083   double xT() const {   return thexT;  }
00084   double yT() const {    return theyT;  }
00085 
00086   bool updateP(double dP);
00087 
00088  private:
00089   double theQbp;
00090   double thelambda;
00091   double thephi;
00092   double thexT;
00093   double theyT;
00094 
00095   TrackCharge theCharge;
00096 };
00097 
00098 
00099 #endif

Generated on Tue Jun 9 17:48:35 2009 for CMSSW by  doxygen 1.5.4