File indexing completed on 2025-12-16 09:29:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef G4HumanPhantomHit_h
0030 #define G4HumanPhantomHit_h 1
0031
0032 #include "G4VHit.hh"
0033 #include "G4THitsCollection.hh"
0034 #include "G4Allocator.hh"
0035 #include "G4ThreeVector.hh"
0036 #include "tls.hh" // FOR MT
0037
0038 class G4HumanPhantomHit : public G4VHit
0039 {
0040 public:
0041
0042 G4HumanPhantomHit();
0043 ~G4HumanPhantomHit();
0044 G4HumanPhantomHit(const G4HumanPhantomHit&);
0045 const G4HumanPhantomHit& operator=(const G4HumanPhantomHit&);
0046 G4bool operator==(const G4HumanPhantomHit&) const;
0047
0048 inline void* operator new(size_t);
0049 inline void operator delete(void*);
0050
0051 void Draw();
0052 void Print();
0053
0054 public:
0055 void SetBodyPartID (G4String bodyPartName) { bodyPartID = bodyPartName;};
0056 void SetEdep (G4double de) { edep = de; };
0057
0058 G4String GetBodyPartID() { return bodyPartID; };
0059 G4double GetEdep() { return edep; };
0060
0061 private:
0062 G4String bodyPartID;
0063 G4double edep;
0064 };
0065
0066 typedef G4THitsCollection<G4HumanPhantomHit> G4HumanPhantomHitsCollection;
0067
0068 extern G4ThreadLocal G4Allocator<G4HumanPhantomHit>* G4HumanPhantomHitAllocator;
0069
0070 inline void* G4HumanPhantomHit::operator new(size_t)
0071 {
0072 if(!G4HumanPhantomHitAllocator)
0073 G4HumanPhantomHitAllocator = new G4Allocator<G4HumanPhantomHit>;
0074 return (void *) G4HumanPhantomHitAllocator->MallocSingle();
0075 }
0076
0077 inline void G4HumanPhantomHit::operator delete(void *aHit)
0078 {
0079 G4HumanPhantomHitAllocator -> FreeSingle((G4HumanPhantomHit*) aHit);
0080 }
0081
0082 #endif