00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef BDSSamplerHit_h
00011 #define BDSSamplerHit_h 1
00012
00013 #include "G4VHit.hh"
00014 #include "G4THitsCollection.hh"
00015 #include "G4Allocator.hh"
00016 #include "G4ThreeVector.hh"
00017
00018 #include "BDSParticle.hh"
00019
00020 class BDSSamplerHit :public G4VHit
00021 {
00022 public:
00023 BDSSamplerHit(G4String aName,
00024 BDSParticle init,
00025 BDSParticle prod,
00026 BDSParticle last_scat,
00027 BDSParticle local,
00028 BDSParticle global,
00029 G4double s,
00030 G4double weight,
00031 G4int PDGtype, G4int nEvent,
00032 G4int ParentID, G4int TrackID,
00033 G4int TurnsTaken,
00034 G4String sampType);
00035
00036 ~BDSSamplerHit();
00037
00038 inline void* operator new(size_t) ;
00039 inline void operator delete(void *aHit);
00040
00041 private:
00042 G4String itsName;
00043
00045 BDSParticle itsInit;
00046
00048 BDSParticle itsProd;
00049
00051 BDSParticle itsLastScat;
00052
00055 BDSParticle itsLocal;
00056
00058 BDSParticle itsGlobal;
00059
00061 G4double itsS;
00062
00063 G4double itsWeight;
00064 G4int itsPDGtype;
00065 G4int itsEventNo;
00066 G4int itsParentID;
00067 G4int itsTrackID;
00068 G4int itsTurnsTaken;
00069 G4String itsSampType;
00070
00071 public:
00072 inline G4double GetInitMom() const
00073 {return itsInit.GetEnergy();}
00074 inline G4double GetInitX() const
00075 {return itsInit.GetX();}
00076 inline G4double GetInitXPrime() const
00077 {return itsInit.GetXp();}
00078 inline G4double GetInitY() const
00079 {return itsInit.GetY();}
00080 inline G4double GetInitYPrime() const
00081 {return itsInit.GetYp();}
00082 inline G4double GetInitZ() const
00083 {return itsInit.GetZ();}
00084 inline G4double GetInitZPrime() const
00085 {return itsInit.GetZp();}
00086 inline G4double GetInitT() const
00087 {return itsInit.GetTime();}
00088 inline G4double GetProdMom() const
00089 {return itsProd.GetEnergy();}
00090 inline G4double GetProdX() const
00091 {return itsProd.GetX();}
00092 inline G4double GetProdXPrime() const
00093 {return itsProd.GetXp();}
00094 inline G4double GetProdY() const
00095 {return itsProd.GetY();}
00096 inline G4double GetProdYPrime() const
00097 {return itsProd.GetYp();}
00098 inline G4double GetProdZ() const
00099 {return itsProd.GetZ();}
00100 inline G4double GetProdZPrime() const
00101 {return itsProd.GetZp();}
00102 inline G4double GetProdT() const
00103 {return itsProd.GetTime();}
00104 inline G4double GetLastScatMom() const
00105 {return itsLastScat.GetEnergy();}
00106 inline G4double GetLastScatX() const
00107 {return itsLastScat.GetX();}
00108 inline G4double GetLastScatXPrime() const
00109 {return itsLastScat.GetXp();}
00110 inline G4double GetLastScatY() const
00111 {return itsLastScat.GetY();}
00112 inline G4double GetLastScatYPrime() const
00113 {return itsLastScat.GetYp();}
00114 inline G4double GetLastScatZ() const
00115 {return itsLastScat.GetZ();}
00116 inline G4double GetLastScatZPrime() const
00117 {return itsLastScat.GetZp();}
00118 inline G4double GetLastScatT() const
00119 {return itsLastScat.GetTime();}
00120 inline G4double GetMom() const
00121 {return itsLocal.GetEnergy();}
00122 inline G4double GetX() const
00123 {return itsLocal.GetX();}
00124 inline G4double GetXPrime() const
00125 {return itsLocal.GetXp();}
00126 inline G4double GetY() const
00127 {return itsLocal.GetY();}
00128 inline G4double GetYPrime() const
00129 {return itsLocal.GetYp();}
00130 inline G4double GetZ() const
00131 {return itsLocal.GetZ();}
00132 inline G4double GetZPrime() const
00133 {return itsLocal.GetZp();}
00134 inline G4double GetGlobalX() const
00135 {return itsGlobal.GetX();}
00136 inline G4double GetGlobalXPrime() const
00137 {return itsGlobal.GetXp();}
00138 inline G4double GetGlobalY() const
00139 {return itsGlobal.GetY();}
00140 inline G4double GetGlobalYPrime() const
00141 {return itsGlobal.GetYp();}
00142 inline G4double GetGlobalZ() const
00143 {return itsGlobal.GetZ();}
00144 inline G4double GetGlobalZPrime() const
00145 {return itsGlobal.GetZp();}
00146 inline G4double GetT() const
00147 {return itsLocal.GetTime();}
00148 inline G4double GetS() const
00149 {return itsS;}
00150 inline G4double GetWeight() const
00151 {return itsWeight;}
00152 inline G4String GetName() const
00153 {return itsName;}
00154 inline G4String GetType()
00155 {return itsSampType;}
00156 inline G4int GetEventNo() const
00157 {return itsEventNo;}
00158 inline G4int GetPDGtype() const
00159 {return itsPDGtype;}
00160 inline G4int GetParentID() const
00161 {return itsParentID;}
00162 inline G4int GetTrackID() const
00163 {return itsTrackID;}
00164 inline G4int GetTurnsTaken() const
00165 {return itsTurnsTaken;}
00166 };
00167
00168 typedef G4THitsCollection<BDSSamplerHit> BDSSamplerHitsCollection;
00169 extern G4Allocator<BDSSamplerHit> BDSSamplerHitAllocator;
00170
00171 inline void* BDSSamplerHit::operator new(size_t)
00172 {
00173 void* aHit;
00174 aHit=(void*) BDSSamplerHitAllocator.MallocSingle();
00175 return aHit;
00176 }
00177
00178 inline void BDSSamplerHit::operator delete(void *aHit)
00179 {
00180 BDSSamplerHitAllocator.FreeSingle((BDSSamplerHit*) aHit);
00181 }
00182
00183 #endif
00184