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

TrackExtrapolator.h

Go to the documentation of this file.
00001 // $Id: TrackExtrapolator.h,v 1.3 2005/03/16 14:10:04 hernando Exp $
00002 #ifndef TRACKEXTRAPOLATORS_TRACKEXTRAPOLATOR_H 
00003 #define TRACKEXTRAPOLATORS_TRACKEXTRAPOLATOR_H 1
00004 
00005 // Include files
00006 // from Gaudi
00007 #include "GaudiAlg/GaudiTool.h"
00008 #include "Tools/ITrackExtrapolator.h"
00009 #include "Event/Track.h"
00010 
00011 
00020 class TrackExtrapolator : public GaudiTool,
00021                           virtual public ITrackExtrapolator {
00022 public: 
00024   virtual StatusCode propagate( const Track& track,
00025                                 double z,
00026                                 State& state,
00027                                 ParticleID pid = ParticleID(211) );
00028 
00030   virtual StatusCode propagate( const Track& track,
00031                                 const HepPlane3D& plane,
00032                                 State& state,
00033                                 ParticleID pid = ParticleID(211) );
00034 
00036   virtual StatusCode propagate( State& state,
00037                                 double z,
00038                                 ParticleID pid = ParticleID(211) ) 
00039   { 
00040     warning() << " can not propagate " << pid.pid() 
00041               << " state " << state.position() << " at " << z << endreq;
00042     return StatusCode::FAILURE;
00043   }
00044 
00046   virtual StatusCode propagate( State& state,
00047                                 const HepPlane3D& plane,
00048                                 ParticleID pid = ParticleID(211) ) 
00049   {
00050     warning() << " can not propagate " << pid.pid() 
00051               << "state " << state.position() << " at " << plane.normal() 
00052               << endreq;
00053     return StatusCode::FAILURE;
00054   }
00055   
00056 
00066   virtual StatusCode positionAndMomentum( const Track& track,
00067                                           double z,
00068                                           HepPoint3D& pos,
00069                                           HepVector3D& mom,
00070                                           HepSymMatrix& cov6D,
00071                                           ParticleID pid = ParticleID(211) );
00072 
00075   virtual StatusCode positionAndMomentum( const Track& track,
00076                                           const HepPlane3D& plane,
00077                                           HepPoint3D& pos,
00078                                           HepVector3D& mom,
00079                                           HepSymMatrix& cov6D,
00080                                           ParticleID pid = ParticleID(211) );
00081 
00083   virtual StatusCode positionAndMomentum( const Track& track,
00084                                           double z,
00085                                           HepPoint3D& pos,
00086                                           HepVector3D& mom,
00087                                           ParticleID pid = ParticleID(211) );
00088 
00090   virtual StatusCode positionAndMomentum( const Track& track,
00091                                           const HepPlane3D& plane,
00092                                           HepPoint3D& pos,
00093                                           HepVector3D& mom,
00094                                           ParticleID pid = ParticleID(211) );
00095 
00097   virtual StatusCode position( const Track& track,
00098                                double z,
00099                                HepPoint3D& pos,
00100                                HepSymMatrix& errPos,
00101                                ParticleID pid = ParticleID(211) );
00102 
00104   virtual StatusCode position( const Track& track,
00105                                const HepPlane3D& plane,
00106                                HepPoint3D& pos,
00107                                HepSymMatrix& errPos,
00108                                ParticleID pid = ParticleID(211) );
00109 
00111   virtual StatusCode position( const Track& track,
00112                                double z,
00113                                HepPoint3D& pos,
00114                                ParticleID pid = ParticleID(211) );
00115 
00117   virtual StatusCode position( const Track& track,
00118                                const HepPlane3D& plane,
00119                                HepPoint3D& pos,
00120                                ParticleID pid = ParticleID(211) );
00121 
00123   virtual StatusCode slopes( const Track& track,
00124                              double z,
00125                              HepVector3D& slopes,
00126                              HepSymMatrix& errSlopes,
00127                              ParticleID pid = ParticleID(211) );
00128 
00130   virtual StatusCode slopes( const Track& track,
00131                              const HepPlane3D& plane,
00132                              HepVector3D& slopes,
00133                              HepSymMatrix& errSlopes,
00134                              ParticleID pid = ParticleID(211) );
00135 
00137   virtual StatusCode slopes( const Track& track,
00138                              double z,
00139                              HepVector3D& slopes,
00140                              ParticleID pid = ParticleID(211) );
00141 
00143   virtual StatusCode slopes( const Track& track,
00144                              const HepPlane3D& plane,
00145                              HepVector3D& slopes,
00146                              ParticleID pid = ParticleID(211) );
00147 
00149   virtual StatusCode p( const Track& track,
00150                         double z,
00151                         double& p,
00152                         ParticleID pid = ParticleID(211) );
00153 
00155   virtual StatusCode p( const Track& track,
00156                         const HepPlane3D& plane,
00157                         double& p,
00158                         ParticleID pid = ParticleID(211) );
00159 
00161   virtual StatusCode pt( const Track& track,
00162                          double z,
00163                          double& pt,
00164                          ParticleID pid = ParticleID(211) );
00165 
00167   virtual StatusCode pt( const Track& track,
00168                          const HepPlane3D& plane,
00169                          double& pt,
00170                          ParticleID pid = ParticleID(211) );
00171 
00173   virtual StatusCode momentum( const Track& track,
00174                                double z,
00175                                HepVector3D& mom,
00176                                HepSymMatrix& errMom,
00177                                ParticleID pid = ParticleID(211) );
00178 
00180   virtual StatusCode momentum( const Track& track,
00181                                const HepPlane3D& plane,
00182                                HepVector3D& mom,
00183                                HepSymMatrix& errMom,
00184                                ParticleID pid = ParticleID(211) );
00185 
00187   virtual StatusCode momentum( const Track& track,
00188                                double z,
00189                                HepVector3D& mom,
00190                                ParticleID pid = ParticleID(211) );
00191 
00193   virtual StatusCode momentum( const Track& track,
00194                                const HepPlane3D& plane,
00195                                HepVector3D& mom,
00196                                ParticleID pid = ParticleID(211) );
00197 
00199   virtual const HepMatrix& transportMatrix() const;
00200 
00202   TrackExtrapolator( const std::string& type, 
00203                   const std::string& name,
00204                   const IInterface* parent );
00205 
00207   virtual ~TrackExtrapolator( );
00208 
00209 protected:
00211   HepMatrix m_F; 
00212 
00214   virtual void updateState( State& state, double z ) const;
00215 
00216 private:
00217 
00218 };
00219 #endif // TRACKEXTRAPOLATORS_TRACKEXTRAPOLATOR_H

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