Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 /// \file processes/phonon/src/G4PhononTrackMa 27 /// \brief Implementation of the G4PhononTrack 28 // 29 // 30 // 20131111 Move Clear() function to .cc file 31 32 #include "G4PhononTrackMap.hh" 33 #include "G4ThreeVector.hh" 34 #include "G4Track.hh" 35 #include <map> 36 37 namespace { const G4ThreeVector nullVec(0.,0., 38 39 // Singleton instance, must be created at firs 40 41 G4ThreadLocal G4PhononTrackMap* G4PhononTrackM 42 43 44 // Pseudo-constructor creates singleton instan 45 46 G4PhononTrackMap* G4PhononTrackMap::GetPhononT 47 if (!theTrackMap) theTrackMap = new G4Phonon 48 return theTrackMap; 49 } 50 51 void G4PhononTrackMap::Clear() { 52 theMap.clear(); // Remove all entries fr 53 } 54 55 56 57 // Check if specified track is already loaded 58 59 G4bool G4PhononTrackMap::Find(const G4Track* t 60 return (!track || theMap.find(track) != theM 61 } 62 63 64 // Remove specified track from map (used by En 65 66 void G4PhononTrackMap::RemoveTrack(const G4Tra 67 TrkIDKmap::iterator entry = theMap.find(trac 68 if (entry != theMap.end()) theMap.erase(entr 69 } 70 71 72 // Update the wavevector for specified track, 73 74 void G4PhononTrackMap::SetK(const G4Track* tra 75 if (track) theMap[track] = K; 76 } 77 78 79 // Access current wavevector for specified tra 80 81 const G4ThreeVector& G4PhononTrackMap::GetK(co 82 TrkIDKmap::const_iterator entry = theMap.fin 83 return (entry != theMap.end()) ? entry->seco 84 } 85 86