54 G4LatticeManager::G4LatticeManager() : verboseLevel(0) {
58 G4LatticeManager::~G4LatticeManager() {
65 for (LatticeLogReg::iterator lm=
fLLattices.begin();
70 for (LatticePhyReg::iterator pm=
fPLattices.begin();
105 if (!Mat || !Lat)
return false;
113 G4cout <<
"G4LatticeManager::RegisterLattice: "
114 <<
" Total number of logical lattices: " <<
fLLatticeList.size()
126 G4cout <<
"G4LatticeManager::LoadLattice material " << Mat->
GetName()
127 <<
" " << latDir <<
G4endl;
136 G4cerr <<
"ERROR creating " << latDir <<
" lattice for material "
148 G4cout <<
"G4LatticeManager::LoadLattice volume " << Vol->
GetName()
149 <<
" " << latDir <<
G4endl;
156 if (!lLattice)
return 0;
174 if (!Vol || !Lat)
return false;
187 G4cout <<
"G4LatticeManager::RegisterLattice: "
188 <<
" Total number of physical lattices: " <<
fPLatticeList.size()-1
197 if (!Vol || !LLat)
return false;
211 LatticeMatMap::const_iterator latFind =
fLLatticeList.find(Mat);
214 G4cout <<
"G4LatticeManager::GetLattice found " << latFind->second
216 return latFind->second;
220 G4cerr <<
"G4LatticeManager:: Found no matching lattices for "
230 LatticeVolMap::const_iterator latFind =
fPLatticeList.find(Vol);
233 G4cout <<
"G4LatticeManager::GetLattice found " << latFind->second
234 <<
" for " << (Vol?Vol->
GetName():
"default") <<
"." <<
G4endl;
235 return latFind->second;
239 G4cerr <<
"G4LatticeManager::GetLattice found no matching lattices for "
266 G4int polarizationState,
270 G4cout <<
"G4LatticeManager::MapKtoV using lattice " << theLattice
274 return theLattice ? theLattice->
MapKtoV(polarizationState, k) : 300.*
m/
s;
284 G4int polarizationState,
288 G4cout <<
"G4LatticeManager::MapKtoVDir using lattice " << theLattice
292 return theLattice ? theLattice->
MapKtoVDir(polarizationState, k) : k.
unit();
static G4LatticeManager * GetLatticeManager()
G4Material * GetMaterial() const
G4ThreeVector MapKtoVDir(G4VPhysicalVolume *, G4int, const G4ThreeVector &) const
const G4String & GetName() const
G4double MapKtoV(G4int, G4ThreeVector) const
G4double MapKtoV(G4VPhysicalVolume *, G4int, const G4ThreeVector &) const
#define G4MUTEX_INITIALIZER
G4GLOB_DLL std::ostream G4cout
static constexpr double m
const G4String & GetName() const
G4LatticeLogical * LoadLattice(G4Material *, const G4String &latDir)
G4ThreeVector MapKtoVDir(G4int, G4ThreeVector) const
const G4RotationMatrix * GetFrameRotation() const
LatticeVolMap fPLatticeList
G4LogicalVolume * GetLogicalVolume() const
Definition of the G4LatticePhysical class.
Definition of the G4LatticeLogical class.
Definition of the G4LatticeReader class.
G4bool HasLattice(G4Material *) const
G4LatticeLogical * MakeLattice(const G4String &filepath)
G4bool RegisterLattice(G4VPhysicalVolume *, G4LatticePhysical *)
LatticeMatMap fLLatticeList
G4LatticeLogical * GetLattice(G4Material *) const
G4GLOB_DLL std::ostream G4cerr