45     fNumberOfPlanes = vNumberOfPlanes;
 
   51     return fNumberOfPlanes;
 
   70                                           vInterplanarDistance ,
 
   84             vX += ((
int( - vX / vInterplanarPeriod) + 1.0 )
 
   85                   * vInterplanarPeriod);
 
   87         else if( vX > vInterplanarPeriod ){
 
   88             vX -= ( 
int( vX / vInterplanarPeriod) * vInterplanarPeriod );
 
  105     if((vPositionX >= 0.) &&
 
  106        (vPositionX < vInterplanarPeriod)){
 
  109     else if(vPositionX == vInterplanarPeriod){
 
  113         vPositionX -= std::fmod(vPosition.
x(),vInterplanarPeriod)
 
  114             * vInterplanarPeriod;
 
  122     unsigned int vPrecision = 1024;
 
  130     for(
unsigned int i=0;i<vPrecision;i++){
 
  132            > vMaximum) {vMaximum = vValue;}
 
  140     unsigned int vPrecision = 1024;
 
  148     for(
unsigned int i=0;i<vPrecision;i++){
 
  150            < vMinimum) {vMinimum = vValue;}
 
  160     std::ofstream vFileOut;
 
  161     vFileOut.open(filename);
 
  162     vFileOut << 
"pos val" << std::endl;
 
  169         vXposition = double(i) / double(imax) * vInterplanarPeriod;
 
  172         vFileOut << std::endl;
 
  182     std::ifstream vFileIn;
 
  183     vFileIn.open(filename);
 
  184     std::string vTempString;
 
  185     vFileIn >> vTempString >> vTempString;
 
  189     std::vector<double> vTempXvector;
 
  190     std::vector<double> vTempValvector;
 
  192     while(!vFileIn.eof()){ 
 
  195         vTempXvector.push_back(vTempX);
 
  196         vTempValvector.push_back(vTempVal);
 
  202     G4double vInterplanarPeriod = vTempXvector.at(imax-1);
 
  205                                           vInterplanarPeriod*(imax-1)/imax,
 
  216     std::ifstream vFileIn;
 
  217     vFileIn.open(filename);
 
  235         vTempX *= vConversion;
 
  241     G4cout << 
"XVCrystalPlanarAnalytical::ReadFromECHARM() - " <<
 
  242      vConversion << 
" " << imax << 
" " << xmax << 
" " << 
 
  257                                           vInterplanarPeriod*(imax-1)/imax,
 
  260         vXposition = double(i) / double(imax) * vInterplanarPeriod;
 
Definition of the XVCrystalPlanarAnalytical class. 
 
virtual G4double ComputeECForSinglePlane(G4double, XPhysicalLattice *)=0
 
CLHEP::Hep3Vector G4ThreeVector
 
virtual void ReadFromFile(const G4String &, XPhysicalLattice *, G4double=1)
 
XPhysicalLattice * GetXPhysicalLattice(G4VPhysicalVolume *)
 
void SetNumberOfPlanes(G4int)
 
virtual G4double ComputeMaximum(XPhysicalLattice *)
 
G4GLOB_DLL std::ostream G4cout
 
static constexpr double meter
 
XPhysicalLattice * fPhysicalLattice
 
G4ThreeVector ComputeECFromVector(G4ThreeVector)
 
void PutValue(size_t index, G4double theValue)
 
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
 
G4double Value(G4double theEnergy, size_t &lastidx) const 
 
G4ThreeVector ComputePositionInUnitCell(G4ThreeVector, XPhysicalLattice *)
 
virtual void PrintOnFile(const G4String &, XPhysicalLattice *, G4double)
 
G4ThreeVector ComputeEC(G4ThreeVector, XPhysicalLattice *)
 
G4ThreeVector GetEC(G4ThreeVector, XPhysicalLattice *)
 
virtual G4double ComputeMinimum(XPhysicalLattice *)
 
~XVCrystalPlanarAnalytical()
 
G4PhysicsVector * fVectorEC
 
virtual void ReadFromECHARM(const G4String &, G4double=1)
 
XVCrystalPlanarAnalytical()
 
G4int GetNumberOfPlanes()
 
G4double ComputeInterplanarPeriod()
 
G4VPhysicalVolume * GetVolume()
 
static constexpr double angstrom