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 /// \file eventgenerator/HepMC/HepMCEx02/include/H02MuonHit.hh 27 /// \brief Definition of the H02MuonHit class 28 // 29 // 30 #ifndef H02_MUON_HIT_H 31 #define H02_MUON_HIT_H 32 33 #include "G4Allocator.hh" 34 #include "G4THitsCollection.hh" 35 #include "G4ThreeVector.hh" 36 #include "G4VHit.hh" 37 38 class H02MuonHit : public G4VHit 39 { 40 public: 41 H02MuonHit(); 42 H02MuonHit(G4int imod, G4String aname, const G4ThreeVector& pxyz, const G4ThreeVector& xyz, 43 G4double atof); 44 ~H02MuonHit(); 45 46 H02MuonHit(const H02MuonHit& right); 47 const H02MuonHit& operator=(const H02MuonHit& right); 48 G4bool operator==(const H02MuonHit& right) const; 49 50 void* operator new(size_t); 51 void operator delete(void* aHit); 52 53 // set/get functions... 54 void SetModuleID(G4int i); 55 G4int GetModuleID() const; 56 57 void SetParticle(G4String aname); 58 G4String GetParticle() const; 59 60 void SetMomentum(const G4ThreeVector& pxyz); 61 G4ThreeVector GetMomentum() const; 62 63 void SetPosition(const G4ThreeVector& xyz); 64 G4ThreeVector GetPosition() const; 65 66 void SetTOF(G4double atof); 67 G4double GetTOF() const; 68 69 // methods... 70 virtual void Draw(); 71 virtual void Print(); 72 73 private: 74 G4int fModuleID; 75 G4String fPname; 76 G4ThreeVector fMomentum; 77 G4ThreeVector fPosition; 78 G4double fTof; 79 }; 80 81 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 82 inline void H02MuonHit::SetModuleID(G4int i) 83 { 84 fModuleID = i; 85 } 86 inline G4int H02MuonHit::GetModuleID() const 87 { 88 return fModuleID; 89 } 90 91 inline void H02MuonHit::SetParticle(G4String aname) 92 { 93 fPname = aname; 94 } 95 inline G4String H02MuonHit::GetParticle() const 96 { 97 return fPname; 98 } 99 100 inline void H02MuonHit::SetMomentum(const G4ThreeVector& pxyz) 101 { 102 fMomentum = pxyz; 103 } 104 inline G4ThreeVector H02MuonHit::GetMomentum() const 105 { 106 return fMomentum; 107 } 108 109 inline void H02MuonHit::SetPosition(const G4ThreeVector& xyz) 110 { 111 fPosition = xyz; 112 } 113 inline G4ThreeVector H02MuonHit::GetPosition() const 114 { 115 return fPosition; 116 } 117 118 inline void H02MuonHit::SetTOF(G4double atof) 119 { 120 fTof = atof; 121 } 122 inline G4double H02MuonHit::GetTOF() const 123 { 124 return fTof; 125 } 126 127 typedef G4THitsCollection<H02MuonHit> H02MuonHitsCollection; 128 extern G4Allocator<H02MuonHit> H02MuonHitAllocator; 129 130 inline void* H02MuonHit::operator new(size_t) 131 { 132 void* aHit; 133 aHit = (void*)H02MuonHitAllocator.MallocSingle(); 134 return aHit; 135 } 136 137 inline void H02MuonHit::operator delete(void* aHit) 138 { 139 H02MuonHitAllocator.FreeSingle((H02MuonHit*)aHit); 140 } 141 142 #endif 143