Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

ITrackExtrapolator.h

Go to the documentation of this file.
00001 // $Id: ITrackExtrapolator.h,v 1.2 2005/03/15 15:02:37 erodrigu Exp $
00002 #ifndef LHCBINTERFACES_ITRACKEXTRAPOLATOR_H
00003 #define LHCBINTERFACES_ITRACKEXTRAPOLATOR_H 1
00004 
00005 // from Gaudi
00006 #include "GaudiKernel/IAlgTool.h"
00007 // from LHCB
00008 #include "Kernel/ParticleID.h"
00009 // from CLHEP
00010 #include "CLHEP/Matrix/Matrix.h"
00011 #include "CLHEP/Geometry/Point3D.h"
00012 #include "CLHEP/Geometry/Vector3D.h"
00013 #include "CLHEP/Geometry/Plane3D.h"
00014 
00015 class Track;
00016 class State;
00017 
00018 static const InterfaceID IID_ITrackExtrapolator( "ITrackExtrapolator" , 2, 0 );
00019 
00032 class ITrackExtrapolator: virtual public IAlgTool {
00033 public:
00035   static const InterfaceID& interfaceID() { return IID_ITrackExtrapolator; }
00036 
00038   virtual StatusCode propagate( const Track& track,
00039                                 double z,
00040                                 State& state,
00041                                 ParticleID pid = ParticleID(211) ) = 0;
00042 
00044   virtual StatusCode propagate( const Track& track,
00045                                 const HepPlane3D& plane,
00046                                 State& state,
00047                                 ParticleID pid = ParticleID(211) ) = 0;
00048 
00050   virtual StatusCode propagate( State& state,
00051                                 double z,
00052                                 ParticleID pid = ParticleID(211) ) = 0;
00053 
00055   virtual StatusCode propagate( State& state,
00056                                 const HepPlane3D& plane,
00057                                 ParticleID pid = ParticleID(211) ) = 0;
00058 
00061   virtual StatusCode positionAndMomentum( const Track& track,
00062                                           double z,
00063                                           HepPoint3D& pos,
00064                                           HepVector3D& mom,
00065                                           HepSymMatrix& cov6D,
00066                                           ParticleID pid = ParticleID(211) ) = 0;
00067 
00070   virtual StatusCode positionAndMomentum( const Track& track,
00071                                           const HepPlane3D& plane,
00072                                           HepPoint3D& pos,
00073                                           HepVector3D& mom,
00074                                           HepSymMatrix& cov6D,
00075                                           ParticleID pid = ParticleID(211) ) = 0;
00076 
00078   virtual StatusCode positionAndMomentum( const Track& track,
00079                                           double z,
00080                                           HepPoint3D& pos,
00081                                           HepVector3D& mom,
00082                                           ParticleID pid = ParticleID(211) ) = 0;
00083 
00085   virtual StatusCode positionAndMomentum( const Track& track,
00086                                           const HepPlane3D& plane,
00087                                           HepPoint3D& pos,
00088                                           HepVector3D& mom,
00089                                           ParticleID pid = ParticleID(211) ) = 0;
00090 
00092   virtual StatusCode position( const Track& track,
00093                                double z,
00094                                HepPoint3D& pos,
00095                                HepSymMatrix& errPos,
00096                                ParticleID pid = ParticleID(211) ) = 0;
00097 
00099   virtual StatusCode position( const Track& track,
00100                                const HepPlane3D& plane,
00101                                HepPoint3D& pos,
00102                                HepSymMatrix& errPos,
00103                                ParticleID pid = ParticleID(211) ) = 0;
00104 
00106   virtual StatusCode position( const Track& track,
00107                                double z,
00108                                HepPoint3D& pos,
00109                                ParticleID pid = ParticleID(211) ) = 0;
00110 
00112   virtual StatusCode position( const Track& track,
00113                                const HepPlane3D& plane,
00114                                HepPoint3D& pos,
00115                                ParticleID pid = ParticleID(211) ) = 0;
00116 
00118   virtual StatusCode slopes( const Track& track,
00119                              double z,
00120                              HepVector3D& slopes,
00121                              HepSymMatrix& errSlopes,
00122                              ParticleID pid = ParticleID(211) ) = 0;
00123 
00125   virtual StatusCode slopes( const Track& track,
00126                              const HepPlane3D& plane,
00127                              HepVector3D& slopes,
00128                              HepSymMatrix& errSlopes,
00129                              ParticleID pid = ParticleID(211) ) = 0;
00130 
00132   virtual StatusCode slopes( const Track& track,
00133                              double z,
00134                              HepVector3D& slopes,
00135                              ParticleID pid = ParticleID(211) ) = 0;
00136 
00138   virtual StatusCode slopes( const Track& track,
00139                              const HepPlane3D& plane,
00140                              HepVector3D& slopes,
00141                              ParticleID pid = ParticleID(211) ) = 0;
00142 
00144   virtual StatusCode p( const Track& track,
00145                         double z,
00146                         double& p,
00147                         ParticleID pid = ParticleID(211) ) = 0;
00148 
00150   virtual StatusCode p( const Track& track,
00151                         const HepPlane3D& plane,
00152                         double& p,
00153                         ParticleID pid = ParticleID(211) ) = 0;
00154 
00156   virtual StatusCode pt( const Track& track,
00157                          double z,
00158                          double& pt,
00159                          ParticleID pid = ParticleID(211) ) = 0;
00160 
00162   virtual StatusCode pt( const Track& track,
00163                          const HepPlane3D& plane,
00164                          double& pt,
00165                          ParticleID pid = ParticleID(211) ) = 0;
00166 
00168   virtual StatusCode momentum( const Track& track,
00169                                double z,
00170                                HepVector3D& mom,
00171                                HepSymMatrix& errMom,
00172                                ParticleID pid = ParticleID(211) ) = 0;
00173 
00175   virtual StatusCode momentum( const Track& track,
00176                                const HepPlane3D& plane,
00177                                HepVector3D& mom,
00178                                HepSymMatrix& errMom,
00179                                ParticleID pid = ParticleID(211) ) = 0;
00180 
00182   virtual StatusCode momentum( const Track& track,
00183                                double z,
00184                                HepVector3D& mom,
00185                                ParticleID pid = ParticleID(211) ) = 0;
00186 
00188   virtual StatusCode momentum( const Track& track,
00189                                const HepPlane3D& plane,
00190                                HepVector3D& mom,
00191                                ParticleID pid = ParticleID(211) ) = 0;
00192 
00194   virtual const HepMatrix& transportMatrix() const = 0;
00195 
00196 };
00197 
00198 //==============================================================================
00199 //   end of class
00200 //==============================================================================
00201 
00202 #endif // LHCBINTERFACES_ITRACKEXTRAPOLATOR_H

Generated on Thu Apr 7 22:43:27 2005 for New Track Event Model by doxygen 1.4.1