48 #include "G4String.hh"
58 const G4String& aCrossSectionFileName,
65 lowEnergyLimit(aLowEnergyLimit),
66 highEnergyLimit(aHighEnergyLimit),
67 crossSectionFileName(aCrossSectionFileName),
72 scatterFunctionData->
LoadData(aScatterFileName);
78 << lowEnergyLimit /
keV <<
" keV - "
79 << highEnergyLimit /
GeV <<
" GeV"
88 if (meanFreePathTable)
89 delete meanFreePathTable;
91 delete crossSectionHandler;
92 delete scatterFunctionData;
108 crossSectionHandler->
Clear();
109 crossSectionHandler->
LoadData(crossSectionFileName);
111 if (meanFreePathTable)
112 delete meanFreePathTable;
125 if (photonEnergy < lowEnergyLimit)
128 if (photonEnergy > highEnergyLimit)
129 photonEnergy=highEnergyLimit;
131 size_t materialIndex;
134 return meanFreePathTable->
FindValue(photonEnergy, materialIndex);
149 if ((!photonPolarization.
isOrthogonal(photonMomentumDirection, 1
e-6)) || photonPolarization.
mag()==0.)
162 photonPolarization=e1+e2;
164 else if (photonPolarization.
howOrthogonal(photonMomentumDirection) != 0.)
169 photonPolarization=photonPolarization.
perpPart(photonMomentumDirection);
172 return photonPolarization.
unit();