00001 /* BDSIM code. Version 1.0 00002 Author: Grahame A. Blair, Royal Holloway, Univ. of London. 00003 Last modified 24.7.2002 00004 Copyright (c) 2002 by G.A.Blair. ALL RIGHTS RESERVED. 00005 */ 00006 00007 #ifndef BDSEnergyCounterHit_h 00008 #define BDSEnergyCounterHit_h 1 00009 00010 #include "G4VHit.hh" 00011 #include "G4THitsCollection.hh" 00012 #include "G4Allocator.hh" 00013 #include "G4ThreeVector.hh" 00014 00015 class BDSEnergyCounterHit :public G4VHit 00016 { 00017 public: 00018 BDSEnergyCounterHit(); 00019 BDSEnergyCounterHit(G4int nCopy, G4double Energy=0, G4double EnWeightZ=0., 00020 G4int partID=0, G4int parentID=0); 00021 00022 ~BDSEnergyCounterHit(); 00023 00024 BDSEnergyCounterHit(const BDSEnergyCounterHit& right); 00025 const BDSEnergyCounterHit& operator=(const BDSEnergyCounterHit& right); 00026 00027 inline void* operator new(size_t) ; 00028 inline void operator delete(void *aHit); 00029 00030 inline G4double GetEnergy(); 00031 inline G4int GetCopyNumber(); 00032 inline G4int GetPartID(); 00033 inline G4int GetParentID(); 00034 inline void SetEnergy(G4double Energy); 00035 inline void AddEnergy(G4double Energy); 00036 inline void AddEnergyWeightedPosition(G4double EnergyWeightedPosition); 00037 G4double GetEnergyWeightedPosition(); 00038 00039 private: 00040 G4double itsEnergy; 00041 // G4String itsName; 00042 G4int itsCopyNumber; 00043 G4int itsPartID; 00044 G4int itsParentID; 00045 G4double itsEnergyWeightedPosition; 00046 }; 00047 00048 inline G4double BDSEnergyCounterHit::GetEnergy() 00049 {return itsEnergy;} 00050 00051 // inline G4String GetName() 00052 // {return itsName;} 00053 00054 inline G4int BDSEnergyCounterHit::GetCopyNumber() 00055 {return itsCopyNumber;} 00056 00057 inline G4int BDSEnergyCounterHit::GetPartID() 00058 {return itsPartID;} 00059 00060 inline G4int BDSEnergyCounterHit::GetParentID() 00061 {return itsParentID;} 00062 00063 inline void BDSEnergyCounterHit::SetEnergy(G4double Energy) 00064 {itsEnergy=Energy;} 00065 inline void BDSEnergyCounterHit::AddEnergy(G4double Energy) 00066 { 00067 itsEnergy+=Energy;} 00068 00069 inline void BDSEnergyCounterHit:: 00070 AddEnergyWeightedPosition(G4double EnergyWeightedPosition) 00071 { 00072 itsEnergyWeightedPosition += EnergyWeightedPosition; 00073 } 00074 00075 inline G4double BDSEnergyCounterHit:: 00076 GetEnergyWeightedPosition() 00077 { 00078 return itsEnergyWeightedPosition; 00079 } 00080 00081 typedef G4THitsCollection<BDSEnergyCounterHit> BDSEnergyCounterHitsCollection; 00082 extern G4Allocator<BDSEnergyCounterHit> BDSEnergyCounterHitAllocator; 00083 00084 inline void* BDSEnergyCounterHit::operator new(size_t) 00085 { 00086 void* aHit; 00087 aHit=(void*) BDSEnergyCounterHitAllocator.MallocSingle(); 00088 return aHit; 00089 } 00090 00091 inline void BDSEnergyCounterHit::operator delete(void *aHit) 00092 { 00093 BDSEnergyCounterHitAllocator.FreeSingle((BDSEnergyCounterHit*) aHit); 00094 } 00095 00096 #endif 00097