71 if ( physTable->size() < numberOfMCC) {
76 G4cerr <<
"G4PhysicsTableHelper::PreparePhysicsTable ";
77 G4cerr <<
"Physics Table "<< physTable ;
81 }
else if ( physTable->size() > numberOfMCC){
84 physTable->
resize(numberOfMCC);
87 G4cerr <<
"G4PhysicsTableHelper::PreparePhysicsTable ";
88 G4cerr <<
"Physics Table "<< physTable ;
89 G4cerr <<
" is longer than number of material-cuts-couple " <<
G4endl;
92 G4Exception(
"G4PhysicsTableHelper::PreparePhysicsTable()",
94 "Physics Table is inconsistent with material-cuts-couple");
102 G4Exception(
"G4PhysicsTableHelper::PreparePhysicsTable()",
104 "Can't create Physics Table");
110 if ( physTable !=0) {
111 G4cerr <<
"Physics Table size "<< physTable->size();
113 G4cerr <<
"Physics Table does not exist ";
115 G4cerr <<
": number of material-cuts-couple " << numberOfMCC <<
G4endl;
122 for (
size_t idx = 0; idx <numberOfMCC; idx +=1){
141 if (physTable == 0)
return false;
148 G4cerr <<
"G4PhysicsTableHelper::RetrievePhysicsTable ";
149 G4cerr <<
"Fail to retreive from "<< fileName <<
G4endl;
152 G4Exception(
"G4ProductionCutsTable::RetrievePhysicsTable()",
154 JustWarning,
"Can not retrieve physics tables from file");
163 if ( tempTable->size() != converter->
size()){
166 G4cerr <<
"G4PhysicsTableHelper::RetrievePhysicsTable ";
167 G4cerr <<
"Size of the physics table in "<< fileName;
168 G4cerr <<
"( size =" << tempTable->size() <<
")";
169 G4cerr <<
" is inconsistent with material-cut info";
170 G4cerr <<
"( size =" << converter->
size() <<
")";
174 G4Exception(
"G4ProductionCutsTable::RetrievePhysicsTable()",
176 JustWarning,
"Retrived file is inconsistent with current physics tables ");
182 for (
size_t idx=0; idx<converter->
size(); idx++){
183 if (converter->
IsUsed(idx)){
184 if (converter->
GetIndex(idx)<0)
continue;
185 size_t i = converter->
GetIndex(idx);
187 if (vec !=0 )
delete vec;
188 (*physTable)[i] = (*tempTable)[idx];
203 if ( physTable ==0) {
return; }
205 if ( physTable->size() <= idx) {
208 G4cerr <<
"G4PhysicsTableHelper::SetPhysicsVector ";
209 G4cerr <<
"Given index (" << idx <<
") exceeds ";
210 G4cerr <<
"size of the physics table ";
211 G4cerr <<
"( size =" << physTable->size()<<
")";
215 G4Exception(
"G4ProductionCutsTable::SetPhysicsVector()",
222 (*physTable)[idx] = vec;
static void SetPhysicsVector(G4PhysicsTable *physTable, size_t idx, G4PhysicsVector *vec)
G4bool RetrievePhysicsTable(const G4String &filename, G4bool ascii=false)
G4int GetIndex(size_t index) const
G4bool IsRecalcNeeded() const
G4bool IsUsed(size_t index) const
static G4PhysicsTable * PreparePhysicsTable(G4PhysicsTable *physTable)
static G4ThreadLocal G4int verboseLevel
const XML_Char int const XML_Char * value
G4PhysicsTableHelper & operator=(const G4PhysicsTableHelper &)
size_t GetTableSize() const
const G4MCCIndexConversionTable * GetMCCIndexConversionTable() const
static G4int GetVerboseLevel()
void resize(size_t, G4PhysicsVector *vec=(G4PhysicsVector *)(0))
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static G4ProductionCutsTable * GetProductionCutsTable()
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
static G4bool RetrievePhysicsTable(G4PhysicsTable *physTable, const G4String &fileName, G4bool ascii)
G4GLOB_DLL std::ostream G4cerr
static void SetVerboseLevel(G4int value)