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.1 2005/05/25 14:24:35 cattanem Exp $
00002 #ifndef TRACKEXTRAPOLATORS_TRACKEXTRAPOLATOR_H 
00003 #define TRACKEXTRAPOLATORS_TRACKEXTRAPOLATOR_H 1
00004 
00005 // Include files
00006 // -------------
00007 // from Gaudi
00008 #include "GaudiAlg/GaudiTool.h"
00009 
00010 // from TrackInterfaces
00011 #include "TrackInterfaces/ITrackExtrapolator.h"
00012 
00013 // from TrackEvent
00014 #include "Event/Track.h"
00015 
00024 class TrackExtrapolator : public GaudiTool,
00025                           virtual public ITrackExtrapolator {
00026 public: 
00028   virtual StatusCode propagate( const Track& track,
00029                                 double z,
00030                                 State& state,
00031                                 ParticleID pid = ParticleID(211) );
00032 
00034   virtual StatusCode propagate( const Track& track,
00035                                 const HepPlane3D& plane,
00036                                 State& state,
00037                                 ParticleID pid = ParticleID(211) );
00038 
00040   virtual StatusCode propagate( State& state,
00041                                 double z,
00042                                 ParticleID pid = ParticleID(211) ) 
00043   { 
00044     warning() << " can not propagate " << pid.pid() 
00045               << " state " << state.position() << " at " << z << endreq;
00046     return StatusCode::FAILURE;
00047   }
00048 
00050   virtual StatusCode propagate( State& state,
00051                                 const HepPlane3D& plane,
00052                                 ParticleID pid = ParticleID(211) ) 
00053   {
00054     warning() << " can not propagate " << pid.pid() 
00055               << "state " << state.position() << " at " << plane.normal() 
00056               << endreq;
00057     return StatusCode::FAILURE;
00058   }
00059   
00060 
00070   virtual StatusCode positionAndMomentum( const Track& track,
00071                                           double z,
00072                                           HepPoint3D& pos,
00073                                           HepVector3D& mom,
00074                                           HepSymMatrix& cov6D,
00075                                           ParticleID pid = ParticleID(211) );
00076 
00079   virtual StatusCode positionAndMomentum( const Track& track,
00080                                           const HepPlane3D& plane,
00081                                           HepPoint3D& pos,
00082                                           HepVector3D& mom,
00083                                           HepSymMatrix& cov6D,
00084                                           ParticleID pid = ParticleID(211) );
00085 
00087   virtual StatusCode positionAndMomentum( const Track& track,
00088                                           double z,
00089                                           HepPoint3D& pos,
00090                                           HepVector3D& mom,
00091                                           ParticleID pid = ParticleID(211) );
00092 
00094   virtual StatusCode positionAndMomentum( const Track& track,
00095                                           const HepPlane3D& plane,
00096                                           HepPoint3D& pos,
00097                                           HepVector3D& mom,
00098                                           ParticleID pid = ParticleID(211) );
00099 
00101   virtual StatusCode position( const Track& track,
00102                                double z,
00103                                HepPoint3D& pos,
00104                                HepSymMatrix& errPos,
00105                                ParticleID pid = ParticleID(211) );
00106 
00108   virtual StatusCode position( const Track& track,
00109                                const HepPlane3D& plane,
00110                                HepPoint3D& pos,
00111                                HepSymMatrix& errPos,
00112                                ParticleID pid = ParticleID(211) );
00113 
00115   virtual StatusCode position( const Track& track,
00116                                double z,
00117                                HepPoint3D& pos,
00118                                ParticleID pid = ParticleID(211) );
00119 
00121   virtual StatusCode position( const Track& track,
00122                                const HepPlane3D& plane,
00123                                HepPoint3D& pos,
00124                                ParticleID pid = ParticleID(211) );
00125 
00127   virtual StatusCode slopes( const Track& track,
00128                              double z,
00129                              HepVector3D& slopes,
00130                              HepSymMatrix& errSlopes,
00131                              ParticleID pid = ParticleID(211) );
00132 
00134   virtual StatusCode slopes( const Track& track,
00135                              const HepPlane3D& plane,
00136                              HepVector3D& slopes,
00137                              HepSymMatrix& errSlopes,
00138                              ParticleID pid = ParticleID(211) );
00139 
00141   virtual StatusCode slopes( const Track& track,
00142                              double z,
00143                              HepVector3D& slopes,
00144                              ParticleID pid = ParticleID(211) );
00145 
00147   virtual StatusCode slopes( const Track& track,
00148                              const HepPlane3D& plane,
00149                              HepVector3D& slopes,
00150                              ParticleID pid = ParticleID(211) );
00151 
00153   virtual StatusCode p( const Track& track,
00154                         double z,
00155                         double& p,
00156                         ParticleID pid = ParticleID(211) );
00157 
00159   virtual StatusCode p( const Track& track,
00160                         const HepPlane3D& plane,
00161                         double& p,
00162                         ParticleID pid = ParticleID(211) );
00163 
00165   virtual StatusCode pt( const Track& track,
00166                          double z,
00167                          double& pt,
00168                          ParticleID pid = ParticleID(211) );
00169 
00171   virtual StatusCode pt( const Track& track,
00172                          const HepPlane3D& plane,
00173                          double& pt,
00174                          ParticleID pid = ParticleID(211) );
00175 
00177   virtual StatusCode momentum( const Track& track,
00178                                double z,
00179                                HepVector3D& mom,
00180                                HepSymMatrix& errMom,
00181                                ParticleID pid = ParticleID(211) );
00182 
00184   virtual StatusCode momentum( const Track& track,
00185                                const HepPlane3D& plane,
00186                                HepVector3D& mom,
00187                                HepSymMatrix& errMom,
00188                                ParticleID pid = ParticleID(211) );
00189 
00191   virtual StatusCode momentum( const Track& track,
00192                                double z,
00193                                HepVector3D& mom,
00194                                ParticleID pid = ParticleID(211) );
00195 
00197   virtual StatusCode momentum( const Track& track,
00198                                const HepPlane3D& plane,
00199                                HepVector3D& mom,
00200                                ParticleID pid = ParticleID(211) );
00201 
00203   virtual const HepMatrix& transportMatrix() const;
00204 
00206   TrackExtrapolator( const std::string& type, 
00207                   const std::string& name,
00208                   const IInterface* parent );
00209 
00211   virtual ~TrackExtrapolator( );
00212 
00213 protected:
00215   HepMatrix m_F; 
00216 
00218   virtual void updateState( State& state, double z ) const;
00219 
00220 private:
00221 
00222 };
00223 #endif // TRACKEXTRAPOLATORS_TRACKEXTRAPOLATOR_H

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