40 : verboseLevel(0), fVresTheta(0), fVresPhi(0), fDresTheta(0), fDresPhi(0),
41 fA(0), fB(0), fLDOS(0), fSTDOS(0), fFTDOS(0),
42 fBeta(0), fGamma(0), fLambda(0), fMu(0) {
43 for (
G4int i=0; i<3; i++) {
47 fN_map[i][j][k].
set(0.,0.,0.);
64 G4cerr <<
"G4LatticeLogical::LoadMap exceeds maximum resolution of "
69 std::ifstream fMapFile(map.data());
70 if(!fMapFile.is_open())
76 for (
G4int theta = 0; theta<tRes; theta++) {
77 for (
G4int phi = 0; phi<pRes; phi++) {
79 fMap[polarizationState][theta][phi] = vgrp * (m/s);
85 G4cout <<
"\nG4LatticeLogical::LoadMap(" << map <<
") successful"
86 <<
" (Vg scalars " << tRes <<
" x " << pRes <<
" for polarization "
87 << polarizationState <<
")." <<
G4endl;
104 G4cerr <<
"G4LatticeLogical::LoadMap exceeds maximum resolution of "
109 std::ifstream fMapFile(map.data());
110 if(!fMapFile.is_open())
117 for (
G4int theta = 0; theta<tRes; theta++) {
118 for (
G4int phi = 0; phi<pRes; phi++) {
119 fMapFile >> x >> y >> z;
121 fN_map[polarizationState][theta][phi] = dir.
unit();
125 if(verboseLevel != 0)
127 G4cout <<
"\nG4LatticeLogical::Load_NMap(" << map <<
") successful"
128 <<
" (Vdir " << tRes <<
" x " << pRes <<
" for polarization "
129 << polarizationState <<
")." <<
G4endl;
162 G4double Vg = fMap[polarizationState][int(theta/tRes)][int(phi/pRes)];
165 G4cout<<
"\nFound v=0 for polarization "<<polarizationState
166 <<
" theta "<<theta<<
" phi "<<phi<<
" translating to map coords "
167 <<
"theta "<< int(theta/tRes) <<
" phi " << int(phi/pRes)<<
G4endl;
170 if (verboseLevel>1) {
171 G4cout <<
"G4LatticeLogical::MapKtoV theta,phi=" << theta <<
" " << phi
172 <<
" : ith,iph " << int(theta/tRes) <<
" " << int(phi/pRes)
173 <<
" : V " << Vg <<
G4endl;
189 tRes=pi/(fDresTheta-1);
190 pRes=2*pi/(fDresPhi-1);
205 G4int iTheta = int(theta/tRes+0.5);
206 G4int iPhi = int(phi/pRes+0.5);
208 if (verboseLevel>1) {
209 G4cout <<
"G4LatticeLogical::MapKtoVDir theta,phi=" << theta <<
" " << phi
210 <<
" : ith,iph " << iTheta <<
" " << iPhi
211 <<
" : dir " << fN_map[polarizationState][iTheta][iPhi] <<
G4endl;
214 return fN_map[polarizationState][iTheta][iPhi];
222 os <<
"dyn " << fBeta <<
" " << fGamma <<
" " << fLambda <<
" " << fMu
223 <<
"\nscat " << fB <<
" decay " << fA
224 <<
"\nLDOS " << fLDOS <<
" STDOS " << fSTDOS <<
" FTDOS " << fFTDOS
238 os <<
"VG " << name <<
" " << (pol==0?
"L":pol==1?
"FT":pol==2?
"ST":
"??")
239 <<
" " << fVresTheta <<
" " << fVresPhi << std::endl;
241 for (
G4int iTheta=0; iTheta<fVresTheta; iTheta++) {
242 for (
G4int iPhi=0; iPhi<fVresPhi; iPhi++) {
243 os << fMap[pol][iTheta][iPhi] << std::endl;
250 os <<
"VDir " << name <<
" " << (pol==0?
"L":pol==1?
"FT":pol==2?
"ST":
"??")
251 <<
" " << fDresTheta <<
" " << fDresPhi << std::endl;
253 for (
G4int iTheta=0; iTheta<fDresTheta; iTheta++) {
254 for (
G4int iPhi=0; iPhi<fDresPhi; iPhi++) {
255 os << fN_map[pol][iTheta][iPhi].
x()
256 <<
" " << fN_map[pol][iTheta][iPhi].
y()
257 <<
" " << fN_map[pol][iTheta][iPhi].
z()
Definition of the G4LatticeLogical class.
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z)
virtual G4double MapKtoV(G4int, const G4ThreeVector &) const
void DumpMap(std::ostream &os, G4int pol, const G4String &name) const
G4bool LoadMap(G4int, G4int, G4int, G4String)
void Dump_NMap(std::ostream &os, G4int pol, const G4String &name) const
virtual G4ThreeVector MapKtoVDir(G4int, const G4ThreeVector &) const
void Dump(std::ostream &os) const
G4bool Load_NMap(G4int, G4int, G4int, G4String)
virtual ~G4LatticeLogical()