00001 #ifndef BDSCCDPixelHit_h 00002 #define BDSCCDPixelHit_h 1 00003 00004 #include "G4VHit.hh" 00005 #include "G4THitsCollection.hh" 00006 #include "G4Allocator.hh" 00007 #include "G4ThreeVector.hh" 00008 00009 class BDSCCDPixelHit :public G4VHit 00010 { 00011 public: 00012 BDSCCDPixelHit(G4int npixel, 00013 G4double weight); 00014 00015 ~BDSCCDPixelHit(); 00016 00017 inline void* operator new(size_t) ; 00018 inline void operator delete(void *aHit); 00019 00020 private: 00021 G4int _npixel; 00022 G4double _weight; 00023 00024 public: 00025 inline G4int npixel() const 00026 {return _npixel;} 00027 inline G4double weight() const 00028 {return _weight;} 00029 }; 00030 00031 typedef G4THitsCollection<BDSCCDPixelHit> BDSCCDPixelHitsCollection; 00032 extern G4Allocator<BDSCCDPixelHit> BDSCCDPixelHitAllocator; 00033 00034 inline void* BDSCCDPixelHit::operator new(size_t) 00035 { 00036 void* aHit; 00037 aHit=(void*) BDSCCDPixelHitAllocator.MallocSingle(); 00038 return aHit; 00039 } 00040 00041 inline void BDSCCDPixelHit::operator delete(void *aHit) 00042 { 00043 BDSCCDPixelHitAllocator.FreeSingle((BDSCCDPixelHit*) aHit); 00044 } 00045 00046 #endif 00047