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 #ifndef TRACKINTERFACES_ITRACKEXTRAPOLATOR_H
00002 #define TRACKINTERFACES_ITRACKEXTRAPOLATOR_H 1
00003 
00004 // Include files
00005 // -------------
00006 // from Gaudi
00007 #include "GaudiKernel/IAlgTool.h"
00008 
00009 // from LHCB
00010 #include "Kernel/ParticleID.h"
00011 
00012 // from CLHEP
00013 #include "CLHEP/Matrix/Matrix.h"
00014 #include "CLHEP/Geometry/Point3D.h"
00015 #include "CLHEP/Geometry/Vector3D.h"
00016 #include "CLHEP/Geometry/Plane3D.h"
00017 
00018 class Track;
00019 class State;
00020 
00021 static const InterfaceID IID_ITrackExtrapolator( "ITrackExtrapolator" , 2, 0 );
00022 
00035 class ITrackExtrapolator: virtual public IAlgTool {
00036 public:
00038   static const InterfaceID& interfaceID() { return IID_ITrackExtrapolator; }
00039 
00041   virtual StatusCode propagate( const Track& track,
00042                                 double z,
00043                                 State& state,
00044                                 ParticleID pid = ParticleID(211) ) = 0;
00045 
00047   virtual StatusCode propagate( const Track& track,
00048                                 const HepPlane3D& plane,
00049                                 State& state,
00050                                 ParticleID pid = ParticleID(211) ) = 0;
00051 
00053   virtual StatusCode propagate( State& state,
00054                                 double z,
00055                                 ParticleID pid = ParticleID(211) ) = 0;
00056 
00058   virtual StatusCode propagate( State& state,
00059                                 const HepPlane3D& plane,
00060                                 ParticleID pid = ParticleID(211) ) = 0;
00061 
00064   virtual StatusCode positionAndMomentum( const Track& track,
00065                                           double z,
00066                                           HepPoint3D& pos,
00067                                           HepVector3D& mom,
00068                                           HepSymMatrix& cov6D,
00069                                           ParticleID pid = ParticleID(211) ) = 0;
00070 
00073   virtual StatusCode positionAndMomentum( const Track& track,
00074                                           const HepPlane3D& plane,
00075                                           HepPoint3D& pos,
00076                                           HepVector3D& mom,
00077                                           HepSymMatrix& cov6D,
00078                                           ParticleID pid = ParticleID(211) ) = 0;
00079 
00081   virtual StatusCode positionAndMomentum( const Track& track,
00082                                           double z,
00083                                           HepPoint3D& pos,
00084                                           HepVector3D& mom,
00085                                           ParticleID pid = ParticleID(211) ) = 0;
00086 
00088   virtual StatusCode positionAndMomentum( const Track& track,
00089                                           const HepPlane3D& plane,
00090                                           HepPoint3D& pos,
00091                                           HepVector3D& mom,
00092                                           ParticleID pid = ParticleID(211) ) = 0;
00093 
00095   virtual StatusCode position( const Track& track,
00096                                double z,
00097                                HepPoint3D& pos,
00098                                HepSymMatrix& errPos,
00099                                ParticleID pid = ParticleID(211) ) = 0;
00100 
00102   virtual StatusCode position( const Track& track,
00103                                const HepPlane3D& plane,
00104                                HepPoint3D& pos,
00105                                HepSymMatrix& errPos,
00106                                ParticleID pid = ParticleID(211) ) = 0;
00107 
00109   virtual StatusCode position( const Track& track,
00110                                double z,
00111                                HepPoint3D& pos,
00112                                ParticleID pid = ParticleID(211) ) = 0;
00113 
00115   virtual StatusCode position( const Track& track,
00116                                const HepPlane3D& plane,
00117                                HepPoint3D& pos,
00118                                ParticleID pid = ParticleID(211) ) = 0;
00119 
00121   virtual StatusCode slopes( const Track& track,
00122                              double z,
00123                              HepVector3D& slopes,
00124                              HepSymMatrix& errSlopes,
00125                              ParticleID pid = ParticleID(211) ) = 0;
00126 
00128   virtual StatusCode slopes( const Track& track,
00129                              const HepPlane3D& plane,
00130                              HepVector3D& slopes,
00131                              HepSymMatrix& errSlopes,
00132                              ParticleID pid = ParticleID(211) ) = 0;
00133 
00135   virtual StatusCode slopes( const Track& track,
00136                              double z,
00137                              HepVector3D& slopes,
00138                              ParticleID pid = ParticleID(211) ) = 0;
00139 
00141   virtual StatusCode slopes( const Track& track,
00142                              const HepPlane3D& plane,
00143                              HepVector3D& slopes,
00144                              ParticleID pid = ParticleID(211) ) = 0;
00145 
00147   virtual StatusCode p( const Track& track,
00148                         double z,
00149                         double& p,
00150                         ParticleID pid = ParticleID(211) ) = 0;
00151 
00153   virtual StatusCode p( const Track& track,
00154                         const HepPlane3D& plane,
00155                         double& p,
00156                         ParticleID pid = ParticleID(211) ) = 0;
00157 
00159   virtual StatusCode pt( const Track& track,
00160                          double z,
00161                          double& pt,
00162                          ParticleID pid = ParticleID(211) ) = 0;
00163 
00165   virtual StatusCode pt( const Track& track,
00166                          const HepPlane3D& plane,
00167                          double& pt,
00168                          ParticleID pid = ParticleID(211) ) = 0;
00169 
00171   virtual StatusCode momentum( const Track& track,
00172                                double z,
00173                                HepVector3D& mom,
00174                                HepSymMatrix& errMom,
00175                                ParticleID pid = ParticleID(211) ) = 0;
00176 
00178   virtual StatusCode momentum( const Track& track,
00179                                const HepPlane3D& plane,
00180                                HepVector3D& mom,
00181                                HepSymMatrix& errMom,
00182                                ParticleID pid = ParticleID(211) ) = 0;
00183 
00185   virtual StatusCode momentum( const Track& track,
00186                                double z,
00187                                HepVector3D& mom,
00188                                ParticleID pid = ParticleID(211) ) = 0;
00189 
00191   virtual StatusCode momentum( const Track& track,
00192                                const HepPlane3D& plane,
00193                                HepVector3D& mom,
00194                                ParticleID pid = ParticleID(211) ) = 0;
00195 
00197   virtual const HepMatrix& transportMatrix() const = 0;
00198 
00199 };
00200 
00201 //==============================================================================
00202 //   end of class
00203 //==============================================================================
00204 
00205 #endif // TRACKINTERFACES_ITRACKEXTRAPOLATOR_H

Generated on Fri May 27 13:59:37 2005 for New Track Event Model by doxygen 1.4.1