00001 /* BDSIM code for LW Calorimeter. Version 1.0 00002 Author: John Carter, Royal Holloway, Univ. of London. 00003 Last modified 26.7.2004 00004 Copyright (c) 2004 by J.C.Carter. ALL RIGHTS RESERVED. 00005 */ 00006 00007 #ifndef BDSLWCalorimeterHit_h 00008 #define BDSLWCalorimeterHit_h 1 00009 00010 #include "G4VHit.hh" 00011 #include "G4THitsCollection.hh" 00012 #include "G4Allocator.hh" 00013 #include "G4ThreeVector.hh" 00014 00015 class BDSLWCalorimeterHit :public G4VHit 00016 { 00017 public: 00018 BDSLWCalorimeterHit(G4int nCopy, G4double Energy=0, G4int nEvent=0); 00019 00020 ~BDSLWCalorimeterHit(); 00021 00022 inline void* operator new(size_t) ; 00023 inline void operator delete(void *aHit); 00024 00025 private: 00026 G4double itsEnergy; 00027 G4int itsCopyNumber; 00028 G4int itsEventNo; 00029 00030 public: 00031 00032 inline G4double GetEnergy() 00033 {return itsEnergy;} 00034 inline G4int GetCopyNumber() 00035 {return itsCopyNumber;} 00036 inline void SetEnergy(G4double Energy) 00037 {itsEnergy=Energy;} 00038 inline void AddEnergy(G4double Energy) 00039 {itsEnergy+=Energy;} 00040 inline G4int GetEventNo() const 00041 {return itsEventNo;} 00042 }; 00043 00044 00045 typedef G4THitsCollection<BDSLWCalorimeterHit> BDSLWCalorimeterHitsCollection; 00046 extern G4Allocator<BDSLWCalorimeterHit> BDSLWCalorimeterHitAllocator; 00047 00048 inline void* BDSLWCalorimeterHit::operator new(size_t) 00049 { 00050 void* aHit; 00051 aHit=(void*) BDSLWCalorimeterHitAllocator.MallocSingle(); 00052 return aHit; 00053 } 00054 00055 inline void BDSLWCalorimeterHit::operator delete(void *aHit) 00056 { 00057 BDSLWCalorimeterHitAllocator.FreeSingle((BDSLWCalorimeterHit*) aHit); 00058 } 00059 00060 #endif 00061