| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

GiGaTrajectoryPoint.h

Go to the documentation of this file.
00001 // $Id: GiGaTrajectoryPoint.h,v 1.13 2004/02/22 19:01:51 ibelyaev Exp $ 
00002 // ============================================================================
00003 // CVS tag $Name: v19r4 $ 
00004 // ============================================================================
00005 // $Log: GiGaTrajectoryPoint.h,v $
00006 // Revision 1.13  2004/02/22 19:01:51  ibelyaev
00007 //  add new data fields to GiGaTrajectoryPoint
00008 //
00009 // Revision 1.12  2002/12/07 21:36:30  ibelyaev
00010 //  trivial fix
00011 //
00012 // Revision 1.11  2002/12/07 21:05:30  ibelyaev
00013 //  see $GIGAROOT/doc/release.notes 2002-12-07
00014 //
00015 // Revision 1.10  2002/12/07 14:27:51  ibelyaev
00016 //  see $GIGAROOT/cmt/requirements file
00017 //
00018 // ============================================================================
00019 #ifndef     GIGA_GIGATRAJECTORYPOINT_H
00020 #define     GIGA_GIGATRAJECTORYPOINT_H 1 
00021 // ============================================================================
00022 // CLHEP 
00023 #include "CLHEP/Vector/LorentzVector.h"
00024 // GiGa 
00025 #include "GiGa/GiGaUtil.h"
00026 // G4 
00027 #include "G4TrajectoryPoint.hh" 
00028 #include "G4VTrajectoryPoint.hh" 
00029 
00030 class G4VProcess ;
00031 
00041 class GiGaTrajectoryPoint: public G4TrajectoryPoint
00042 {
00044 public:
00046 
00048   GiGaTrajectoryPoint ();
00049   
00056   GiGaTrajectoryPoint 
00057   ( const CLHEP::Hep3Vector&       Pos                       , 
00058     const double            Time                      , 
00059     const CLHEP::HepLorentzVector& Mom  = CLHEP::HepLorentzVector() , 
00060     const G4VProcess*       Proc = 0                  );
00061   
00068   GiGaTrajectoryPoint 
00069   ( const double            Time                      , 
00070     const CLHEP::Hep3Vector&       Pos                       , 
00071     const CLHEP::HepLorentzVector& Mom  = CLHEP::HepLorentzVector() , 
00072     const G4VProcess*       Proc = 0                  );
00073   
00079   GiGaTrajectoryPoint 
00080   ( const CLHEP::HepLorentzVector& right                     ,
00081     const CLHEP::HepLorentzVector& Mom  = CLHEP::HepLorentzVector() , 
00082     const G4VProcess*       Proc = 0                  );
00083   
00090   GiGaTrajectoryPoint 
00091   ( const G4TrajectoryPoint& Point                      , 
00092     const double             Time                       ,
00093     const CLHEP::HepLorentzVector&  Mom   = CLHEP::HepLorentzVector() , 
00094     const G4VProcess*        Proc  = 0                  );
00095 
00102   GiGaTrajectoryPoint 
00103   ( const G4VTrajectoryPoint& Point                      , 
00104     const double              Time                       ,
00105     const CLHEP::HepLorentzVector&   Mom   = CLHEP::HepLorentzVector() , 
00106     const G4VProcess*         Proc  = 0                  );
00107     
00111   GiGaTrajectoryPoint ( const GiGaTrajectoryPoint& right ); 
00112   
00114   virtual ~GiGaTrajectoryPoint();
00115 
00119   GiGaTrajectoryPoint*    clone      () const ;
00120   
00122   void* operator new    ( size_t );
00123   
00125   void  operator delete ( void*  );
00126   
00128   bool operator==( const GiGaTrajectoryPoint& right ) 
00129   { return (&right) == this ; } 
00130   
00132   const double    time () const { return m_time   ; } 
00134   const double GetTime () const { return   time() ; }
00136   void setTime    ( double Time ) { m_time = Time ; }  
00138   const CLHEP::HepLorentzVector    fourVector () const        
00139   { return CLHEP::HepLorentzVector ( GetPosition() , GetTime() ) ; };  
00140   
00142   const CLHEP::HepLorentzVector GetFourVector () const { return fourVector ()  ; };  
00143   
00145   const CLHEP::HepLorentzVector&    momentum() const { return m_momentum    ; }
00146   
00148   const CLHEP::HepLorentzVector& GetMomentum() const { return   momentum () ; }
00149   
00151   void setMomentum ( const CLHEP::HepLorentzVector& value ) {  m_momentum = value   ; }
00152   
00154   void SetMomentum ( const CLHEP::HepLorentzVector& value ) { setMomentum ( value ) ; }
00155   
00162   const G4VProcess*    process() const { return m_process    ; }
00163   
00170   const G4VProcess* GetProcess() const { return   process () ; }
00171   
00173   void setProcess ( const G4VProcess* value ) {  m_process = value   ; }
00175   void SetProcess ( const G4VProcess* value ) { setProcess ( value ) ; }
00176   
00177 private:
00178   
00179   // assigmenet oprator is disabled 
00180   GiGaTrajectoryPoint& operator=
00181   ( const GiGaTrajectoryPoint& right ) ;
00182   
00183 private:
00185   double m_time; 
00186   CLHEP::HepLorentzVector  m_momentum ;
00187   const G4VProcess* m_process  ;
00189 };
00190 // ============================================================================
00191 
00192 // ============================================================================
00200 // ============================================================================
00201 inline GiGaTrajectoryPoint* gigaTrajectoryPoint( G4TrajectoryPoint* g4 )
00202 {
00203   GiGaUtil::FastCast<G4TrajectoryPoint,GiGaTrajectoryPoint> cast ;
00204   return cast( g4 );
00205 };
00206 // ============================================================================
00207 
00208 // ============================================================================
00216 // ============================================================================
00217 inline GiGaTrajectoryPoint* gigaTrajectoryPoint( G4VTrajectoryPoint* g4 )
00218 {
00219   GiGaUtil::FastCast<G4VTrajectoryPoint,GiGaTrajectoryPoint> cast ;
00220   return cast( g4 );
00221 };
00222 // ============================================================================
00223 
00224 // ============================================================================
00232 // ============================================================================
00233 inline const GiGaTrajectoryPoint* gigaTrajectoryPoint
00234 ( const G4TrajectoryPoint* g4 )
00235 {
00236   GiGaUtil::FastCast<const G4TrajectoryPoint,const GiGaTrajectoryPoint> cast ;
00237   return cast( g4 );
00238 };
00239 // ============================================================================
00240 
00241 // ============================================================================
00249 // ============================================================================
00250 inline const GiGaTrajectoryPoint* gigaTrajectoryPoint
00251 ( const G4VTrajectoryPoint* g4 )
00252 {
00253   GiGaUtil::FastCast<const G4VTrajectoryPoint,const GiGaTrajectoryPoint> cast ;
00254   return cast( g4 );
00255 };
00256 // ============================================================================
00257 
00258 
00259 // ============================================================================
00260 #endif  
00261 // ============================================================================
00262 
00263 
00264 
00265 
00266 
00267 
00268 
00269 
00270 
00271 
00272 
00273 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:01:14 2011 for GiGa by doxygen 1.4.7