66 std::map<G4int,G4RDVEMDataSet*,std::less<G4int> >::iterator pos;
68 for (pos = param.begin(); pos != param.end(); ++pos)
84 G4int id = Z*length + parameterIndex;
85 std::map<G4int,G4RDVEMDataSet*,std::less<G4int> >::const_iterator pos;
88 if (pos!= param.end()) {
96 G4cout <<
"WARNING: G4RDBremsstrahlungParameters::FindValue "
97 <<
"did not find ID = "
104 void G4RDBremsstrahlungParameters::LoadData(
const G4String&
name)
111 if (materialTable == 0)
112 G4Exception(
"G4RDBremsstrahlungParameters::LoadData()",
122 for (
G4int m=0;
m<nMaterials;
m++) {
128 for (
G4int iEl=0; iEl<nElements; iEl++) {
129 G4Element* element = (*elementVector)[iEl];
135 activeZ.push_back(Z);
142 char* path = getenv(
"G4LEDATA");
145 G4String excep(
"G4LEDATA environment variable not set!");
146 G4Exception(
"G4RDBremsstrahlungParameters::LoadData()",
152 std::ifstream file_a(name_a);
153 std::filebuf* lsdp_a = file_a.rdbuf();
155 if (! (lsdp_a->is_open()) )
157 G4String stringConversion2(
"Cannot open file ");
158 G4String excep = stringConversion2 + name_a;
159 G4Exception(
"G4RDBremsstrahlungParameters::LoadData()",
173 std::vector<G4DataVector*>
a;
174 for (
size_t j=0; j<length; j++) {
182 file_a >> ener >> sum;
189 }
else if (ener == (
G4double)(-1)) {
197 for (
size_t k=0; k<length; k++) {
199 G4int id = z*length + k;
202 size_t eSize = e.size();
203 for (
size_t s=0;
s<eSize;
s++) {
204 eVector->push_back(e[
s]);
210 for (
size_t j=0; j<length; j++) {
215 for (
size_t j=0; j<length; j++) {
223 if(ener > 1000.) ener = 1000.;
225 a[length-1]->push_back(sum);
227 for (
size_t j=0; j<length-1; j++) {
230 a[j]->push_back(qRead);
244 if (id < 0 || id >= n)
246 G4String stringConversion1(
"Wrong id = ");
248 G4String ex = stringConversion1 + stringConversion2;
249 G4Exception(
"G4RDBremsstrahlungParameters::ParameterC()",
261 G4cout <<
"===== G4RDBremsstrahlungParameters =====" <<
G4endl;
266 size_t nZ = activeZ.size();
267 std::map<G4int,G4RDVEMDataSet*,std::less<G4int> >::const_iterator pos;
269 for (
size_t j=0; j<nZ; j++) {
272 for (
size_t i=0; i<length; i++) {
274 pos = param.find(Z*length + i);
275 if (pos!= param.end()) {
277 G4cout <<
"===== Z= " << Z
278 <<
" parameter[" << i <<
"] ====="
286 G4cout <<
"==========================================" <<
G4endl;
G4double GetTotNbOfElectPerVolume() const
std::vector< G4Element * > G4ElementVector
static G4MaterialTable * GetMaterialTable()
std::vector< G4Material * > G4MaterialTable
const G4ElementVector * GetElementVector() const
G4GLOB_DLL std::ostream G4cout
virtual G4double FindValue(G4double x, G4int componentId=0) const =0
~G4RDBremsstrahlungParameters()
virtual void PrintData(void) const =0
static size_t GetNumberOfMaterials()
G4double ParameterC(G4int index) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4double Parameter(G4int parameterIndex, G4int Z, G4double energy) const
virtual const G4DataVector & GetEnergies(G4int componentId) const =0
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
const XML_Char int const XML_Char * value
size_t GetNumberOfElements() const
G4bool contains(const G4double &) const
G4RDBremsstrahlungParameters(const G4String &name, size_t num, G4int minZ=1, G4int maxZ=99)