00001 // $Id: GaussTrajectory.h,v 1.5 2004/02/22 16:51:54 ibelyaev Exp $ 00002 // ============================================================================ 00003 // CVS tag $Name: v15r1p1 $ 00004 // ============================================================================ 00005 // $Log: GaussTrajectory.h,v $ 00006 // Revision 1.5 2004/02/22 16:51:54 ibelyaev 00007 // few minor fixes 00008 // 00009 // Revision 1.4 2003/10/09 09:12:58 witoldp 00010 // extension of GaussTrackAction 00011 // 00012 // Revision 1.3 2003/03/11 09:45:18 ibelyaev 00013 // update for Win2K 00014 // 00015 // Revision 1.2 2002/12/07 21:19:13 ibelyaev 00016 // few optimization updates 00017 // 00018 // ============================================================================ 00019 #ifndef GAUSSTOOLS_GAUSSTRAJECTORY_H 00020 #define GAUSSTOOLS_GAUSSTRAJECTORY_H 1 00021 // ============================================================================ 00023 #include "GiGa/GiGaTrajectory.h" 00025 00026 class GaussTrajectory: public GiGaTrajectory 00027 { 00029 public: 00031 GaussTrajectory ( ) ; 00032 GaussTrajectory ( const G4Track* ) ; 00033 GaussTrajectory ( const GiGaTrajectory& ) ; 00034 GaussTrajectory ( const GaussTrajectory& ) ; 00035 virtual ~GaussTrajectory(); 00037 void* operator new ( size_t ) ; 00038 void operator delete ( void* ) ; 00040 int operator == (const GaussTrajectory& right) const 00041 { return ( &right == this );} 00043 virtual void AppendStep( const G4Step* ); 00044 virtual GiGaTrajectory* clone() const ; 00046 private: 00048 }; 00050 00051 // ============================================================================ 00059 // ============================================================================ 00060 inline GaussTrajectory* 00061 gaussTrajectory ( G4VTrajectory* g4 ) 00062 { 00063 GiGaUtil::FastCast<G4VTrajectory,GaussTrajectory> cast ; 00064 return cast( g4 ); 00065 }; 00066 // ============================================================================ 00067 00068 // ============================================================================ 00076 // ============================================================================ 00077 inline const GaussTrajectory* 00078 gaussTrajectory ( const G4VTrajectory* g4 ) 00079 { 00080 GiGaUtil::FastCast<const G4VTrajectory,const GaussTrajectory> cast ; 00081 return cast( g4 ); 00082 }; 00083 // ============================================================================ 00084 00085 // ============================================================================ 00093 // ============================================================================ 00094 inline GaussTrajectory* 00095 gaussTrajectory ( GiGaTrajectory* g4 ) 00096 { 00097 GiGaUtil::FastCast<GiGaTrajectory,GaussTrajectory> cast ; 00098 return cast( g4 ); 00099 }; 00100 // ============================================================================ 00101 00102 // ============================================================================ 00110 // ============================================================================ 00111 inline const GaussTrajectory* 00112 gaussTrajectory ( const GiGaTrajectory* g4 ) 00113 { 00114 GiGaUtil::FastCast<const GiGaTrajectory,const GaussTrajectory> cast ; 00115 return cast( g4 ); 00116 }; 00117 // ============================================================================ 00118 00119 // ============================================================================ 00120 // The END 00121 // ============================================================================ 00122 #endif 00123 // ============================================================================ 00124 00125 00126 00127 00128 00129 00130