Geant4  10.02.p03
G4ExtDEDXTable Class Reference

#include <G4ExtDEDXTable.hh>

Inheritance diagram for G4ExtDEDXTable:
Collaboration diagram for G4ExtDEDXTable:

Public Member Functions

 G4ExtDEDXTable ()
 
virtual ~G4ExtDEDXTable ()
 
G4bool BuildPhysicsVector (G4int ionZ, const G4String &matName)
 
G4bool BuildPhysicsVector (G4int ionZ, G4int matZ)
 
G4bool IsApplicable (G4int atomicNumberIon, G4int atomicNumberElem)
 
G4bool IsApplicable (G4int atomicNumberIon, const G4String &matIdentifier)
 
G4PhysicsVectorGetPhysicsVector (G4int atomicNumberIon, G4int atomicNumberElem)
 
G4PhysicsVectorGetPhysicsVector (G4int atomicNumberIon, const G4String &matIdenfier)
 
G4double GetDEDX (G4double kinEnergyPerNucleon, G4int atomicNumberIon, G4int atomicNumberElem)
 
G4double GetDEDX (G4double kinEnergyPerNucleon, G4int atomicNumberIon, const G4String &matIdenfier)
 
G4bool AddPhysicsVector (G4PhysicsVector *physicsVector, G4int atomicNumberIon, const G4String &matIdenfier, G4int atomicNumberElem=0)
 
G4bool RemovePhysicsVector (G4int atomicNumberIon, const G4String &matIdentifier)
 
G4bool StorePhysicsTable (const G4String &fileName)
 
G4bool RetrievePhysicsTable (const G4String &fileName)
 
void ClearTable ()
 
void DumpMap ()
 
- Public Member Functions inherited from G4VIonDEDXTable
 G4VIonDEDXTable ()
 
virtual ~G4VIonDEDXTable ()
 

Private Types

typedef std::pair< G4int, G4intG4IonDEDXKeyElem
 
typedef std::pair< G4int, G4StringG4IonDEDXKeyMat
 
typedef std::map< G4IonDEDXKeyElem, G4PhysicsVector * > G4IonDEDXMapElem
 
typedef std::map< G4IonDEDXKeyMat, G4PhysicsVector * > G4IonDEDXMapMat
 

Private Member Functions

G4PhysicsVectorCreatePhysicsVector (G4int vectorType)
 
G4int FindAtomicNumberElement (G4PhysicsVector *physicsVector)
 

Private Attributes

G4IonDEDXMapElem dedxMapElements
 
G4IonDEDXMapMat dedxMapMaterials
 

Detailed Description

Definition at line 64 of file G4ExtDEDXTable.hh.

Member Typedef Documentation

◆ G4IonDEDXKeyElem

typedef std::pair<G4int, G4int> G4ExtDEDXTable::G4IonDEDXKeyElem
private

Definition at line 158 of file G4ExtDEDXTable.hh.

◆ G4IonDEDXKeyMat

typedef std::pair<G4int, G4String> G4ExtDEDXTable::G4IonDEDXKeyMat
private

Definition at line 159 of file G4ExtDEDXTable.hh.

◆ G4IonDEDXMapElem

Definition at line 161 of file G4ExtDEDXTable.hh.

◆ G4IonDEDXMapMat

Definition at line 162 of file G4ExtDEDXTable.hh.

Constructor & Destructor Documentation

◆ G4ExtDEDXTable()

G4ExtDEDXTable::G4ExtDEDXTable ( )

Definition at line 73 of file G4ExtDEDXTable.cc.

73  {
74 
75 }

◆ ~G4ExtDEDXTable()

G4ExtDEDXTable::~G4ExtDEDXTable ( )
virtual

Definition at line 79 of file G4ExtDEDXTable.cc.

79  {
80 
81  ClearTable();
82 }
Here is the call graph for this function:

Member Function Documentation

◆ AddPhysicsVector()

G4bool G4ExtDEDXTable::AddPhysicsVector ( G4PhysicsVector physicsVector,
G4int  atomicNumberIon,
const G4String matIdenfier,
G4int  atomicNumberElem = 0 
)

Definition at line 216 of file G4ExtDEDXTable.cc.

221  {
222 
223  if(physicsVector == 0) {
224 
225 #ifdef G4VERBOSE
226  G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: Pointer to vector"
227  << " is null-pointer."
228  << G4endl;
229 #endif
230 
231  return false;
232  }
233 
234  if(matIdentifier.empty()) {
235 
236 #ifdef G4VERBOSE
237  G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: "
238  << "Cannot add physics vector. Invalid name."
239  << G4endl;
240 #endif
241 
242  return false;
243  }
244 
245  if(atomicNumberIon <= 2) {
246 
247 #ifdef G4VERBOSE
248  G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: "
249  << "Cannot add physics vector. Illegal atomic number."
250  << G4endl;
251 #endif
252 
253  return false;
254  }
255 
256  if(atomicNumberElem > 0) {
257 
258  G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem);
259 
260  if(dedxMapElements.count(key) == 1) {
261 
262 #ifdef G4VERBOSE
263  G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: "
264  << "Vector already exists. Remove first before replacing."
265  << G4endl;
266 #endif
267  return false;
268  }
269 
270  dedxMapElements[key] = physicsVector;
271  }
272 
273  G4IonDEDXKeyMat mkey = std::make_pair(atomicNumberIon, matIdentifier);
274 
275  if(dedxMapMaterials.count(mkey) == 1) {
276 
277 #ifdef G4VERBOSE
278  G4cout << "G4IonDEDXTable::AddPhysicsVector() Error: "
279  << "Vector already exists. Remove first before replacing."
280  << G4endl;
281 #endif
282 
283  return false;
284  }
285 
286  dedxMapMaterials[mkey] = physicsVector;
287 
288  return true;
289 }
std::pair< G4int, G4String > G4IonDEDXKeyMat
G4IonDEDXMapElem dedxMapElements
std::pair< G4int, G4int > G4IonDEDXKeyElem
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
G4IonDEDXMapMat dedxMapMaterials
Here is the caller graph for this function:

◆ BuildPhysicsVector() [1/2]

G4bool G4ExtDEDXTable::BuildPhysicsVector ( G4int  ionZ,
const G4String matName 
)
virtual

Implements G4VIonDEDXTable.

Definition at line 94 of file G4ExtDEDXTable.cc.

95  {
96 
97  return IsApplicable( ionZ, matName );
98 }
G4bool IsApplicable(G4int atomicNumberIon, G4int atomicNumberElem)
Here is the call graph for this function:

◆ BuildPhysicsVector() [2/2]

G4bool G4ExtDEDXTable::BuildPhysicsVector ( G4int  ionZ,
G4int  matZ 
)
virtual

Implements G4VIonDEDXTable.

Definition at line 86 of file G4ExtDEDXTable.cc.

86  {
87 
88  return IsApplicable( ionZ, matZ );
89 }
G4bool IsApplicable(G4int atomicNumberIon, G4int atomicNumberElem)
Here is the call graph for this function:

◆ ClearTable()

void G4ExtDEDXTable::ClearTable ( )

Definition at line 591 of file G4ExtDEDXTable.cc.

591  {
592 
593  G4IonDEDXMapMat::iterator iterMat = dedxMapMaterials.begin();
594  G4IonDEDXMapMat::iterator iterMat_end = dedxMapMaterials.end();
595 
596  for(;iterMat != iterMat_end; iterMat++) {
597 
598  G4PhysicsVector* vec = iterMat -> second;
599 
600  if(vec != 0) delete vec;
601  }
602 
603  dedxMapElements.clear();
604  dedxMapMaterials.clear();
605 }
G4IonDEDXMapElem dedxMapElements
static const double second
Definition: G4SIunits.hh:156
G4IonDEDXMapMat dedxMapMaterials
Here is the caller graph for this function:

◆ CreatePhysicsVector()

G4PhysicsVector * G4ExtDEDXTable::CreatePhysicsVector ( G4int  vectorType)
private

Definition at line 530 of file G4ExtDEDXTable.cc.

530  {
531 
532  G4PhysicsVector* physicsVector = 0;
533 
534  switch (vectorType) {
535 
537  physicsVector = new G4PhysicsLinearVector();
538  break;
539 
540  case T_G4PhysicsLogVector:
541  physicsVector = new G4PhysicsLogVector();
542  break;
543 
544  case T_G4PhysicsLnVector:
545  physicsVector = new G4PhysicsLnVector();
546  break;
547 
548  case T_G4PhysicsFreeVector:
549  physicsVector = new G4PhysicsFreeVector();
550  break;
551 
553  physicsVector = new G4PhysicsOrderedFreeVector();
554  break;
555 
557  physicsVector = new G4LPhysicsFreeVector();
558  break;
559 
560  default:
561  break;
562  }
563  return physicsVector;
564 }
Here is the caller graph for this function:

◆ DumpMap()

void G4ExtDEDXTable::DumpMap ( )

Definition at line 609 of file G4ExtDEDXTable.cc.

609  {
610 
611  G4IonDEDXMapMat::iterator iterMat = dedxMapMaterials.begin();
612  G4IonDEDXMapMat::iterator iterMat_end = dedxMapMaterials.end();
613 
614  G4cout << std::setw(15) << std::right
615  << "Atomic nmb ion"
616  << std::setw(25) << std::right
617  << "Material name"
618  << std::setw(25) << std::right
619  << "Atomic nmb material"
620  << G4endl;
621 
622  for(;iterMat != iterMat_end; iterMat++) {
623  G4IonDEDXKeyMat key = iterMat -> first;
624  G4PhysicsVector* physicsVector = iterMat -> second;
625 
626  G4int atomicNumberIon = key.first;
627  G4String matIdentifier = key.second;
628 
629  G4int atomicNumberElem = FindAtomicNumberElement(physicsVector);
630 
631  if(physicsVector != 0) {
632  G4cout << std::setw(15) << std::right
633  << atomicNumberIon
634  << std::setw(25) << std::right
635  << matIdentifier
636  << std::setw(25) << std::right;
637 
638  if(atomicNumberElem > 0) G4cout << atomicNumberElem;
639  else G4cout << "N/A";
640 
641  G4cout << G4endl;
642  }
643  }
644 
645 }
std::pair< G4int, G4String > G4IonDEDXKeyMat
int G4int
Definition: G4Types.hh:78
G4int FindAtomicNumberElement(G4PhysicsVector *physicsVector)
G4GLOB_DLL std::ostream G4cout
static const double second
Definition: G4SIunits.hh:156
#define G4endl
Definition: G4ios.hh:61
G4IonDEDXMapMat dedxMapMaterials
Here is the call graph for this function:

◆ FindAtomicNumberElement()

G4int G4ExtDEDXTable::FindAtomicNumberElement ( G4PhysicsVector physicsVector)
private

Definition at line 568 of file G4ExtDEDXTable.cc.

570  {
571 
572  G4int atomicNumber = 0;
573 
574  G4IonDEDXMapElem::iterator iter = dedxMapElements.begin();
575  G4IonDEDXMapElem::iterator iter_end = dedxMapElements.end();
576 
577  for(;iter != iter_end; iter++) {
578 
579  if( (*iter).second == physicsVector ) {
580 
581  G4IonDEDXKeyElem key = (*iter).first;
582  atomicNumber = key.second;
583  }
584  }
585 
586  return atomicNumber;
587 }
G4IonDEDXMapElem dedxMapElements
int G4int
Definition: G4Types.hh:78
std::pair< G4int, G4int > G4IonDEDXKeyElem
Here is the caller graph for this function:

◆ GetDEDX() [1/2]

G4double G4ExtDEDXTable::GetDEDX ( G4double  kinEnergyPerNucleon,
G4int  atomicNumberIon,
G4int  atomicNumberElem 
)

Definition at line 170 of file G4ExtDEDXTable.cc.

174  {
175  G4double dedx = 0;
176 
177  G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem);
178 
179  G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key);
180 
181  if( iter != dedxMapElements.end() ) {
182  G4PhysicsVector* physicsVector = iter -> second;
183 
184  G4bool b;
185  dedx = physicsVector -> GetValue( kinEnergyPerNucleon, b );
186  }
187 
188  return dedx;
189 }
G4IonDEDXMapElem dedxMapElements
std::pair< G4int, G4int > G4IonDEDXKeyElem
bool G4bool
Definition: G4Types.hh:79
static const double second
Definition: G4SIunits.hh:156
double G4double
Definition: G4Types.hh:76

◆ GetDEDX() [2/2]

G4double G4ExtDEDXTable::GetDEDX ( G4double  kinEnergyPerNucleon,
G4int  atomicNumberIon,
const G4String matIdenfier 
)

Definition at line 193 of file G4ExtDEDXTable.cc.

197  {
198  G4double dedx = 0;
199 
200  G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier);
201 
202  G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key);
203 
204  if(iter != dedxMapMaterials.end()) {
205  G4PhysicsVector* physicsVector = iter -> second;
206 
207  G4bool b;
208  dedx = physicsVector -> GetValue( kinEnergyPerNucleon, b );
209  }
210 
211  return dedx;
212 }
std::pair< G4int, G4String > G4IonDEDXKeyMat
bool G4bool
Definition: G4Types.hh:79
static const double second
Definition: G4SIunits.hh:156
double G4double
Definition: G4Types.hh:76
G4IonDEDXMapMat dedxMapMaterials

◆ GetPhysicsVector() [1/2]

G4PhysicsVector * G4ExtDEDXTable::GetPhysicsVector ( G4int  atomicNumberIon,
G4int  atomicNumberElem 
)
virtual

Implements G4VIonDEDXTable.

Definition at line 134 of file G4ExtDEDXTable.cc.

137  {
138 
139  G4PhysicsVector* physVector = 0;
140 
141  G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem);
142 
143  G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key);
144 
145  if(iter != dedxMapElements.end()) physVector = iter -> second;
146 
147  return physVector;
148 }
G4IonDEDXMapElem dedxMapElements
std::pair< G4int, G4int > G4IonDEDXKeyElem
static const double second
Definition: G4SIunits.hh:156

◆ GetPhysicsVector() [2/2]

G4PhysicsVector * G4ExtDEDXTable::GetPhysicsVector ( G4int  atomicNumberIon,
const G4String matIdenfier 
)
virtual

Implements G4VIonDEDXTable.

Definition at line 152 of file G4ExtDEDXTable.cc.

155  {
156 
157  G4PhysicsVector* physVector = 0;
158 
159  G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier);
160 
161  G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key);
162 
163  if(iter != dedxMapMaterials.end()) physVector = iter -> second;
164 
165  return physVector;
166 }
std::pair< G4int, G4String > G4IonDEDXKeyMat
static const double second
Definition: G4SIunits.hh:156
G4IonDEDXMapMat dedxMapMaterials

◆ IsApplicable() [1/2]

G4bool G4ExtDEDXTable::IsApplicable ( G4int  atomicNumberIon,
G4int  atomicNumberElem 
)
virtual

Implements G4VIonDEDXTable.

Definition at line 102 of file G4ExtDEDXTable.cc.

105  {
106  G4bool isApplicable = true;
107  G4IonDEDXKeyElem key = std::make_pair(atomicNumberIon, atomicNumberElem);
108 
109  G4IonDEDXMapElem::iterator iter = dedxMapElements.find(key);
110 
111  if(iter == dedxMapElements.end()) isApplicable = false;
112 
113  return isApplicable;
114 }
G4IonDEDXMapElem dedxMapElements
std::pair< G4int, G4int > G4IonDEDXKeyElem
bool G4bool
Definition: G4Types.hh:79
Here is the caller graph for this function:

◆ IsApplicable() [2/2]

G4bool G4ExtDEDXTable::IsApplicable ( G4int  atomicNumberIon,
const G4String matIdentifier 
)
virtual

Implements G4VIonDEDXTable.

Definition at line 118 of file G4ExtDEDXTable.cc.

121  {
122  G4bool isApplicable = true;
123  G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier);
124 
125  G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key);
126 
127  if(iter == dedxMapMaterials.end()) isApplicable = false;
128 
129  return isApplicable;
130 }
std::pair< G4int, G4String > G4IonDEDXKeyMat
bool G4bool
Definition: G4Types.hh:79
G4IonDEDXMapMat dedxMapMaterials

◆ RemovePhysicsVector()

G4bool G4ExtDEDXTable::RemovePhysicsVector ( G4int  atomicNumberIon,
const G4String matIdentifier 
)

Definition at line 293 of file G4ExtDEDXTable.cc.

296  {
297 
298  G4PhysicsVector* physicsVector = 0;
299 
300  // Deleting key of physics vector from material map
301  G4IonDEDXKeyMat key = std::make_pair(atomicNumberIon, matIdentifier);
302 
303  G4IonDEDXMapMat::iterator iter = dedxMapMaterials.find(key);
304 
305  if(iter == dedxMapMaterials.end()) {
306 
307 #ifdef G4VERBOSE
308  G4cout << "G4IonDEDXTable::RemovePhysicsVector() Warning: "
309  << "Cannot remove physics vector. Vector not found."
310  << G4endl;
311 #endif
312 
313  return false;
314  }
315 
316  physicsVector = (*iter).second;
317  dedxMapMaterials.erase(key);
318 
319  // Deleting key of physics vector from elemental material map (if it exists)
320  G4IonDEDXMapElem::iterator it;
321 
322  for(it=dedxMapElements.begin(); it!=dedxMapElements.end(); ++it) {
323 
324  if( (*it).second == physicsVector ) {
325  dedxMapElements.erase(it);
326  break;
327  }
328  }
329 
330  // Deleting physics vector
331  delete physicsVector;
332 
333  return true;
334 }
std::pair< G4int, G4String > G4IonDEDXKeyMat
G4IonDEDXMapElem dedxMapElements
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
G4IonDEDXMapMat dedxMapMaterials

◆ RetrievePhysicsTable()

G4bool G4ExtDEDXTable::RetrievePhysicsTable ( const G4String fileName)

Definition at line 409 of file G4ExtDEDXTable.cc.

410 {
411  std::ifstream ifilestream;
412  ifilestream.open( fileName, std::ios::in|std::ios::binary );
413  if( ! ifilestream ) {
414 #ifdef G4VERBOSE
415  G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() "
416  << " Cannot open file "<< fileName
417  << G4endl;
418 #endif
419  return false;
420  }
421 
422  //std::string::size_type nmbVectors;
423  G4int nmbVectors = 0;
424  ifilestream >> nmbVectors;
425  if( ifilestream.fail() || nmbVectors <= 0) {
426  G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() "
427  << " File content of " << fileName << " ill-formated."
428  << " Nvectors= " << nmbVectors
429  << G4endl;
430  ifilestream.close();
431  return false;
432  }
433 
434  for(G4int i = 0; i<nmbVectors; ++i) {
435 
436  G4String line = "";
437  // Loop checking, 07-Aug-2015, Vladimir Ivanchenko
438  while( line.empty() ) {
439 
440  getline( ifilestream, line );
441  if( ifilestream.fail() ) {
442 #ifdef G4VERBOSE
443  G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() "
444  << " File content of " << fileName << " ill-formated."
445  << G4endl;
446 #endif
447  ifilestream.close();
448  return false;
449  }
450 
451  std::string::size_type pos = line.find_first_of("#");
452  if(pos != std::string::npos && pos > 0) {
453  line = line.substr(0, pos);
454  }
455  }
456 
457  std::istringstream headerstream( line );
458 
459  std::string::size_type atomicNumberIon;
460  headerstream >> atomicNumberIon;
461 
462  G4String materialName;
463  headerstream >> materialName;
464 
465  if( headerstream.fail() || std::string::npos == atomicNumberIon) {
466 
467 #ifdef G4VERBOSE
468  G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() "
469  << " File content of " << fileName << " ill-formated "
470  << " (vector header)."
471  << G4endl;
472 #endif
473  ifilestream.close();
474  return false;
475  }
476 
477  std::string::size_type atomicNumberMat;
478  headerstream >> atomicNumberMat;
479 
480  if( headerstream.eof() || std::string::npos == atomicNumberMat) {
481  atomicNumberMat = 0;
482  }
483 
484  G4int vectorType;
485  ifilestream >> vectorType;
486 
487  G4PhysicsVector* physicsVector = CreatePhysicsVector(vectorType);
488 
489  if(physicsVector == 0) {
490 #ifdef G4VERBOSE
491  G4cout << "G4ExtDEDXTable::RetrievePhysicsTable "
492  << " illegal physics Vector type " << vectorType
493  << " in " << fileName
494  << G4endl;
495 #endif
496  ifilestream.close();
497  return false;
498  }
499 
500  if( !physicsVector -> Retrieve(ifilestream, true) ) {
501 
502 #ifdef G4VERBOSE
503  G4cout << "G4ExtDEDXTable::RetrievePhysicsTable() "
504  << " File content of " << fileName << " ill-formated."
505  << G4endl;
506 #endif
507  ifilestream.close();
508  return false;
509  }
510 
511  physicsVector -> SetSpline(true);
512 
513  // Retrieved vector is added to material store
514  if( !AddPhysicsVector(physicsVector, (G4int)atomicNumberIon,
515  materialName, (G4int)atomicNumberMat) ) {
516 
517  delete physicsVector;
518  ifilestream.close();
519  return false;
520  }
521  }
522 
523  ifilestream.close();
524 
525  return true;
526 }
ifstream in
Definition: comparison.C:7
G4PhysicsVector * CreatePhysicsVector(G4int vectorType)
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
G4bool AddPhysicsVector(G4PhysicsVector *physicsVector, G4int atomicNumberIon, const G4String &matIdenfier, G4int atomicNumberElem=0)
#define G4endl
Definition: G4ios.hh:61
static const G4double pos
Here is the call graph for this function:

◆ StorePhysicsTable()

G4bool G4ExtDEDXTable::StorePhysicsTable ( const G4String fileName)

Definition at line 338 of file G4ExtDEDXTable.cc.

340  {
341  G4bool success = true;
342 
343  std::ofstream ofilestream;
344 
345  ofilestream.open( fileName, std::ios::out );
346 
347  if( !ofilestream ) {
348 
349 #ifdef G4VERBOSE
350  G4cout << "G4ExtDEDXTable::StorePhysicsVector() "
351  << " Cannot open file "<< fileName
352  << G4endl;
353 #endif
354 
355  success = false;
356  }
357  else {
358 
359  size_t nmbMatTables = dedxMapMaterials.size();
360 
361  ofilestream << nmbMatTables << G4endl << G4endl;
362 
363  G4IonDEDXMapMat::iterator iterMat = dedxMapMaterials.begin();
364  G4IonDEDXMapMat::iterator iterMat_end = dedxMapMaterials.end();
365 
366  for(;iterMat != iterMat_end; iterMat++) {
367  G4IonDEDXKeyMat key = iterMat -> first;
368  G4PhysicsVector* physicsVector = iterMat -> second;
369 
370  G4int atomicNumberIon = key.first;
371  G4String matIdentifier = key.second;
372 
373  G4int atomicNumberElem = FindAtomicNumberElement(physicsVector);
374 
375  if(physicsVector != 0) {
376  ofilestream << atomicNumberIon << " " << matIdentifier;
377 
378  if(atomicNumberElem > 0) ofilestream << " " << atomicNumberElem;
379 
380  ofilestream << " # <Atomic number ion> <Material name> ";
381 
382  if(atomicNumberElem > 0) ofilestream << "<Atomic number element>";
383 
384  ofilestream << G4endl << physicsVector -> GetType() << G4endl;
385 
386  physicsVector -> Store(ofilestream, true);
387 
388  ofilestream << G4endl;
389  }
390  else {
391 
392 #ifdef G4VERBOSE
393  G4cout << "G4ExtDEDXTable::StorePhysicsVector() "
394  << " Cannot store physics vector."
395  << G4endl;
396 #endif
397 
398  }
399  }
400  }
401 
402  ofilestream.close();
403 
404  return success;
405 }
std::pair< G4int, G4String > G4IonDEDXKeyMat
int G4int
Definition: G4Types.hh:78
G4int FindAtomicNumberElement(G4PhysicsVector *physicsVector)
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
static const double second
Definition: G4SIunits.hh:156
#define G4endl
Definition: G4ios.hh:61
G4IonDEDXMapMat dedxMapMaterials
Here is the call graph for this function:

Member Data Documentation

◆ dedxMapElements

G4IonDEDXMapElem G4ExtDEDXTable::dedxMapElements
private

Definition at line 164 of file G4ExtDEDXTable.hh.

◆ dedxMapMaterials

G4IonDEDXMapMat G4ExtDEDXTable::dedxMapMaterials
private

Definition at line 165 of file G4ExtDEDXTable.hh.


The documentation for this class was generated from the following files: