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(); 00019 BDSLWCalorimeterHit(G4int nCopy, G4double Energy=0, G4int nEvent=0); 00020 00021 00022 ~BDSLWCalorimeterHit(); 00023 00024 BDSLWCalorimeterHit(const BDSLWCalorimeterHit& right); 00025 const BDSLWCalorimeterHit& operator=(const BDSLWCalorimeterHit& right); 00026 00027 inline void* operator new(size_t) ; 00028 inline void operator delete(void *aHit); 00029 00030 private: 00031 G4double itsEnergy; 00032 G4int itsCopyNumber; 00033 G4int itsEventNo; 00034 00035 public: 00036 00037 inline G4double GetEnergy() 00038 {return itsEnergy;} 00039 inline G4int GetCopyNumber() 00040 {return itsCopyNumber;} 00041 inline void SetEnergy(G4double Energy) 00042 {itsEnergy=Energy;} 00043 inline void AddEnergy(G4double Energy) 00044 {itsEnergy+=Energy;} 00045 inline G4int GetEventNo() const 00046 {return itsEventNo;} 00047 }; 00048 00049 00050 typedef G4THitsCollection<BDSLWCalorimeterHit> BDSLWCalorimeterHitsCollection; 00051 extern G4Allocator<BDSLWCalorimeterHit> BDSLWCalorimeterHitAllocator; 00052 00053 inline void* BDSLWCalorimeterHit::operator new(size_t) 00054 { 00055 void* aHit; 00056 aHit=(void*) BDSLWCalorimeterHitAllocator.MallocSingle(); 00057 return aHit; 00058 } 00059 00060 inline void BDSLWCalorimeterHit::operator delete(void *aHit) 00061 { 00062 BDSLWCalorimeterHitAllocator.FreeSingle((BDSLWCalorimeterHit*) aHit); 00063 } 00064 00065 #endif 00066