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