41 : verboseLevel(0), fVresTheta(0), fVresPhi(0), fDresTheta(0), fDresPhi(0),
42 fA(0), fB(0), fLDOS(0), fSTDOS(0), fFTDOS(0),
43 fBeta(0), fGamma(0), fLambda(0), fMu(0) {
44 for (
G4int i=0; i<3; i++) {
65 G4cerr <<
"G4LatticeLogical::LoadMap exceeds maximum resolution of "
70 std::ifstream fMapFile(map.
data());
71 if (!fMapFile.is_open())
return false;
74 for (
G4int theta = 0; theta<tRes; theta++) {
75 for (
G4int phi = 0; phi<pRes; phi++) {
77 fMap[polarizationState][theta][phi] = vgrp * (
m/
s);
82 G4cout <<
"\nG4LatticeLogical::LoadMap(" << map <<
") successful"
83 <<
" (Vg scalars " << tRes <<
" x " << pRes <<
" for polarization "
84 << polarizationState <<
")." <<
G4endl;
101 G4cerr <<
"G4LatticeLogical::LoadMap exceeds maximum resolution of "
106 std::ifstream fMapFile(map.
data());
107 if(!fMapFile.is_open())
return false;
111 for (
G4int theta = 0; theta<tRes; theta++) {
112 for (
G4int phi = 0; phi<pRes; phi++) {
113 fMapFile >> x >> y >>
z;
115 fN_map[polarizationState][theta][phi] = dir.
unit();
120 G4cout <<
"\nG4LatticeLogical::Load_NMap(" << map <<
") successful"
121 <<
" (Vdir " << tRes <<
" x " << pRes <<
" for polarization "
122 << polarizationState <<
")." <<
G4endl;
146 if(phi<0) phi = phi +
twopi;
147 if(theta>
pi) theta=theta-
pi;
152 G4cout<<
"\nFound v=0 for polarization "<<polarizationState
153 <<
" theta "<<theta<<
" phi "<<phi<<
" translating to map coords "
154 <<
"theta "<<
int(theta/tRes) <<
" phi " <<
int(phi/pRes)<<
G4endl;
158 G4cout <<
"G4LatticeLogical::MapKtoV theta,phi=" << theta <<
" " << phi
159 <<
" : ith,iph " <<
int(theta/tRes) <<
" " <<
int(phi/pRes)
160 <<
" : V " << Vg <<
G4endl;
182 if(theta>
pi) theta=theta-
pi;
184 if(phi<0) phi = phi + 2*
pi;
190 G4cout <<
"G4LatticeLogical::MapKtoVDir theta,phi=" << theta <<
" " << phi
191 <<
" : ith,iph " << iTheta <<
" " << iPhi
192 <<
" : dir " <<
fN_map[polarizationState][iTheta][iPhi] <<
G4endl;
195 return fN_map[polarizationState][iTheta][iPhi];
204 <<
"\nscat " <<
fB <<
" decay " <<
fA
219 os <<
"VG " << name <<
" " << (pol==0?
"L":pol==1?
"FT":pol==2?
"ST":
"??")
224 os <<
fMap[pol][iTheta][iPhi] << std::endl;
231 os <<
"VDir " << name <<
" " << (pol==0?
"L":pol==1?
"FT":pol==2?
"ST":
"??")
236 os <<
fN_map[pol][iTheta][iPhi].
x()
237 <<
" " <<
fN_map[pol][iTheta][iPhi].
y()
238 <<
" " <<
fN_map[pol][iTheta][iPhi].
z()
void set(double x, double y, double z)
G4bool LoadMap(G4int, G4int, G4int, G4String)
virtual G4double MapKtoV(G4int, const G4ThreeVector &) const
void Dump_NMap(std::ostream &os, G4int pol, const G4String &name) const
virtual G4ThreeVector MapKtoVDir(G4int, const G4ThreeVector &) const
static constexpr double m
G4bool Load_NMap(G4int, G4int, G4int, G4String)
void Dump(std::ostream &os) const
const char * data() const
static constexpr double twopi
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
G4GLOB_DLL std::ostream G4cerr
G4double fMap[3][MAXRES][MAXRES]
G4ThreeVector fN_map[3][MAXRES][MAXRES]
G4GLOB_DLL std::ostream G4cout
void DumpMap(std::ostream &os, G4int pol, const G4String &name) const
static constexpr double pi
Definition of the G4LatticeLogical class.
virtual ~G4LatticeLogical()