00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef TStandard_Hit_hh
00027 #define TStandard_Hit_hh
00028
00029 extern bool gMyDebug ;
00030
00031
00032 #include "G4VHit.hh"
00033 #include "G4THitsCollection.hh"
00034 #include "G4Allocator.hh"
00035 #include "G4UnitsTable.hh"
00036 #include "G4VVisManager.hh"
00037 #include "G4Circle.hh"
00038 #include "G4Colour.hh"
00039 #include "G4VisAttributes.hh"
00040
00041 #include "TString.h"
00042
00043
00044 class TStandard_Hit : public G4VHit
00045 {
00046
00047 private :
00048
00049 G4String fParticleName ;
00050 G4int fZ, fA ;
00051 G4int fTrackID, fParentTrackID ;
00052 G4String fCreatorProcessName ;
00053
00054 G4double fEkin0 ;
00055 G4double fRx0, fRy0, fRz0 ;
00056 G4double fTheta0, fPhi0 ;
00057
00058 G4String fVolumeName ;
00059 G4double fEkin ;
00060 G4double fEdep ;
00061 G4double fDose ;
00062 G4double fRangeTot ;
00063 G4ThreeVector fPosition ;
00064 G4double fRx, fRy, fRz ;
00065 G4ThreeVector fDirection ;
00066 G4double fTheta, fPhi ;
00067 G4double fGlobalTime, fLocalTime ;
00068 G4double fWeight ;
00069
00070
00071 public :
00072
00073 TStandard_Hit () ;
00074 TStandard_Hit (const TStandard_Hit &) ;
00075 ~TStandard_Hit () ;
00076
00077 const TStandard_Hit& operator= (const TStandard_Hit &) ;
00078 G4int operator== (const TStandard_Hit &) const ;
00079 inline void* operator new (size_t) ;
00080 inline void operator delete (void*) ;
00081
00082 void Draw () ;
00083 void Print () ;
00084
00085 void SetParticleName ( G4String aParticleName ) { fParticleName = aParticleName ; return ; } ;
00086 void SetZ ( G4int aZ ) { fZ = aZ ; return ; } ;
00087 void SetA ( G4int aA ) { fA = aA ; return ; } ;
00088 void SetTrackID ( G4int aTrackID ) { fTrackID = aTrackID ; return ; } ;
00089 void SetParentTrackID ( G4int aParentTrackID ) { fParentTrackID = aParentTrackID ; return ; } ;
00090 void SetCreatorProcessName ( G4String aCreatorProcessName ) { fCreatorProcessName = aCreatorProcessName ; return ; } ;
00091 void SetEkin0 ( G4double aEkin0 ) { fEkin0 = aEkin0 ; return ; } ;
00092 void SetRx0 ( G4double aRx0 ) { fRx0 = aRx0 ; return ; } ;
00093 void SetRy0 ( G4double aRy0 ) { fRy0 = aRy0 ; return ; } ;
00094 void SetRz0 ( G4double aRz0 ) { fRz0 = aRz0 ; return ; } ;
00095 void SetTheta0 ( G4double aTheta0 ) { fTheta0 = aTheta0 ; return ; } ;
00096 void SetPhi0 ( G4double aPhi0 ) { fPhi0 = aPhi0 ; return ; } ;
00097 void SetVolumeName ( G4String aVolumeName ) { fVolumeName = aVolumeName ; return ; } ;
00098 void SetEkin ( G4double aEkin ) { fEkin = aEkin ; return ; } ;
00099 void SetEdep ( G4double aEdep ) { fEdep = aEdep ; return ; } ;
00100 void SetDose ( G4double aDose ) { fDose = aDose ; return ; } ;
00101 void SetRangeTot ( G4double aRangeTot ) { fRangeTot = aRangeTot ; return ; } ;
00102 void SetPosition ( G4ThreeVector aPosition ) { fPosition = aPosition ; return ; } ;
00103 void SetRx ( G4double aRx ) { fRx = aRx ; return ; } ;
00104 void SetRy ( G4double aRy ) { fRy = aRy ; return ; } ;
00105 void SetRz ( G4double aRz ) { fRz = aRz ; return ; } ;
00106 void SetDirection ( G4ThreeVector aDirection ) { fDirection = aDirection ; return ; } ;
00107 void SetTheta ( G4double aTheta ) { fTheta = aTheta ; return ; } ;
00108 void SetPhi ( G4double aPhi ) { fPhi = aPhi ; return ; } ;
00109 void SetGlobalTime ( G4double aGlobalTime ) { fGlobalTime = aGlobalTime ; return ; } ;
00110 void SetLocalTime ( G4double aLocalTime ) { fLocalTime = aLocalTime ; return ; } ;
00111 void SetWeight ( G4double aWeight ) { fWeight = aWeight ; return ; } ;
00112
00113 G4String GetParticleName () const { return (fParticleName ) ; } ;
00114 G4int GetZ () const { return (fZ ) ; } ;
00115 G4int GetA () const { return (fA ) ; } ;
00116 G4int GetTrackID () const { return (fTrackID ) ; } ;
00117 G4int GetParentTrackID () const { return (fParentTrackID ) ; } ;
00118 G4String GetCreatorProcessName () const { return (fCreatorProcessName) ; } ;
00119 G4double GetEkin0 () const { return (fEkin0 ) ; } ;
00120 G4double GetRx0 () const { return (fRx0 ) ; } ;
00121 G4double GetRy0 () const { return (fRy0 ) ; } ;
00122 G4double GetRz0 () const { return (fRz0 ) ; } ;
00123 G4double GetTheta0 () const { return (fTheta0 ) ; } ;
00124 G4double GetPhi0 () const { return (fPhi0 ) ; } ;
00125 G4String GetVolumeName () const { return (fVolumeName ) ; } ;
00126 G4double GetEkin () const { return (fEkin ) ; } ;
00127 G4double GetEdep () const { return (fEdep ) ; } ;
00128 G4double GetDose () const { return (fDose ) ; } ;
00129 G4double GetRangeTot () const { return (fRangeTot ) ; } ;
00130 G4ThreeVector GetPosition () const { return (fPosition ) ; } ;
00131 G4double GetRx () const { return (fRx ) ; } ;
00132 G4double GetRy () const { return (fRy ) ; } ;
00133 G4double GetRz () const { return (fRz ) ; } ;
00134 G4ThreeVector GetDirection () const { return (fDirection ) ; } ;
00135 G4double GetTheta () const { return (fTheta ) ; } ;
00136 G4double GetPhi () const { return (fPhi ) ; } ;
00137 G4double GetGlobalTime () const { return (fGlobalTime ) ; } ;
00138 G4double GetLocalTime () const { return (fLocalTime ) ; } ;
00139 G4double GetWeight () const { return (fWeight ) ; } ;
00140
00141 } ;
00142
00143
00144 typedef G4THitsCollection<TStandard_Hit> THitsCollection ;
00145 extern G4Allocator<TStandard_Hit> gHitAllocator ;
00146 inline void* TStandard_Hit::operator new (size_t) { return ( (void *) gHitAllocator.MallocSingle() ) ; }
00147 inline void TStandard_Hit::operator delete (void *aHit) { gHitAllocator.FreeSingle( (TStandard_Hit*) aHit ) ; }
00148
00149
00150 #endif