Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // 27 // 28 29 #ifndef G4HumanPhantomHit_h 30 #define G4HumanPhantomHit_h 1 31 32 #include "G4VHit.hh" 33 #include "G4THitsCollection.hh" 34 #include "G4Allocator.hh" 35 #include "G4ThreeVector.hh" 36 #include "tls.hh" // FOR MT 37 38 class G4HumanPhantomHit : public G4VHit 39 { 40 public: 41 42 G4HumanPhantomHit(); 43 ~G4HumanPhantomHit(); 44 G4HumanPhantomHit(const G4HumanPhantomHit&); 45 const G4HumanPhantomHit& operator=(const G4HumanPhantomHit&); 46 G4bool operator==(const G4HumanPhantomHit&) const; 47 48 inline void* operator new(size_t); 49 inline void operator delete(void*); 50 51 void Draw(); 52 void Print(); 53 54 public: 55 void SetBodyPartID (G4String bodyPartName) { bodyPartID = bodyPartName;}; 56 void SetEdep (G4double de) { edep = de; }; 57 58 G4String GetBodyPartID() { return bodyPartID; }; 59 G4double GetEdep() { return edep; }; 60 61 private: 62 G4String bodyPartID; 63 G4double edep; 64 }; 65 66 typedef G4THitsCollection<G4HumanPhantomHit> G4HumanPhantomHitsCollection; 67 68 extern G4ThreadLocal G4Allocator<G4HumanPhantomHit>* G4HumanPhantomHitAllocator; 69 70 inline void* G4HumanPhantomHit::operator new(size_t) 71 { 72 if(!G4HumanPhantomHitAllocator) 73 G4HumanPhantomHitAllocator = new G4Allocator<G4HumanPhantomHit>; 74 return (void *) G4HumanPhantomHitAllocator->MallocSingle(); 75 } 76 77 inline void G4HumanPhantomHit::operator delete(void *aHit) 78 { 79 G4HumanPhantomHitAllocator -> FreeSingle((G4HumanPhantomHit*) aHit); 80 } 81 82 #endif 83