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++) {
64 G4cerr <<
"G4LatticeLogical::LoadMap exceeds maximum resolution of "
69 std::ifstream fMapFile(
map.data());
70 if (!fMapFile.is_open())
return false;
73 for (
G4int theta = 0; theta<tRes; theta++) {
74 for (
G4int phi = 0; phi<pRes; phi++) {
76 fMap[polarizationState][theta][phi] = vgrp * (
m/
s);
81 G4cout <<
"\nG4LatticeLogical::LoadMap(" <<
map <<
") successful"
82 <<
" (Vg scalars " << tRes <<
" x " << pRes <<
" for polarization "
83 << polarizationState <<
")." <<
G4endl;
100 G4cerr <<
"G4LatticeLogical::LoadMap exceeds maximum resolution of "
105 std::ifstream fMapFile(
map.data());
106 if(!fMapFile.is_open())
return false;
110 for (
G4int theta = 0; theta<tRes; theta++) {
111 for (
G4int phi = 0; phi<pRes; phi++) {
112 fMapFile >> x >> y >> z;
114 fN_map[polarizationState][theta][phi] = dir.
unit();
119 G4cout <<
"\nG4LatticeLogical::Load_NMap(" <<
map <<
") successful"
120 <<
" (Vdir " << tRes <<
" x " << pRes <<
" for polarization "
121 << polarizationState <<
")." <<
G4endl;
145 if(phi<0) phi = phi +
twopi;
146 if(theta>
pi) theta=theta-
pi;
148 G4double Vg =
fMap[polarizationState][int(theta/tRes)][int(phi/pRes)];
151 G4cout<<
"\nFound v=0 for polarization "<<polarizationState
152 <<
" theta "<<theta<<
" phi "<<phi<<
" translating to map coords "
153 <<
"theta "<< int(theta/tRes) <<
" phi " << int(phi/pRes)<<
G4endl;
157 G4cout <<
"G4LatticeLogical::MapKtoV theta,phi=" << theta <<
" " << phi
158 <<
" : ith,iph " << int(theta/tRes) <<
" " << int(phi/pRes)
159 <<
" : V " << Vg <<
G4endl;
181 if(theta>
pi) theta=theta-
pi;
183 if(phi<0) phi = phi + 2*
pi;
185 G4int iTheta = int(theta/tRes+0.5);
186 G4int iPhi = int(phi/pRes+0.5);
189 G4cout <<
"G4LatticeLogical::MapKtoVDir theta,phi=" << theta <<
" " << phi
190 <<
" : ith,iph " << iTheta <<
" " << iPhi
191 <<
" : dir " <<
fN_map[polarizationState][iTheta][iPhi] <<
G4endl;
194 return fN_map[polarizationState][iTheta][iPhi];
203 <<
"\nscat " <<
fB <<
" decay " <<
fA
218 os <<
"VG " <<
name <<
" " << (pol==0?
"L":pol==1?
"FT":pol==2?
"ST":
"??")
223 os <<
fMap[pol][iTheta][iPhi] << std::endl;
230 os <<
"VDir " <<
name <<
" " << (pol==0?
"L":pol==1?
"FT":pol==2?
"ST":
"??")
235 os <<
fN_map[pol][iTheta][iPhi].
x()
236 <<
" " <<
fN_map[pol][iTheta][iPhi].
y()
237 <<
" " <<
fN_map[pol][iTheta][iPhi].
z()
Definition of the G4LatticeLogical class.
static constexpr double m
static constexpr double twopi
static constexpr double s
static constexpr double pi
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z)
G4ThreeVector fN_map[3][MAXRES][MAXRES]
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()
G4double fMap[3][MAXRES][MAXRES]
const char * name(G4int ptype)