65 G4cout <<
"XUnitCell::GetBase(G4int) Base "
66 << i <<
" does not exist" << std::endl;
90 G4cout <<
"XUnitCell::SetBase Base(G4int,G4XLogicalBase) "
91 << i <<
" does not exist" << std::endl;
123 return vAtomVolumeDensity;
129 return std::pow(h/
fSize.x(),2.) + std::pow(k/
fSize.y(),2.) + std::pow(l/
fSize.z(),2.);
135 return std::pow(h*
fSize.x(),2.) + std::pow(k*
fSize.y(),2.) + std::pow(l*
fSize.z(),2.);
141 G4double vReciprocalVectorSquared = 0.0;
151 vTemp[0] = std::pow(vTemp[0] * h,2.) / vVolume;
154 vTemp[1] = std::pow(vTemp[1] * k,2.) / vVolume;
157 vTemp[2] = std::pow(vTemp[2] * l,2.) / vVolume;
161 vTemp[3] *= (2. * h * k);
165 vTemp[4] *= (2. * l * h);
169 vTemp[5] *= (2. * k * l);
171 vReciprocalVectorSquared = (vTemp[0]+vTemp[1]+vTemp[2]) / vVolume;
172 vReciprocalVectorSquared += (vTemp[3]+vTemp[4]+vTemp[5]);
173 vReciprocalVectorSquared /= vVolume;
177 return vReciprocalVectorSquared;
193 double vDirectVectorSquared = 0.0;
195 vDirectVectorSquared += 2. * h * k *
fSize.y() *
197 vDirectVectorSquared += 2. * l * h *
fSize.x() *
199 vDirectVectorSquared += 2. * l * l *
fSize.x() *
201 return vDirectVectorSquared;
G4int GetLatticeNumberOfAtoms()
G4double ComputeDirectVectorSquared(G4int, G4int, G4int)
XLogicalBase * fBase[MAXBASENUMBER]
CLHEP::Hep3Vector G4ThreeVector
void SetSize(G4ThreeVector)
G4double ComputeMillerPerSizeSquared(G4int, G4int, G4int)
G4double ComputeReciprocalVectorSquared(G4int, G4int, G4int)
G4double ComputeMillerOverSizeSquared(G4int, G4int, G4int)
XLogicalAtomicLattice * GetLattice()
G4GLOB_DLL std::ostream G4cout
void AddBase(XLogicalBase *)
G4double ComputeAtomVolumeDensity()
G4double ComputeDirectPeriod(G4int, G4int, G4int)
XLogicalBase * GetBase(G4int)
static const double radian
void SetBase(G4int, XLogicalBase *)
G4double ComputeDirectPeriodSquared(G4int, G4int, G4int)
void SetAngle(G4ThreeVector)
G4double ComputeReciprocalVector(G4int, G4int, G4int)
G4double ComputeDirectVector(G4int, G4int, G4int)
static const double angstrom